{"version":3,"file":"mcp-proxy.mjs","names":["_a","_b","inspect","_a","mixin","code","ansiStyles","key","argv","args","value","val","env","defaults","aliases","guessType","require","argv","shim","y18n","y18n","_y18n","shim","getCallerFile","stack","escalade","y18n","cmd","global","argv","result","shim","usage","validation","module","command","argv","c","shim","fail","command","ui","usage","maxWidth","_a","_b","_c","usage","command","shim","argv","desc","templates.completionZshTemplate","templates.completionShTemplate","shim","argv","_a","usage","key","distance","shim","global","argv","_a","type","key","value","_b","_c","k","Usage","Validation","Command","Completion","completion","validation","esmPlatformShim","resolve","yargs","finalCommand: string","finalArgs: string[]","server","tunnel: Awaited<ReturnType<typeof pipenet>> | undefined"],"sources":["../../node_modules/.pnpm/eventsource-parser@3.0.2/node_modules/eventsource-parser/dist/index.js","../../node_modules/.pnpm/eventsource@4.1.0/node_modules/eventsource/dist/index.js","../../node_modules/.pnpm/cliui@9.0.1/node_modules/cliui/build/lib/index.js","../../node_modules/.pnpm/ansi-regex@6.1.0/node_modules/ansi-regex/index.js","../../node_modules/.pnpm/strip-ansi@7.1.0/node_modules/strip-ansi/index.js","../../node_modules/.pnpm/get-east-asian-width@1.3.0/node_modules/get-east-asian-width/lookup.js","../../node_modules/.pnpm/get-east-asian-width@1.3.0/node_modules/get-east-asian-width/index.js","../../node_modules/.pnpm/emoji-regex@10.4.0/node_modules/emoji-regex/index.js","../../node_modules/.pnpm/string-width@7.2.0/node_modules/string-width/index.js","../../node_modules/.pnpm/ansi-styles@6.2.1/node_modules/ansi-styles/index.js","../../node_modules/.pnpm/wrap-ansi@9.0.0/node_modules/wrap-ansi/index.js","../../node_modules/.pnpm/cliui@9.0.1/node_modules/cliui/index.mjs","../../node_modules/.pnpm/escalade@3.2.0/node_modules/escalade/sync/index.mjs","../../node_modules/.pnpm/yargs-parser@22.0.0/node_modules/yargs-parser/build/lib/string-utils.js","../../node_modules/.pnpm/yargs-parser@22.0.0/node_modules/yargs-parser/build/lib/tokenize-arg-string.js","../../node_modules/.pnpm/yargs-parser@22.0.0/node_modules/yargs-parser/build/lib/yargs-parser-types.js","../../node_modules/.pnpm/yargs-parser@22.0.0/node_modules/yargs-parser/build/lib/yargs-parser.js","../../node_modules/.pnpm/yargs-parser@22.0.0/node_modules/yargs-parser/build/lib/index.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/utils/process-argv.js","../../node_modules/.pnpm/y18n@5.0.8/node_modules/y18n/build/lib/platform-shims/node.js","../../node_modules/.pnpm/y18n@5.0.8/node_modules/y18n/build/lib/index.js","../../node_modules/.pnpm/y18n@5.0.8/node_modules/y18n/index.mjs","../../node_modules/.pnpm/get-caller-file@2.0.5/node_modules/get-caller-file/index.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/lib/platform-shims/esm.mjs","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/typings/common-types.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/utils/is-promise.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/yerror.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/parse-command.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/argsert.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/middleware.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/utils/maybe-async-result.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/command.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/utils/obj-filter.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/utils/set-blocking.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/usage.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/completion-templates.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/completion.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/utils/levenshtein.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/validation.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/utils/apply-extends.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/build/lib/yargs-factory.js","../../node_modules/.pnpm/yargs@18.0.0/node_modules/yargs/index.mjs","../../src/JSONFilterTransform.ts","../../src/StdioClientTransport.ts","../../src/bin/mcp-proxy.ts"],"sourcesContent":["class ParseError extends Error {\n  constructor(message, options) {\n    super(message), this.name = \"ParseError\", this.type = options.type, this.field = options.field, this.value = options.value, this.line = options.line;\n  }\n}\nfunction noop(_arg) {\n}\nfunction createParser(callbacks) {\n  if (typeof callbacks == \"function\")\n    throw new TypeError(\n      \"`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?\"\n    );\n  const { onEvent = noop, onError = noop, onRetry = noop, onComment } = callbacks;\n  let incompleteLine = \"\", isFirstChunk = !0, id, data = \"\", eventType = \"\";\n  function feed(newChunk) {\n    const chunk = isFirstChunk ? newChunk.replace(/^\\xEF\\xBB\\xBF/, \"\") : newChunk, [complete, incomplete] = splitLines(`${incompleteLine}${chunk}`);\n    for (const line of complete)\n      parseLine(line);\n    incompleteLine = incomplete, isFirstChunk = !1;\n  }\n  function parseLine(line) {\n    if (line === \"\") {\n      dispatchEvent();\n      return;\n    }\n    if (line.startsWith(\":\")) {\n      onComment && onComment(line.slice(line.startsWith(\": \") ? 2 : 1));\n      return;\n    }\n    const fieldSeparatorIndex = line.indexOf(\":\");\n    if (fieldSeparatorIndex !== -1) {\n      const field = line.slice(0, fieldSeparatorIndex), offset = line[fieldSeparatorIndex + 1] === \" \" ? 2 : 1, value = line.slice(fieldSeparatorIndex + offset);\n      processField(field, value, line);\n      return;\n    }\n    processField(line, \"\", line);\n  }\n  function processField(field, value, line) {\n    switch (field) {\n      case \"event\":\n        eventType = value;\n        break;\n      case \"data\":\n        data = `${data}${value}\n`;\n        break;\n      case \"id\":\n        id = value.includes(\"\\0\") ? void 0 : value;\n        break;\n      case \"retry\":\n        /^\\d+$/.test(value) ? onRetry(parseInt(value, 10)) : onError(\n          new ParseError(`Invalid \\`retry\\` value: \"${value}\"`, {\n            type: \"invalid-retry\",\n            value,\n            line\n          })\n        );\n        break;\n      default:\n        onError(\n          new ParseError(\n            `Unknown field \"${field.length > 20 ? `${field.slice(0, 20)}\\u2026` : field}\"`,\n            { type: \"unknown-field\", field, value, line }\n          )\n        );\n        break;\n    }\n  }\n  function dispatchEvent() {\n    data.length > 0 && onEvent({\n      id,\n      event: eventType || void 0,\n      // If the data buffer's last character is a U+000A LINE FEED (LF) character,\n      // then remove the last character from the data buffer.\n      data: data.endsWith(`\n`) ? data.slice(0, -1) : data\n    }), id = void 0, data = \"\", eventType = \"\";\n  }\n  function reset(options = {}) {\n    incompleteLine && options.consume && parseLine(incompleteLine), isFirstChunk = !0, id = void 0, data = \"\", eventType = \"\", incompleteLine = \"\";\n  }\n  return { feed, reset };\n}\nfunction splitLines(chunk) {\n  const lines = [];\n  let incompleteLine = \"\", searchIndex = 0;\n  for (; searchIndex < chunk.length; ) {\n    const crIndex = chunk.indexOf(\"\\r\", searchIndex), lfIndex = chunk.indexOf(`\n`, searchIndex);\n    let lineEnd = -1;\n    if (crIndex !== -1 && lfIndex !== -1 ? lineEnd = Math.min(crIndex, lfIndex) : crIndex !== -1 ? lineEnd = crIndex : lfIndex !== -1 && (lineEnd = lfIndex), lineEnd === -1) {\n      incompleteLine = chunk.slice(searchIndex);\n      break;\n    } else {\n      const line = chunk.slice(searchIndex, lineEnd);\n      lines.push(line), searchIndex = lineEnd + 1, chunk[searchIndex - 1] === \"\\r\" && chunk[searchIndex] === `\n` && searchIndex++;\n    }\n  }\n  return [lines, incompleteLine];\n}\nexport {\n  ParseError,\n  createParser\n};\n//# sourceMappingURL=index.js.map\n","import { createParser } from \"eventsource-parser\";\nclass ErrorEvent extends Event {\n  /**\n   * Constructs a new `ErrorEvent` instance. This is typically not called directly,\n   * but rather emitted by the `EventSource` object when an error occurs.\n   *\n   * @param type - The type of the event (should be \"error\")\n   * @param errorEventInitDict - Optional properties to include in the error event\n   */\n  constructor(type, errorEventInitDict) {\n    var _a, _b;\n    super(type), this.code = (_a = errorEventInitDict == null ? void 0 : errorEventInitDict.code) != null ? _a : void 0, this.message = (_b = errorEventInitDict == null ? void 0 : errorEventInitDict.message) != null ? _b : void 0;\n  }\n  /**\n   * Node.js \"hides\" the `message` and `code` properties of the `ErrorEvent` instance,\n   * when it is `console.log`'ed. This makes it harder to debug errors. To ease debugging,\n   * we explicitly include the properties in the `inspect` method.\n   *\n   * This is automatically called by Node.js when you `console.log` an instance of this class.\n   *\n   * @param _depth - The current depth\n   * @param options - The options passed to `util.inspect`\n   * @param inspect - The inspect function to use (prevents having to import it from `util`)\n   * @returns A string representation of the error\n   */\n  [Symbol.for(\"nodejs.util.inspect.custom\")](_depth, options, inspect) {\n    return inspect(inspectableError(this), options);\n  }\n  /**\n   * Deno \"hides\" the `message` and `code` properties of the `ErrorEvent` instance,\n   * when it is `console.log`'ed. This makes it harder to debug errors. To ease debugging,\n   * we explicitly include the properties in the `inspect` method.\n   *\n   * This is automatically called by Deno when you `console.log` an instance of this class.\n   *\n   * @param inspect - The inspect function to use (prevents having to import it from `util`)\n   * @param options - The options passed to `Deno.inspect`\n   * @returns A string representation of the error\n   */\n  [Symbol.for(\"Deno.customInspect\")](inspect, options) {\n    return inspect(inspectableError(this), options);\n  }\n}\nfunction syntaxError(message) {\n  const DomException = globalThis.DOMException;\n  return typeof DomException == \"function\" ? new DomException(message, \"SyntaxError\") : new SyntaxError(message);\n}\nfunction flattenError(err) {\n  return err instanceof Error ? \"errors\" in err && Array.isArray(err.errors) ? err.errors.map(flattenError).join(\", \") : \"cause\" in err && err.cause instanceof Error ? `${err}: ${flattenError(err.cause)}` : err.message : `${err}`;\n}\nfunction inspectableError(err) {\n  return {\n    type: err.type,\n    message: err.message,\n    code: err.code,\n    defaultPrevented: err.defaultPrevented,\n    cancelable: err.cancelable,\n    timeStamp: err.timeStamp\n  };\n}\nvar __typeError = (msg) => {\n  throw TypeError(msg);\n}, __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg), __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj)), __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value), __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), member.set(obj, value), value), __privateMethod = (obj, member, method) => (__accessCheck(obj, member, \"access private method\"), method), _readyState, _url, _redirectUrl, _withCredentials, _fetch, _reconnectInterval, _reconnectTimer, _lastEventId, _controller, _parser, _onError, _onMessage, _onOpen, _EventSource_instances, connect_fn, _onFetchResponse, _onFetchError, getRequestOptions_fn, _onEvent, _onRetryChange, failConnection_fn, scheduleReconnect_fn, _reconnect;\nclass EventSource extends EventTarget {\n  constructor(url, eventSourceInitDict) {\n    var _a, _b;\n    super(), __privateAdd(this, _EventSource_instances), this.CONNECTING = 0, this.OPEN = 1, this.CLOSED = 2, __privateAdd(this, _readyState), __privateAdd(this, _url), __privateAdd(this, _redirectUrl), __privateAdd(this, _withCredentials), __privateAdd(this, _fetch), __privateAdd(this, _reconnectInterval), __privateAdd(this, _reconnectTimer), __privateAdd(this, _lastEventId, null), __privateAdd(this, _controller), __privateAdd(this, _parser), __privateAdd(this, _onError, null), __privateAdd(this, _onMessage, null), __privateAdd(this, _onOpen, null), __privateAdd(this, _onFetchResponse, async (response) => {\n      var _a2;\n      __privateGet(this, _parser).reset();\n      const { body, redirected, status, headers } = response;\n      if (status === 204) {\n        __privateMethod(this, _EventSource_instances, failConnection_fn).call(this, \"Server sent HTTP 204, not reconnecting\", 204), this.close();\n        return;\n      }\n      if (redirected ? __privateSet(this, _redirectUrl, new URL(response.url)) : __privateSet(this, _redirectUrl, void 0), status !== 200) {\n        __privateMethod(this, _EventSource_instances, failConnection_fn).call(this, `Non-200 status code (${status})`, status);\n        return;\n      }\n      if (!(headers.get(\"content-type\") || \"\").startsWith(\"text/event-stream\")) {\n        __privateMethod(this, _EventSource_instances, failConnection_fn).call(this, 'Invalid content type, expected \"text/event-stream\"', status);\n        return;\n      }\n      if (__privateGet(this, _readyState) === this.CLOSED)\n        return;\n      __privateSet(this, _readyState, this.OPEN);\n      const openEvent = new Event(\"open\");\n      if ((_a2 = __privateGet(this, _onOpen)) == null || _a2.call(this, openEvent), this.dispatchEvent(openEvent), typeof body != \"object\" || !body || !(\"getReader\" in body)) {\n        __privateMethod(this, _EventSource_instances, failConnection_fn).call(this, \"Invalid response body, expected a web ReadableStream\", status), this.close();\n        return;\n      }\n      const decoder = new TextDecoder(), reader = body.getReader();\n      let open = !0;\n      do {\n        const { done, value } = await reader.read();\n        value && __privateGet(this, _parser).feed(decoder.decode(value, { stream: !done })), done && (open = !1, __privateGet(this, _parser).reset(), __privateMethod(this, _EventSource_instances, scheduleReconnect_fn).call(this));\n      } while (open);\n    }), __privateAdd(this, _onFetchError, (err) => {\n      __privateSet(this, _controller, void 0), !(err.name === \"AbortError\" || err.type === \"aborted\") && __privateMethod(this, _EventSource_instances, scheduleReconnect_fn).call(this, flattenError(err));\n    }), __privateAdd(this, _onEvent, (event) => {\n      typeof event.id == \"string\" && __privateSet(this, _lastEventId, event.id);\n      const messageEvent = new MessageEvent(event.event || \"message\", {\n        data: event.data,\n        origin: __privateGet(this, _redirectUrl) ? __privateGet(this, _redirectUrl).origin : __privateGet(this, _url).origin,\n        lastEventId: event.id || \"\"\n      });\n      __privateGet(this, _onMessage) && (!event.event || event.event === \"message\") && __privateGet(this, _onMessage).call(this, messageEvent), this.dispatchEvent(messageEvent);\n    }), __privateAdd(this, _onRetryChange, (value) => {\n      __privateSet(this, _reconnectInterval, value);\n    }), __privateAdd(this, _reconnect, () => {\n      __privateSet(this, _reconnectTimer, void 0), __privateGet(this, _readyState) === this.CONNECTING && __privateMethod(this, _EventSource_instances, connect_fn).call(this);\n    });\n    try {\n      if (url instanceof URL)\n        __privateSet(this, _url, url);\n      else if (typeof url == \"string\")\n        __privateSet(this, _url, new URL(url, getBaseURL()));\n      else\n        throw new Error(\"Invalid URL\");\n    } catch {\n      throw syntaxError(\"An invalid or illegal string was specified\");\n    }\n    __privateSet(this, _parser, createParser({\n      onEvent: __privateGet(this, _onEvent),\n      onRetry: __privateGet(this, _onRetryChange)\n    })), __privateSet(this, _readyState, this.CONNECTING), __privateSet(this, _reconnectInterval, 3e3), __privateSet(this, _fetch, (_a = eventSourceInitDict == null ? void 0 : eventSourceInitDict.fetch) != null ? _a : globalThis.fetch), __privateSet(this, _withCredentials, (_b = eventSourceInitDict == null ? void 0 : eventSourceInitDict.withCredentials) != null ? _b : !1), __privateMethod(this, _EventSource_instances, connect_fn).call(this);\n  }\n  /**\n   * Returns the state of this EventSource object's connection. It can have the values described below.\n   *\n   * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/readyState)\n   *\n   * Note: typed as `number` instead of `0 | 1 | 2` for compatibility with the `EventSource` interface,\n   * defined in the TypeScript `dom` library.\n   *\n   * @public\n   */\n  get readyState() {\n    return __privateGet(this, _readyState);\n  }\n  /**\n   * Returns the URL providing the event stream.\n   *\n   * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/url)\n   *\n   * @public\n   */\n  get url() {\n    return __privateGet(this, _url).href;\n  }\n  /**\n   * Returns true if the credentials mode for connection requests to the URL providing the event stream is set to \"include\", and false otherwise.\n   *\n   * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/withCredentials)\n   */\n  get withCredentials() {\n    return __privateGet(this, _withCredentials);\n  }\n  /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/error_event) */\n  get onerror() {\n    return __privateGet(this, _onError);\n  }\n  set onerror(value) {\n    __privateSet(this, _onError, value);\n  }\n  /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/message_event) */\n  get onmessage() {\n    return __privateGet(this, _onMessage);\n  }\n  set onmessage(value) {\n    __privateSet(this, _onMessage, value);\n  }\n  /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/open_event) */\n  get onopen() {\n    return __privateGet(this, _onOpen);\n  }\n  set onopen(value) {\n    __privateSet(this, _onOpen, value);\n  }\n  addEventListener(type, listener, options) {\n    const listen = listener;\n    super.addEventListener(type, listen, options);\n  }\n  removeEventListener(type, listener, options) {\n    const listen = listener;\n    super.removeEventListener(type, listen, options);\n  }\n  /**\n   * Aborts any instances of the fetch algorithm started for this EventSource object, and sets the readyState attribute to CLOSED.\n   *\n   * [MDN Reference](https://developer.mozilla.org/docs/Web/API/EventSource/close)\n   *\n   * @public\n   */\n  close() {\n    __privateGet(this, _reconnectTimer) && clearTimeout(__privateGet(this, _reconnectTimer)), __privateGet(this, _readyState) !== this.CLOSED && (__privateGet(this, _controller) && __privateGet(this, _controller).abort(), __privateSet(this, _readyState, this.CLOSED), __privateSet(this, _controller, void 0));\n  }\n}\n_readyState = /* @__PURE__ */ new WeakMap(), _url = /* @__PURE__ */ new WeakMap(), _redirectUrl = /* @__PURE__ */ new WeakMap(), _withCredentials = /* @__PURE__ */ new WeakMap(), _fetch = /* @__PURE__ */ new WeakMap(), _reconnectInterval = /* @__PURE__ */ new WeakMap(), _reconnectTimer = /* @__PURE__ */ new WeakMap(), _lastEventId = /* @__PURE__ */ new WeakMap(), _controller = /* @__PURE__ */ new WeakMap(), _parser = /* @__PURE__ */ new WeakMap(), _onError = /* @__PURE__ */ new WeakMap(), _onMessage = /* @__PURE__ */ new WeakMap(), _onOpen = /* @__PURE__ */ new WeakMap(), _EventSource_instances = /* @__PURE__ */ new WeakSet(), /**\n* Connect to the given URL and start receiving events\n*\n* @internal\n*/\nconnect_fn = function() {\n  __privateSet(this, _readyState, this.CONNECTING), __privateSet(this, _controller, new AbortController()), __privateGet(this, _fetch)(__privateGet(this, _url), __privateMethod(this, _EventSource_instances, getRequestOptions_fn).call(this)).then(__privateGet(this, _onFetchResponse)).catch(__privateGet(this, _onFetchError));\n}, _onFetchResponse = /* @__PURE__ */ new WeakMap(), _onFetchError = /* @__PURE__ */ new WeakMap(), /**\n* Get request options for the `fetch()` request\n*\n* @returns The request options\n* @internal\n*/\ngetRequestOptions_fn = function() {\n  var _a;\n  const init = {\n    // [spec] Let `corsAttributeState` be `Anonymous`…\n    // [spec] …will have their mode set to \"cors\"…\n    mode: \"cors\",\n    redirect: \"follow\",\n    headers: { Accept: \"text/event-stream\", ...__privateGet(this, _lastEventId) ? { \"Last-Event-ID\": __privateGet(this, _lastEventId) } : void 0 },\n    cache: \"no-store\",\n    signal: (_a = __privateGet(this, _controller)) == null ? void 0 : _a.signal\n  };\n  return \"window\" in globalThis && (init.credentials = this.withCredentials ? \"include\" : \"same-origin\"), init;\n}, _onEvent = /* @__PURE__ */ new WeakMap(), _onRetryChange = /* @__PURE__ */ new WeakMap(), /**\n* Handles the process referred to in the EventSource specification as \"failing a connection\".\n*\n* @param error - The error causing the connection to fail\n* @param code - The HTTP status code, if available\n* @internal\n*/\nfailConnection_fn = function(message, code) {\n  var _a;\n  __privateGet(this, _readyState) !== this.CLOSED && __privateSet(this, _readyState, this.CLOSED);\n  const errorEvent = new ErrorEvent(\"error\", { code, message });\n  (_a = __privateGet(this, _onError)) == null || _a.call(this, errorEvent), this.dispatchEvent(errorEvent);\n}, /**\n* Schedules a reconnection attempt against the EventSource endpoint.\n*\n* @param message - The error causing the connection to fail\n* @param code - The HTTP status code, if available\n* @internal\n*/\nscheduleReconnect_fn = function(message, code) {\n  var _a;\n  if (__privateGet(this, _readyState) === this.CLOSED)\n    return;\n  __privateSet(this, _readyState, this.CONNECTING);\n  const errorEvent = new ErrorEvent(\"error\", { code, message });\n  (_a = __privateGet(this, _onError)) == null || _a.call(this, errorEvent), this.dispatchEvent(errorEvent), __privateSet(this, _reconnectTimer, setTimeout(__privateGet(this, _reconnect), __privateGet(this, _reconnectInterval)));\n}, _reconnect = /* @__PURE__ */ new WeakMap(), /**\n* ReadyState representing an EventSource currently trying to connect\n*\n* @public\n*/\nEventSource.CONNECTING = 0, /**\n* ReadyState representing an EventSource connection that is open (eg connected)\n*\n* @public\n*/\nEventSource.OPEN = 1, /**\n* ReadyState representing an EventSource connection that is closed (eg disconnected)\n*\n* @public\n*/\nEventSource.CLOSED = 2;\nObject.defineProperty(EventSource, Symbol.for(\"eventsource.supports-fetch-override\"), {\n  value: !0,\n  writable: !1,\n  configurable: !1,\n  enumerable: !1\n});\nfunction getBaseURL() {\n  const doc = \"document\" in globalThis ? globalThis.document : void 0;\n  return doc && typeof doc == \"object\" && \"baseURI\" in doc && typeof doc.baseURI == \"string\" ? doc.baseURI : void 0;\n}\nexport {\n  ErrorEvent,\n  EventSource\n};\n//# sourceMappingURL=index.js.map\n","'use strict';\nconst align = {\n    right: alignRight,\n    center: alignCenter\n};\nconst top = 0;\nconst right = 1;\nconst bottom = 2;\nconst left = 3;\nexport class UI {\n    constructor(opts) {\n        var _a;\n        this.width = opts.width;\n        this.wrap = (_a = opts.wrap) !== null && _a !== void 0 ? _a : true;\n        this.rows = [];\n    }\n    span(...args) {\n        const cols = this.div(...args);\n        cols.span = true;\n    }\n    resetOutput() {\n        this.rows = [];\n    }\n    div(...args) {\n        if (args.length === 0) {\n            this.div('');\n        }\n        if (this.wrap && this.shouldApplyLayoutDSL(...args) && typeof args[0] === 'string') {\n            return this.applyLayoutDSL(args[0]);\n        }\n        const cols = args.map(arg => {\n            if (typeof arg === 'string') {\n                return this.colFromString(arg);\n            }\n            return arg;\n        });\n        this.rows.push(cols);\n        return cols;\n    }\n    shouldApplyLayoutDSL(...args) {\n        return args.length === 1 && typeof args[0] === 'string' &&\n            /[\\t\\n]/.test(args[0]);\n    }\n    applyLayoutDSL(str) {\n        const rows = str.split('\\n').map(row => row.split('\\t'));\n        let leftColumnWidth = 0;\n        // simple heuristic for layout, make sure the\n        // second column lines up along the left-hand.\n        // don't allow the first column to take up more\n        // than 50% of the screen.\n        rows.forEach(columns => {\n            if (columns.length > 1 && mixin.stringWidth(columns[0]) > leftColumnWidth) {\n                leftColumnWidth = Math.min(Math.floor(this.width * 0.5), mixin.stringWidth(columns[0]));\n            }\n        });\n        // generate a table:\n        //  replacing ' ' with padding calculations.\n        //  using the algorithmically generated width.\n        rows.forEach(columns => {\n            this.div(...columns.map((r, i) => {\n                return {\n                    text: r.trim(),\n                    padding: this.measurePadding(r),\n                    width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined\n                };\n            }));\n        });\n        return this.rows[this.rows.length - 1];\n    }\n    colFromString(text) {\n        return {\n            text,\n            padding: this.measurePadding(text)\n        };\n    }\n    measurePadding(str) {\n        // measure padding without ansi escape codes\n        const noAnsi = mixin.stripAnsi(str);\n        return [0, noAnsi.match(/\\s*$/)[0].length, 0, noAnsi.match(/^\\s*/)[0].length];\n    }\n    toString() {\n        const lines = [];\n        this.rows.forEach(row => {\n            this.rowToString(row, lines);\n        });\n        // don't display any lines with the\n        // hidden flag set.\n        return lines\n            .filter(line => !line.hidden)\n            .map(line => line.text)\n            .join('\\n');\n    }\n    rowToString(row, lines) {\n        this.rasterize(row).forEach((rrow, r) => {\n            let str = '';\n            rrow.forEach((col, c) => {\n                const { width } = row[c]; // the width with padding.\n                const wrapWidth = this.negatePadding(row[c]); // the width without padding.\n                let ts = col; // temporary string used during alignment/padding.\n                if (wrapWidth > mixin.stringWidth(col)) {\n                    ts += ' '.repeat(wrapWidth - mixin.stringWidth(col));\n                }\n                // align the string within its column.\n                if (row[c].align && row[c].align !== 'left' && this.wrap) {\n                    const fn = align[row[c].align];\n                    ts = fn(ts, wrapWidth);\n                    if (mixin.stringWidth(ts) < wrapWidth) {\n                        ts += ' '.repeat((width || 0) - mixin.stringWidth(ts) - 1);\n                    }\n                }\n                // apply border and padding to string.\n                const padding = row[c].padding || [0, 0, 0, 0];\n                if (padding[left]) {\n                    str += ' '.repeat(padding[left]);\n                }\n                str += addBorder(row[c], ts, '| ');\n                str += ts;\n                str += addBorder(row[c], ts, ' |');\n                if (padding[right]) {\n                    str += ' '.repeat(padding[right]);\n                }\n                // if prior row is span, try to render the\n                // current row on the prior line.\n                if (r === 0 && lines.length > 0) {\n                    str = this.renderInline(str, lines[lines.length - 1]);\n                }\n            });\n            // remove trailing whitespace.\n            lines.push({\n                text: str.replace(/ +$/, ''),\n                span: row.span\n            });\n        });\n        return lines;\n    }\n    // if the full 'source' can render in\n    // the target line, do so.\n    renderInline(source, previousLine) {\n        const match = source.match(/^ */);\n        const leadingWhitespace = match ? match[0].length : 0;\n        const target = previousLine.text;\n        const targetTextWidth = mixin.stringWidth(target.trimRight());\n        if (!previousLine.span) {\n            return source;\n        }\n        // if we're not applying wrapping logic,\n        // just always append to the span.\n        if (!this.wrap) {\n            previousLine.hidden = true;\n            return target + source;\n        }\n        if (leadingWhitespace < targetTextWidth) {\n            return source;\n        }\n        previousLine.hidden = true;\n        return target.trimRight() + ' '.repeat(leadingWhitespace - targetTextWidth) + source.trimLeft();\n    }\n    rasterize(row) {\n        const rrows = [];\n        const widths = this.columnWidths(row);\n        let wrapped;\n        // word wrap all columns, and create\n        // a data-structure that is easy to rasterize.\n        row.forEach((col, c) => {\n            // leave room for left and right padding.\n            col.width = widths[c];\n            if (this.wrap) {\n                wrapped = mixin.wrap(col.text, this.negatePadding(col), { hard: true }).split('\\n');\n            }\n            else {\n                wrapped = col.text.split('\\n');\n            }\n            if (col.border) {\n                wrapped.unshift('.' + '-'.repeat(this.negatePadding(col) + 2) + '.');\n                wrapped.push(\"'\" + '-'.repeat(this.negatePadding(col) + 2) + \"'\");\n            }\n            // add top and bottom padding.\n            if (col.padding) {\n                wrapped.unshift(...new Array(col.padding[top] || 0).fill(''));\n                wrapped.push(...new Array(col.padding[bottom] || 0).fill(''));\n            }\n            wrapped.forEach((str, r) => {\n                if (!rrows[r]) {\n                    rrows.push([]);\n                }\n                const rrow = rrows[r];\n                for (let i = 0; i < c; i++) {\n                    if (rrow[i] === undefined) {\n                        rrow.push('');\n                    }\n                }\n                rrow.push(str);\n            });\n        });\n        return rrows;\n    }\n    negatePadding(col) {\n        let wrapWidth = col.width || 0;\n        if (col.padding) {\n            wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0);\n        }\n        if (col.border) {\n            wrapWidth -= 4;\n        }\n        return wrapWidth;\n    }\n    columnWidths(row) {\n        if (!this.wrap) {\n            return row.map(col => {\n                return col.width || mixin.stringWidth(col.text);\n            });\n        }\n        let unset = row.length;\n        let remainingWidth = this.width;\n        // column widths can be set in config.\n        const widths = row.map(col => {\n            if (col.width) {\n                unset--;\n                remainingWidth -= col.width;\n                return col.width;\n            }\n            return undefined;\n        });\n        // any unset widths should be calculated.\n        const unsetWidth = unset ? Math.floor(remainingWidth / unset) : 0;\n        return widths.map((w, i) => {\n            if (w === undefined) {\n                return Math.max(unsetWidth, _minWidth(row[i]));\n            }\n            return w;\n        });\n    }\n}\nfunction addBorder(col, ts, style) {\n    if (col.border) {\n        if (/[.']-+[.']/.test(ts)) {\n            return '';\n        }\n        if (ts.trim().length !== 0) {\n            return style;\n        }\n        return '  ';\n    }\n    return '';\n}\n// calculates the minimum width of\n// a column, based on padding preferences.\nfunction _minWidth(col) {\n    const padding = col.padding || [];\n    const minWidth = 1 + (padding[left] || 0) + (padding[right] || 0);\n    if (col.border) {\n        return minWidth + 4;\n    }\n    return minWidth;\n}\nfunction getWindowWidth() {\n    /* c8 ignore next 5: depends on terminal */\n    if (typeof process === 'object' && process.stdout && process.stdout.columns) {\n        return process.stdout.columns;\n    }\n    return 80;\n}\nfunction alignRight(str, width) {\n    str = str.trim();\n    const strWidth = mixin.stringWidth(str);\n    if (strWidth < width) {\n        return ' '.repeat(width - strWidth) + str;\n    }\n    return str;\n}\nfunction alignCenter(str, width) {\n    str = str.trim();\n    const strWidth = mixin.stringWidth(str);\n    /* c8 ignore next 3 */\n    if (strWidth >= width) {\n        return str;\n    }\n    return ' '.repeat((width - strWidth) >> 1) + str;\n}\nlet mixin;\nexport function cliui(opts, _mixin) {\n    mixin = _mixin;\n    return new UI({\n        width: (opts === null || opts === void 0 ? void 0 : opts.width) || getWindowWidth(),\n        wrap: opts === null || opts === void 0 ? void 0 : opts.wrap\n    });\n}\n","export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\tconst pattern = [\n\t\t`[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?${ST})`,\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))',\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n","import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n","// Generated code.\n\nfunction isAmbiguous(x) {\n\treturn x === 0xA1\n\t\t|| x === 0xA4\n\t\t|| x === 0xA7\n\t\t|| x === 0xA8\n\t\t|| x === 0xAA\n\t\t|| x === 0xAD\n\t\t|| x === 0xAE\n\t\t|| x >= 0xB0 && x <= 0xB4\n\t\t|| x >= 0xB6 && x <= 0xBA\n\t\t|| x >= 0xBC && x <= 0xBF\n\t\t|| x === 0xC6\n\t\t|| x === 0xD0\n\t\t|| x === 0xD7\n\t\t|| x === 0xD8\n\t\t|| x >= 0xDE && x <= 0xE1\n\t\t|| x === 0xE6\n\t\t|| x >= 0xE8 && x <= 0xEA\n\t\t|| x === 0xEC\n\t\t|| x === 0xED\n\t\t|| x === 0xF0\n\t\t|| x === 0xF2\n\t\t|| x === 0xF3\n\t\t|| x >= 0xF7 && x <= 0xFA\n\t\t|| x === 0xFC\n\t\t|| x === 0xFE\n\t\t|| x === 0x101\n\t\t|| x === 0x111\n\t\t|| x === 0x113\n\t\t|| x === 0x11B\n\t\t|| x === 0x126\n\t\t|| x === 0x127\n\t\t|| x === 0x12B\n\t\t|| x >= 0x131 && x <= 0x133\n\t\t|| x === 0x138\n\t\t|| x >= 0x13F && x <= 0x142\n\t\t|| x === 0x144\n\t\t|| x >= 0x148 && x <= 0x14B\n\t\t|| x === 0x14D\n\t\t|| x === 0x152\n\t\t|| x === 0x153\n\t\t|| x === 0x166\n\t\t|| x === 0x167\n\t\t|| x === 0x16B\n\t\t|| x === 0x1CE\n\t\t|| x === 0x1D0\n\t\t|| x === 0x1D2\n\t\t|| x === 0x1D4\n\t\t|| x === 0x1D6\n\t\t|| x === 0x1D8\n\t\t|| x === 0x1DA\n\t\t|| x === 0x1DC\n\t\t|| x === 0x251\n\t\t|| x === 0x261\n\t\t|| x === 0x2C4\n\t\t|| x === 0x2C7\n\t\t|| x >= 0x2C9 && x <= 0x2CB\n\t\t|| x === 0x2CD\n\t\t|| x === 0x2D0\n\t\t|| x >= 0x2D8 && x <= 0x2DB\n\t\t|| x === 0x2DD\n\t\t|| x === 0x2DF\n\t\t|| x >= 0x300 && x <= 0x36F\n\t\t|| x >= 0x391 && x <= 0x3A1\n\t\t|| x >= 0x3A3 && x <= 0x3A9\n\t\t|| x >= 0x3B1 && x <= 0x3C1\n\t\t|| x >= 0x3C3 && x <= 0x3C9\n\t\t|| x === 0x401\n\t\t|| x >= 0x410 && x <= 0x44F\n\t\t|| x === 0x451\n\t\t|| x === 0x2010\n\t\t|| x >= 0x2013 && x <= 0x2016\n\t\t|| x === 0x2018\n\t\t|| x === 0x2019\n\t\t|| x === 0x201C\n\t\t|| x === 0x201D\n\t\t|| x >= 0x2020 && x <= 0x2022\n\t\t|| x >= 0x2024 && x <= 0x2027\n\t\t|| x === 0x2030\n\t\t|| x === 0x2032\n\t\t|| x === 0x2033\n\t\t|| x === 0x2035\n\t\t|| x === 0x203B\n\t\t|| x === 0x203E\n\t\t|| x === 0x2074\n\t\t|| x === 0x207F\n\t\t|| x >= 0x2081 && x <= 0x2084\n\t\t|| x === 0x20AC\n\t\t|| x === 0x2103\n\t\t|| x === 0x2105\n\t\t|| x === 0x2109\n\t\t|| x === 0x2113\n\t\t|| x === 0x2116\n\t\t|| x === 0x2121\n\t\t|| x === 0x2122\n\t\t|| x === 0x2126\n\t\t|| x === 0x212B\n\t\t|| x === 0x2153\n\t\t|| x === 0x2154\n\t\t|| x >= 0x215B && x <= 0x215E\n\t\t|| x >= 0x2160 && x <= 0x216B\n\t\t|| x >= 0x2170 && x <= 0x2179\n\t\t|| x === 0x2189\n\t\t|| x >= 0x2190 && x <= 0x2199\n\t\t|| x === 0x21B8\n\t\t|| x === 0x21B9\n\t\t|| x === 0x21D2\n\t\t|| x === 0x21D4\n\t\t|| x === 0x21E7\n\t\t|| x === 0x2200\n\t\t|| x === 0x2202\n\t\t|| x === 0x2203\n\t\t|| x === 0x2207\n\t\t|| x === 0x2208\n\t\t|| x === 0x220B\n\t\t|| x === 0x220F\n\t\t|| x === 0x2211\n\t\t|| x === 0x2215\n\t\t|| x === 0x221A\n\t\t|| x >= 0x221D && x <= 0x2220\n\t\t|| x === 0x2223\n\t\t|| x === 0x2225\n\t\t|| x >= 0x2227 && x <= 0x222C\n\t\t|| x === 0x222E\n\t\t|| x >= 0x2234 && x <= 0x2237\n\t\t|| x === 0x223C\n\t\t|| x === 0x223D\n\t\t|| x === 0x2248\n\t\t|| x === 0x224C\n\t\t|| x === 0x2252\n\t\t|| x === 0x2260\n\t\t|| x === 0x2261\n\t\t|| x >= 0x2264 && x <= 0x2267\n\t\t|| x === 0x226A\n\t\t|| x === 0x226B\n\t\t|| x === 0x226E\n\t\t|| x === 0x226F\n\t\t|| x === 0x2282\n\t\t|| x === 0x2283\n\t\t|| x === 0x2286\n\t\t|| x === 0x2287\n\t\t|| x === 0x2295\n\t\t|| x === 0x2299\n\t\t|| x === 0x22A5\n\t\t|| x === 0x22BF\n\t\t|| x === 0x2312\n\t\t|| x >= 0x2460 && x <= 0x24E9\n\t\t|| x >= 0x24EB && x <= 0x254B\n\t\t|| x >= 0x2550 && x <= 0x2573\n\t\t|| x >= 0x2580 && x <= 0x258F\n\t\t|| x >= 0x2592 && x <= 0x2595\n\t\t|| x === 0x25A0\n\t\t|| x === 0x25A1\n\t\t|| x >= 0x25A3 && x <= 0x25A9\n\t\t|| x === 0x25B2\n\t\t|| x === 0x25B3\n\t\t|| x === 0x25B6\n\t\t|| x === 0x25B7\n\t\t|| x === 0x25BC\n\t\t|| x === 0x25BD\n\t\t|| x === 0x25C0\n\t\t|| x === 0x25C1\n\t\t|| x >= 0x25C6 && x <= 0x25C8\n\t\t|| x === 0x25CB\n\t\t|| x >= 0x25CE && x <= 0x25D1\n\t\t|| x >= 0x25E2 && x <= 0x25E5\n\t\t|| x === 0x25EF\n\t\t|| x === 0x2605\n\t\t|| x === 0x2606\n\t\t|| x === 0x2609\n\t\t|| x === 0x260E\n\t\t|| x === 0x260F\n\t\t|| x === 0x261C\n\t\t|| x === 0x261E\n\t\t|| x === 0x2640\n\t\t|| x === 0x2642\n\t\t|| x === 0x2660\n\t\t|| x === 0x2661\n\t\t|| x >= 0x2663 && x <= 0x2665\n\t\t|| x >= 0x2667 && x <= 0x266A\n\t\t|| x === 0x266C\n\t\t|| x === 0x266D\n\t\t|| x === 0x266F\n\t\t|| x === 0x269E\n\t\t|| x === 0x269F\n\t\t|| x === 0x26BF\n\t\t|| x >= 0x26C6 && x <= 0x26CD\n\t\t|| x >= 0x26CF && x <= 0x26D3\n\t\t|| x >= 0x26D5 && x <= 0x26E1\n\t\t|| x === 0x26E3\n\t\t|| x === 0x26E8\n\t\t|| x === 0x26E9\n\t\t|| x >= 0x26EB && x <= 0x26F1\n\t\t|| x === 0x26F4\n\t\t|| x >= 0x26F6 && x <= 0x26F9\n\t\t|| x === 0x26FB\n\t\t|| x === 0x26FC\n\t\t|| x === 0x26FE\n\t\t|| x === 0x26FF\n\t\t|| x === 0x273D\n\t\t|| x >= 0x2776 && x <= 0x277F\n\t\t|| x >= 0x2B56 && x <= 0x2B59\n\t\t|| x >= 0x3248 && x <= 0x324F\n\t\t|| x >= 0xE000 && x <= 0xF8FF\n\t\t|| x >= 0xFE00 && x <= 0xFE0F\n\t\t|| x === 0xFFFD\n\t\t|| x >= 0x1F100 && x <= 0x1F10A\n\t\t|| x >= 0x1F110 && x <= 0x1F12D\n\t\t|| x >= 0x1F130 && x <= 0x1F169\n\t\t|| x >= 0x1F170 && x <= 0x1F18D\n\t\t|| x === 0x1F18F\n\t\t|| x === 0x1F190\n\t\t|| x >= 0x1F19B && x <= 0x1F1AC\n\t\t|| x >= 0xE0100 && x <= 0xE01EF\n\t\t|| x >= 0xF0000 && x <= 0xFFFFD\n\t\t|| x >= 0x100000 && x <= 0x10FFFD;\n}\n\nfunction isFullWidth(x) {\n\treturn x === 0x3000\n\t\t|| x >= 0xFF01 && x <= 0xFF60\n\t\t|| x >= 0xFFE0 && x <= 0xFFE6;\n}\n\nfunction isWide(x) {\n\treturn x >= 0x1100 && x <= 0x115F\n\t\t|| x === 0x231A\n\t\t|| x === 0x231B\n\t\t|| x === 0x2329\n\t\t|| x === 0x232A\n\t\t|| x >= 0x23E9 && x <= 0x23EC\n\t\t|| x === 0x23F0\n\t\t|| x === 0x23F3\n\t\t|| x === 0x25FD\n\t\t|| x === 0x25FE\n\t\t|| x === 0x2614\n\t\t|| x === 0x2615\n\t\t|| x >= 0x2630 && x <= 0x2637\n\t\t|| x >= 0x2648 && x <= 0x2653\n\t\t|| x === 0x267F\n\t\t|| x >= 0x268A && x <= 0x268F\n\t\t|| x === 0x2693\n\t\t|| x === 0x26A1\n\t\t|| x === 0x26AA\n\t\t|| x === 0x26AB\n\t\t|| x === 0x26BD\n\t\t|| x === 0x26BE\n\t\t|| x === 0x26C4\n\t\t|| x === 0x26C5\n\t\t|| x === 0x26CE\n\t\t|| x === 0x26D4\n\t\t|| x === 0x26EA\n\t\t|| x === 0x26F2\n\t\t|| x === 0x26F3\n\t\t|| x === 0x26F5\n\t\t|| x === 0x26FA\n\t\t|| x === 0x26FD\n\t\t|| x === 0x2705\n\t\t|| x === 0x270A\n\t\t|| x === 0x270B\n\t\t|| x === 0x2728\n\t\t|| x === 0x274C\n\t\t|| x === 0x274E\n\t\t|| x >= 0x2753 && x <= 0x2755\n\t\t|| x === 0x2757\n\t\t|| x >= 0x2795 && x <= 0x2797\n\t\t|| x === 0x27B0\n\t\t|| x === 0x27BF\n\t\t|| x === 0x2B1B\n\t\t|| x === 0x2B1C\n\t\t|| x === 0x2B50\n\t\t|| x === 0x2B55\n\t\t|| x >= 0x2E80 && x <= 0x2E99\n\t\t|| x >= 0x2E9B && x <= 0x2EF3\n\t\t|| x >= 0x2F00 && x <= 0x2FD5\n\t\t|| x >= 0x2FF0 && x <= 0x2FFF\n\t\t|| x >= 0x3001 && x <= 0x303E\n\t\t|| x >= 0x3041 && x <= 0x3096\n\t\t|| x >= 0x3099 && x <= 0x30FF\n\t\t|| x >= 0x3105 && x <= 0x312F\n\t\t|| x >= 0x3131 && x <= 0x318E\n\t\t|| x >= 0x3190 && x <= 0x31E5\n\t\t|| x >= 0x31EF && x <= 0x321E\n\t\t|| x >= 0x3220 && x <= 0x3247\n\t\t|| x >= 0x3250 && x <= 0xA48C\n\t\t|| x >= 0xA490 && x <= 0xA4C6\n\t\t|| x >= 0xA960 && x <= 0xA97C\n\t\t|| x >= 0xAC00 && x <= 0xD7A3\n\t\t|| x >= 0xF900 && x <= 0xFAFF\n\t\t|| x >= 0xFE10 && x <= 0xFE19\n\t\t|| x >= 0xFE30 && x <= 0xFE52\n\t\t|| x >= 0xFE54 && x <= 0xFE66\n\t\t|| x >= 0xFE68 && x <= 0xFE6B\n\t\t|| x >= 0x16FE0 && x <= 0x16FE4\n\t\t|| x === 0x16FF0\n\t\t|| x === 0x16FF1\n\t\t|| x >= 0x17000 && x <= 0x187F7\n\t\t|| x >= 0x18800 && x <= 0x18CD5\n\t\t|| x >= 0x18CFF && x <= 0x18D08\n\t\t|| x >= 0x1AFF0 && x <= 0x1AFF3\n\t\t|| x >= 0x1AFF5 && x <= 0x1AFFB\n\t\t|| x === 0x1AFFD\n\t\t|| x === 0x1AFFE\n\t\t|| x >= 0x1B000 && x <= 0x1B122\n\t\t|| x === 0x1B132\n\t\t|| x >= 0x1B150 && x <= 0x1B152\n\t\t|| x === 0x1B155\n\t\t|| x >= 0x1B164 && x <= 0x1B167\n\t\t|| x >= 0x1B170 && x <= 0x1B2FB\n\t\t|| x >= 0x1D300 && x <= 0x1D356\n\t\t|| x >= 0x1D360 && x <= 0x1D376\n\t\t|| x === 0x1F004\n\t\t|| x === 0x1F0CF\n\t\t|| x === 0x1F18E\n\t\t|| x >= 0x1F191 && x <= 0x1F19A\n\t\t|| x >= 0x1F200 && x <= 0x1F202\n\t\t|| x >= 0x1F210 && x <= 0x1F23B\n\t\t|| x >= 0x1F240 && x <= 0x1F248\n\t\t|| x === 0x1F250\n\t\t|| x === 0x1F251\n\t\t|| x >= 0x1F260 && x <= 0x1F265\n\t\t|| x >= 0x1F300 && x <= 0x1F320\n\t\t|| x >= 0x1F32D && x <= 0x1F335\n\t\t|| x >= 0x1F337 && x <= 0x1F37C\n\t\t|| x >= 0x1F37E && x <= 0x1F393\n\t\t|| x >= 0x1F3A0 && x <= 0x1F3CA\n\t\t|| x >= 0x1F3CF && x <= 0x1F3D3\n\t\t|| x >= 0x1F3E0 && x <= 0x1F3F0\n\t\t|| x === 0x1F3F4\n\t\t|| x >= 0x1F3F8 && x <= 0x1F43E\n\t\t|| x === 0x1F440\n\t\t|| x >= 0x1F442 && x <= 0x1F4FC\n\t\t|| x >= 0x1F4FF && x <= 0x1F53D\n\t\t|| x >= 0x1F54B && x <= 0x1F54E\n\t\t|| x >= 0x1F550 && x <= 0x1F567\n\t\t|| x === 0x1F57A\n\t\t|| x === 0x1F595\n\t\t|| x === 0x1F596\n\t\t|| x === 0x1F5A4\n\t\t|| x >= 0x1F5FB && x <= 0x1F64F\n\t\t|| x >= 0x1F680 && x <= 0x1F6C5\n\t\t|| x === 0x1F6CC\n\t\t|| x >= 0x1F6D0 && x <= 0x1F6D2\n\t\t|| x >= 0x1F6D5 && x <= 0x1F6D7\n\t\t|| x >= 0x1F6DC && x <= 0x1F6DF\n\t\t|| x === 0x1F6EB\n\t\t|| x === 0x1F6EC\n\t\t|| x >= 0x1F6F4 && x <= 0x1F6FC\n\t\t|| x >= 0x1F7E0 && x <= 0x1F7EB\n\t\t|| x === 0x1F7F0\n\t\t|| x >= 0x1F90C && x <= 0x1F93A\n\t\t|| x >= 0x1F93C && x <= 0x1F945\n\t\t|| x >= 0x1F947 && x <= 0x1F9FF\n\t\t|| x >= 0x1FA70 && x <= 0x1FA7C\n\t\t|| x >= 0x1FA80 && x <= 0x1FA89\n\t\t|| x >= 0x1FA8F && x <= 0x1FAC6\n\t\t|| x >= 0x1FACE && x <= 0x1FADC\n\t\t|| x >= 0x1FADF && x <= 0x1FAE9\n\t\t|| x >= 0x1FAF0 && x <= 0x1FAF8\n\t\t|| x >= 0x20000 && x <= 0x2FFFD\n\t\t|| x >= 0x30000 && x <= 0x3FFFD;\n}\n\nfunction getCategory(x) {\n\tif (isAmbiguous(x)) return 'ambiguous';\n\n\tif (isFullWidth(x)) return 'fullwidth';\n\n\tif (\n\t\tx === 0x20A9\n\t\t|| x >= 0xFF61 && x <= 0xFFBE\n\t\t|| x >= 0xFFC2 && x <= 0xFFC7\n\t\t|| x >= 0xFFCA && x <= 0xFFCF\n\t\t|| x >= 0xFFD2 && x <= 0xFFD7\n\t\t|| x >= 0xFFDA && x <= 0xFFDC\n\t\t|| x >= 0xFFE8 && x <= 0xFFEE\n\t) {\n\t\treturn 'halfwidth';\n\t}\n\n\tif (\n\t\tx >= 0x20 && x <= 0x7E\n\t\t|| x === 0xA2\n\t\t|| x === 0xA3\n\t\t|| x === 0xA5\n\t\t|| x === 0xA6\n\t\t|| x === 0xAC\n\t\t|| x === 0xAF\n\t\t|| x >= 0x27E6 && x <= 0x27ED\n\t\t|| x === 0x2985\n\t\t|| x === 0x2986\n\t) {\n\t\treturn 'narrow';\n\t}\n\n\tif (isWide(x)) return 'wide';\n\n\treturn 'neutral';\n}\n\nexport {isAmbiguous, isFullWidth, isWide, getCategory};\n","import {getCategory, isAmbiguous, isFullWidth, isWide} from './lookup.js';\n\nfunction validate(codePoint) {\n\tif (!Number.isSafeInteger(codePoint)) {\n\t\tthrow new TypeError(`Expected a code point, got \\`${typeof codePoint}\\`.`);\n\t}\n}\n\nexport function eastAsianWidthType(codePoint) {\n\tvalidate(codePoint);\n\n\treturn getCategory(codePoint);\n}\n\nexport function eastAsianWidth(codePoint, {ambiguousAsWide = false} = {}) {\n\tvalidate(codePoint);\n\n\tif (\n\t\tisFullWidth(codePoint)\n\t\t|| isWide(codePoint)\n\t\t|| (ambiguousAsWide && isAmbiguous(codePoint))\n\t) {\n\t\treturn 2;\n\t}\n\n\treturn 1;\n}\n\n// For Prettier. This doesn't count \"ambiguous\" characters or check for valid input.\n// https://github.com/sindresorhus/get-east-asian-width/pull/6\nexport const _isNarrowWidth = codePoint => !(isFullWidth(codePoint) || isWide(codePoint));\n","module.exports = () => {\n\t// https://mths.be/emoji\n\treturn /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n","import stripAnsi from 'strip-ansi';\nimport {eastAsianWidth} from 'get-east-asian-width';\nimport emojiRegex from 'emoji-regex';\n\nconst segmenter = new Intl.Segmenter();\n\nconst defaultIgnorableCodePointRegex = /^\\p{Default_Ignorable_Code_Point}$/u;\n\nexport default function stringWidth(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tconst {\n\t\tambiguousIsNarrow = true,\n\t\tcountAnsiEscapeCodes = false,\n\t} = options;\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tlet width = 0;\n\tconst eastAsianWidthOptions = {ambiguousAsWide: !ambiguousIsNarrow};\n\n\tfor (const {segment: character} of segmenter.segment(string)) {\n\t\tconst codePoint = character.codePointAt(0);\n\n\t\t// Ignore control characters\n\t\tif (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore zero-width characters\n\t\tif (\n\t\t\t(codePoint >= 0x20_0B && codePoint <= 0x20_0F) // Zero-width space, non-joiner, joiner, left-to-right mark, right-to-left mark\n\t\t\t|| codePoint === 0xFE_FF // Zero-width no-break space\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (\n\t\t\t(codePoint >= 0x3_00 && codePoint <= 0x3_6F) // Combining diacritical marks\n\t\t\t|| (codePoint >= 0x1A_B0 && codePoint <= 0x1A_FF) // Combining diacritical marks extended\n\t\t\t|| (codePoint >= 0x1D_C0 && codePoint <= 0x1D_FF) // Combining diacritical marks supplement\n\t\t\t|| (codePoint >= 0x20_D0 && codePoint <= 0x20_FF) // Combining diacritical marks for symbols\n\t\t\t|| (codePoint >= 0xFE_20 && codePoint <= 0xFE_2F) // Combining half marks\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore surrogate pairs\n\t\tif (codePoint >= 0xD8_00 && codePoint <= 0xDF_FF) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore variation selectors\n\t\tif (codePoint >= 0xFE_00 && codePoint <= 0xFE_0F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// This covers some of the above cases, but we still keep them for performance reasons.\n\t\tif (defaultIgnorableCodePointRegex.test(character)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// TODO: Use `/\\p{RGI_Emoji}/v` when targeting Node.js 20.\n\t\tif (emojiRegex().test(character)) {\n\t\t\twidth += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\twidth += eastAsianWidth(codePoint, eastAsianWidthOptions);\n\t}\n\n\treturn width;\n}\n","const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue: (red, green, blue) => {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue: hex => {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue: code => {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n","import stringWidth from 'string-width';\nimport stripAnsi from 'strip-ansi';\nimport ansiStyles from 'ansi-styles';\n\nconst ESCAPES = new Set([\n\t'\\u001B',\n\t'\\u009B',\n]);\n\nconst END_CODE = 39;\nconst ANSI_ESCAPE_BELL = '\\u0007';\nconst ANSI_CSI = '[';\nconst ANSI_OSC = ']';\nconst ANSI_SGR_TERMINATOR = 'm';\nconst ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;\n\nconst wrapAnsiCode = code => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;\nconst wrapAnsiHyperlink = url => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${url}${ANSI_ESCAPE_BELL}`;\n\n// Calculate the length of words split on ' ', ignoring\n// the extra characters added by ansi escape codes\nconst wordLengths = string => string.split(' ').map(character => stringWidth(character));\n\n// Wrap a long word across multiple rows\n// Ansi escape codes do not count towards length\nconst wrapWord = (rows, word, columns) => {\n\tconst characters = [...word];\n\n\tlet isInsideEscape = false;\n\tlet isInsideLinkEscape = false;\n\tlet visible = stringWidth(stripAnsi(rows.at(-1)));\n\n\tfor (const [index, character] of characters.entries()) {\n\t\tconst characterLength = stringWidth(character);\n\n\t\tif (visible + characterLength <= columns) {\n\t\t\trows[rows.length - 1] += character;\n\t\t} else {\n\t\t\trows.push(character);\n\t\t\tvisible = 0;\n\t\t}\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tisInsideEscape = true;\n\n\t\t\tconst ansiEscapeLinkCandidate = characters.slice(index + 1, index + 1 + ANSI_ESCAPE_LINK.length).join('');\n\t\t\tisInsideLinkEscape = ansiEscapeLinkCandidate === ANSI_ESCAPE_LINK;\n\t\t}\n\n\t\tif (isInsideEscape) {\n\t\t\tif (isInsideLinkEscape) {\n\t\t\t\tif (character === ANSI_ESCAPE_BELL) {\n\t\t\t\t\tisInsideEscape = false;\n\t\t\t\t\tisInsideLinkEscape = false;\n\t\t\t\t}\n\t\t\t} else if (character === ANSI_SGR_TERMINATOR) {\n\t\t\t\tisInsideEscape = false;\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tvisible += characterLength;\n\n\t\tif (visible === columns && index < characters.length - 1) {\n\t\t\trows.push('');\n\t\t\tvisible = 0;\n\t\t}\n\t}\n\n\t// It's possible that the last row we copy over is only\n\t// ansi escape characters, handle this edge-case\n\tif (!visible && rows.at(-1).length > 0 && rows.length > 1) {\n\t\trows[rows.length - 2] += rows.pop();\n\t}\n};\n\n// Trims spaces from a string ignoring invisible sequences\nconst stringVisibleTrimSpacesRight = string => {\n\tconst words = string.split(' ');\n\tlet last = words.length;\n\n\twhile (last > 0) {\n\t\tif (stringWidth(words[last - 1]) > 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\tlast--;\n\t}\n\n\tif (last === words.length) {\n\t\treturn string;\n\t}\n\n\treturn words.slice(0, last).join(' ') + words.slice(last).join('');\n};\n\n// The wrap-ansi module can be invoked in either 'hard' or 'soft' wrap mode.\n//\n// 'hard' will never allow a string to take up more than columns characters.\n//\n// 'soft' allows long words to expand past the column length.\nconst exec = (string, columns, options = {}) => {\n\tif (options.trim !== false && string.trim() === '') {\n\t\treturn '';\n\t}\n\n\tlet returnValue = '';\n\tlet escapeCode;\n\tlet escapeUrl;\n\n\tconst lengths = wordLengths(string);\n\tlet rows = [''];\n\n\tfor (const [index, word] of string.split(' ').entries()) {\n\t\tif (options.trim !== false) {\n\t\t\trows[rows.length - 1] = rows.at(-1).trimStart();\n\t\t}\n\n\t\tlet rowLength = stringWidth(rows.at(-1));\n\n\t\tif (index !== 0) {\n\t\t\tif (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {\n\t\t\t\t// If we start with a new word but the current row length equals the length of the columns, add a new row\n\t\t\t\trows.push('');\n\t\t\t\trowLength = 0;\n\t\t\t}\n\n\t\t\tif (rowLength > 0 || options.trim === false) {\n\t\t\t\trows[rows.length - 1] += ' ';\n\t\t\t\trowLength++;\n\t\t\t}\n\t\t}\n\n\t\t// In 'hard' wrap mode, the length of a line is never allowed to extend past 'columns'\n\t\tif (options.hard && lengths[index] > columns) {\n\t\t\tconst remainingColumns = (columns - rowLength);\n\t\t\tconst breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);\n\t\t\tconst breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);\n\t\t\tif (breaksStartingNextLine < breaksStartingThisLine) {\n\t\t\t\trows.push('');\n\t\t\t}\n\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {\n\t\t\tif (options.wordWrap === false && rowLength < columns) {\n\t\t\t\twrapWord(rows, word, columns);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\trows.push('');\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && options.wordWrap === false) {\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\trows[rows.length - 1] += word;\n\t}\n\n\tif (options.trim !== false) {\n\t\trows = rows.map(row => stringVisibleTrimSpacesRight(row));\n\t}\n\n\tconst preString = rows.join('\\n');\n\tconst pre = [...preString];\n\n\t// We need to keep a separate index as `String#slice()` works on Unicode code units, while `pre` is an array of codepoints.\n\tlet preStringIndex = 0;\n\n\tfor (const [index, character] of pre.entries()) {\n\t\treturnValue += character;\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tconst {groups} = new RegExp(`(?:\\\\${ANSI_CSI}(?<code>\\\\d+)m|\\\\${ANSI_ESCAPE_LINK}(?<uri>.*)${ANSI_ESCAPE_BELL})`).exec(preString.slice(preStringIndex)) || {groups: {}};\n\t\t\tif (groups.code !== undefined) {\n\t\t\t\tconst code = Number.parseFloat(groups.code);\n\t\t\t\tescapeCode = code === END_CODE ? undefined : code;\n\t\t\t} else if (groups.uri !== undefined) {\n\t\t\t\tescapeUrl = groups.uri.length === 0 ? undefined : groups.uri;\n\t\t\t}\n\t\t}\n\n\t\tconst code = ansiStyles.codes.get(Number(escapeCode));\n\n\t\tif (pre[index + 1] === '\\n') {\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink('');\n\t\t\t}\n\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(code);\n\t\t\t}\n\t\t} else if (character === '\\n') {\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(escapeCode);\n\t\t\t}\n\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink(escapeUrl);\n\t\t\t}\n\t\t}\n\n\t\tpreStringIndex += character.length;\n\t}\n\n\treturn returnValue;\n};\n\n// For each newline, invoke the method separately\nexport default function wrapAnsi(string, columns, options) {\n\treturn String(string)\n\t\t.normalize()\n\t\t.replaceAll('\\r\\n', '\\n')\n\t\t.split('\\n')\n\t\t.map(line => exec(line, columns, options))\n\t\t.join('\\n');\n}\n","// Bootstrap cliui with CommonJS dependencies:\nimport { cliui } from './build/lib/index.js'\nimport stringWidth from 'string-width'\nimport stripAnsi from 'strip-ansi'\nimport wrapAnsi from 'wrap-ansi'\n\nexport default function ui (opts) {\n  return cliui(opts, {\n    stringWidth,\n    stripAnsi,\n    wrap: wrapAnsi\n  })\n}\n\nexport {ui as 'module.exports'};\n","import { dirname, resolve } from 'path';\nimport { readdirSync, statSync } from 'fs';\n\nexport default function (start, callback) {\n\tlet dir = resolve('.', start);\n\tlet tmp, stats = statSync(dir);\n\n\tif (!stats.isDirectory()) {\n\t\tdir = dirname(dir);\n\t}\n\n\twhile (true) {\n\t\ttmp = callback(dir, readdirSync(dir));\n\t\tif (tmp) return resolve(dir, tmp);\n\t\tdir = dirname(tmp = dir);\n\t\tif (tmp === dir) break;\n\t}\n}\n","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport function camelCase(str) {\n    // Handle the case where an argument is provided as camel case, e.g., fooBar.\n    // by ensuring that the string isn't already mixed case:\n    const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase();\n    if (!isCamelCase) {\n        str = str.toLowerCase();\n    }\n    if (str.indexOf('-') === -1 && str.indexOf('_') === -1) {\n        return str;\n    }\n    else {\n        let camelcase = '';\n        let nextChrUpper = false;\n        const leadingHyphens = str.match(/^-+/);\n        for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) {\n            let chr = str.charAt(i);\n            if (nextChrUpper) {\n                nextChrUpper = false;\n                chr = chr.toUpperCase();\n            }\n            if (i !== 0 && (chr === '-' || chr === '_')) {\n                nextChrUpper = true;\n            }\n            else if (chr !== '-' && chr !== '_') {\n                camelcase += chr;\n            }\n        }\n        return camelcase;\n    }\n}\nexport function decamelize(str, joinString) {\n    const lowercase = str.toLowerCase();\n    joinString = joinString || '-';\n    let notCamelcase = '';\n    for (let i = 0; i < str.length; i++) {\n        const chrLower = lowercase.charAt(i);\n        const chrString = str.charAt(i);\n        if (chrLower !== chrString && i > 0) {\n            notCamelcase += `${joinString}${lowercase.charAt(i)}`;\n        }\n        else {\n            notCamelcase += chrString;\n        }\n    }\n    return notCamelcase;\n}\nexport function looksLikeNumber(x) {\n    if (x === null || x === undefined)\n        return false;\n    // if loaded from config, may already be a number.\n    if (typeof x === 'number')\n        return true;\n    // hexadecimal.\n    if (/^0x[0-9a-f]+$/i.test(x))\n        return true;\n    // don't treat 0123 as a number; as it drops the leading '0'.\n    if (/^0[^.]/.test(x))\n        return false;\n    return /^[-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/.test(x);\n}\n","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\n// take an un-split argv string and tokenize it.\nexport function tokenizeArgString(argString) {\n    if (Array.isArray(argString)) {\n        return argString.map(e => typeof e !== 'string' ? e + '' : e);\n    }\n    argString = argString.trim();\n    let i = 0;\n    let prevC = null;\n    let c = null;\n    let opening = null;\n    const args = [];\n    for (let ii = 0; ii < argString.length; ii++) {\n        prevC = c;\n        c = argString.charAt(ii);\n        // split on spaces unless we're in quotes.\n        if (c === ' ' && !opening) {\n            if (!(prevC === ' ')) {\n                i++;\n            }\n            continue;\n        }\n        // don't split the string if we're in matching\n        // opening or closing single and double quotes.\n        if (c === opening) {\n            opening = null;\n        }\n        else if ((c === \"'\" || c === '\"') && !opening) {\n            opening = c;\n        }\n        if (!args[i])\n            args[i] = '';\n        args[i] += c;\n    }\n    return args;\n}\n","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport var DefaultValuesForTypeKey;\n(function (DefaultValuesForTypeKey) {\n    DefaultValuesForTypeKey[\"BOOLEAN\"] = \"boolean\";\n    DefaultValuesForTypeKey[\"STRING\"] = \"string\";\n    DefaultValuesForTypeKey[\"NUMBER\"] = \"number\";\n    DefaultValuesForTypeKey[\"ARRAY\"] = \"array\";\n})(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {}));\n","/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\n/* eslint-disable prefer-arrow-callback */\nimport { tokenizeArgString } from './tokenize-arg-string.js';\nimport { DefaultValuesForTypeKey } from './yargs-parser-types.js';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nlet mixin;\nexport class YargsParser {\n    constructor(_mixin) {\n        mixin = _mixin;\n    }\n    parse(argsInput, options) {\n        const opts = Object.assign({\n            alias: undefined,\n            array: undefined,\n            boolean: undefined,\n            config: undefined,\n            configObjects: undefined,\n            configuration: undefined,\n            coerce: undefined,\n            count: undefined,\n            default: undefined,\n            envPrefix: undefined,\n            narg: undefined,\n            normalize: undefined,\n            string: undefined,\n            number: undefined,\n            __: undefined,\n            key: undefined\n        }, options);\n        // allow a string argument to be passed in rather\n        // than an argv array.\n        const args = tokenizeArgString(argsInput);\n        // tokenizeArgString adds extra quotes to args if argsInput is a string\n        // only strip those extra quotes in processValue if argsInput is a string\n        const inputIsString = typeof argsInput === 'string';\n        // aliases might have transitive relationships, normalize this.\n        const aliases = combineAliases(Object.assign(Object.create(null), opts.alias));\n        const configuration = Object.assign({\n            'boolean-negation': true,\n            'camel-case-expansion': true,\n            'combine-arrays': false,\n            'dot-notation': true,\n            'duplicate-arguments-array': true,\n            'flatten-duplicate-arrays': true,\n            'greedy-arrays': true,\n            'halt-at-non-option': false,\n            'nargs-eats-options': false,\n            'negation-prefix': 'no-',\n            'parse-numbers': true,\n            'parse-positional-numbers': true,\n            'populate--': false,\n            'set-placeholder-key': false,\n            'short-option-groups': true,\n            'strip-aliased': false,\n            'strip-dashed': false,\n            'unknown-options-as-args': false\n        }, opts.configuration);\n        const defaults = Object.assign(Object.create(null), opts.default);\n        const configObjects = opts.configObjects || [];\n        const envPrefix = opts.envPrefix;\n        const notFlagsOption = configuration['populate--'];\n        const notFlagsArgv = notFlagsOption ? '--' : '_';\n        const newAliases = Object.create(null);\n        const defaulted = Object.create(null);\n        // allow a i18n handler to be passed in, default to a fake one (util.format).\n        const __ = opts.__ || mixin.format;\n        const flags = {\n            aliases: Object.create(null),\n            arrays: Object.create(null),\n            bools: Object.create(null),\n            strings: Object.create(null),\n            numbers: Object.create(null),\n            counts: Object.create(null),\n            normalize: Object.create(null),\n            configs: Object.create(null),\n            nargs: Object.create(null),\n            coercions: Object.create(null),\n            keys: []\n        };\n        const negative = /^-([0-9]+(\\.[0-9]+)?|\\.[0-9]+)$/;\n        const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)');\n        [].concat(opts.array || []).filter(Boolean).forEach(function (opt) {\n            const key = typeof opt === 'object' ? opt.key : opt;\n            // assign to flags[bools|strings|numbers]\n            const assignment = Object.keys(opt).map(function (key) {\n                const arrayFlagKeys = {\n                    boolean: 'bools',\n                    string: 'strings',\n                    number: 'numbers'\n                };\n                return arrayFlagKeys[key];\n            }).filter(Boolean).pop();\n            // assign key to be coerced\n            if (assignment) {\n                flags[assignment][key] = true;\n            }\n            flags.arrays[key] = true;\n            flags.keys.push(key);\n        });\n        [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) {\n            flags.bools[key] = true;\n            flags.keys.push(key);\n        });\n        [].concat(opts.string || []).filter(Boolean).forEach(function (key) {\n            flags.strings[key] = true;\n            flags.keys.push(key);\n        });\n        [].concat(opts.number || []).filter(Boolean).forEach(function (key) {\n            flags.numbers[key] = true;\n            flags.keys.push(key);\n        });\n        [].concat(opts.count || []).filter(Boolean).forEach(function (key) {\n            flags.counts[key] = true;\n            flags.keys.push(key);\n        });\n        [].concat(opts.normalize || []).filter(Boolean).forEach(function (key) {\n            flags.normalize[key] = true;\n            flags.keys.push(key);\n        });\n        if (typeof opts.narg === 'object') {\n            Object.entries(opts.narg).forEach(([key, value]) => {\n                if (typeof value === 'number') {\n                    flags.nargs[key] = value;\n                    flags.keys.push(key);\n                }\n            });\n        }\n        if (typeof opts.coerce === 'object') {\n            Object.entries(opts.coerce).forEach(([key, value]) => {\n                if (typeof value === 'function') {\n                    flags.coercions[key] = value;\n                    flags.keys.push(key);\n                }\n            });\n        }\n        if (typeof opts.config !== 'undefined') {\n            if (Array.isArray(opts.config) || typeof opts.config === 'string') {\n                ;\n                [].concat(opts.config).filter(Boolean).forEach(function (key) {\n                    flags.configs[key] = true;\n                });\n            }\n            else if (typeof opts.config === 'object') {\n                Object.entries(opts.config).forEach(([key, value]) => {\n                    if (typeof value === 'boolean' || typeof value === 'function') {\n                        flags.configs[key] = value;\n                    }\n                });\n            }\n        }\n        // create a lookup table that takes into account all\n        // combinations of aliases: {f: ['foo'], foo: ['f']}\n        extendAliases(opts.key, aliases, opts.default, flags.arrays);\n        // apply default values to all aliases.\n        Object.keys(defaults).forEach(function (key) {\n            (flags.aliases[key] || []).forEach(function (alias) {\n                defaults[alias] = defaults[key];\n            });\n        });\n        let error = null;\n        checkConfiguration();\n        let notFlags = [];\n        const argv = Object.assign(Object.create(null), { _: [] });\n        // TODO(bcoe): for the first pass at removing object prototype  we didn't\n        // remove all prototypes from objects returned by this API, we might want\n        // to gradually move towards doing so.\n        const argvReturn = {};\n        for (let i = 0; i < args.length; i++) {\n            const arg = args[i];\n            const truncatedArg = arg.replace(/^-{3,}/, '---');\n            let broken;\n            let key;\n            let letters;\n            let m;\n            let next;\n            let value;\n            // any unknown option (except for end-of-options, \"--\")\n            if (arg !== '--' && /^-/.test(arg) && isUnknownOptionAsArg(arg)) {\n                pushPositional(arg);\n                // ---, ---=, ----, etc,\n            }\n            else if (truncatedArg.match(/^---+(=|$)/)) {\n                // options without key name are invalid.\n                pushPositional(arg);\n                continue;\n                // -- separated by =\n            }\n            else if (arg.match(/^--.+=/) || (!configuration['short-option-groups'] && arg.match(/^-.+=/))) {\n                // Using [\\s\\S] instead of . because js doesn't support the\n                // 'dotall' regex modifier. See:\n                // http://stackoverflow.com/a/1068308/13216\n                m = arg.match(/^--?([^=]+)=([\\s\\S]*)$/);\n                // arrays format = '--f=a b c'\n                if (m !== null && Array.isArray(m) && m.length >= 3) {\n                    if (checkAllAliases(m[1], flags.arrays)) {\n                        i = eatArray(i, m[1], args, m[2]);\n                    }\n                    else if (checkAllAliases(m[1], flags.nargs) !== false) {\n                        // nargs format = '--f=monkey washing cat'\n                        i = eatNargs(i, m[1], args, m[2]);\n                    }\n                    else {\n                        setArg(m[1], m[2], true);\n                    }\n                }\n            }\n            else if (arg.match(negatedBoolean) && configuration['boolean-negation']) {\n                m = arg.match(negatedBoolean);\n                if (m !== null && Array.isArray(m) && m.length >= 2) {\n                    key = m[1];\n                    setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false);\n                }\n                // -- separated by space.\n            }\n            else if (arg.match(/^--.+/) || (!configuration['short-option-groups'] && arg.match(/^-[^-]+/))) {\n                m = arg.match(/^--?(.+)/);\n                if (m !== null && Array.isArray(m) && m.length >= 2) {\n                    key = m[1];\n                    if (checkAllAliases(key, flags.arrays)) {\n                        // array format = '--foo a b c'\n                        i = eatArray(i, key, args);\n                    }\n                    else if (checkAllAliases(key, flags.nargs) !== false) {\n                        // nargs format = '--foo a b c'\n                        // should be truthy even if: flags.nargs[key] === 0\n                        i = eatNargs(i, key, args);\n                    }\n                    else {\n                        next = args[i + 1];\n                        if (next !== undefined && (!next.match(/^-/) ||\n                            next.match(negative)) &&\n                            !checkAllAliases(key, flags.bools) &&\n                            !checkAllAliases(key, flags.counts)) {\n                            setArg(key, next);\n                            i++;\n                        }\n                        else if (/^(true|false)$/.test(next)) {\n                            setArg(key, next);\n                            i++;\n                        }\n                        else {\n                            setArg(key, defaultValue(key));\n                        }\n                    }\n                }\n                // dot-notation flag separated by '='.\n            }\n            else if (arg.match(/^-.\\..+=/)) {\n                m = arg.match(/^-([^=]+)=([\\s\\S]*)$/);\n                if (m !== null && Array.isArray(m) && m.length >= 3) {\n                    setArg(m[1], m[2]);\n                }\n                // dot-notation flag separated by space.\n            }\n            else if (arg.match(/^-.\\..+/) && !arg.match(negative)) {\n                next = args[i + 1];\n                m = arg.match(/^-(.\\..+)/);\n                if (m !== null && Array.isArray(m) && m.length >= 2) {\n                    key = m[1];\n                    if (next !== undefined && !next.match(/^-/) &&\n                        !checkAllAliases(key, flags.bools) &&\n                        !checkAllAliases(key, flags.counts)) {\n                        setArg(key, next);\n                        i++;\n                    }\n                    else {\n                        setArg(key, defaultValue(key));\n                    }\n                }\n            }\n            else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {\n                letters = arg.slice(1, -1).split('');\n                broken = false;\n                for (let j = 0; j < letters.length; j++) {\n                    next = arg.slice(j + 2);\n                    if (letters[j + 1] && letters[j + 1] === '=') {\n                        value = arg.slice(j + 3);\n                        key = letters[j];\n                        if (checkAllAliases(key, flags.arrays)) {\n                            // array format = '-f=a b c'\n                            i = eatArray(i, key, args, value);\n                        }\n                        else if (checkAllAliases(key, flags.nargs) !== false) {\n                            // nargs format = '-f=monkey washing cat'\n                            i = eatNargs(i, key, args, value);\n                        }\n                        else {\n                            setArg(key, value);\n                        }\n                        broken = true;\n                        break;\n                    }\n                    if (next === '-') {\n                        setArg(letters[j], next);\n                        continue;\n                    }\n                    // current letter is an alphabetic character and next value is a number\n                    if (/[A-Za-z]/.test(letters[j]) &&\n                        /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next) &&\n                        checkAllAliases(next, flags.bools) === false) {\n                        setArg(letters[j], next);\n                        broken = true;\n                        break;\n                    }\n                    if (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n                        setArg(letters[j], next);\n                        broken = true;\n                        break;\n                    }\n                    else {\n                        setArg(letters[j], defaultValue(letters[j]));\n                    }\n                }\n                key = arg.slice(-1)[0];\n                if (!broken && key !== '-') {\n                    if (checkAllAliases(key, flags.arrays)) {\n                        // array format = '-f a b c'\n                        i = eatArray(i, key, args);\n                    }\n                    else if (checkAllAliases(key, flags.nargs) !== false) {\n                        // nargs format = '-f a b c'\n                        // should be truthy even if: flags.nargs[key] === 0\n                        i = eatNargs(i, key, args);\n                    }\n                    else {\n                        next = args[i + 1];\n                        if (next !== undefined && (!/^(-|--)[^-]/.test(next) ||\n                            next.match(negative)) &&\n                            !checkAllAliases(key, flags.bools) &&\n                            !checkAllAliases(key, flags.counts)) {\n                            setArg(key, next);\n                            i++;\n                        }\n                        else if (/^(true|false)$/.test(next)) {\n                            setArg(key, next);\n                            i++;\n                        }\n                        else {\n                            setArg(key, defaultValue(key));\n                        }\n                    }\n                }\n            }\n            else if (arg.match(/^-[0-9]$/) &&\n                arg.match(negative) &&\n                checkAllAliases(arg.slice(1), flags.bools)) {\n                // single-digit boolean alias, e.g: xargs -0\n                key = arg.slice(1);\n                setArg(key, defaultValue(key));\n            }\n            else if (arg === '--') {\n                notFlags = args.slice(i + 1);\n                break;\n            }\n            else if (configuration['halt-at-non-option']) {\n                notFlags = args.slice(i);\n                break;\n            }\n            else {\n                pushPositional(arg);\n            }\n        }\n        // order of precedence:\n        // 1. command line arg\n        // 2. value from env var\n        // 3. value from config file\n        // 4. value from config objects\n        // 5. configured default value\n        applyEnvVars(argv, true); // special case: check env vars that point to config file\n        applyEnvVars(argv, false);\n        setConfig(argv);\n        setConfigObjects();\n        applyDefaultsAndAliases(argv, flags.aliases, defaults, true);\n        applyCoercions(argv);\n        if (configuration['set-placeholder-key'])\n            setPlaceholderKeys(argv);\n        // for any counts either not in args or without an explicit default, set to 0\n        Object.keys(flags.counts).forEach(function (key) {\n            if (!hasKey(argv, key.split('.')))\n                setArg(key, 0);\n        });\n        // '--' defaults to undefined.\n        if (notFlagsOption && notFlags.length)\n            argv[notFlagsArgv] = [];\n        notFlags.forEach(function (key) {\n            argv[notFlagsArgv].push(key);\n        });\n        if (configuration['camel-case-expansion'] && configuration['strip-dashed']) {\n            Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => {\n                delete argv[key];\n            });\n        }\n        if (configuration['strip-aliased']) {\n            ;\n            [].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => {\n                if (configuration['camel-case-expansion'] && alias.includes('-')) {\n                    delete argv[alias.split('.').map(prop => camelCase(prop)).join('.')];\n                }\n                delete argv[alias];\n            });\n        }\n        // Push argument into positional array, applying numeric coercion:\n        function pushPositional(arg) {\n            const maybeCoercedNumber = maybeCoerceNumber('_', arg);\n            if (typeof maybeCoercedNumber === 'string' || typeof maybeCoercedNumber === 'number') {\n                argv._.push(maybeCoercedNumber);\n            }\n        }\n        // how many arguments should we consume, based\n        // on the nargs option?\n        function eatNargs(i, key, args, argAfterEqualSign) {\n            let ii;\n            let toEat = checkAllAliases(key, flags.nargs);\n            // NaN has a special meaning for the array type, indicating that one or\n            // more values are expected.\n            toEat = typeof toEat !== 'number' || isNaN(toEat) ? 1 : toEat;\n            if (toEat === 0) {\n                if (!isUndefined(argAfterEqualSign)) {\n                    error = Error(__('Argument unexpected for: %s', key));\n                }\n                setArg(key, defaultValue(key));\n                return i;\n            }\n            let available = isUndefined(argAfterEqualSign) ? 0 : 1;\n            if (configuration['nargs-eats-options']) {\n                // classic behavior, yargs eats positional and dash arguments.\n                if (args.length - (i + 1) + available < toEat) {\n                    error = Error(__('Not enough arguments following: %s', key));\n                }\n                available = toEat;\n            }\n            else {\n                // nargs will not consume flag arguments, e.g., -abc, --foo,\n                // and terminates when one is observed.\n                for (ii = i + 1; ii < args.length; ii++) {\n                    if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii]))\n                        available++;\n                    else\n                        break;\n                }\n                if (available < toEat)\n                    error = Error(__('Not enough arguments following: %s', key));\n            }\n            let consumed = Math.min(available, toEat);\n            if (!isUndefined(argAfterEqualSign) && consumed > 0) {\n                setArg(key, argAfterEqualSign);\n                consumed--;\n            }\n            for (ii = i + 1; ii < (consumed + i + 1); ii++) {\n                setArg(key, args[ii]);\n            }\n            return (i + consumed);\n        }\n        // if an option is an array, eat all non-hyphenated arguments\n        // following it... YUM!\n        // e.g., --foo apple banana cat becomes [\"apple\", \"banana\", \"cat\"]\n        function eatArray(i, key, args, argAfterEqualSign) {\n            let argsToSet = [];\n            let next = argAfterEqualSign || args[i + 1];\n            // If both array and nargs are configured, enforce the nargs count:\n            const nargsCount = checkAllAliases(key, flags.nargs);\n            if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) {\n                argsToSet.push(true);\n            }\n            else if (isUndefined(next) ||\n                (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) {\n                // for keys without value ==> argsToSet remains an empty []\n                // set user default value, if available\n                if (defaults[key] !== undefined) {\n                    const defVal = defaults[key];\n                    argsToSet = Array.isArray(defVal) ? defVal : [defVal];\n                }\n            }\n            else {\n                // value in --option=value is eaten as is\n                if (!isUndefined(argAfterEqualSign)) {\n                    argsToSet.push(processValue(key, argAfterEqualSign, true));\n                }\n                for (let ii = i + 1; ii < args.length; ii++) {\n                    if ((!configuration['greedy-arrays'] && argsToSet.length > 0) ||\n                        (nargsCount && typeof nargsCount === 'number' && argsToSet.length >= nargsCount))\n                        break;\n                    next = args[ii];\n                    if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))\n                        break;\n                    i = ii;\n                    argsToSet.push(processValue(key, next, inputIsString));\n                }\n            }\n            // If both array and nargs are configured, create an error if less than\n            // nargs positionals were found. NaN has special meaning, indicating\n            // that at least one value is required (more are okay).\n            if (typeof nargsCount === 'number' && ((nargsCount && argsToSet.length < nargsCount) ||\n                (isNaN(nargsCount) && argsToSet.length === 0))) {\n                error = Error(__('Not enough arguments following: %s', key));\n            }\n            setArg(key, argsToSet);\n            return i;\n        }\n        function setArg(key, val, shouldStripQuotes = inputIsString) {\n            if (/-/.test(key) && configuration['camel-case-expansion']) {\n                const alias = key.split('.').map(function (prop) {\n                    return camelCase(prop);\n                }).join('.');\n                addNewAlias(key, alias);\n            }\n            const value = processValue(key, val, shouldStripQuotes);\n            const splitKey = key.split('.');\n            setKey(argv, splitKey, value);\n            // handle populating aliases of the full key\n            if (flags.aliases[key]) {\n                flags.aliases[key].forEach(function (x) {\n                    const keyProperties = x.split('.');\n                    setKey(argv, keyProperties, value);\n                });\n            }\n            // handle populating aliases of the first element of the dot-notation key\n            if (splitKey.length > 1 && configuration['dot-notation']) {\n                ;\n                (flags.aliases[splitKey[0]] || []).forEach(function (x) {\n                    let keyProperties = x.split('.');\n                    // expand alias with nested objects in key\n                    const a = [].concat(splitKey);\n                    a.shift(); // nuke the old key.\n                    keyProperties = keyProperties.concat(a);\n                    // populate alias only if is not already an alias of the full key\n                    // (already populated above)\n                    if (!(flags.aliases[key] || []).includes(keyProperties.join('.'))) {\n                        setKey(argv, keyProperties, value);\n                    }\n                });\n            }\n            // Set normalize getter and setter when key is in 'normalize' but isn't an array\n            if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {\n                const keys = [key].concat(flags.aliases[key] || []);\n                keys.forEach(function (key) {\n                    Object.defineProperty(argvReturn, key, {\n                        enumerable: true,\n                        get() {\n                            return val;\n                        },\n                        set(value) {\n                            val = typeof value === 'string' ? mixin.normalize(value) : value;\n                        }\n                    });\n                });\n            }\n        }\n        function addNewAlias(key, alias) {\n            if (!(flags.aliases[key] && flags.aliases[key].length)) {\n                flags.aliases[key] = [alias];\n                newAliases[alias] = true;\n            }\n            if (!(flags.aliases[alias] && flags.aliases[alias].length)) {\n                addNewAlias(alias, key);\n            }\n        }\n        function processValue(key, val, shouldStripQuotes) {\n            // strings may be quoted, clean this up as we assign values.\n            if (shouldStripQuotes) {\n                val = stripQuotes(val);\n            }\n            // handle parsing boolean arguments --foo=true --bar false.\n            if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {\n                if (typeof val === 'string')\n                    val = val === 'true';\n            }\n            let value = Array.isArray(val)\n                ? val.map(function (v) { return maybeCoerceNumber(key, v); })\n                : maybeCoerceNumber(key, val);\n            // increment a count given as arg (either no value or value parsed as boolean)\n            if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {\n                value = increment();\n            }\n            // Set normalized value when key is in 'normalize' and in 'arrays'\n            if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {\n                if (Array.isArray(val))\n                    value = val.map((val) => { return mixin.normalize(val); });\n                else\n                    value = mixin.normalize(val);\n            }\n            return value;\n        }\n        function maybeCoerceNumber(key, value) {\n            if (!configuration['parse-positional-numbers'] && key === '_')\n                return value;\n            if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) {\n                const shouldCoerceNumber = looksLikeNumber(value) && configuration['parse-numbers'] && (Number.isSafeInteger(Math.floor(parseFloat(`${value}`))));\n                if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) {\n                    value = Number(value);\n                }\n            }\n            return value;\n        }\n        // set args from config.json file, this should be\n        // applied last so that defaults can be applied.\n        function setConfig(argv) {\n            const configLookup = Object.create(null);\n            // expand defaults/aliases, in-case any happen to reference\n            // the config.json file.\n            applyDefaultsAndAliases(configLookup, flags.aliases, defaults);\n            Object.keys(flags.configs).forEach(function (configKey) {\n                const configPath = argv[configKey] || configLookup[configKey];\n                if (configPath) {\n                    try {\n                        let config = null;\n                        const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath);\n                        const resolveConfig = flags.configs[configKey];\n                        if (typeof resolveConfig === 'function') {\n                            try {\n                                config = resolveConfig(resolvedConfigPath);\n                            }\n                            catch (e) {\n                                config = e;\n                            }\n                            if (config instanceof Error) {\n                                error = config;\n                                return;\n                            }\n                        }\n                        else {\n                            config = mixin.require(resolvedConfigPath);\n                        }\n                        setConfigObject(config);\n                    }\n                    catch (ex) {\n                        // Deno will receive a PermissionDenied error if an attempt is\n                        // made to load config without the --allow-read flag:\n                        if (ex.name === 'PermissionDenied')\n                            error = ex;\n                        else if (argv[configKey])\n                            error = Error(__('Invalid JSON config file: %s', configPath));\n                    }\n                }\n            });\n        }\n        // set args from config object.\n        // it recursively checks nested objects.\n        function setConfigObject(config, prev) {\n            Object.keys(config).forEach(function (key) {\n                const value = config[key];\n                const fullKey = prev ? prev + '.' + key : key;\n                // if the value is an inner object and we have dot-notation\n                // enabled, treat inner objects in config the same as\n                // heavily nested dot notations (foo.bar.apple).\n                if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) {\n                    // if the value is an object but not an array, check nested object\n                    setConfigObject(value, fullKey);\n                }\n                else {\n                    // setting arguments via CLI takes precedence over\n                    // values within the config file.\n                    if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) {\n                        setArg(fullKey, value);\n                    }\n                }\n            });\n        }\n        // set all config objects passed in opts\n        function setConfigObjects() {\n            if (typeof configObjects !== 'undefined') {\n                configObjects.forEach(function (configObject) {\n                    setConfigObject(configObject);\n                });\n            }\n        }\n        function applyEnvVars(argv, configOnly) {\n            if (typeof envPrefix === 'undefined')\n                return;\n            const prefix = typeof envPrefix === 'string' ? envPrefix : '';\n            const env = mixin.env();\n            Object.keys(env).forEach(function (envVar) {\n                if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {\n                    // get array of nested keys and convert them to camel case\n                    const keys = envVar.split('__').map(function (key, i) {\n                        if (i === 0) {\n                            key = key.substring(prefix.length);\n                        }\n                        return camelCase(key);\n                    });\n                    if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) {\n                        setArg(keys.join('.'), env[envVar]);\n                    }\n                }\n            });\n        }\n        function applyCoercions(argv) {\n            let coerce;\n            const applied = new Set();\n            Object.keys(argv).forEach(function (key) {\n                if (!applied.has(key)) { // If we haven't already coerced this option via one of its aliases\n                    coerce = checkAllAliases(key, flags.coercions);\n                    if (typeof coerce === 'function') {\n                        try {\n                            const value = maybeCoerceNumber(key, coerce(argv[key]));\n                            ([].concat(flags.aliases[key] || [], key)).forEach(ali => {\n                                applied.add(ali);\n                                argv[ali] = value;\n                            });\n                        }\n                        catch (err) {\n                            error = err;\n                        }\n                    }\n                }\n            });\n        }\n        function setPlaceholderKeys(argv) {\n            flags.keys.forEach((key) => {\n                // don't set placeholder keys for dot notation options 'foo.bar'.\n                if (~key.indexOf('.'))\n                    return;\n                if (typeof argv[key] === 'undefined')\n                    argv[key] = undefined;\n            });\n            return argv;\n        }\n        function applyDefaultsAndAliases(obj, aliases, defaults, canLog = false) {\n            Object.keys(defaults).forEach(function (key) {\n                if (!hasKey(obj, key.split('.'))) {\n                    setKey(obj, key.split('.'), defaults[key]);\n                    if (canLog)\n                        defaulted[key] = true;\n                    (aliases[key] || []).forEach(function (x) {\n                        if (hasKey(obj, x.split('.')))\n                            return;\n                        setKey(obj, x.split('.'), defaults[key]);\n                    });\n                }\n            });\n        }\n        function hasKey(obj, keys) {\n            let o = obj;\n            if (!configuration['dot-notation'])\n                keys = [keys.join('.')];\n            keys.slice(0, -1).forEach(function (key) {\n                o = (o[key] || {});\n            });\n            const key = keys[keys.length - 1];\n            if (typeof o !== 'object')\n                return false;\n            else\n                return key in o;\n        }\n        function setKey(obj, keys, value) {\n            let o = obj;\n            if (!configuration['dot-notation'])\n                keys = [keys.join('.')];\n            keys.slice(0, -1).forEach(function (key) {\n                // TODO(bcoe): in the next major version of yargs, switch to\n                // Object.create(null) for dot notation:\n                key = sanitizeKey(key);\n                if (typeof o === 'object' && o[key] === undefined) {\n                    o[key] = {};\n                }\n                if (typeof o[key] !== 'object' || Array.isArray(o[key])) {\n                    // ensure that o[key] is an array, and that the last item is an empty object.\n                    if (Array.isArray(o[key])) {\n                        o[key].push({});\n                    }\n                    else {\n                        o[key] = [o[key], {}];\n                    }\n                    // we want to update the empty object at the end of the o[key] array, so set o to that object\n                    o = o[key][o[key].length - 1];\n                }\n                else {\n                    o = o[key];\n                }\n            });\n            // TODO(bcoe): in the next major version of yargs, switch to\n            // Object.create(null) for dot notation:\n            const key = sanitizeKey(keys[keys.length - 1]);\n            const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays);\n            const isValueArray = Array.isArray(value);\n            let duplicate = configuration['duplicate-arguments-array'];\n            // nargs has higher priority than duplicate\n            if (!duplicate && checkAllAliases(key, flags.nargs)) {\n                duplicate = true;\n                if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) {\n                    o[key] = undefined;\n                }\n            }\n            if (value === increment()) {\n                o[key] = increment(o[key]);\n            }\n            else if (Array.isArray(o[key])) {\n                if (duplicate && isTypeArray && isValueArray) {\n                    o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]);\n                }\n                else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {\n                    o[key] = value;\n                }\n                else {\n                    o[key] = o[key].concat([value]);\n                }\n            }\n            else if (o[key] === undefined && isTypeArray) {\n                o[key] = isValueArray ? value : [value];\n            }\n            else if (duplicate && !(o[key] === undefined ||\n                checkAllAliases(key, flags.counts) ||\n                checkAllAliases(key, flags.bools))) {\n                o[key] = [o[key], value];\n            }\n            else {\n                o[key] = value;\n            }\n        }\n        // extend the aliases list with inferred aliases.\n        function extendAliases(...args) {\n            args.forEach(function (obj) {\n                Object.keys(obj || {}).forEach(function (key) {\n                    // short-circuit if we've already added a key\n                    // to the aliases array, for example it might\n                    // exist in both 'opts.default' and 'opts.key'.\n                    if (flags.aliases[key])\n                        return;\n                    flags.aliases[key] = [].concat(aliases[key] || []);\n                    // For \"--option-name\", also set argv.optionName\n                    flags.aliases[key].concat(key).forEach(function (x) {\n                        if (/-/.test(x) && configuration['camel-case-expansion']) {\n                            const c = camelCase(x);\n                            if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n                                flags.aliases[key].push(c);\n                                newAliases[c] = true;\n                            }\n                        }\n                    });\n                    // For \"--optionName\", also set argv['option-name']\n                    flags.aliases[key].concat(key).forEach(function (x) {\n                        if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) {\n                            const c = decamelize(x, '-');\n                            if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n                                flags.aliases[key].push(c);\n                                newAliases[c] = true;\n                            }\n                        }\n                    });\n                    flags.aliases[key].forEach(function (x) {\n                        flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {\n                            return x !== y;\n                        }));\n                    });\n                });\n            });\n        }\n        function checkAllAliases(key, flag) {\n            const toCheck = [].concat(flags.aliases[key] || [], key);\n            const keys = Object.keys(flag);\n            const setAlias = toCheck.find(key => keys.includes(key));\n            return setAlias ? flag[setAlias] : false;\n        }\n        function hasAnyFlag(key) {\n            const flagsKeys = Object.keys(flags);\n            const toCheck = [].concat(flagsKeys.map(k => flags[k]));\n            return toCheck.some(function (flag) {\n                return Array.isArray(flag) ? flag.includes(key) : flag[key];\n            });\n        }\n        function hasFlagsMatching(arg, ...patterns) {\n            const toCheck = [].concat(...patterns);\n            return toCheck.some(function (pattern) {\n                const match = arg.match(pattern);\n                return match && hasAnyFlag(match[1]);\n            });\n        }\n        // based on a simplified version of the short flag group parsing logic\n        function hasAllShortFlags(arg) {\n            // if this is a negative number, or doesn't start with a single hyphen, it's not a short flag group\n            if (arg.match(negative) || !arg.match(/^-[^-]+/)) {\n                return false;\n            }\n            let hasAllFlags = true;\n            let next;\n            const letters = arg.slice(1).split('');\n            for (let j = 0; j < letters.length; j++) {\n                next = arg.slice(j + 2);\n                if (!hasAnyFlag(letters[j])) {\n                    hasAllFlags = false;\n                    break;\n                }\n                if ((letters[j + 1] && letters[j + 1] === '=') ||\n                    next === '-' ||\n                    (/[A-Za-z]/.test(letters[j]) && /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next)) ||\n                    (letters[j + 1] && letters[j + 1].match(/\\W/))) {\n                    break;\n                }\n            }\n            return hasAllFlags;\n        }\n        function isUnknownOptionAsArg(arg) {\n            return configuration['unknown-options-as-args'] && isUnknownOption(arg);\n        }\n        function isUnknownOption(arg) {\n            arg = arg.replace(/^-{3,}/, '--');\n            // ignore negative numbers\n            if (arg.match(negative)) {\n                return false;\n            }\n            // if this is a short option group and all of them are configured, it isn't unknown\n            if (hasAllShortFlags(arg)) {\n                return false;\n            }\n            // e.g. '--count=2'\n            const flagWithEquals = /^-+([^=]+?)=[\\s\\S]*$/;\n            // e.g. '-a' or '--arg'\n            const normalFlag = /^-+([^=]+?)$/;\n            // e.g. '-a-'\n            const flagEndingInHyphen = /^-+([^=]+?)-$/;\n            // e.g. '-abc123'\n            const flagEndingInDigits = /^-+([^=]+?\\d+)$/;\n            // e.g. '-a/usr/local'\n            const flagEndingInNonWordCharacters = /^-+([^=]+?)\\W+.*$/;\n            // check the different types of flag styles, including negatedBoolean, a pattern defined near the start of the parse method\n            return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters);\n        }\n        // make a best effort to pick a default value\n        // for an option based on name and type.\n        function defaultValue(key) {\n            if (!checkAllAliases(key, flags.bools) &&\n                !checkAllAliases(key, flags.counts) &&\n                `${key}` in defaults) {\n                return defaults[key];\n            }\n            else {\n                return defaultForType(guessType(key));\n            }\n        }\n        // return a default value, given the type of a flag.,\n        function defaultForType(type) {\n            const def = {\n                [DefaultValuesForTypeKey.BOOLEAN]: true,\n                [DefaultValuesForTypeKey.STRING]: '',\n                [DefaultValuesForTypeKey.NUMBER]: undefined,\n                [DefaultValuesForTypeKey.ARRAY]: []\n            };\n            return def[type];\n        }\n        // given a flag, enforce a default type.\n        function guessType(key) {\n            let type = DefaultValuesForTypeKey.BOOLEAN;\n            if (checkAllAliases(key, flags.strings))\n                type = DefaultValuesForTypeKey.STRING;\n            else if (checkAllAliases(key, flags.numbers))\n                type = DefaultValuesForTypeKey.NUMBER;\n            else if (checkAllAliases(key, flags.bools))\n                type = DefaultValuesForTypeKey.BOOLEAN;\n            else if (checkAllAliases(key, flags.arrays))\n                type = DefaultValuesForTypeKey.ARRAY;\n            return type;\n        }\n        function isUndefined(num) {\n            return num === undefined;\n        }\n        // check user configuration settings for inconsistencies\n        function checkConfiguration() {\n            // count keys should not be set as array/narg\n            Object.keys(flags.counts).find(key => {\n                if (checkAllAliases(key, flags.arrays)) {\n                    error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key));\n                    return true;\n                }\n                else if (checkAllAliases(key, flags.nargs)) {\n                    error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key));\n                    return true;\n                }\n                return false;\n            });\n        }\n        return {\n            aliases: Object.assign({}, flags.aliases),\n            argv: Object.assign(argvReturn, argv),\n            configuration: configuration,\n            defaulted: Object.assign({}, defaulted),\n            error: error,\n            newAliases: Object.assign({}, newAliases)\n        };\n    }\n}\n// if any aliases reference each other, we should\n// merge them together.\nfunction combineAliases(aliases) {\n    const aliasArrays = [];\n    const combined = Object.create(null);\n    let change = true;\n    // turn alias lookup hash {key: ['alias1', 'alias2']} into\n    // a simple array ['key', 'alias1', 'alias2']\n    Object.keys(aliases).forEach(function (key) {\n        aliasArrays.push([].concat(aliases[key], key));\n    });\n    // combine arrays until zero changes are\n    // made in an iteration.\n    while (change) {\n        change = false;\n        for (let i = 0; i < aliasArrays.length; i++) {\n            for (let ii = i + 1; ii < aliasArrays.length; ii++) {\n                const intersect = aliasArrays[i].filter(function (v) {\n                    return aliasArrays[ii].indexOf(v) !== -1;\n                });\n                if (intersect.length) {\n                    aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]);\n                    aliasArrays.splice(ii, 1);\n                    change = true;\n                    break;\n                }\n            }\n        }\n    }\n    // map arrays back to the hash-lookup (de-dupe while\n    // we're at it).\n    aliasArrays.forEach(function (aliasArray) {\n        aliasArray = aliasArray.filter(function (v, i, self) {\n            return self.indexOf(v) === i;\n        });\n        const lastAlias = aliasArray.pop();\n        if (lastAlias !== undefined && typeof lastAlias === 'string') {\n            combined[lastAlias] = aliasArray;\n        }\n    });\n    return combined;\n}\n// this function should only be called when a count is given as an arg\n// it is NOT called to set a default value\n// thus we can start the count at 1 instead of 0\nfunction increment(orig) {\n    return orig !== undefined ? orig + 1 : 1;\n}\n// TODO(bcoe): in the next major version of yargs, switch to\n// Object.create(null) for dot notation:\nfunction sanitizeKey(key) {\n    if (key === '__proto__')\n        return '___proto___';\n    return key;\n}\nfunction stripQuotes(val) {\n    return (typeof val === 'string' &&\n        (val[0] === \"'\" || val[0] === '\"') &&\n        val[val.length - 1] === val[0])\n        ? val.substring(1, val.length - 1)\n        : val;\n}\n","/**\n * @fileoverview Main entrypoint for libraries using yargs-parser in Node.js\n *\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nvar _a, _b, _c;\n/* eslint-disable n/no-unpublished-import */\nimport { format } from 'util';\nimport { normalize, resolve } from 'path';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nimport { YargsParser } from './yargs-parser.js';\nimport { readFileSync } from 'fs';\nimport { createRequire } from 'node:module';\n// See https://github.com/yargs/yargs-parser#supported-nodejs-versions for our\n// version support policy. The YARGS_MIN_NODE_VERSION is used for testing only.\nconst minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION)\n    ? Number(process.env.YARGS_MIN_NODE_VERSION)\n    : 20;\nconst nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1);\nif (nodeVersion) {\n    const major = Number(nodeVersion.match(/^([^.]+)/)[1]);\n    if (major < minNodeVersion) {\n        throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);\n    }\n}\n// Creates a yargs-parser instance using Node.js standard libraries:\nconst env = process ? process.env : {};\nconst require = createRequire ? createRequire(import.meta.url) : undefined;\nconst parser = new YargsParser({\n    cwd: process.cwd,\n    env: () => {\n        return env;\n    },\n    format,\n    normalize,\n    resolve,\n    require: (path) => {\n        if (typeof require !== 'undefined') {\n            return require(path);\n        }\n        else if (path.match(/\\.json$/)) {\n            // Addresses: https://github.com/yargs/yargs/issues/2040\n            return JSON.parse(readFileSync(path, 'utf8'));\n        }\n        else {\n            throw Error('only .json config files are supported in ESM');\n        }\n    }\n});\nconst yargsParser = function Parser(args, opts) {\n    const result = parser.parse(args.slice(), opts);\n    return result.argv;\n};\nyargsParser.detailed = function (args, opts) {\n    return parser.parse(args.slice(), opts);\n};\nyargsParser.camelCase = camelCase;\nyargsParser.decamelize = decamelize;\nyargsParser.looksLikeNumber = looksLikeNumber;\nexport default yargsParser;\n// special syntax to allow unqualified default export from CommonJS\nexport { yargsParser as 'module.exports' };\n","function getProcessArgvBinIndex() {\n    if (isBundledElectronApp())\n        return 0;\n    return 1;\n}\nfunction isBundledElectronApp() {\n    return isElectronApp() && !process.defaultApp;\n}\nfunction isElectronApp() {\n    return !!process.versions.electron;\n}\nexport function hideBin(argv) {\n    return argv.slice(getProcessArgvBinIndex() + 1);\n}\nexport function getProcessArgvBin() {\n    return process.argv[getProcessArgvBinIndex()];\n}\n","import { readFileSync, statSync, writeFile } from 'fs';\nimport { format } from 'util';\nimport { resolve } from 'path';\nexport default {\n    fs: {\n        readFileSync,\n        writeFile\n    },\n    format,\n    resolve,\n    exists: (file) => {\n        try {\n            return statSync(file).isFile();\n        }\n        catch (err) {\n            return false;\n        }\n    }\n};\n","let shim;\nclass Y18N {\n    constructor(opts) {\n        // configurable options.\n        opts = opts || {};\n        this.directory = opts.directory || './locales';\n        this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true;\n        this.locale = opts.locale || 'en';\n        this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true;\n        // internal stuff.\n        this.cache = Object.create(null);\n        this.writeQueue = [];\n    }\n    __(...args) {\n        if (typeof arguments[0] !== 'string') {\n            return this._taggedLiteral(arguments[0], ...arguments);\n        }\n        const str = args.shift();\n        let cb = function () { }; // start with noop.\n        if (typeof args[args.length - 1] === 'function')\n            cb = args.pop();\n        cb = cb || function () { }; // noop.\n        if (!this.cache[this.locale])\n            this._readLocaleFile();\n        // we've observed a new string, update the language file.\n        if (!this.cache[this.locale][str] && this.updateFiles) {\n            this.cache[this.locale][str] = str;\n            // include the current directory and locale,\n            // since these values could change before the\n            // write is performed.\n            this._enqueueWrite({\n                directory: this.directory,\n                locale: this.locale,\n                cb\n            });\n        }\n        else {\n            cb();\n        }\n        return shim.format.apply(shim.format, [this.cache[this.locale][str] || str].concat(args));\n    }\n    __n() {\n        const args = Array.prototype.slice.call(arguments);\n        const singular = args.shift();\n        const plural = args.shift();\n        const quantity = args.shift();\n        let cb = function () { }; // start with noop.\n        if (typeof args[args.length - 1] === 'function')\n            cb = args.pop();\n        if (!this.cache[this.locale])\n            this._readLocaleFile();\n        let str = quantity === 1 ? singular : plural;\n        if (this.cache[this.locale][singular]) {\n            const entry = this.cache[this.locale][singular];\n            str = entry[quantity === 1 ? 'one' : 'other'];\n        }\n        // we've observed a new string, update the language file.\n        if (!this.cache[this.locale][singular] && this.updateFiles) {\n            this.cache[this.locale][singular] = {\n                one: singular,\n                other: plural\n            };\n            // include the current directory and locale,\n            // since these values could change before the\n            // write is performed.\n            this._enqueueWrite({\n                directory: this.directory,\n                locale: this.locale,\n                cb\n            });\n        }\n        else {\n            cb();\n        }\n        // if a %d placeholder is provided, add quantity\n        // to the arguments expanded by util.format.\n        const values = [str];\n        if (~str.indexOf('%d'))\n            values.push(quantity);\n        return shim.format.apply(shim.format, values.concat(args));\n    }\n    setLocale(locale) {\n        this.locale = locale;\n    }\n    getLocale() {\n        return this.locale;\n    }\n    updateLocale(obj) {\n        if (!this.cache[this.locale])\n            this._readLocaleFile();\n        for (const key in obj) {\n            if (Object.prototype.hasOwnProperty.call(obj, key)) {\n                this.cache[this.locale][key] = obj[key];\n            }\n        }\n    }\n    _taggedLiteral(parts, ...args) {\n        let str = '';\n        parts.forEach(function (part, i) {\n            const arg = args[i + 1];\n            str += part;\n            if (typeof arg !== 'undefined') {\n                str += '%s';\n            }\n        });\n        return this.__.apply(this, [str].concat([].slice.call(args, 1)));\n    }\n    _enqueueWrite(work) {\n        this.writeQueue.push(work);\n        if (this.writeQueue.length === 1)\n            this._processWriteQueue();\n    }\n    _processWriteQueue() {\n        const _this = this;\n        const work = this.writeQueue[0];\n        // destructure the enqueued work.\n        const directory = work.directory;\n        const locale = work.locale;\n        const cb = work.cb;\n        const languageFile = this._resolveLocaleFile(directory, locale);\n        const serializedLocale = JSON.stringify(this.cache[locale], null, 2);\n        shim.fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) {\n            _this.writeQueue.shift();\n            if (_this.writeQueue.length > 0)\n                _this._processWriteQueue();\n            cb(err);\n        });\n    }\n    _readLocaleFile() {\n        let localeLookup = {};\n        const languageFile = this._resolveLocaleFile(this.directory, this.locale);\n        try {\n            // When using a bundler such as webpack, readFileSync may not be defined:\n            if (shim.fs.readFileSync) {\n                localeLookup = JSON.parse(shim.fs.readFileSync(languageFile, 'utf-8'));\n            }\n        }\n        catch (err) {\n            if (err instanceof SyntaxError) {\n                err.message = 'syntax error in ' + languageFile;\n            }\n            if (err.code === 'ENOENT')\n                localeLookup = {};\n            else\n                throw err;\n        }\n        this.cache[this.locale] = localeLookup;\n    }\n    _resolveLocaleFile(directory, locale) {\n        let file = shim.resolve(directory, './', locale + '.json');\n        if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) {\n            // attempt fallback to language only\n            const languageFile = shim.resolve(directory, './', locale.split('_')[0] + '.json');\n            if (this._fileExistsSync(languageFile))\n                file = languageFile;\n        }\n        return file;\n    }\n    _fileExistsSync(file) {\n        return shim.exists(file);\n    }\n}\nexport function y18n(opts, _shim) {\n    shim = _shim;\n    const y18n = new Y18N(opts);\n    return {\n        __: y18n.__.bind(y18n),\n        __n: y18n.__n.bind(y18n),\n        setLocale: y18n.setLocale.bind(y18n),\n        getLocale: y18n.getLocale.bind(y18n),\n        updateLocale: y18n.updateLocale.bind(y18n),\n        locale: y18n.locale\n    };\n}\n","import shim from './build/lib/platform-shims/node.js'\nimport { y18n as _y18n } from './build/lib/index.js'\n\nconst y18n = (opts) => {\n  return _y18n(opts, shim)\n}\n\nexport default y18n\n","\"use strict\";\n// Call this function in a another function to find out the file from\n// which that function was called from. (Inspects the v8 stack trace)\n//\n// Inspired by http://stackoverflow.com/questions/13227489\nmodule.exports = function getCallerFile(position) {\n    if (position === void 0) { position = 2; }\n    if (position >= Error.stackTraceLimit) {\n        throw new TypeError('getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `' + position + '` and Error.stackTraceLimit was: `' + Error.stackTraceLimit + '`');\n    }\n    var oldPrepareStackTrace = Error.prepareStackTrace;\n    Error.prepareStackTrace = function (_, stack) { return stack; };\n    var stack = new Error().stack;\n    Error.prepareStackTrace = oldPrepareStackTrace;\n    if (stack !== null && typeof stack === 'object') {\n        // stack[0] holds this file\n        // stack[1] holds where this function was called\n        // stack[2] holds the file we're interested in\n        return stack[position] ? stack[position].getFileName() : undefined;\n    }\n};\n//# sourceMappingURL=index.js.map","'use strict'\n\nimport { notStrictEqual, strictEqual } from 'assert'\nimport cliui from 'cliui'\nimport escalade from 'escalade/sync'\nimport { inspect } from 'util'\nimport { fileURLToPath } from 'url';\nimport Parser from 'yargs-parser'\nimport { basename, dirname, extname, relative, resolve, join } from 'path'\nimport { getProcessArgvBin } from '../../build/lib/utils/process-argv.js'\nimport stringWidth from 'string-width';\nimport y18n from 'y18n'\nimport { createRequire } from 'node:module';\nimport getCallerFile from 'get-caller-file';\nimport { readFileSync, readdirSync } from 'node:fs'\n\nconst __dirname = fileURLToPath(import.meta.url);\nconst mainFilename = __dirname.substring(0, __dirname.lastIndexOf('node_modules'));\nconst require = createRequire(import.meta.url);\n\nexport default {\n  assert: {\n    notStrictEqual,\n    strictEqual\n  },\n  cliui,\n  findUp: escalade,\n  getEnv: (key) => {\n    return process.env[key]\n  },\n  inspect,\n  getProcessArgvBin,\n  mainFilename: mainFilename || process.cwd(),\n  Parser,\n  path: {\n    basename,\n    dirname,\n    extname,\n    relative,\n    resolve,\n    join\n  },\n  process: {\n    argv: () => process.argv,\n    cwd: process.cwd,\n    emitWarning: (warning, type) => process.emitWarning(warning, type),\n    execPath: () => process.execPath,\n    exit: (code) => {\n      // eslint-disable-next-line n/no-process-exit\n      process.exit(code);\n    },\n    nextTick: process.nextTick,\n    stdColumns: typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null\n  },\n  readFileSync,\n  readdirSync,\n  require,\n  getCallerFile: () => {\n    const callerFile = getCallerFile(3);\n    return callerFile.match(/^file:\\/\\//) ? fileURLToPath(callerFile) : callerFile;\n  },\n  stringWidth,\n  y18n: y18n({\n    directory: resolve(__dirname, '../../../locales'),\n    updateFiles: false\n  })\n}\n","export function assertNotStrictEqual(actual, expected, shim, message) {\n    shim.assert.notStrictEqual(actual, expected, message);\n}\nexport function assertSingleKey(actual, shim) {\n    shim.assert.strictEqual(typeof actual, 'string');\n}\nexport function objectKeys(object) {\n    return Object.keys(object);\n}\n","export function isPromise(maybePromise) {\n    return (!!maybePromise &&\n        !!maybePromise.then &&\n        typeof maybePromise.then === 'function');\n}\n","export class YError extends Error {\n    constructor(msg) {\n        super(msg || 'yargs error');\n        this.name = 'YError';\n        if (Error.captureStackTrace) {\n            Error.captureStackTrace(this, YError);\n        }\n    }\n}\n","export function parseCommand(cmd) {\n    const extraSpacesStrippedCommand = cmd.replace(/\\s{2,}/g, ' ');\n    const splitCommand = extraSpacesStrippedCommand.split(/\\s+(?![^[]*]|[^<]*>)/);\n    const bregex = /\\.*[\\][<>]/g;\n    const firstCommand = splitCommand.shift();\n    if (!firstCommand)\n        throw new Error(`No command found in: ${cmd}`);\n    const parsedCommand = {\n        cmd: firstCommand.replace(bregex, ''),\n        demanded: [],\n        optional: [],\n    };\n    splitCommand.forEach((cmd, i) => {\n        let variadic = false;\n        cmd = cmd.replace(/\\s/g, '');\n        if (/\\.+[\\]>]/.test(cmd) && i === splitCommand.length - 1)\n            variadic = true;\n        if (/^\\[/.test(cmd)) {\n            parsedCommand.optional.push({\n                cmd: cmd.replace(bregex, '').split('|'),\n                variadic,\n            });\n        }\n        else {\n            parsedCommand.demanded.push({\n                cmd: cmd.replace(bregex, '').split('|'),\n                variadic,\n            });\n        }\n    });\n    return parsedCommand;\n}\n","import { YError } from './yerror.js';\nimport { parseCommand } from './parse-command.js';\nconst positionName = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth'];\nexport function argsert(arg1, arg2, arg3) {\n    function parseArgs() {\n        return typeof arg1 === 'object'\n            ? [{ demanded: [], optional: [] }, arg1, arg2]\n            : [\n                parseCommand(`cmd ${arg1}`),\n                arg2,\n                arg3,\n            ];\n    }\n    try {\n        let position = 0;\n        const [parsed, callerArguments, _length] = parseArgs();\n        const args = [].slice.call(callerArguments);\n        while (args.length && args[args.length - 1] === undefined)\n            args.pop();\n        const length = _length || args.length;\n        if (length < parsed.demanded.length) {\n            throw new YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`);\n        }\n        const totalCommands = parsed.demanded.length + parsed.optional.length;\n        if (length > totalCommands) {\n            throw new YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`);\n        }\n        parsed.demanded.forEach(demanded => {\n            const arg = args.shift();\n            const observedType = guessType(arg);\n            const matchingTypes = demanded.cmd.filter(type => type === observedType || type === '*');\n            if (matchingTypes.length === 0)\n                argumentTypeError(observedType, demanded.cmd, position);\n            position += 1;\n        });\n        parsed.optional.forEach(optional => {\n            if (args.length === 0)\n                return;\n            const arg = args.shift();\n            const observedType = guessType(arg);\n            const matchingTypes = optional.cmd.filter(type => type === observedType || type === '*');\n            if (matchingTypes.length === 0)\n                argumentTypeError(observedType, optional.cmd, position);\n            position += 1;\n        });\n    }\n    catch (err) {\n        console.warn(err.stack);\n    }\n}\nfunction guessType(arg) {\n    if (Array.isArray(arg)) {\n        return 'array';\n    }\n    else if (arg === null) {\n        return 'null';\n    }\n    return typeof arg;\n}\nfunction argumentTypeError(observedType, allowedTypes, position) {\n    throw new YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`);\n}\n","import { argsert } from './argsert.js';\nimport { isPromise } from './utils/is-promise.js';\nexport class GlobalMiddleware {\n    constructor(yargs) {\n        this.globalMiddleware = [];\n        this.frozens = [];\n        this.yargs = yargs;\n    }\n    addMiddleware(callback, applyBeforeValidation, global = true, mutates = false) {\n        argsert('<array|function> [boolean] [boolean] [boolean]', [callback, applyBeforeValidation, global], arguments.length);\n        if (Array.isArray(callback)) {\n            for (let i = 0; i < callback.length; i++) {\n                if (typeof callback[i] !== 'function') {\n                    throw Error('middleware must be a function');\n                }\n                const m = callback[i];\n                m.applyBeforeValidation = applyBeforeValidation;\n                m.global = global;\n            }\n            Array.prototype.push.apply(this.globalMiddleware, callback);\n        }\n        else if (typeof callback === 'function') {\n            const m = callback;\n            m.applyBeforeValidation = applyBeforeValidation;\n            m.global = global;\n            m.mutates = mutates;\n            this.globalMiddleware.push(callback);\n        }\n        return this.yargs;\n    }\n    addCoerceMiddleware(callback, option) {\n        const aliases = this.yargs.getAliases();\n        this.globalMiddleware = this.globalMiddleware.filter(m => {\n            const toCheck = [...(aliases[option] || []), option];\n            if (!m.option)\n                return true;\n            else\n                return !toCheck.includes(m.option);\n        });\n        callback.option = option;\n        return this.addMiddleware(callback, true, true, true);\n    }\n    getMiddleware() {\n        return this.globalMiddleware;\n    }\n    freeze() {\n        this.frozens.push([...this.globalMiddleware]);\n    }\n    unfreeze() {\n        const frozen = this.frozens.pop();\n        if (frozen !== undefined)\n            this.globalMiddleware = frozen;\n    }\n    reset() {\n        this.globalMiddleware = this.globalMiddleware.filter(m => m.global);\n    }\n}\nexport function commandMiddlewareFactory(commandMiddleware) {\n    if (!commandMiddleware)\n        return [];\n    return commandMiddleware.map(middleware => {\n        middleware.applyBeforeValidation = false;\n        return middleware;\n    });\n}\nexport function applyMiddleware(argv, yargs, middlewares, beforeValidation) {\n    return middlewares.reduce((acc, middleware) => {\n        if (middleware.applyBeforeValidation !== beforeValidation) {\n            return acc;\n        }\n        if (middleware.mutates) {\n            if (middleware.applied)\n                return acc;\n            middleware.applied = true;\n        }\n        if (isPromise(acc)) {\n            return acc\n                .then(initialObj => Promise.all([initialObj, middleware(initialObj, yargs)]))\n                .then(([initialObj, middlewareObj]) => Object.assign(initialObj, middlewareObj));\n        }\n        else {\n            const result = middleware(acc, yargs);\n            return isPromise(result)\n                ? result.then(middlewareObj => Object.assign(acc, middlewareObj))\n                : Object.assign(acc, result);\n        }\n    }, argv);\n}\n","import { isPromise } from './is-promise.js';\nexport function maybeAsyncResult(getResult, resultHandler, errorHandler = (err) => {\n    throw err;\n}) {\n    try {\n        const result = isFunction(getResult) ? getResult() : getResult;\n        return isPromise(result)\n            ? result.then((result) => resultHandler(result))\n            : resultHandler(result);\n    }\n    catch (err) {\n        return errorHandler(err);\n    }\n}\nfunction isFunction(arg) {\n    return typeof arg === 'function';\n}\n","import { assertNotStrictEqual, } from './typings/common-types.js';\nimport { isPromise } from './utils/is-promise.js';\nimport { applyMiddleware, commandMiddlewareFactory, } from './middleware.js';\nimport { parseCommand } from './parse-command.js';\nimport { isYargsInstance, } from './yargs-factory.js';\nimport { maybeAsyncResult } from './utils/maybe-async-result.js';\nconst DEFAULT_MARKER = /(^\\*)|(^\\$0)/;\nexport class CommandInstance {\n    constructor(usage, validation, globalMiddleware, shim) {\n        this.requireCache = new Set();\n        this.handlers = {};\n        this.aliasMap = {};\n        this.frozens = [];\n        this.shim = shim;\n        this.usage = usage;\n        this.globalMiddleware = globalMiddleware;\n        this.validation = validation;\n    }\n    addDirectory(dir, req, callerFile, opts) {\n        opts = opts || {};\n        this.requireCache.add(callerFile);\n        const fullDirPath = this.shim.path.resolve(this.shim.path.dirname(callerFile), dir);\n        const files = this.shim.readdirSync(fullDirPath, {\n            recursive: opts.recurse ? true : false,\n        });\n        if (!Array.isArray(opts.extensions))\n            opts.extensions = ['js'];\n        const visit = typeof opts.visit === 'function' ? opts.visit : (o) => o;\n        for (const fileb of files) {\n            const file = fileb.toString();\n            if (opts.exclude) {\n                let exclude = false;\n                if (typeof opts.exclude === 'function') {\n                    exclude = opts.exclude(file);\n                }\n                else {\n                    exclude = opts.exclude.test(file);\n                }\n                if (exclude)\n                    continue;\n            }\n            if (opts.include) {\n                let include = false;\n                if (typeof opts.include === 'function') {\n                    include = opts.include(file);\n                }\n                else {\n                    include = opts.include.test(file);\n                }\n                if (!include)\n                    continue;\n            }\n            let supportedExtension = false;\n            for (const ext of opts.extensions) {\n                if (file.endsWith(ext))\n                    supportedExtension = true;\n            }\n            if (supportedExtension) {\n                const joined = this.shim.path.join(fullDirPath, file);\n                const module = req(joined);\n                const extendableModule = Object.create(null, Object.getOwnPropertyDescriptors({ ...module }));\n                const visited = visit(extendableModule, joined, file);\n                if (visited) {\n                    if (this.requireCache.has(joined))\n                        continue;\n                    else\n                        this.requireCache.add(joined);\n                    if (!extendableModule.command) {\n                        extendableModule.command = this.shim.path.basename(joined, this.shim.path.extname(joined));\n                    }\n                    this.addHandler(extendableModule);\n                }\n            }\n        }\n    }\n    addHandler(cmd, description, builder, handler, commandMiddleware, deprecated) {\n        let aliases = [];\n        const middlewares = commandMiddlewareFactory(commandMiddleware);\n        handler = handler || (() => { });\n        if (Array.isArray(cmd)) {\n            if (isCommandAndAliases(cmd)) {\n                [cmd, ...aliases] = cmd;\n            }\n            else {\n                for (const command of cmd) {\n                    this.addHandler(command);\n                }\n            }\n        }\n        else if (isCommandHandlerDefinition(cmd)) {\n            let command = Array.isArray(cmd.command) || typeof cmd.command === 'string'\n                ? cmd.command\n                : null;\n            if (command === null) {\n                throw new Error(`No command name given for module: ${this.shim.inspect(cmd)}`);\n            }\n            if (cmd.aliases)\n                command = [].concat(command).concat(cmd.aliases);\n            this.addHandler(command, this.extractDesc(cmd), cmd.builder, cmd.handler, cmd.middlewares, cmd.deprecated);\n            return;\n        }\n        else if (isCommandBuilderDefinition(builder)) {\n            this.addHandler([cmd].concat(aliases), description, builder.builder, builder.handler, builder.middlewares, builder.deprecated);\n            return;\n        }\n        if (typeof cmd === 'string') {\n            const parsedCommand = parseCommand(cmd);\n            aliases = aliases.map(alias => parseCommand(alias).cmd);\n            let isDefault = false;\n            const parsedAliases = [parsedCommand.cmd].concat(aliases).filter(c => {\n                if (DEFAULT_MARKER.test(c)) {\n                    isDefault = true;\n                    return false;\n                }\n                return true;\n            });\n            if (parsedAliases.length === 0 && isDefault)\n                parsedAliases.push('$0');\n            if (isDefault) {\n                parsedCommand.cmd = parsedAliases[0];\n                aliases = parsedAliases.slice(1);\n                cmd = cmd.replace(DEFAULT_MARKER, parsedCommand.cmd);\n            }\n            aliases.forEach(alias => {\n                this.aliasMap[alias] = parsedCommand.cmd;\n            });\n            if (description !== false) {\n                this.usage.command(cmd, description, isDefault, aliases, deprecated);\n            }\n            this.handlers[parsedCommand.cmd] = {\n                original: cmd,\n                description,\n                handler,\n                builder: builder || {},\n                middlewares,\n                deprecated,\n                demanded: parsedCommand.demanded,\n                optional: parsedCommand.optional,\n            };\n            if (isDefault)\n                this.defaultCommand = this.handlers[parsedCommand.cmd];\n        }\n    }\n    getCommandHandlers() {\n        return this.handlers;\n    }\n    getCommands() {\n        return Object.keys(this.handlers).concat(Object.keys(this.aliasMap));\n    }\n    hasDefaultCommand() {\n        return !!this.defaultCommand;\n    }\n    runCommand(command, yargs, parsed, commandIndex, helpOnly, helpOrVersionSet) {\n        const commandHandler = this.handlers[command] ||\n            this.handlers[this.aliasMap[command]] ||\n            this.defaultCommand;\n        const currentContext = yargs.getInternalMethods().getContext();\n        const parentCommands = currentContext.commands.slice();\n        const isDefaultCommand = !command;\n        if (command) {\n            currentContext.commands.push(command);\n            currentContext.fullCommands.push(commandHandler.original);\n        }\n        const builderResult = this.applyBuilderUpdateUsageAndParse(isDefaultCommand, commandHandler, yargs, parsed.aliases, parentCommands, commandIndex, helpOnly, helpOrVersionSet);\n        return isPromise(builderResult)\n            ? builderResult.then(result => this.applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, result.innerArgv, currentContext, helpOnly, result.aliases, yargs))\n            : this.applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, builderResult.innerArgv, currentContext, helpOnly, builderResult.aliases, yargs);\n    }\n    applyBuilderUpdateUsageAndParse(isDefaultCommand, commandHandler, yargs, aliases, parentCommands, commandIndex, helpOnly, helpOrVersionSet) {\n        const builder = commandHandler.builder;\n        let innerYargs = yargs;\n        if (isCommandBuilderCallback(builder)) {\n            yargs.getInternalMethods().getUsageInstance().freeze();\n            const builderOutput = builder(yargs.getInternalMethods().reset(aliases), helpOrVersionSet);\n            if (isPromise(builderOutput)) {\n                return builderOutput.then(output => {\n                    innerYargs = isYargsInstance(output) ? output : yargs;\n                    return this.parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly);\n                });\n            }\n        }\n        else if (isCommandBuilderOptionDefinitions(builder)) {\n            yargs.getInternalMethods().getUsageInstance().freeze();\n            innerYargs = yargs.getInternalMethods().reset(aliases);\n            Object.keys(commandHandler.builder).forEach(key => {\n                innerYargs.option(key, builder[key]);\n            });\n        }\n        return this.parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly);\n    }\n    parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly) {\n        if (isDefaultCommand)\n            innerYargs.getInternalMethods().getUsageInstance().unfreeze(true);\n        if (this.shouldUpdateUsage(innerYargs)) {\n            innerYargs\n                .getInternalMethods()\n                .getUsageInstance()\n                .usage(this.usageFromParentCommandsCommandHandler(parentCommands, commandHandler), commandHandler.description);\n        }\n        const innerArgv = innerYargs\n            .getInternalMethods()\n            .runYargsParserAndExecuteCommands(null, undefined, true, commandIndex, helpOnly);\n        return isPromise(innerArgv)\n            ? innerArgv.then(argv => ({\n                aliases: innerYargs.parsed.aliases,\n                innerArgv: argv,\n            }))\n            : {\n                aliases: innerYargs.parsed.aliases,\n                innerArgv: innerArgv,\n            };\n    }\n    shouldUpdateUsage(yargs) {\n        return (!yargs.getInternalMethods().getUsageInstance().getUsageDisabled() &&\n            yargs.getInternalMethods().getUsageInstance().getUsage().length === 0);\n    }\n    usageFromParentCommandsCommandHandler(parentCommands, commandHandler) {\n        const c = DEFAULT_MARKER.test(commandHandler.original)\n            ? commandHandler.original.replace(DEFAULT_MARKER, '').trim()\n            : commandHandler.original;\n        const pc = parentCommands.filter(c => {\n            return !DEFAULT_MARKER.test(c);\n        });\n        pc.push(c);\n        return `$0 ${pc.join(' ')}`;\n    }\n    handleValidationAndGetResult(isDefaultCommand, commandHandler, innerArgv, currentContext, aliases, yargs, middlewares, positionalMap) {\n        if (!yargs.getInternalMethods().getHasOutput()) {\n            const validation = yargs\n                .getInternalMethods()\n                .runValidation(aliases, positionalMap, yargs.parsed.error, isDefaultCommand);\n            innerArgv = maybeAsyncResult(innerArgv, result => {\n                validation(result);\n                return result;\n            });\n        }\n        if (commandHandler.handler && !yargs.getInternalMethods().getHasOutput()) {\n            yargs.getInternalMethods().setHasOutput();\n            const populateDoubleDash = !!yargs.getOptions().configuration['populate--'];\n            yargs\n                .getInternalMethods()\n                .postProcess(innerArgv, populateDoubleDash, false, false);\n            innerArgv = applyMiddleware(innerArgv, yargs, middlewares, false);\n            innerArgv = maybeAsyncResult(innerArgv, result => {\n                const handlerResult = commandHandler.handler(result);\n                return isPromise(handlerResult)\n                    ? handlerResult.then(() => result)\n                    : result;\n            });\n            if (!isDefaultCommand) {\n                yargs.getInternalMethods().getUsageInstance().cacheHelpMessage();\n            }\n            if (isPromise(innerArgv) &&\n                !yargs.getInternalMethods().hasParseCallback()) {\n                innerArgv.catch(error => {\n                    try {\n                        yargs.getInternalMethods().getUsageInstance().fail(null, error);\n                    }\n                    catch (_err) {\n                    }\n                });\n            }\n        }\n        if (!isDefaultCommand) {\n            currentContext.commands.pop();\n            currentContext.fullCommands.pop();\n        }\n        return innerArgv;\n    }\n    applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, innerArgv, currentContext, helpOnly, aliases, yargs) {\n        let positionalMap = {};\n        if (helpOnly)\n            return innerArgv;\n        if (!yargs.getInternalMethods().getHasOutput()) {\n            positionalMap = this.populatePositionals(commandHandler, innerArgv, currentContext, yargs);\n        }\n        const middlewares = this.globalMiddleware\n            .getMiddleware()\n            .slice(0)\n            .concat(commandHandler.middlewares);\n        const maybePromiseArgv = applyMiddleware(innerArgv, yargs, middlewares, true);\n        return isPromise(maybePromiseArgv)\n            ? maybePromiseArgv.then(resolvedInnerArgv => this.handleValidationAndGetResult(isDefaultCommand, commandHandler, resolvedInnerArgv, currentContext, aliases, yargs, middlewares, positionalMap))\n            : this.handleValidationAndGetResult(isDefaultCommand, commandHandler, maybePromiseArgv, currentContext, aliases, yargs, middlewares, positionalMap);\n    }\n    populatePositionals(commandHandler, argv, context, yargs) {\n        argv._ = argv._.slice(context.commands.length);\n        const demanded = commandHandler.demanded.slice(0);\n        const optional = commandHandler.optional.slice(0);\n        const positionalMap = {};\n        this.validation.positionalCount(demanded.length, argv._.length);\n        while (demanded.length) {\n            const demand = demanded.shift();\n            this.populatePositional(demand, argv, positionalMap);\n        }\n        while (optional.length) {\n            const maybe = optional.shift();\n            this.populatePositional(maybe, argv, positionalMap);\n        }\n        argv._ = context.commands.concat(argv._.map(a => '' + a));\n        this.postProcessPositionals(argv, positionalMap, this.cmdToParseOptions(commandHandler.original), yargs);\n        return positionalMap;\n    }\n    populatePositional(positional, argv, positionalMap) {\n        const cmd = positional.cmd[0];\n        if (positional.variadic) {\n            positionalMap[cmd] = argv._.splice(0).map(String);\n        }\n        else {\n            if (argv._.length)\n                positionalMap[cmd] = [String(argv._.shift())];\n        }\n    }\n    cmdToParseOptions(cmdString) {\n        const parseOptions = {\n            array: [],\n            default: {},\n            alias: {},\n            demand: {},\n        };\n        const parsed = parseCommand(cmdString);\n        parsed.demanded.forEach(d => {\n            const [cmd, ...aliases] = d.cmd;\n            if (d.variadic) {\n                parseOptions.array.push(cmd);\n                parseOptions.default[cmd] = [];\n            }\n            parseOptions.alias[cmd] = aliases;\n            parseOptions.demand[cmd] = true;\n        });\n        parsed.optional.forEach(o => {\n            const [cmd, ...aliases] = o.cmd;\n            if (o.variadic) {\n                parseOptions.array.push(cmd);\n                parseOptions.default[cmd] = [];\n            }\n            parseOptions.alias[cmd] = aliases;\n        });\n        return parseOptions;\n    }\n    postProcessPositionals(argv, positionalMap, parseOptions, yargs) {\n        const options = Object.assign({}, yargs.getOptions());\n        options.default = Object.assign(parseOptions.default, options.default);\n        for (const key of Object.keys(parseOptions.alias)) {\n            options.alias[key] = (options.alias[key] || []).concat(parseOptions.alias[key]);\n        }\n        options.array = options.array.concat(parseOptions.array);\n        options.config = {};\n        const unparsed = [];\n        Object.keys(positionalMap).forEach(key => {\n            positionalMap[key].map(value => {\n                if (options.configuration['unknown-options-as-args'])\n                    options.key[key] = true;\n                unparsed.push(`--${key}`);\n                unparsed.push(value);\n            });\n        });\n        if (!unparsed.length)\n            return;\n        const config = Object.assign({}, options.configuration, {\n            'populate--': false,\n        });\n        const parsed = this.shim.Parser.detailed(unparsed, Object.assign({}, options, {\n            configuration: config,\n        }));\n        if (parsed.error) {\n            yargs\n                .getInternalMethods()\n                .getUsageInstance()\n                .fail(parsed.error.message, parsed.error);\n        }\n        else {\n            const positionalKeys = Object.keys(positionalMap);\n            Object.keys(positionalMap).forEach(key => {\n                positionalKeys.push(...parsed.aliases[key]);\n            });\n            Object.keys(parsed.argv).forEach(key => {\n                if (positionalKeys.includes(key)) {\n                    if (!positionalMap[key])\n                        positionalMap[key] = parsed.argv[key];\n                    if (!this.isInConfigs(yargs, key) &&\n                        !this.isDefaulted(yargs, key) &&\n                        Object.prototype.hasOwnProperty.call(argv, key) &&\n                        Object.prototype.hasOwnProperty.call(parsed.argv, key) &&\n                        (Array.isArray(argv[key]) || Array.isArray(parsed.argv[key]))) {\n                        argv[key] = [].concat(argv[key], parsed.argv[key]);\n                    }\n                    else {\n                        argv[key] = parsed.argv[key];\n                    }\n                }\n            });\n        }\n    }\n    isDefaulted(yargs, key) {\n        const { default: defaults } = yargs.getOptions();\n        return (Object.prototype.hasOwnProperty.call(defaults, key) ||\n            Object.prototype.hasOwnProperty.call(defaults, this.shim.Parser.camelCase(key)));\n    }\n    isInConfigs(yargs, key) {\n        const { configObjects } = yargs.getOptions();\n        return (configObjects.some(c => Object.prototype.hasOwnProperty.call(c, key)) ||\n            configObjects.some(c => Object.prototype.hasOwnProperty.call(c, this.shim.Parser.camelCase(key))));\n    }\n    runDefaultBuilderOn(yargs) {\n        if (!this.defaultCommand)\n            return;\n        if (this.shouldUpdateUsage(yargs)) {\n            const commandString = DEFAULT_MARKER.test(this.defaultCommand.original)\n                ? this.defaultCommand.original\n                : this.defaultCommand.original.replace(/^[^[\\]<>]*/, '$0 ');\n            yargs\n                .getInternalMethods()\n                .getUsageInstance()\n                .usage(commandString, this.defaultCommand.description);\n        }\n        const builder = this.defaultCommand.builder;\n        if (isCommandBuilderCallback(builder)) {\n            return builder(yargs, true);\n        }\n        else if (!isCommandBuilderDefinition(builder)) {\n            Object.keys(builder).forEach(key => {\n                yargs.option(key, builder[key]);\n            });\n        }\n        return undefined;\n    }\n    extractDesc({ describe, description, desc }) {\n        for (const test of [describe, description, desc]) {\n            if (typeof test === 'string' || test === false)\n                return test;\n            assertNotStrictEqual(test, true, this.shim);\n        }\n        return false;\n    }\n    freeze() {\n        this.frozens.push({\n            handlers: this.handlers,\n            aliasMap: this.aliasMap,\n            defaultCommand: this.defaultCommand,\n        });\n    }\n    unfreeze() {\n        const frozen = this.frozens.pop();\n        assertNotStrictEqual(frozen, undefined, this.shim);\n        ({\n            handlers: this.handlers,\n            aliasMap: this.aliasMap,\n            defaultCommand: this.defaultCommand,\n        } = frozen);\n    }\n    reset() {\n        this.handlers = {};\n        this.aliasMap = {};\n        this.defaultCommand = undefined;\n        this.requireCache = new Set();\n        return this;\n    }\n}\nexport function command(usage, validation, globalMiddleware, shim) {\n    return new CommandInstance(usage, validation, globalMiddleware, shim);\n}\nexport function isCommandBuilderDefinition(builder) {\n    return (typeof builder === 'object' &&\n        !!builder.builder &&\n        typeof builder.handler === 'function');\n}\nfunction isCommandAndAliases(cmd) {\n    return cmd.every(c => typeof c === 'string');\n}\nexport function isCommandBuilderCallback(builder) {\n    return typeof builder === 'function';\n}\nfunction isCommandBuilderOptionDefinitions(builder) {\n    return typeof builder === 'object';\n}\nexport function isCommandHandlerDefinition(cmd) {\n    return typeof cmd === 'object' && !Array.isArray(cmd);\n}\n","import { objectKeys } from '../typings/common-types.js';\nexport function objFilter(original = {}, filter = () => true) {\n    const obj = {};\n    objectKeys(original).forEach(key => {\n        if (filter(key, original[key])) {\n            obj[key] = original[key];\n        }\n    });\n    return obj;\n}\n","export default function setBlocking(blocking) {\n    if (typeof process === 'undefined')\n        return;\n    [process.stdout, process.stderr].forEach(_stream => {\n        const stream = _stream;\n        if (stream._handle &&\n            stream.isTTY &&\n            typeof stream._handle.setBlocking === 'function') {\n            stream._handle.setBlocking(blocking);\n        }\n    });\n}\n","import { objFilter } from './utils/obj-filter.js';\nimport { YError } from './yerror.js';\nimport setBlocking from './utils/set-blocking.js';\nfunction isBoolean(fail) {\n    return typeof fail === 'boolean';\n}\nexport function usage(yargs, shim) {\n    const __ = shim.y18n.__;\n    const self = {};\n    const fails = [];\n    self.failFn = function failFn(f) {\n        fails.push(f);\n    };\n    let failMessage = null;\n    let globalFailMessage = null;\n    let showHelpOnFail = true;\n    self.showHelpOnFail = function showHelpOnFailFn(arg1 = true, arg2) {\n        const [enabled, message] = typeof arg1 === 'string' ? [true, arg1] : [arg1, arg2];\n        if (yargs.getInternalMethods().isGlobalContext()) {\n            globalFailMessage = message;\n        }\n        failMessage = message;\n        showHelpOnFail = enabled;\n        return self;\n    };\n    let failureOutput = false;\n    self.fail = function fail(msg, err) {\n        const logger = yargs.getInternalMethods().getLoggerInstance();\n        if (fails.length) {\n            for (let i = fails.length - 1; i >= 0; --i) {\n                const fail = fails[i];\n                if (isBoolean(fail)) {\n                    if (err)\n                        throw err;\n                    else if (msg)\n                        throw Error(msg);\n                }\n                else {\n                    fail(msg, err, self);\n                }\n            }\n        }\n        else {\n            if (yargs.getExitProcess())\n                setBlocking(true);\n            if (!failureOutput) {\n                failureOutput = true;\n                if (showHelpOnFail) {\n                    yargs.showHelp('error');\n                    logger.error();\n                }\n                if (msg || err)\n                    logger.error(msg || err);\n                const globalOrCommandFailMessage = failMessage || globalFailMessage;\n                if (globalOrCommandFailMessage) {\n                    if (msg || err)\n                        logger.error('');\n                    logger.error(globalOrCommandFailMessage);\n                }\n            }\n            err = err || new YError(msg);\n            if (yargs.getExitProcess()) {\n                return yargs.exit(1);\n            }\n            else if (yargs.getInternalMethods().hasParseCallback()) {\n                return yargs.exit(1, err);\n            }\n            else {\n                throw err;\n            }\n        }\n    };\n    let usages = [];\n    let usageDisabled = false;\n    self.usage = (msg, description) => {\n        if (msg === null) {\n            usageDisabled = true;\n            usages = [];\n            return self;\n        }\n        usageDisabled = false;\n        usages.push([msg, description || '']);\n        return self;\n    };\n    self.getUsage = () => {\n        return usages;\n    };\n    self.getUsageDisabled = () => {\n        return usageDisabled;\n    };\n    self.getPositionalGroupName = () => {\n        return __('Positionals:');\n    };\n    let examples = [];\n    self.example = (cmd, description) => {\n        examples.push([cmd, description || '']);\n    };\n    let commands = [];\n    self.command = function command(cmd, description, isDefault, aliases, deprecated = false) {\n        if (isDefault) {\n            commands = commands.map(cmdArray => {\n                cmdArray[2] = false;\n                return cmdArray;\n            });\n        }\n        commands.push([cmd, description || '', isDefault, aliases, deprecated]);\n    };\n    self.getCommands = () => commands;\n    let descriptions = {};\n    self.describe = function describe(keyOrKeys, desc) {\n        if (Array.isArray(keyOrKeys)) {\n            keyOrKeys.forEach(k => {\n                self.describe(k, desc);\n            });\n        }\n        else if (typeof keyOrKeys === 'object') {\n            Object.keys(keyOrKeys).forEach(k => {\n                self.describe(k, keyOrKeys[k]);\n            });\n        }\n        else {\n            descriptions[keyOrKeys] = desc;\n        }\n    };\n    self.getDescriptions = () => descriptions;\n    let epilogs = [];\n    self.epilog = msg => {\n        epilogs.push(msg);\n    };\n    let wrapSet = false;\n    let wrap;\n    self.wrap = cols => {\n        wrapSet = true;\n        wrap = cols;\n    };\n    self.getWrap = () => {\n        if (shim.getEnv('YARGS_DISABLE_WRAP')) {\n            return null;\n        }\n        if (!wrapSet) {\n            wrap = windowWidth();\n            wrapSet = true;\n        }\n        return wrap;\n    };\n    const deferY18nLookupPrefix = '__yargsString__:';\n    self.deferY18nLookup = str => deferY18nLookupPrefix + str;\n    self.help = function help() {\n        if (cachedHelpMessage)\n            return cachedHelpMessage;\n        normalizeAliases();\n        const base$0 = yargs.customScriptName\n            ? yargs.$0\n            : shim.path.basename(yargs.$0);\n        const demandedOptions = yargs.getDemandedOptions();\n        const demandedCommands = yargs.getDemandedCommands();\n        const deprecatedOptions = yargs.getDeprecatedOptions();\n        const groups = yargs.getGroups();\n        const options = yargs.getOptions();\n        let keys = [];\n        keys = keys.concat(Object.keys(descriptions));\n        keys = keys.concat(Object.keys(demandedOptions));\n        keys = keys.concat(Object.keys(demandedCommands));\n        keys = keys.concat(Object.keys(options.default));\n        keys = keys.filter(filterHiddenOptions);\n        keys = Object.keys(keys.reduce((acc, key) => {\n            if (key !== '_')\n                acc[key] = true;\n            return acc;\n        }, {}));\n        const theWrap = self.getWrap();\n        const ui = shim.cliui({\n            width: theWrap,\n            wrap: !!theWrap,\n        });\n        if (!usageDisabled) {\n            if (usages.length) {\n                usages.forEach(usage => {\n                    ui.div({ text: `${usage[0].replace(/\\$0/g, base$0)}` });\n                    if (usage[1]) {\n                        ui.div({ text: `${usage[1]}`, padding: [1, 0, 0, 0] });\n                    }\n                });\n                ui.div();\n            }\n            else if (commands.length) {\n                let u = null;\n                if (demandedCommands._) {\n                    u = `${base$0} <${__('command')}>\\n`;\n                }\n                else {\n                    u = `${base$0} [${__('command')}]\\n`;\n                }\n                ui.div(`${u}`);\n            }\n        }\n        if (commands.length > 1 || (commands.length === 1 && !commands[0][2])) {\n            ui.div(__('Commands:'));\n            const context = yargs.getInternalMethods().getContext();\n            const parentCommands = context.commands.length\n                ? `${context.commands.join(' ')} `\n                : '';\n            if (yargs.getInternalMethods().getParserConfiguration()['sort-commands'] ===\n                true) {\n                commands = commands.sort((a, b) => a[0].localeCompare(b[0]));\n            }\n            const prefix = base$0 ? `${base$0} ` : '';\n            commands.forEach(command => {\n                const commandString = `${prefix}${parentCommands}${command[0].replace(/^\\$0 ?/, '')}`;\n                ui.span({\n                    text: commandString,\n                    padding: [0, 2, 0, 2],\n                    width: maxWidth(commands, theWrap, `${base$0}${parentCommands}`) + 4,\n                }, { text: command[1] });\n                const hints = [];\n                if (command[2])\n                    hints.push(`[${__('default')}]`);\n                if (command[3] && command[3].length) {\n                    hints.push(`[${__('aliases:')} ${command[3].join(', ')}]`);\n                }\n                if (command[4]) {\n                    if (typeof command[4] === 'string') {\n                        hints.push(`[${__('deprecated: %s', command[4])}]`);\n                    }\n                    else {\n                        hints.push(`[${__('deprecated')}]`);\n                    }\n                }\n                if (hints.length) {\n                    ui.div({\n                        text: hints.join(' '),\n                        padding: [0, 0, 0, 2],\n                        align: 'right',\n                    });\n                }\n                else {\n                    ui.div();\n                }\n            });\n            ui.div();\n        }\n        const aliasKeys = (Object.keys(options.alias) || []).concat(Object.keys(yargs.parsed.newAliases) || []);\n        keys = keys.filter(key => !yargs.parsed.newAliases[key] &&\n            aliasKeys.every(alias => (options.alias[alias] || []).indexOf(key) === -1));\n        const defaultGroup = __('Options:');\n        if (!groups[defaultGroup])\n            groups[defaultGroup] = [];\n        addUngroupedKeys(keys, options.alias, groups, defaultGroup);\n        const isLongSwitch = (sw) => /^--/.test(getText(sw));\n        const displayedGroups = Object.keys(groups)\n            .filter(groupName => groups[groupName].length > 0)\n            .map(groupName => {\n            const normalizedKeys = groups[groupName]\n                .filter(filterHiddenOptions)\n                .map(key => {\n                if (aliasKeys.includes(key))\n                    return key;\n                for (let i = 0, aliasKey; (aliasKey = aliasKeys[i]) !== undefined; i++) {\n                    if ((options.alias[aliasKey] || []).includes(key))\n                        return aliasKey;\n                }\n                return key;\n            });\n            return { groupName, normalizedKeys };\n        })\n            .filter(({ normalizedKeys }) => normalizedKeys.length > 0)\n            .map(({ groupName, normalizedKeys }) => {\n            const switches = normalizedKeys.reduce((acc, key) => {\n                acc[key] = [key]\n                    .concat(options.alias[key] || [])\n                    .map(sw => {\n                    if (groupName === self.getPositionalGroupName())\n                        return sw;\n                    else {\n                        return ((/^[0-9]$/.test(sw)\n                            ? options.boolean.includes(key)\n                                ? '-'\n                                : '--'\n                            : sw.length > 1\n                                ? '--'\n                                : '-') + sw);\n                    }\n                })\n                    .sort((sw1, sw2) => isLongSwitch(sw1) === isLongSwitch(sw2)\n                    ? 0\n                    : isLongSwitch(sw1)\n                        ? 1\n                        : -1)\n                    .join(', ');\n                return acc;\n            }, {});\n            return { groupName, normalizedKeys, switches };\n        });\n        const shortSwitchesUsed = displayedGroups\n            .filter(({ groupName }) => groupName !== self.getPositionalGroupName())\n            .some(({ normalizedKeys, switches }) => !normalizedKeys.every(key => isLongSwitch(switches[key])));\n        if (shortSwitchesUsed) {\n            displayedGroups\n                .filter(({ groupName }) => groupName !== self.getPositionalGroupName())\n                .forEach(({ normalizedKeys, switches }) => {\n                normalizedKeys.forEach(key => {\n                    if (isLongSwitch(switches[key])) {\n                        switches[key] = addIndentation(switches[key], '-x, '.length);\n                    }\n                });\n            });\n        }\n        displayedGroups.forEach(({ groupName, normalizedKeys, switches }) => {\n            ui.div(groupName);\n            normalizedKeys.forEach(key => {\n                const kswitch = switches[key];\n                let desc = descriptions[key] || '';\n                let type = null;\n                if (desc.includes(deferY18nLookupPrefix))\n                    desc = __(desc.substring(deferY18nLookupPrefix.length));\n                if (options.boolean.includes(key))\n                    type = `[${__('boolean')}]`;\n                if (options.count.includes(key))\n                    type = `[${__('count')}]`;\n                if (options.string.includes(key))\n                    type = `[${__('string')}]`;\n                if (options.normalize.includes(key))\n                    type = `[${__('string')}]`;\n                if (options.array.includes(key))\n                    type = `[${__('array')}]`;\n                if (options.number.includes(key))\n                    type = `[${__('number')}]`;\n                const deprecatedExtra = (deprecated) => typeof deprecated === 'string'\n                    ? `[${__('deprecated: %s', deprecated)}]`\n                    : `[${__('deprecated')}]`;\n                const extra = [\n                    key in deprecatedOptions\n                        ? deprecatedExtra(deprecatedOptions[key])\n                        : null,\n                    type,\n                    key in demandedOptions ? `[${__('required')}]` : null,\n                    options.choices && options.choices[key]\n                        ? `[${__('choices:')} ${self.stringifiedValues(options.choices[key])}]`\n                        : null,\n                    defaultString(options.default[key], options.defaultDescription[key]),\n                ]\n                    .filter(Boolean)\n                    .join(' ');\n                ui.span({\n                    text: getText(kswitch),\n                    padding: [0, 2, 0, 2 + getIndentation(kswitch)],\n                    width: maxWidth(switches, theWrap) + 4,\n                }, desc);\n                const shouldHideOptionExtras = yargs.getInternalMethods().getUsageConfiguration()['hide-types'] ===\n                    true;\n                if (extra && !shouldHideOptionExtras)\n                    ui.div({ text: extra, padding: [0, 0, 0, 2], align: 'right' });\n                else\n                    ui.div();\n            });\n            ui.div();\n        });\n        if (examples.length) {\n            ui.div(__('Examples:'));\n            examples.forEach(example => {\n                example[0] = example[0].replace(/\\$0/g, base$0);\n            });\n            examples.forEach(example => {\n                if (example[1] === '') {\n                    ui.div({\n                        text: example[0],\n                        padding: [0, 2, 0, 2],\n                    });\n                }\n                else {\n                    ui.div({\n                        text: example[0],\n                        padding: [0, 2, 0, 2],\n                        width: maxWidth(examples, theWrap) + 4,\n                    }, {\n                        text: example[1],\n                    });\n                }\n            });\n            ui.div();\n        }\n        if (epilogs.length > 0) {\n            const e = epilogs\n                .map(epilog => epilog.replace(/\\$0/g, base$0))\n                .join('\\n');\n            ui.div(`${e}\\n`);\n        }\n        return ui.toString().replace(/\\s*$/, '');\n    };\n    function maxWidth(table, theWrap, modifier) {\n        let width = 0;\n        if (!Array.isArray(table)) {\n            table = Object.values(table).map(v => [v]);\n        }\n        table.forEach(v => {\n            width = Math.max(shim.stringWidth(modifier ? `${modifier} ${getText(v[0])}` : getText(v[0])) + getIndentation(v[0]), width);\n        });\n        if (theWrap)\n            width = Math.min(width, parseInt((theWrap * 0.5).toString(), 10));\n        return width;\n    }\n    function normalizeAliases() {\n        const demandedOptions = yargs.getDemandedOptions();\n        const options = yargs.getOptions();\n        (Object.keys(options.alias) || []).forEach(key => {\n            options.alias[key].forEach(alias => {\n                if (descriptions[alias])\n                    self.describe(key, descriptions[alias]);\n                if (alias in demandedOptions)\n                    yargs.demandOption(key, demandedOptions[alias]);\n                if (options.boolean.includes(alias))\n                    yargs.boolean(key);\n                if (options.count.includes(alias))\n                    yargs.count(key);\n                if (options.string.includes(alias))\n                    yargs.string(key);\n                if (options.normalize.includes(alias))\n                    yargs.normalize(key);\n                if (options.array.includes(alias))\n                    yargs.array(key);\n                if (options.number.includes(alias))\n                    yargs.number(key);\n            });\n        });\n    }\n    let cachedHelpMessage;\n    self.cacheHelpMessage = function () {\n        cachedHelpMessage = this.help();\n    };\n    self.clearCachedHelpMessage = function () {\n        cachedHelpMessage = undefined;\n    };\n    self.hasCachedHelpMessage = function () {\n        return !!cachedHelpMessage;\n    };\n    function addUngroupedKeys(keys, aliases, groups, defaultGroup) {\n        let groupedKeys = [];\n        let toCheck = null;\n        Object.keys(groups).forEach(group => {\n            groupedKeys = groupedKeys.concat(groups[group]);\n        });\n        keys.forEach(key => {\n            toCheck = [key].concat(aliases[key]);\n            if (!toCheck.some(k => groupedKeys.indexOf(k) !== -1)) {\n                groups[defaultGroup].push(key);\n            }\n        });\n        return groupedKeys;\n    }\n    function filterHiddenOptions(key) {\n        return (yargs.getOptions().hiddenOptions.indexOf(key) < 0 ||\n            yargs.parsed.argv[yargs.getOptions().showHiddenOpt]);\n    }\n    self.showHelp = (level) => {\n        const logger = yargs.getInternalMethods().getLoggerInstance();\n        if (!level)\n            level = 'error';\n        const emit = typeof level === 'function' ? level : logger[level];\n        emit(self.help());\n    };\n    self.functionDescription = fn => {\n        const description = fn.name\n            ? shim.Parser.decamelize(fn.name, '-')\n            : __('generated-value');\n        return ['(', description, ')'].join('');\n    };\n    self.stringifiedValues = function stringifiedValues(values, separator) {\n        let string = '';\n        const sep = separator || ', ';\n        const array = [].concat(values);\n        if (!values || !array.length)\n            return string;\n        array.forEach(value => {\n            if (string.length)\n                string += sep;\n            string += JSON.stringify(value);\n        });\n        return string;\n    };\n    function defaultString(value, defaultDescription) {\n        let string = `[${__('default:')} `;\n        if (value === undefined && !defaultDescription)\n            return null;\n        if (defaultDescription) {\n            string += defaultDescription;\n        }\n        else {\n            switch (typeof value) {\n                case 'string':\n                    string += `\"${value}\"`;\n                    break;\n                case 'object':\n                    string += JSON.stringify(value);\n                    break;\n                default:\n                    string += value;\n            }\n        }\n        return `${string}]`;\n    }\n    function windowWidth() {\n        const maxWidth = 80;\n        if (shim.process.stdColumns) {\n            return Math.min(maxWidth, shim.process.stdColumns);\n        }\n        else {\n            return maxWidth;\n        }\n    }\n    let version = null;\n    self.version = ver => {\n        version = ver;\n    };\n    self.showVersion = level => {\n        const logger = yargs.getInternalMethods().getLoggerInstance();\n        if (!level)\n            level = 'error';\n        const emit = typeof level === 'function' ? level : logger[level];\n        emit(version);\n    };\n    self.reset = function reset(localLookup) {\n        failMessage = null;\n        failureOutput = false;\n        usages = [];\n        usageDisabled = false;\n        epilogs = [];\n        examples = [];\n        commands = [];\n        descriptions = objFilter(descriptions, k => !localLookup[k]);\n        return self;\n    };\n    const frozens = [];\n    self.freeze = function freeze() {\n        frozens.push({\n            failMessage,\n            failureOutput,\n            usages,\n            usageDisabled,\n            epilogs,\n            examples,\n            commands,\n            descriptions,\n        });\n    };\n    self.unfreeze = function unfreeze(defaultCommand = false) {\n        const frozen = frozens.pop();\n        if (!frozen)\n            return;\n        if (defaultCommand) {\n            descriptions = { ...frozen.descriptions, ...descriptions };\n            commands = [...frozen.commands, ...commands];\n            usages = [...frozen.usages, ...usages];\n            examples = [...frozen.examples, ...examples];\n            epilogs = [...frozen.epilogs, ...epilogs];\n        }\n        else {\n            ({\n                failMessage,\n                failureOutput,\n                usages,\n                usageDisabled,\n                epilogs,\n                examples,\n                commands,\n                descriptions,\n            } = frozen);\n        }\n    };\n    return self;\n}\nfunction isIndentedText(text) {\n    return typeof text === 'object';\n}\nfunction addIndentation(text, indent) {\n    return isIndentedText(text)\n        ? { text: text.text, indentation: text.indentation + indent }\n        : { text, indentation: indent };\n}\nfunction getIndentation(text) {\n    return isIndentedText(text) ? text.indentation : 0;\n}\nfunction getText(text) {\n    return isIndentedText(text) ? text.text : text;\n}\n","export const completionShTemplate = `###-begin-{{app_name}}-completions-###\n#\n# yargs command completion script\n#\n# Installation: {{app_path}} {{completion_command}} >> ~/.bashrc\n#    or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX.\n#\n_{{app_name}}_yargs_completions()\n{\n    local cur_word args type_list\n\n    cur_word=\"\\${COMP_WORDS[COMP_CWORD]}\"\n    args=(\"\\${COMP_WORDS[@]}\")\n\n    # ask yargs to generate completions.\n    # see https://stackoverflow.com/a/40944195/7080036 for the spaces-handling awk\n    mapfile -t type_list < <({{app_path}} --get-yargs-completions \"\\${args[@]}\")\n    mapfile -t COMPREPLY < <(compgen -W \"$( printf '%q ' \"\\${type_list[@]}\" )\" -- \"\\${cur_word}\" |\n        awk '/ / { print \"\\\\\"\"$0\"\\\\\"\" } /^[^ ]+$/ { print $0 }')\n\n    # if no match was found, fall back to filename completion\n    if [ \\${#COMPREPLY[@]} -eq 0 ]; then\n      COMPREPLY=()\n    fi\n\n    return 0\n}\ncomplete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}}\n###-end-{{app_name}}-completions-###\n`;\nexport const completionZshTemplate = `#compdef {{app_name}}\n###-begin-{{app_name}}-completions-###\n#\n# yargs command completion script\n#\n# Installation: {{app_path}} {{completion_command}} >> ~/.zshrc\n#    or {{app_path}} {{completion_command}} >> ~/.zprofile on OSX.\n#\n_{{app_name}}_yargs_completions()\n{\n  local reply\n  local si=$IFS\n  IFS=$'\\n' reply=($(COMP_CWORD=\"$((CURRENT-1))\" COMP_LINE=\"$BUFFER\" COMP_POINT=\"$CURSOR\" {{app_path}} --get-yargs-completions \"\\${words[@]}\"))\n  IFS=$si\n  if [[ \\${#reply} -gt 0 ]]; then\n    _describe 'values' reply\n  else\n    _default\n  fi\n}\nif [[ \"'\\${zsh_eval_context[-1]}\" == \"loadautofunc\" ]]; then\n  _{{app_name}}_yargs_completions \"$@\"\nelse\n  compdef _{{app_name}}_yargs_completions {{app_name}}\nfi\n###-end-{{app_name}}-completions-###\n`;\n","import { isCommandBuilderCallback } from './command.js';\nimport { assertNotStrictEqual } from './typings/common-types.js';\nimport * as templates from './completion-templates.js';\nimport { isPromise } from './utils/is-promise.js';\nimport { parseCommand } from './parse-command.js';\nexport class Completion {\n    constructor(yargs, usage, command, shim) {\n        var _a, _b, _c;\n        this.yargs = yargs;\n        this.usage = usage;\n        this.command = command;\n        this.shim = shim;\n        this.completionKey = 'get-yargs-completions';\n        this.aliases = null;\n        this.customCompletionFunction = null;\n        this.indexAfterLastReset = 0;\n        this.zshShell =\n            (_c = (((_a = this.shim.getEnv('SHELL')) === null || _a === void 0 ? void 0 : _a.includes('zsh')) ||\n                ((_b = this.shim.getEnv('ZSH_NAME')) === null || _b === void 0 ? void 0 : _b.includes('zsh')))) !== null && _c !== void 0 ? _c : false;\n    }\n    defaultCompletion(args, argv, current, done) {\n        const handlers = this.command.getCommandHandlers();\n        for (let i = 0, ii = args.length; i < ii; ++i) {\n            if (handlers[args[i]] && handlers[args[i]].builder) {\n                const builder = handlers[args[i]].builder;\n                if (isCommandBuilderCallback(builder)) {\n                    this.indexAfterLastReset = i + 1;\n                    const y = this.yargs.getInternalMethods().reset();\n                    builder(y, true);\n                    return y.argv;\n                }\n            }\n        }\n        const completions = [];\n        this.commandCompletions(completions, args, current);\n        this.optionCompletions(completions, args, argv, current);\n        this.choicesFromOptionsCompletions(completions, args, argv, current);\n        this.choicesFromPositionalsCompletions(completions, args, argv, current);\n        done(null, completions);\n    }\n    commandCompletions(completions, args, current) {\n        const parentCommands = this.yargs\n            .getInternalMethods()\n            .getContext().commands;\n        if (!current.match(/^-/) &&\n            parentCommands[parentCommands.length - 1] !== current &&\n            !this.previousArgHasChoices(args)) {\n            this.usage.getCommands().forEach(usageCommand => {\n                const commandName = parseCommand(usageCommand[0]).cmd;\n                if (args.indexOf(commandName) === -1) {\n                    if (!this.zshShell) {\n                        completions.push(commandName);\n                    }\n                    else {\n                        const desc = usageCommand[1] || '';\n                        completions.push(commandName.replace(/:/g, '\\\\:') + ':' + desc);\n                    }\n                }\n            });\n        }\n    }\n    optionCompletions(completions, args, argv, current) {\n        if ((current.match(/^-/) || (current === '' && completions.length === 0)) &&\n            !this.previousArgHasChoices(args)) {\n            const options = this.yargs.getOptions();\n            const positionalKeys = this.yargs.getGroups()[this.usage.getPositionalGroupName()] || [];\n            Object.keys(options.key).forEach(key => {\n                const negable = !!options.configuration['boolean-negation'] &&\n                    options.boolean.includes(key);\n                const isPositionalKey = positionalKeys.includes(key);\n                if (!isPositionalKey &&\n                    !options.hiddenOptions.includes(key) &&\n                    !this.argsContainKey(args, key, negable)) {\n                    this.completeOptionKey(key, completions, current, negable && !!options.default[key]);\n                }\n            });\n        }\n    }\n    choicesFromOptionsCompletions(completions, args, argv, current) {\n        if (this.previousArgHasChoices(args)) {\n            const choices = this.getPreviousArgChoices(args);\n            if (choices && choices.length > 0) {\n                completions.push(...choices.map(c => c.replace(/:/g, '\\\\:')));\n            }\n        }\n    }\n    choicesFromPositionalsCompletions(completions, args, argv, current) {\n        if (current === '' &&\n            completions.length > 0 &&\n            this.previousArgHasChoices(args)) {\n            return;\n        }\n        const positionalKeys = this.yargs.getGroups()[this.usage.getPositionalGroupName()] || [];\n        const offset = Math.max(this.indexAfterLastReset, this.yargs.getInternalMethods().getContext().commands.length +\n            1);\n        const positionalKey = positionalKeys[argv._.length - offset - 1];\n        if (!positionalKey) {\n            return;\n        }\n        const choices = this.yargs.getOptions().choices[positionalKey] || [];\n        for (const choice of choices) {\n            if (choice.startsWith(current)) {\n                completions.push(choice.replace(/:/g, '\\\\:'));\n            }\n        }\n    }\n    getPreviousArgChoices(args) {\n        if (args.length < 1)\n            return;\n        let previousArg = args[args.length - 1];\n        let filter = '';\n        if (!previousArg.startsWith('-') && args.length > 1) {\n            filter = previousArg;\n            previousArg = args[args.length - 2];\n        }\n        if (!previousArg.startsWith('-'))\n            return;\n        const previousArgKey = previousArg.replace(/^-+/, '');\n        const options = this.yargs.getOptions();\n        const possibleAliases = [\n            previousArgKey,\n            ...(this.yargs.getAliases()[previousArgKey] || []),\n        ];\n        let choices;\n        for (const possibleAlias of possibleAliases) {\n            if (Object.prototype.hasOwnProperty.call(options.key, possibleAlias) &&\n                Array.isArray(options.choices[possibleAlias])) {\n                choices = options.choices[possibleAlias];\n                break;\n            }\n        }\n        if (choices) {\n            return choices.filter(choice => !filter || choice.startsWith(filter));\n        }\n    }\n    previousArgHasChoices(args) {\n        const choices = this.getPreviousArgChoices(args);\n        return choices !== undefined && choices.length > 0;\n    }\n    argsContainKey(args, key, negable) {\n        const argsContains = (s) => args.indexOf((/^[^0-9]$/.test(s) ? '-' : '--') + s) !== -1;\n        if (argsContains(key))\n            return true;\n        if (negable && argsContains(`no-${key}`))\n            return true;\n        if (this.aliases) {\n            for (const alias of this.aliases[key]) {\n                if (argsContains(alias))\n                    return true;\n            }\n        }\n        return false;\n    }\n    completeOptionKey(key, completions, current, negable) {\n        var _a, _b, _c, _d;\n        let keyWithDesc = key;\n        if (this.zshShell) {\n            const descs = this.usage.getDescriptions();\n            const aliasKey = (_b = (_a = this === null || this === void 0 ? void 0 : this.aliases) === null || _a === void 0 ? void 0 : _a[key]) === null || _b === void 0 ? void 0 : _b.find(alias => {\n                const desc = descs[alias];\n                return typeof desc === 'string' && desc.length > 0;\n            });\n            const descFromAlias = aliasKey ? descs[aliasKey] : undefined;\n            const desc = (_d = (_c = descs[key]) !== null && _c !== void 0 ? _c : descFromAlias) !== null && _d !== void 0 ? _d : '';\n            keyWithDesc = `${key.replace(/:/g, '\\\\:')}:${desc\n                .replace('__yargsString__:', '')\n                .replace(/(\\r\\n|\\n|\\r)/gm, ' ')}`;\n        }\n        const startsByTwoDashes = (s) => /^--/.test(s);\n        const isShortOption = (s) => /^[^0-9]$/.test(s);\n        const dashes = !startsByTwoDashes(current) && isShortOption(key) ? '-' : '--';\n        completions.push(dashes + keyWithDesc);\n        if (negable) {\n            completions.push(dashes + 'no-' + keyWithDesc);\n        }\n    }\n    customCompletion(args, argv, current, done) {\n        assertNotStrictEqual(this.customCompletionFunction, null, this.shim);\n        if (isSyncCompletionFunction(this.customCompletionFunction)) {\n            const result = this.customCompletionFunction(current, argv);\n            if (isPromise(result)) {\n                return result\n                    .then(list => {\n                    this.shim.process.nextTick(() => {\n                        done(null, list);\n                    });\n                })\n                    .catch(err => {\n                    this.shim.process.nextTick(() => {\n                        done(err, undefined);\n                    });\n                });\n            }\n            return done(null, result);\n        }\n        else if (isFallbackCompletionFunction(this.customCompletionFunction)) {\n            return this.customCompletionFunction(current, argv, (onCompleted = done) => this.defaultCompletion(args, argv, current, onCompleted), completions => {\n                done(null, completions);\n            });\n        }\n        else {\n            return this.customCompletionFunction(current, argv, completions => {\n                done(null, completions);\n            });\n        }\n    }\n    getCompletion(args, done) {\n        const current = args.length ? args[args.length - 1] : '';\n        const argv = this.yargs.parse(args, true);\n        const completionFunction = this.customCompletionFunction\n            ? (argv) => this.customCompletion(args, argv, current, done)\n            : (argv) => this.defaultCompletion(args, argv, current, done);\n        return isPromise(argv)\n            ? argv.then(completionFunction)\n            : completionFunction(argv);\n    }\n    generateCompletionScript($0, cmd) {\n        let script = this.zshShell\n            ? templates.completionZshTemplate\n            : templates.completionShTemplate;\n        const name = this.shim.path.basename($0);\n        if ($0.match(/\\.js$/))\n            $0 = `./${$0}`;\n        script = script.replace(/{{app_name}}/g, name);\n        script = script.replace(/{{completion_command}}/g, cmd);\n        return script.replace(/{{app_path}}/g, $0);\n    }\n    registerFunction(fn) {\n        this.customCompletionFunction = fn;\n    }\n    setParsed(parsed) {\n        this.aliases = parsed.aliases;\n    }\n}\nexport function completion(yargs, usage, command, shim) {\n    return new Completion(yargs, usage, command, shim);\n}\nfunction isSyncCompletionFunction(completionFunction) {\n    return completionFunction.length < 3;\n}\nfunction isFallbackCompletionFunction(completionFunction) {\n    return completionFunction.length > 3;\n}\n","export function levenshtein(a, b) {\n    if (a.length === 0)\n        return b.length;\n    if (b.length === 0)\n        return a.length;\n    const matrix = [];\n    let i;\n    for (i = 0; i <= b.length; i++) {\n        matrix[i] = [i];\n    }\n    let j;\n    for (j = 0; j <= a.length; j++) {\n        matrix[0][j] = j;\n    }\n    for (i = 1; i <= b.length; i++) {\n        for (j = 1; j <= a.length; j++) {\n            if (b.charAt(i - 1) === a.charAt(j - 1)) {\n                matrix[i][j] = matrix[i - 1][j - 1];\n            }\n            else {\n                if (i > 1 &&\n                    j > 1 &&\n                    b.charAt(i - 2) === a.charAt(j - 1) &&\n                    b.charAt(i - 1) === a.charAt(j - 2)) {\n                    matrix[i][j] = matrix[i - 2][j - 2] + 1;\n                }\n                else {\n                    matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1));\n                }\n            }\n        }\n    }\n    return matrix[b.length][a.length];\n}\n","import { argsert } from './argsert.js';\nimport { assertNotStrictEqual, } from './typings/common-types.js';\nimport { levenshtein as distance } from './utils/levenshtein.js';\nimport { objFilter } from './utils/obj-filter.js';\nconst specialKeys = ['$0', '--', '_'];\nexport function validation(yargs, usage, shim) {\n    const __ = shim.y18n.__;\n    const __n = shim.y18n.__n;\n    const self = {};\n    self.nonOptionCount = function nonOptionCount(argv) {\n        const demandedCommands = yargs.getDemandedCommands();\n        const positionalCount = argv._.length + (argv['--'] ? argv['--'].length : 0);\n        const _s = positionalCount - yargs.getInternalMethods().getContext().commands.length;\n        if (demandedCommands._ &&\n            (_s < demandedCommands._.min || _s > demandedCommands._.max)) {\n            if (_s < demandedCommands._.min) {\n                if (demandedCommands._.minMsg !== undefined) {\n                    usage.fail(demandedCommands._.minMsg\n                        ? demandedCommands._.minMsg\n                            .replace(/\\$0/g, _s.toString())\n                            .replace(/\\$1/, demandedCommands._.min.toString())\n                        : null);\n                }\n                else {\n                    usage.fail(__n('Not enough non-option arguments: got %s, need at least %s', 'Not enough non-option arguments: got %s, need at least %s', _s, _s.toString(), demandedCommands._.min.toString()));\n                }\n            }\n            else if (_s > demandedCommands._.max) {\n                if (demandedCommands._.maxMsg !== undefined) {\n                    usage.fail(demandedCommands._.maxMsg\n                        ? demandedCommands._.maxMsg\n                            .replace(/\\$0/g, _s.toString())\n                            .replace(/\\$1/, demandedCommands._.max.toString())\n                        : null);\n                }\n                else {\n                    usage.fail(__n('Too many non-option arguments: got %s, maximum of %s', 'Too many non-option arguments: got %s, maximum of %s', _s, _s.toString(), demandedCommands._.max.toString()));\n                }\n            }\n        }\n    };\n    self.positionalCount = function positionalCount(required, observed) {\n        if (observed < required) {\n            usage.fail(__n('Not enough non-option arguments: got %s, need at least %s', 'Not enough non-option arguments: got %s, need at least %s', observed, observed + '', required + ''));\n        }\n    };\n    self.requiredArguments = function requiredArguments(argv, demandedOptions) {\n        let missing = null;\n        for (const key of Object.keys(demandedOptions)) {\n            if (!Object.prototype.hasOwnProperty.call(argv, key) ||\n                typeof argv[key] === 'undefined') {\n                missing = missing || {};\n                missing[key] = demandedOptions[key];\n            }\n        }\n        if (missing) {\n            const customMsgs = [];\n            for (const key of Object.keys(missing)) {\n                const msg = missing[key];\n                if (msg && customMsgs.indexOf(msg) < 0) {\n                    customMsgs.push(msg);\n                }\n            }\n            const customMsg = customMsgs.length ? `\\n${customMsgs.join('\\n')}` : '';\n            usage.fail(__n('Missing required argument: %s', 'Missing required arguments: %s', Object.keys(missing).length, Object.keys(missing).join(', ') + customMsg));\n        }\n    };\n    self.unknownArguments = function unknownArguments(argv, aliases, positionalMap, isDefaultCommand, checkPositionals = true) {\n        var _a;\n        const commandKeys = yargs\n            .getInternalMethods()\n            .getCommandInstance()\n            .getCommands();\n        const unknown = [];\n        const currentContext = yargs.getInternalMethods().getContext();\n        Object.keys(argv).forEach(key => {\n            if (!specialKeys.includes(key) &&\n                !Object.prototype.hasOwnProperty.call(positionalMap, key) &&\n                !Object.prototype.hasOwnProperty.call(yargs.getInternalMethods().getParseContext(), key) &&\n                !self.isValidAndSomeAliasIsNotNew(key, aliases)) {\n                unknown.push(key);\n            }\n        });\n        if (checkPositionals &&\n            (currentContext.commands.length > 0 ||\n                commandKeys.length > 0 ||\n                isDefaultCommand)) {\n            argv._.slice(currentContext.commands.length).forEach(key => {\n                if (!commandKeys.includes('' + key)) {\n                    unknown.push('' + key);\n                }\n            });\n        }\n        if (checkPositionals) {\n            const demandedCommands = yargs.getDemandedCommands();\n            const maxNonOptDemanded = ((_a = demandedCommands._) === null || _a === void 0 ? void 0 : _a.max) || 0;\n            const expected = currentContext.commands.length + maxNonOptDemanded;\n            if (expected < argv._.length) {\n                argv._.slice(expected).forEach(key => {\n                    key = String(key);\n                    if (!currentContext.commands.includes(key) &&\n                        !unknown.includes(key)) {\n                        unknown.push(key);\n                    }\n                });\n            }\n        }\n        if (unknown.length) {\n            usage.fail(__n('Unknown argument: %s', 'Unknown arguments: %s', unknown.length, unknown.map(s => (s.trim() ? s : `\"${s}\"`)).join(', ')));\n        }\n    };\n    self.unknownCommands = function unknownCommands(argv) {\n        const commandKeys = yargs\n            .getInternalMethods()\n            .getCommandInstance()\n            .getCommands();\n        const unknown = [];\n        const currentContext = yargs.getInternalMethods().getContext();\n        if (currentContext.commands.length > 0 || commandKeys.length > 0) {\n            argv._.slice(currentContext.commands.length).forEach(key => {\n                if (!commandKeys.includes('' + key)) {\n                    unknown.push('' + key);\n                }\n            });\n        }\n        if (unknown.length > 0) {\n            usage.fail(__n('Unknown command: %s', 'Unknown commands: %s', unknown.length, unknown.join(', ')));\n            return true;\n        }\n        else {\n            return false;\n        }\n    };\n    self.isValidAndSomeAliasIsNotNew = function isValidAndSomeAliasIsNotNew(key, aliases) {\n        if (!Object.prototype.hasOwnProperty.call(aliases, key)) {\n            return false;\n        }\n        const newAliases = yargs.parsed.newAliases;\n        return [key, ...aliases[key]].some(a => !Object.prototype.hasOwnProperty.call(newAliases, a) || !newAliases[key]);\n    };\n    self.limitedChoices = function limitedChoices(argv) {\n        const options = yargs.getOptions();\n        const invalid = {};\n        if (!Object.keys(options.choices).length)\n            return;\n        Object.keys(argv).forEach(key => {\n            if (specialKeys.indexOf(key) === -1 &&\n                Object.prototype.hasOwnProperty.call(options.choices, key)) {\n                [].concat(argv[key]).forEach(value => {\n                    if (options.choices[key].indexOf(value) === -1 &&\n                        value !== undefined) {\n                        invalid[key] = (invalid[key] || []).concat(value);\n                    }\n                });\n            }\n        });\n        const invalidKeys = Object.keys(invalid);\n        if (!invalidKeys.length)\n            return;\n        let msg = __('Invalid values:');\n        invalidKeys.forEach(key => {\n            msg += `\\n  ${__('Argument: %s, Given: %s, Choices: %s', key, usage.stringifiedValues(invalid[key]), usage.stringifiedValues(options.choices[key]))}`;\n        });\n        usage.fail(msg);\n    };\n    let implied = {};\n    self.implies = function implies(key, value) {\n        argsert('<string|object> [array|number|string]', [key, value], arguments.length);\n        if (typeof key === 'object') {\n            Object.keys(key).forEach(k => {\n                self.implies(k, key[k]);\n            });\n        }\n        else {\n            yargs.global(key);\n            if (!implied[key]) {\n                implied[key] = [];\n            }\n            if (Array.isArray(value)) {\n                value.forEach(i => self.implies(key, i));\n            }\n            else {\n                assertNotStrictEqual(value, undefined, shim);\n                implied[key].push(value);\n            }\n        }\n    };\n    self.getImplied = function getImplied() {\n        return implied;\n    };\n    function keyExists(argv, val) {\n        const num = Number(val);\n        val = isNaN(num) ? val : num;\n        if (typeof val === 'number') {\n            val = argv._.length >= val;\n        }\n        else if (val.match(/^--no-.+/)) {\n            val = val.match(/^--no-(.+)/)[1];\n            val = !Object.prototype.hasOwnProperty.call(argv, val);\n        }\n        else {\n            val = Object.prototype.hasOwnProperty.call(argv, val);\n        }\n        return val;\n    }\n    self.implications = function implications(argv) {\n        const implyFail = [];\n        Object.keys(implied).forEach(key => {\n            const origKey = key;\n            (implied[key] || []).forEach(value => {\n                let key = origKey;\n                const origValue = value;\n                key = keyExists(argv, key);\n                value = keyExists(argv, value);\n                if (key && !value) {\n                    implyFail.push(` ${origKey} -> ${origValue}`);\n                }\n            });\n        });\n        if (implyFail.length) {\n            let msg = `${__('Implications failed:')}\\n`;\n            implyFail.forEach(value => {\n                msg += value;\n            });\n            usage.fail(msg);\n        }\n    };\n    let conflicting = {};\n    self.conflicts = function conflicts(key, value) {\n        argsert('<string|object> [array|string]', [key, value], arguments.length);\n        if (typeof key === 'object') {\n            Object.keys(key).forEach(k => {\n                self.conflicts(k, key[k]);\n            });\n        }\n        else {\n            yargs.global(key);\n            if (!conflicting[key]) {\n                conflicting[key] = [];\n            }\n            if (Array.isArray(value)) {\n                value.forEach(i => self.conflicts(key, i));\n            }\n            else {\n                conflicting[key].push(value);\n            }\n        }\n    };\n    self.getConflicting = () => conflicting;\n    self.conflicting = function conflictingFn(argv) {\n        Object.keys(argv).forEach(key => {\n            if (conflicting[key]) {\n                conflicting[key].forEach(value => {\n                    if (value && argv[key] !== undefined && argv[value] !== undefined) {\n                        usage.fail(__('Arguments %s and %s are mutually exclusive', key, value));\n                    }\n                });\n            }\n        });\n        if (yargs.getInternalMethods().getParserConfiguration()['strip-dashed']) {\n            Object.keys(conflicting).forEach(key => {\n                conflicting[key].forEach(value => {\n                    if (value &&\n                        argv[shim.Parser.camelCase(key)] !== undefined &&\n                        argv[shim.Parser.camelCase(value)] !== undefined) {\n                        usage.fail(__('Arguments %s and %s are mutually exclusive', key, value));\n                    }\n                });\n            });\n        }\n    };\n    self.recommendCommands = function recommendCommands(cmd, potentialCommands) {\n        const threshold = 3;\n        potentialCommands = potentialCommands.sort((a, b) => b.length - a.length);\n        let recommended = null;\n        let bestDistance = Infinity;\n        for (let i = 0, candidate; (candidate = potentialCommands[i]) !== undefined; i++) {\n            const d = distance(cmd, candidate);\n            if (d <= threshold && d < bestDistance) {\n                bestDistance = d;\n                recommended = candidate;\n            }\n        }\n        if (recommended)\n            usage.fail(__('Did you mean %s?', recommended));\n    };\n    self.reset = function reset(localLookup) {\n        implied = objFilter(implied, k => !localLookup[k]);\n        conflicting = objFilter(conflicting, k => !localLookup[k]);\n        return self;\n    };\n    const frozens = [];\n    self.freeze = function freeze() {\n        frozens.push({\n            implied,\n            conflicting,\n        });\n    };\n    self.unfreeze = function unfreeze() {\n        const frozen = frozens.pop();\n        assertNotStrictEqual(frozen, undefined, shim);\n        ({ implied, conflicting } = frozen);\n    };\n    return self;\n}\n","import { YError } from '../yerror.js';\nlet previouslyVisitedConfigs = [];\nlet shim;\nexport function applyExtends(config, cwd, mergeExtends, _shim) {\n    shim = _shim;\n    let defaultConfig = {};\n    if (Object.prototype.hasOwnProperty.call(config, 'extends')) {\n        if (typeof config.extends !== 'string')\n            return defaultConfig;\n        const isPath = /\\.json|\\..*rc$/.test(config.extends);\n        let pathToDefault = null;\n        if (!isPath) {\n            try {\n                pathToDefault = import.meta.resolve(config.extends);\n            }\n            catch (_err) {\n                return config;\n            }\n        }\n        else {\n            pathToDefault = getPathToDefaultConfig(cwd, config.extends);\n        }\n        checkForCircularExtends(pathToDefault);\n        previouslyVisitedConfigs.push(pathToDefault);\n        defaultConfig = isPath\n            ? JSON.parse(shim.readFileSync(pathToDefault, 'utf8'))\n            : _shim.require(config.extends);\n        delete config.extends;\n        defaultConfig = applyExtends(defaultConfig, shim.path.dirname(pathToDefault), mergeExtends, shim);\n    }\n    previouslyVisitedConfigs = [];\n    return mergeExtends\n        ? mergeDeep(defaultConfig, config)\n        : Object.assign({}, defaultConfig, config);\n}\nfunction checkForCircularExtends(cfgPath) {\n    if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) {\n        throw new YError(`Circular extended configurations: '${cfgPath}'.`);\n    }\n}\nfunction getPathToDefaultConfig(cwd, pathToExtend) {\n    return shim.path.resolve(cwd, pathToExtend);\n}\nfunction mergeDeep(config1, config2) {\n    const target = {};\n    function isObject(obj) {\n        return obj && typeof obj === 'object' && !Array.isArray(obj);\n    }\n    Object.assign(target, config1);\n    for (const key of Object.keys(config2)) {\n        if (isObject(config2[key]) && isObject(target[key])) {\n            target[key] = mergeDeep(config1[key], config2[key]);\n        }\n        else {\n            target[key] = config2[key];\n        }\n    }\n    return target;\n}\n","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _YargsInstance_command, _YargsInstance_cwd, _YargsInstance_context, _YargsInstance_completion, _YargsInstance_completionCommand, _YargsInstance_defaultShowHiddenOpt, _YargsInstance_exitError, _YargsInstance_detectLocale, _YargsInstance_emittedWarnings, _YargsInstance_exitProcess, _YargsInstance_frozens, _YargsInstance_globalMiddleware, _YargsInstance_groups, _YargsInstance_hasOutput, _YargsInstance_helpOpt, _YargsInstance_isGlobalContext, _YargsInstance_logger, _YargsInstance_output, _YargsInstance_options, _YargsInstance_parentRequire, _YargsInstance_parserConfig, _YargsInstance_parseFn, _YargsInstance_parseContext, _YargsInstance_pkgs, _YargsInstance_preservedGroups, _YargsInstance_processArgs, _YargsInstance_recommendCommands, _YargsInstance_shim, _YargsInstance_strict, _YargsInstance_strictCommands, _YargsInstance_strictOptions, _YargsInstance_usage, _YargsInstance_usageConfig, _YargsInstance_versionOpt, _YargsInstance_validation;\nimport { command as Command, } from './command.js';\nimport { assertNotStrictEqual, assertSingleKey, objectKeys, } from './typings/common-types.js';\nimport { YError } from './yerror.js';\nimport { usage as Usage } from './usage.js';\nimport { argsert } from './argsert.js';\nimport { completion as Completion, } from './completion.js';\nimport { validation as Validation, } from './validation.js';\nimport { objFilter } from './utils/obj-filter.js';\nimport { applyExtends } from './utils/apply-extends.js';\nimport { applyMiddleware, GlobalMiddleware, } from './middleware.js';\nimport { isPromise } from './utils/is-promise.js';\nimport { maybeAsyncResult } from './utils/maybe-async-result.js';\nimport setBlocking from './utils/set-blocking.js';\nexport function YargsFactory(_shim) {\n    return (processArgs = [], cwd = _shim.process.cwd(), parentRequire) => {\n        const yargs = new YargsInstance(processArgs, cwd, parentRequire, _shim);\n        Object.defineProperty(yargs, 'argv', {\n            get: () => {\n                return yargs.parse();\n            },\n            enumerable: true,\n        });\n        yargs.help();\n        yargs.version();\n        return yargs;\n    };\n}\nconst kCopyDoubleDash = Symbol('copyDoubleDash');\nconst kCreateLogger = Symbol('copyDoubleDash');\nconst kDeleteFromParserHintObject = Symbol('deleteFromParserHintObject');\nconst kEmitWarning = Symbol('emitWarning');\nconst kFreeze = Symbol('freeze');\nconst kGetDollarZero = Symbol('getDollarZero');\nconst kGetParserConfiguration = Symbol('getParserConfiguration');\nconst kGetUsageConfiguration = Symbol('getUsageConfiguration');\nconst kGuessLocale = Symbol('guessLocale');\nconst kGuessVersion = Symbol('guessVersion');\nconst kParsePositionalNumbers = Symbol('parsePositionalNumbers');\nconst kPkgUp = Symbol('pkgUp');\nconst kPopulateParserHintArray = Symbol('populateParserHintArray');\nconst kPopulateParserHintSingleValueDictionary = Symbol('populateParserHintSingleValueDictionary');\nconst kPopulateParserHintArrayDictionary = Symbol('populateParserHintArrayDictionary');\nconst kPopulateParserHintDictionary = Symbol('populateParserHintDictionary');\nconst kSanitizeKey = Symbol('sanitizeKey');\nconst kSetKey = Symbol('setKey');\nconst kUnfreeze = Symbol('unfreeze');\nconst kValidateAsync = Symbol('validateAsync');\nconst kGetCommandInstance = Symbol('getCommandInstance');\nconst kGetContext = Symbol('getContext');\nconst kGetHasOutput = Symbol('getHasOutput');\nconst kGetLoggerInstance = Symbol('getLoggerInstance');\nconst kGetParseContext = Symbol('getParseContext');\nconst kGetUsageInstance = Symbol('getUsageInstance');\nconst kGetValidationInstance = Symbol('getValidationInstance');\nconst kHasParseCallback = Symbol('hasParseCallback');\nconst kIsGlobalContext = Symbol('isGlobalContext');\nconst kPostProcess = Symbol('postProcess');\nconst kRebase = Symbol('rebase');\nconst kReset = Symbol('reset');\nconst kRunYargsParserAndExecuteCommands = Symbol('runYargsParserAndExecuteCommands');\nconst kRunValidation = Symbol('runValidation');\nconst kSetHasOutput = Symbol('setHasOutput');\nconst kTrackManuallySetKeys = Symbol('kTrackManuallySetKeys');\nconst DEFAULT_LOCALE = 'en_US';\nexport class YargsInstance {\n    constructor(processArgs = [], cwd, parentRequire, shim) {\n        this.customScriptName = false;\n        this.parsed = false;\n        _YargsInstance_command.set(this, void 0);\n        _YargsInstance_cwd.set(this, void 0);\n        _YargsInstance_context.set(this, { commands: [], fullCommands: [] });\n        _YargsInstance_completion.set(this, null);\n        _YargsInstance_completionCommand.set(this, null);\n        _YargsInstance_defaultShowHiddenOpt.set(this, 'show-hidden');\n        _YargsInstance_exitError.set(this, null);\n        _YargsInstance_detectLocale.set(this, true);\n        _YargsInstance_emittedWarnings.set(this, {});\n        _YargsInstance_exitProcess.set(this, true);\n        _YargsInstance_frozens.set(this, []);\n        _YargsInstance_globalMiddleware.set(this, void 0);\n        _YargsInstance_groups.set(this, {});\n        _YargsInstance_hasOutput.set(this, false);\n        _YargsInstance_helpOpt.set(this, null);\n        _YargsInstance_isGlobalContext.set(this, true);\n        _YargsInstance_logger.set(this, void 0);\n        _YargsInstance_output.set(this, '');\n        _YargsInstance_options.set(this, void 0);\n        _YargsInstance_parentRequire.set(this, void 0);\n        _YargsInstance_parserConfig.set(this, {});\n        _YargsInstance_parseFn.set(this, null);\n        _YargsInstance_parseContext.set(this, null);\n        _YargsInstance_pkgs.set(this, {});\n        _YargsInstance_preservedGroups.set(this, {});\n        _YargsInstance_processArgs.set(this, void 0);\n        _YargsInstance_recommendCommands.set(this, false);\n        _YargsInstance_shim.set(this, void 0);\n        _YargsInstance_strict.set(this, false);\n        _YargsInstance_strictCommands.set(this, false);\n        _YargsInstance_strictOptions.set(this, false);\n        _YargsInstance_usage.set(this, void 0);\n        _YargsInstance_usageConfig.set(this, {});\n        _YargsInstance_versionOpt.set(this, null);\n        _YargsInstance_validation.set(this, void 0);\n        __classPrivateFieldSet(this, _YargsInstance_shim, shim, \"f\");\n        __classPrivateFieldSet(this, _YargsInstance_processArgs, processArgs, \"f\");\n        __classPrivateFieldSet(this, _YargsInstance_cwd, cwd, \"f\");\n        __classPrivateFieldSet(this, _YargsInstance_parentRequire, parentRequire, \"f\");\n        __classPrivateFieldSet(this, _YargsInstance_globalMiddleware, new GlobalMiddleware(this), \"f\");\n        this.$0 = this[kGetDollarZero]();\n        this[kReset]();\n        __classPrivateFieldSet(this, _YargsInstance_command, __classPrivateFieldGet(this, _YargsInstance_command, \"f\"), \"f\");\n        __classPrivateFieldSet(this, _YargsInstance_usage, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), \"f\");\n        __classPrivateFieldSet(this, _YargsInstance_validation, __classPrivateFieldGet(this, _YargsInstance_validation, \"f\"), \"f\");\n        __classPrivateFieldSet(this, _YargsInstance_options, __classPrivateFieldGet(this, _YargsInstance_options, \"f\"), \"f\");\n        __classPrivateFieldGet(this, _YargsInstance_options, \"f\").showHiddenOpt = __classPrivateFieldGet(this, _YargsInstance_defaultShowHiddenOpt, \"f\");\n        __classPrivateFieldSet(this, _YargsInstance_logger, this[kCreateLogger](), \"f\");\n        __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.setLocale(DEFAULT_LOCALE);\n    }\n    addHelpOpt(opt, msg) {\n        const defaultHelpOpt = 'help';\n        argsert('[string|boolean] [string]', [opt, msg], arguments.length);\n        if (__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")) {\n            this[kDeleteFromParserHintObject](__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\"));\n            __classPrivateFieldSet(this, _YargsInstance_helpOpt, null, \"f\");\n        }\n        if (opt === false && msg === undefined)\n            return this;\n        __classPrivateFieldSet(this, _YargsInstance_helpOpt, typeof opt === 'string' ? opt : defaultHelpOpt, \"f\");\n        this.boolean(__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\"));\n        this.describe(__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\"), msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Show help'));\n        return this;\n    }\n    help(opt, msg) {\n        return this.addHelpOpt(opt, msg);\n    }\n    addShowHiddenOpt(opt, msg) {\n        argsert('[string|boolean] [string]', [opt, msg], arguments.length);\n        if (opt === false && msg === undefined)\n            return this;\n        const showHiddenOpt = typeof opt === 'string' ? opt : __classPrivateFieldGet(this, _YargsInstance_defaultShowHiddenOpt, \"f\");\n        this.boolean(showHiddenOpt);\n        this.describe(showHiddenOpt, msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Show hidden options'));\n        __classPrivateFieldGet(this, _YargsInstance_options, \"f\").showHiddenOpt = showHiddenOpt;\n        return this;\n    }\n    showHidden(opt, msg) {\n        return this.addShowHiddenOpt(opt, msg);\n    }\n    alias(key, value) {\n        argsert('<object|string|array> [string|array]', [key, value], arguments.length);\n        this[kPopulateParserHintArrayDictionary](this.alias.bind(this), 'alias', key, value);\n        return this;\n    }\n    array(keys) {\n        argsert('<array|string>', [keys], arguments.length);\n        this[kPopulateParserHintArray]('array', keys);\n        this[kTrackManuallySetKeys](keys);\n        return this;\n    }\n    boolean(keys) {\n        argsert('<array|string>', [keys], arguments.length);\n        this[kPopulateParserHintArray]('boolean', keys);\n        this[kTrackManuallySetKeys](keys);\n        return this;\n    }\n    check(f, global) {\n        argsert('<function> [boolean]', [f, global], arguments.length);\n        this.middleware((argv, _yargs) => {\n            return maybeAsyncResult(() => {\n                return f(argv, _yargs.getOptions());\n            }, (result) => {\n                if (!result) {\n                    __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.__('Argument check failed: %s', f.toString()));\n                }\n                else if (typeof result === 'string' || result instanceof Error) {\n                    __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(result.toString(), result);\n                }\n                return argv;\n            }, (err) => {\n                __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(err.message ? err.message : err.toString(), err);\n                return argv;\n            });\n        }, false, global);\n        return this;\n    }\n    choices(key, value) {\n        argsert('<object|string|array> [string|array]', [key, value], arguments.length);\n        this[kPopulateParserHintArrayDictionary](this.choices.bind(this), 'choices', key, value);\n        return this;\n    }\n    coerce(keys, value) {\n        argsert('<object|string|array> [function]', [keys, value], arguments.length);\n        if (Array.isArray(keys)) {\n            if (!value) {\n                throw new YError('coerce callback must be provided');\n            }\n            for (const key of keys) {\n                this.coerce(key, value);\n            }\n            return this;\n        }\n        else if (typeof keys === 'object') {\n            for (const key of Object.keys(keys)) {\n                this.coerce(key, keys[key]);\n            }\n            return this;\n        }\n        if (!value) {\n            throw new YError('coerce callback must be provided');\n        }\n        const coerceKey = keys;\n        __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[coerceKey] = true;\n        __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").addCoerceMiddleware((argv, yargs) => {\n            var _a;\n            const coerceKeyAliases = (_a = yargs.getAliases()[coerceKey]) !== null && _a !== void 0 ? _a : [];\n            const argvKeys = [coerceKey, ...coerceKeyAliases].filter(key => Object.prototype.hasOwnProperty.call(argv, key));\n            if (argvKeys.length === 0) {\n                return argv;\n            }\n            return maybeAsyncResult(() => {\n                return value(argv[argvKeys[0]]);\n            }, (result) => {\n                argvKeys.forEach(key => {\n                    argv[key] = result;\n                });\n                return argv;\n            }, (err) => {\n                throw new YError(err.message);\n            });\n        }, coerceKey);\n        return this;\n    }\n    conflicts(key1, key2) {\n        argsert('<string|object> [string|array]', [key1, key2], arguments.length);\n        __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").conflicts(key1, key2);\n        return this;\n    }\n    config(key = 'config', msg, parseFn) {\n        argsert('[object|string] [string|function] [function]', [key, msg, parseFn], arguments.length);\n        if (typeof key === 'object' && !Array.isArray(key)) {\n            key = applyExtends(key, __classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"), this[kGetParserConfiguration]()['deep-merge-config'] || false, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n            __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects || []).concat(key);\n            return this;\n        }\n        if (typeof msg === 'function') {\n            parseFn = msg;\n            msg = undefined;\n        }\n        this.describe(key, msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Path to JSON config file'));\n        (Array.isArray(key) ? key : [key]).forEach(k => {\n            __classPrivateFieldGet(this, _YargsInstance_options, \"f\").config[k] = parseFn || true;\n        });\n        return this;\n    }\n    completion(cmd, desc, fn) {\n        argsert('[string] [string|boolean|function] [function]', [cmd, desc, fn], arguments.length);\n        if (typeof desc === 'function') {\n            fn = desc;\n            desc = undefined;\n        }\n        __classPrivateFieldSet(this, _YargsInstance_completionCommand, cmd || __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\") || 'completion', \"f\");\n        if (!desc && desc !== false) {\n            desc = 'generate completion script';\n        }\n        this.command(__classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\"), desc);\n        if (fn)\n            __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").registerFunction(fn);\n        return this;\n    }\n    command(cmd, description, builder, handler, middlewares, deprecated) {\n        argsert('<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]', [cmd, description, builder, handler, middlewares, deprecated], arguments.length);\n        __classPrivateFieldGet(this, _YargsInstance_command, \"f\").addHandler(cmd, description, builder, handler, middlewares, deprecated);\n        return this;\n    }\n    commands(cmd, description, builder, handler, middlewares, deprecated) {\n        return this.command(cmd, description, builder, handler, middlewares, deprecated);\n    }\n    commandDir(dir, opts) {\n        argsert('<string> [object]', [dir, opts], arguments.length);\n        const req = __classPrivateFieldGet(this, _YargsInstance_parentRequire, \"f\") || __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").require;\n        __classPrivateFieldGet(this, _YargsInstance_command, \"f\").addDirectory(dir, req, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getCallerFile(), opts);\n        return this;\n    }\n    count(keys) {\n        argsert('<array|string>', [keys], arguments.length);\n        this[kPopulateParserHintArray]('count', keys);\n        this[kTrackManuallySetKeys](keys);\n        return this;\n    }\n    default(key, value, defaultDescription) {\n        argsert('<object|string|array> [*] [string]', [key, value, defaultDescription], arguments.length);\n        if (defaultDescription) {\n            assertSingleKey(key, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n            __classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key] = defaultDescription;\n        }\n        if (typeof value === 'function') {\n            assertSingleKey(key, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n            if (!__classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key])\n                __classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key] =\n                    __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").functionDescription(value);\n            value = value.call();\n        }\n        this[kPopulateParserHintSingleValueDictionary](this.default.bind(this), 'default', key, value);\n        return this;\n    }\n    defaults(key, value, defaultDescription) {\n        return this.default(key, value, defaultDescription);\n    }\n    demandCommand(min = 1, max, minMsg, maxMsg) {\n        argsert('[number] [number|string] [string|null|undefined] [string|null|undefined]', [min, max, minMsg, maxMsg], arguments.length);\n        if (typeof max !== 'number') {\n            minMsg = max;\n            max = Infinity;\n        }\n        this.global('_', false);\n        __classPrivateFieldGet(this, _YargsInstance_options, \"f\").demandedCommands._ = {\n            min,\n            max,\n            minMsg,\n            maxMsg,\n        };\n        return this;\n    }\n    demand(keys, max, msg) {\n        if (Array.isArray(max)) {\n            max.forEach(key => {\n                assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n                this.demandOption(key, msg);\n            });\n            max = Infinity;\n        }\n        else if (typeof max !== 'number') {\n            msg = max;\n            max = Infinity;\n        }\n        if (typeof keys === 'number') {\n            assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n            this.demandCommand(keys, max, msg, msg);\n        }\n        else if (Array.isArray(keys)) {\n            keys.forEach(key => {\n                assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n                this.demandOption(key, msg);\n            });\n        }\n        else {\n            if (typeof msg === 'string') {\n                this.demandOption(keys, msg);\n            }\n            else if (msg === true || typeof msg === 'undefined') {\n                this.demandOption(keys);\n            }\n        }\n        return this;\n    }\n    demandOption(keys, msg) {\n        argsert('<object|string|array> [string]', [keys, msg], arguments.length);\n        this[kPopulateParserHintSingleValueDictionary](this.demandOption.bind(this), 'demandedOptions', keys, msg);\n        return this;\n    }\n    deprecateOption(option, message) {\n        argsert('<string> [string|boolean]', [option, message], arguments.length);\n        __classPrivateFieldGet(this, _YargsInstance_options, \"f\").deprecatedOptions[option] = message;\n        return this;\n    }\n    describe(keys, description) {\n        argsert('<object|string|array> [string]', [keys, description], arguments.length);\n        this[kSetKey](keys, true);\n        __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").describe(keys, description);\n        return this;\n    }\n    detectLocale(detect) {\n        argsert('<boolean>', [detect], arguments.length);\n        __classPrivateFieldSet(this, _YargsInstance_detectLocale, detect, \"f\");\n        return this;\n    }\n    env(prefix) {\n        argsert('[string|boolean]', [prefix], arguments.length);\n        if (prefix === false)\n            delete __classPrivateFieldGet(this, _YargsInstance_options, \"f\").envPrefix;\n        else\n            __classPrivateFieldGet(this, _YargsInstance_options, \"f\").envPrefix = prefix || '';\n        return this;\n    }\n    epilogue(msg) {\n        argsert('<string>', [msg], arguments.length);\n        __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").epilog(msg);\n        return this;\n    }\n    epilog(msg) {\n        return this.epilogue(msg);\n    }\n    example(cmd, description) {\n        argsert('<string|array> [string]', [cmd, description], arguments.length);\n        if (Array.isArray(cmd)) {\n            cmd.forEach(exampleParams => this.example(...exampleParams));\n        }\n        else {\n            __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").example(cmd, description);\n        }\n        return this;\n    }\n    exit(code, err) {\n        __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n        __classPrivateFieldSet(this, _YargsInstance_exitError, err, \"f\");\n        if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n            __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.exit(code);\n    }\n    exitProcess(enabled = true) {\n        argsert('[boolean]', [enabled], arguments.length);\n        __classPrivateFieldSet(this, _YargsInstance_exitProcess, enabled, \"f\");\n        return this;\n    }\n    fail(f) {\n        argsert('<function|boolean>', [f], arguments.length);\n        if (typeof f === 'boolean' && f !== false) {\n            throw new YError(\"Invalid first argument. Expected function or boolean 'false'\");\n        }\n        __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").failFn(f);\n        return this;\n    }\n    getAliases() {\n        return this.parsed ? this.parsed.aliases : {};\n    }\n    async getCompletion(args, done) {\n        argsert('<array> [function]', [args, done], arguments.length);\n        if (!done) {\n            return new Promise((resolve, reject) => {\n                __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").getCompletion(args, (err, completions) => {\n                    if (err)\n                        reject(err);\n                    else\n                        resolve(completions);\n                });\n            });\n        }\n        else {\n            return __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").getCompletion(args, done);\n        }\n    }\n    getDemandedOptions() {\n        argsert([], 0);\n        return __classPrivateFieldGet(this, _YargsInstance_options, \"f\").demandedOptions;\n    }\n    getDemandedCommands() {\n        argsert([], 0);\n        return __classPrivateFieldGet(this, _YargsInstance_options, \"f\").demandedCommands;\n    }\n    getDeprecatedOptions() {\n        argsert([], 0);\n        return __classPrivateFieldGet(this, _YargsInstance_options, \"f\").deprecatedOptions;\n    }\n    getDetectLocale() {\n        return __classPrivateFieldGet(this, _YargsInstance_detectLocale, \"f\");\n    }\n    getExitProcess() {\n        return __classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\");\n    }\n    getGroups() {\n        return Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_groups, \"f\"), __classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\"));\n    }\n    getHelp() {\n        __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n        if (!__classPrivateFieldGet(this, _YargsInstance_usage, \"f\").hasCachedHelpMessage()) {\n            if (!this.parsed) {\n                const parse = this[kRunYargsParserAndExecuteCommands](__classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\"), undefined, undefined, 0, true);\n                if (isPromise(parse)) {\n                    return parse.then(() => {\n                        return __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").help();\n                    });\n                }\n            }\n            const builderResponse = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runDefaultBuilderOn(this);\n            if (isPromise(builderResponse)) {\n                return builderResponse.then(() => {\n                    return __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").help();\n                });\n            }\n        }\n        return Promise.resolve(__classPrivateFieldGet(this, _YargsInstance_usage, \"f\").help());\n    }\n    getOptions() {\n        return __classPrivateFieldGet(this, _YargsInstance_options, \"f\");\n    }\n    getStrict() {\n        return __classPrivateFieldGet(this, _YargsInstance_strict, \"f\");\n    }\n    getStrictCommands() {\n        return __classPrivateFieldGet(this, _YargsInstance_strictCommands, \"f\");\n    }\n    getStrictOptions() {\n        return __classPrivateFieldGet(this, _YargsInstance_strictOptions, \"f\");\n    }\n    global(globals, global) {\n        argsert('<string|array> [boolean]', [globals, global], arguments.length);\n        globals = [].concat(globals);\n        if (global !== false) {\n            __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local.filter(l => globals.indexOf(l) === -1);\n        }\n        else {\n            globals.forEach(g => {\n                if (!__classPrivateFieldGet(this, _YargsInstance_options, \"f\").local.includes(g))\n                    __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local.push(g);\n            });\n        }\n        return this;\n    }\n    group(opts, groupName) {\n        argsert('<string|array> <string>', [opts, groupName], arguments.length);\n        const existing = __classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\")[groupName] || __classPrivateFieldGet(this, _YargsInstance_groups, \"f\")[groupName];\n        if (__classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\")[groupName]) {\n            delete __classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\")[groupName];\n        }\n        const seen = {};\n        __classPrivateFieldGet(this, _YargsInstance_groups, \"f\")[groupName] = (existing || []).concat(opts).filter(key => {\n            if (seen[key])\n                return false;\n            return (seen[key] = true);\n        });\n        return this;\n    }\n    hide(key) {\n        argsert('<string>', [key], arguments.length);\n        __classPrivateFieldGet(this, _YargsInstance_options, \"f\").hiddenOptions.push(key);\n        return this;\n    }\n    implies(key, value) {\n        argsert('<string|object> [number|string|array]', [key, value], arguments.length);\n        __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").implies(key, value);\n        return this;\n    }\n    locale(locale) {\n        argsert('[string]', [locale], arguments.length);\n        if (locale === undefined) {\n            this[kGuessLocale]();\n            return __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.getLocale();\n        }\n        __classPrivateFieldSet(this, _YargsInstance_detectLocale, false, \"f\");\n        __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.setLocale(locale);\n        return this;\n    }\n    middleware(callback, applyBeforeValidation, global) {\n        return __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").addMiddleware(callback, !!applyBeforeValidation, global);\n    }\n    nargs(key, value) {\n        argsert('<string|object|array> [number]', [key, value], arguments.length);\n        this[kPopulateParserHintSingleValueDictionary](this.nargs.bind(this), 'narg', key, value);\n        return this;\n    }\n    normalize(keys) {\n        argsert('<array|string>', [keys], arguments.length);\n        this[kPopulateParserHintArray]('normalize', keys);\n        return this;\n    }\n    number(keys) {\n        argsert('<array|string>', [keys], arguments.length);\n        this[kPopulateParserHintArray]('number', keys);\n        this[kTrackManuallySetKeys](keys);\n        return this;\n    }\n    option(key, opt) {\n        argsert('<string|object> [object]', [key, opt], arguments.length);\n        if (typeof key === 'object') {\n            Object.keys(key).forEach(k => {\n                this.options(k, key[k]);\n            });\n        }\n        else {\n            if (typeof opt !== 'object') {\n                opt = {};\n            }\n            this[kTrackManuallySetKeys](key);\n            if (__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\") && (key === 'version' || (opt === null || opt === void 0 ? void 0 : opt.alias) === 'version')) {\n                this[kEmitWarning]([\n                    '\"version\" is a reserved word.',\n                    'Please do one of the following:',\n                    '- Disable version with `yargs.version(false)` if using \"version\" as an option',\n                    '- Use the built-in `yargs.version` method instead (if applicable)',\n                    '- Use a different option key',\n                    'https://yargs.js.org/docs/#api-reference-version',\n                ].join('\\n'), undefined, 'versionWarning');\n            }\n            __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[key] = true;\n            if (opt.alias)\n                this.alias(key, opt.alias);\n            const deprecate = opt.deprecate || opt.deprecated;\n            if (deprecate) {\n                this.deprecateOption(key, deprecate);\n            }\n            const demand = opt.demand || opt.required || opt.require;\n            if (demand) {\n                this.demand(key, demand);\n            }\n            if (opt.demandOption) {\n                this.demandOption(key, typeof opt.demandOption === 'string' ? opt.demandOption : undefined);\n            }\n            if (opt.conflicts) {\n                this.conflicts(key, opt.conflicts);\n            }\n            if ('default' in opt) {\n                this.default(key, opt.default);\n            }\n            if (opt.implies !== undefined) {\n                this.implies(key, opt.implies);\n            }\n            if (opt.nargs !== undefined) {\n                this.nargs(key, opt.nargs);\n            }\n            if (opt.config) {\n                this.config(key, opt.configParser);\n            }\n            if (opt.normalize) {\n                this.normalize(key);\n            }\n            if (opt.choices) {\n                this.choices(key, opt.choices);\n            }\n            if (opt.coerce) {\n                this.coerce(key, opt.coerce);\n            }\n            if (opt.group) {\n                this.group(key, opt.group);\n            }\n            if (opt.boolean || opt.type === 'boolean') {\n                this.boolean(key);\n                if (opt.alias)\n                    this.boolean(opt.alias);\n            }\n            if (opt.array || opt.type === 'array') {\n                this.array(key);\n                if (opt.alias)\n                    this.array(opt.alias);\n            }\n            if (opt.number || opt.type === 'number') {\n                this.number(key);\n                if (opt.alias)\n                    this.number(opt.alias);\n            }\n            if (opt.string || opt.type === 'string') {\n                this.string(key);\n                if (opt.alias)\n                    this.string(opt.alias);\n            }\n            if (opt.count || opt.type === 'count') {\n                this.count(key);\n            }\n            if (typeof opt.global === 'boolean') {\n                this.global(key, opt.global);\n            }\n            if (opt.defaultDescription) {\n                __classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key] = opt.defaultDescription;\n            }\n            if (opt.skipValidation) {\n                this.skipValidation(key);\n            }\n            const desc = opt.describe || opt.description || opt.desc;\n            const descriptions = __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").getDescriptions();\n            if (!Object.prototype.hasOwnProperty.call(descriptions, key) ||\n                typeof desc === 'string') {\n                this.describe(key, desc);\n            }\n            if (opt.hidden) {\n                this.hide(key);\n            }\n            if (opt.requiresArg) {\n                this.requiresArg(key);\n            }\n        }\n        return this;\n    }\n    options(key, opt) {\n        return this.option(key, opt);\n    }\n    parse(args, shortCircuit, _parseFn) {\n        argsert('[string|array] [function|boolean|object] [function]', [args, shortCircuit, _parseFn], arguments.length);\n        this[kFreeze]();\n        if (typeof args === 'undefined') {\n            args = __classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\");\n        }\n        if (typeof shortCircuit === 'object') {\n            __classPrivateFieldSet(this, _YargsInstance_parseContext, shortCircuit, \"f\");\n            shortCircuit = _parseFn;\n        }\n        if (typeof shortCircuit === 'function') {\n            __classPrivateFieldSet(this, _YargsInstance_parseFn, shortCircuit, \"f\");\n            shortCircuit = false;\n        }\n        if (!shortCircuit)\n            __classPrivateFieldSet(this, _YargsInstance_processArgs, args, \"f\");\n        if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"))\n            __classPrivateFieldSet(this, _YargsInstance_exitProcess, false, \"f\");\n        const parsed = this[kRunYargsParserAndExecuteCommands](args, !!shortCircuit);\n        const tmpParsed = this.parsed;\n        __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").setParsed(this.parsed);\n        if (isPromise(parsed)) {\n            return parsed\n                .then(argv => {\n                if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"))\n                    __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\").call(this, __classPrivateFieldGet(this, _YargsInstance_exitError, \"f\"), argv, __classPrivateFieldGet(this, _YargsInstance_output, \"f\"));\n                return argv;\n            })\n                .catch(err => {\n                if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\")) {\n                    __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\")(err, this.parsed.argv, __classPrivateFieldGet(this, _YargsInstance_output, \"f\"));\n                }\n                throw err;\n            })\n                .finally(() => {\n                this[kUnfreeze]();\n                this.parsed = tmpParsed;\n            });\n        }\n        else {\n            if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"))\n                __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\").call(this, __classPrivateFieldGet(this, _YargsInstance_exitError, \"f\"), parsed, __classPrivateFieldGet(this, _YargsInstance_output, \"f\"));\n            this[kUnfreeze]();\n            this.parsed = tmpParsed;\n        }\n        return parsed;\n    }\n    parseAsync(args, shortCircuit, _parseFn) {\n        const maybePromise = this.parse(args, shortCircuit, _parseFn);\n        return !isPromise(maybePromise)\n            ? Promise.resolve(maybePromise)\n            : maybePromise;\n    }\n    parseSync(args, shortCircuit, _parseFn) {\n        const maybePromise = this.parse(args, shortCircuit, _parseFn);\n        if (isPromise(maybePromise)) {\n            throw new YError('.parseSync() must not be used with asynchronous builders, handlers, or middleware');\n        }\n        return maybePromise;\n    }\n    parserConfiguration(config) {\n        argsert('<object>', [config], arguments.length);\n        __classPrivateFieldSet(this, _YargsInstance_parserConfig, config, \"f\");\n        return this;\n    }\n    pkgConf(key, rootPath) {\n        argsert('<string> [string]', [key, rootPath], arguments.length);\n        let conf = null;\n        const obj = this[kPkgUp](rootPath || __classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"));\n        if (obj[key] && typeof obj[key] === 'object') {\n            conf = applyExtends(obj[key], rootPath || __classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"), this[kGetParserConfiguration]()['deep-merge-config'] || false, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n            __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects || []).concat(conf);\n        }\n        return this;\n    }\n    positional(key, opts) {\n        argsert('<string> <object>', [key, opts], arguments.length);\n        const supportedOpts = [\n            'default',\n            'defaultDescription',\n            'implies',\n            'normalize',\n            'choices',\n            'conflicts',\n            'coerce',\n            'type',\n            'describe',\n            'desc',\n            'description',\n            'alias',\n        ];\n        opts = objFilter(opts, (k, v) => {\n            if (k === 'type' && !['string', 'number', 'boolean'].includes(v))\n                return false;\n            return supportedOpts.includes(k);\n        });\n        const fullCommand = __classPrivateFieldGet(this, _YargsInstance_context, \"f\").fullCommands[__classPrivateFieldGet(this, _YargsInstance_context, \"f\").fullCommands.length - 1];\n        const parseOptions = fullCommand\n            ? __classPrivateFieldGet(this, _YargsInstance_command, \"f\").cmdToParseOptions(fullCommand)\n            : {\n                array: [],\n                alias: {},\n                default: {},\n                demand: {},\n            };\n        objectKeys(parseOptions).forEach(pk => {\n            const parseOption = parseOptions[pk];\n            if (Array.isArray(parseOption)) {\n                if (parseOption.indexOf(key) !== -1)\n                    opts[pk] = true;\n            }\n            else {\n                if (parseOption[key] && !(pk in opts))\n                    opts[pk] = parseOption[key];\n            }\n        });\n        this.group(key, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").getPositionalGroupName());\n        return this.option(key, opts);\n    }\n    recommendCommands(recommend = true) {\n        argsert('[boolean]', [recommend], arguments.length);\n        __classPrivateFieldSet(this, _YargsInstance_recommendCommands, recommend, \"f\");\n        return this;\n    }\n    required(keys, max, msg) {\n        return this.demand(keys, max, msg);\n    }\n    require(keys, max, msg) {\n        return this.demand(keys, max, msg);\n    }\n    requiresArg(keys) {\n        argsert('<array|string|object> [number]', [keys], arguments.length);\n        if (typeof keys === 'string' && __classPrivateFieldGet(this, _YargsInstance_options, \"f\").narg[keys]) {\n            return this;\n        }\n        else {\n            this[kPopulateParserHintSingleValueDictionary](this.requiresArg.bind(this), 'narg', keys, NaN);\n        }\n        return this;\n    }\n    showCompletionScript($0, cmd) {\n        argsert('[string] [string]', [$0, cmd], arguments.length);\n        $0 = $0 || this.$0;\n        __classPrivateFieldGet(this, _YargsInstance_logger, \"f\").log(__classPrivateFieldGet(this, _YargsInstance_completion, \"f\").generateCompletionScript($0, cmd || __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\") || 'completion'));\n        return this;\n    }\n    showHelp(level) {\n        argsert('[string|function]', [level], arguments.length);\n        __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n        if (!__classPrivateFieldGet(this, _YargsInstance_usage, \"f\").hasCachedHelpMessage()) {\n            if (!this.parsed) {\n                const parse = this[kRunYargsParserAndExecuteCommands](__classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\"), undefined, undefined, 0, true);\n                if (isPromise(parse)) {\n                    parse.then(() => {\n                        __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelp(level);\n                    });\n                    return this;\n                }\n            }\n            const builderResponse = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runDefaultBuilderOn(this);\n            if (isPromise(builderResponse)) {\n                builderResponse.then(() => {\n                    __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelp(level);\n                });\n                return this;\n            }\n        }\n        __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelp(level);\n        return this;\n    }\n    scriptName(scriptName) {\n        this.customScriptName = true;\n        this.$0 = scriptName;\n        return this;\n    }\n    showHelpOnFail(enabled, message) {\n        argsert('[boolean|string] [string]', [enabled, message], arguments.length);\n        __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelpOnFail(enabled, message);\n        return this;\n    }\n    showVersion(level) {\n        argsert('[string|function]', [level], arguments.length);\n        __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showVersion(level);\n        return this;\n    }\n    skipValidation(keys) {\n        argsert('<array|string>', [keys], arguments.length);\n        this[kPopulateParserHintArray]('skipValidation', keys);\n        return this;\n    }\n    strict(enabled) {\n        argsert('[boolean]', [enabled], arguments.length);\n        __classPrivateFieldSet(this, _YargsInstance_strict, enabled !== false, \"f\");\n        return this;\n    }\n    strictCommands(enabled) {\n        argsert('[boolean]', [enabled], arguments.length);\n        __classPrivateFieldSet(this, _YargsInstance_strictCommands, enabled !== false, \"f\");\n        return this;\n    }\n    strictOptions(enabled) {\n        argsert('[boolean]', [enabled], arguments.length);\n        __classPrivateFieldSet(this, _YargsInstance_strictOptions, enabled !== false, \"f\");\n        return this;\n    }\n    string(keys) {\n        argsert('<array|string>', [keys], arguments.length);\n        this[kPopulateParserHintArray]('string', keys);\n        this[kTrackManuallySetKeys](keys);\n        return this;\n    }\n    terminalWidth() {\n        argsert([], 0);\n        return __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.stdColumns;\n    }\n    updateLocale(obj) {\n        return this.updateStrings(obj);\n    }\n    updateStrings(obj) {\n        argsert('<object>', [obj], arguments.length);\n        __classPrivateFieldSet(this, _YargsInstance_detectLocale, false, \"f\");\n        __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.updateLocale(obj);\n        return this;\n    }\n    usage(msg, description, builder, handler) {\n        argsert('<string|null|undefined> [string|boolean] [function|object] [function]', [msg, description, builder, handler], arguments.length);\n        if (description !== undefined) {\n            assertNotStrictEqual(msg, null, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n            if ((msg || '').match(/^\\$0( |$)/)) {\n                return this.command(msg, description, builder, handler);\n            }\n            else {\n                throw new YError('.usage() description must start with $0 if being used as alias for .command()');\n            }\n        }\n        else {\n            __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").usage(msg);\n            return this;\n        }\n    }\n    usageConfiguration(config) {\n        argsert('<object>', [config], arguments.length);\n        __classPrivateFieldSet(this, _YargsInstance_usageConfig, config, \"f\");\n        return this;\n    }\n    version(opt, msg, ver) {\n        const defaultVersionOpt = 'version';\n        argsert('[boolean|string] [string] [string]', [opt, msg, ver], arguments.length);\n        if (__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\")) {\n            this[kDeleteFromParserHintObject](__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\"));\n            __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").version(undefined);\n            __classPrivateFieldSet(this, _YargsInstance_versionOpt, null, \"f\");\n        }\n        if (arguments.length === 0) {\n            ver = this[kGuessVersion]();\n            opt = defaultVersionOpt;\n        }\n        else if (arguments.length === 1) {\n            if (opt === false) {\n                return this;\n            }\n            ver = opt;\n            opt = defaultVersionOpt;\n        }\n        else if (arguments.length === 2) {\n            ver = msg;\n            msg = undefined;\n        }\n        __classPrivateFieldSet(this, _YargsInstance_versionOpt, typeof opt === 'string' ? opt : defaultVersionOpt, \"f\");\n        msg = msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Show version number');\n        __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").version(ver || undefined);\n        this.boolean(__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\"));\n        this.describe(__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\"), msg);\n        return this;\n    }\n    wrap(cols) {\n        argsert('<number|null|undefined>', [cols], arguments.length);\n        __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").wrap(cols);\n        return this;\n    }\n    [(_YargsInstance_command = new WeakMap(), _YargsInstance_cwd = new WeakMap(), _YargsInstance_context = new WeakMap(), _YargsInstance_completion = new WeakMap(), _YargsInstance_completionCommand = new WeakMap(), _YargsInstance_defaultShowHiddenOpt = new WeakMap(), _YargsInstance_exitError = new WeakMap(), _YargsInstance_detectLocale = new WeakMap(), _YargsInstance_emittedWarnings = new WeakMap(), _YargsInstance_exitProcess = new WeakMap(), _YargsInstance_frozens = new WeakMap(), _YargsInstance_globalMiddleware = new WeakMap(), _YargsInstance_groups = new WeakMap(), _YargsInstance_hasOutput = new WeakMap(), _YargsInstance_helpOpt = new WeakMap(), _YargsInstance_isGlobalContext = new WeakMap(), _YargsInstance_logger = new WeakMap(), _YargsInstance_output = new WeakMap(), _YargsInstance_options = new WeakMap(), _YargsInstance_parentRequire = new WeakMap(), _YargsInstance_parserConfig = new WeakMap(), _YargsInstance_parseFn = new WeakMap(), _YargsInstance_parseContext = new WeakMap(), _YargsInstance_pkgs = new WeakMap(), _YargsInstance_preservedGroups = new WeakMap(), _YargsInstance_processArgs = new WeakMap(), _YargsInstance_recommendCommands = new WeakMap(), _YargsInstance_shim = new WeakMap(), _YargsInstance_strict = new WeakMap(), _YargsInstance_strictCommands = new WeakMap(), _YargsInstance_strictOptions = new WeakMap(), _YargsInstance_usage = new WeakMap(), _YargsInstance_usageConfig = new WeakMap(), _YargsInstance_versionOpt = new WeakMap(), _YargsInstance_validation = new WeakMap(), kCopyDoubleDash)](argv) {\n        if (!argv._ || !argv['--'])\n            return argv;\n        argv._.push.apply(argv._, argv['--']);\n        try {\n            delete argv['--'];\n        }\n        catch (_err) { }\n        return argv;\n    }\n    [kCreateLogger]() {\n        return {\n            log: (...args) => {\n                if (!this[kHasParseCallback]())\n                    console.log(...args);\n                __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n                if (__classPrivateFieldGet(this, _YargsInstance_output, \"f\").length)\n                    __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + '\\n', \"f\");\n                __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + args.join(' '), \"f\");\n            },\n            error: (...args) => {\n                if (!this[kHasParseCallback]())\n                    console.error(...args);\n                __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n                if (__classPrivateFieldGet(this, _YargsInstance_output, \"f\").length)\n                    __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + '\\n', \"f\");\n                __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + args.join(' '), \"f\");\n            },\n        };\n    }\n    [kDeleteFromParserHintObject](optionKey) {\n        objectKeys(__classPrivateFieldGet(this, _YargsInstance_options, \"f\")).forEach((hintKey) => {\n            if (((key) => key === 'configObjects')(hintKey))\n                return;\n            const hint = __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[hintKey];\n            if (Array.isArray(hint)) {\n                if (hint.includes(optionKey))\n                    hint.splice(hint.indexOf(optionKey), 1);\n            }\n            else if (typeof hint === 'object') {\n                delete hint[optionKey];\n            }\n        });\n        delete __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").getDescriptions()[optionKey];\n    }\n    [kEmitWarning](warning, type, deduplicationId) {\n        if (!__classPrivateFieldGet(this, _YargsInstance_emittedWarnings, \"f\")[deduplicationId]) {\n            __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.emitWarning(warning, type);\n            __classPrivateFieldGet(this, _YargsInstance_emittedWarnings, \"f\")[deduplicationId] = true;\n        }\n    }\n    [kFreeze]() {\n        __classPrivateFieldGet(this, _YargsInstance_frozens, \"f\").push({\n            options: __classPrivateFieldGet(this, _YargsInstance_options, \"f\"),\n            configObjects: __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects.slice(0),\n            exitProcess: __classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"),\n            groups: __classPrivateFieldGet(this, _YargsInstance_groups, \"f\"),\n            strict: __classPrivateFieldGet(this, _YargsInstance_strict, \"f\"),\n            strictCommands: __classPrivateFieldGet(this, _YargsInstance_strictCommands, \"f\"),\n            strictOptions: __classPrivateFieldGet(this, _YargsInstance_strictOptions, \"f\"),\n            completionCommand: __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\"),\n            output: __classPrivateFieldGet(this, _YargsInstance_output, \"f\"),\n            exitError: __classPrivateFieldGet(this, _YargsInstance_exitError, \"f\"),\n            hasOutput: __classPrivateFieldGet(this, _YargsInstance_hasOutput, \"f\"),\n            parsed: this.parsed,\n            parseFn: __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"),\n            parseContext: __classPrivateFieldGet(this, _YargsInstance_parseContext, \"f\"),\n        });\n        __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").freeze();\n        __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").freeze();\n        __classPrivateFieldGet(this, _YargsInstance_command, \"f\").freeze();\n        __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").freeze();\n    }\n    [kGetDollarZero]() {\n        let $0 = '';\n        let default$0;\n        if (/\\b(node|iojs|electron)(\\.exe)?$/.test(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.argv()[0])) {\n            default$0 = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.argv().slice(1, 2);\n        }\n        else {\n            default$0 = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.argv().slice(0, 1);\n        }\n        $0 = default$0\n            .map(x => {\n            const b = this[kRebase](__classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"), x);\n            return x.match(/^(\\/|([a-zA-Z]:)?\\\\)/) && b.length < x.length ? b : x;\n        })\n            .join(' ')\n            .trim();\n        if (__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('_') &&\n            __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getProcessArgvBin() === __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('_')) {\n            $0 = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")\n                .getEnv('_')\n                .replace(`${__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.dirname(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.execPath())}/`, '');\n        }\n        return $0;\n    }\n    [kGetParserConfiguration]() {\n        return __classPrivateFieldGet(this, _YargsInstance_parserConfig, \"f\");\n    }\n    [kGetUsageConfiguration]() {\n        return __classPrivateFieldGet(this, _YargsInstance_usageConfig, \"f\");\n    }\n    [kGuessLocale]() {\n        if (!__classPrivateFieldGet(this, _YargsInstance_detectLocale, \"f\"))\n            return;\n        const locale = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LC_ALL') ||\n            __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LC_MESSAGES') ||\n            __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LANG') ||\n            __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LANGUAGE') ||\n            'en_US';\n        this.locale(locale.replace(/[.:].*/, ''));\n    }\n    [kGuessVersion]() {\n        const obj = this[kPkgUp]();\n        return obj.version || 'unknown';\n    }\n    [kParsePositionalNumbers](argv) {\n        const args = argv['--'] ? argv['--'] : argv._;\n        for (let i = 0, arg; (arg = args[i]) !== undefined; i++) {\n            if (__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").Parser.looksLikeNumber(arg) &&\n                Number.isSafeInteger(Math.floor(parseFloat(`${arg}`)))) {\n                args[i] = Number(arg);\n            }\n        }\n        return argv;\n    }\n    [kPkgUp](rootPath) {\n        const npath = rootPath || '*';\n        if (__classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath])\n            return __classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath];\n        let obj = {};\n        try {\n            let startDir = rootPath || __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").mainFilename;\n            if (__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.extname(startDir)) {\n                startDir = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.dirname(startDir);\n            }\n            const pkgJsonPath = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").findUp(startDir, (dir, names) => {\n                if (names.includes('package.json')) {\n                    return 'package.json';\n                }\n                else {\n                    return undefined;\n                }\n            });\n            assertNotStrictEqual(pkgJsonPath, undefined, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n            obj = JSON.parse(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").readFileSync(pkgJsonPath, 'utf8'));\n        }\n        catch (_noop) { }\n        __classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath] = obj || {};\n        return __classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath];\n    }\n    [kPopulateParserHintArray](type, keys) {\n        keys = [].concat(keys);\n        keys.forEach(key => {\n            key = this[kSanitizeKey](key);\n            __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type].push(key);\n        });\n    }\n    [kPopulateParserHintSingleValueDictionary](builder, type, key, value) {\n        this[kPopulateParserHintDictionary](builder, type, key, value, (type, key, value) => {\n            __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type][key] = value;\n        });\n    }\n    [kPopulateParserHintArrayDictionary](builder, type, key, value) {\n        this[kPopulateParserHintDictionary](builder, type, key, value, (type, key, value) => {\n            __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type][key] = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type][key] || []).concat(value);\n        });\n    }\n    [kPopulateParserHintDictionary](builder, type, key, value, singleKeyHandler) {\n        if (Array.isArray(key)) {\n            key.forEach(k => {\n                builder(k, value);\n            });\n        }\n        else if (((key) => typeof key === 'object')(key)) {\n            for (const k of objectKeys(key)) {\n                builder(k, key[k]);\n            }\n        }\n        else {\n            singleKeyHandler(type, this[kSanitizeKey](key), value);\n        }\n    }\n    [kSanitizeKey](key) {\n        if (key === '__proto__')\n            return '___proto___';\n        return key;\n    }\n    [kSetKey](key, set) {\n        this[kPopulateParserHintSingleValueDictionary](this[kSetKey].bind(this), 'key', key, set);\n        return this;\n    }\n    [kUnfreeze]() {\n        var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n        const frozen = __classPrivateFieldGet(this, _YargsInstance_frozens, \"f\").pop();\n        assertNotStrictEqual(frozen, undefined, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n        let configObjects;\n        (_a = this, _b = this, _c = this, _d = this, _e = this, _f = this, _g = this, _h = this, _j = this, _k = this, _l = this, _m = this, {\n            options: ({ set value(_o) { __classPrivateFieldSet(_a, _YargsInstance_options, _o, \"f\"); } }).value,\n            configObjects,\n            exitProcess: ({ set value(_o) { __classPrivateFieldSet(_b, _YargsInstance_exitProcess, _o, \"f\"); } }).value,\n            groups: ({ set value(_o) { __classPrivateFieldSet(_c, _YargsInstance_groups, _o, \"f\"); } }).value,\n            output: ({ set value(_o) { __classPrivateFieldSet(_d, _YargsInstance_output, _o, \"f\"); } }).value,\n            exitError: ({ set value(_o) { __classPrivateFieldSet(_e, _YargsInstance_exitError, _o, \"f\"); } }).value,\n            hasOutput: ({ set value(_o) { __classPrivateFieldSet(_f, _YargsInstance_hasOutput, _o, \"f\"); } }).value,\n            parsed: this.parsed,\n            strict: ({ set value(_o) { __classPrivateFieldSet(_g, _YargsInstance_strict, _o, \"f\"); } }).value,\n            strictCommands: ({ set value(_o) { __classPrivateFieldSet(_h, _YargsInstance_strictCommands, _o, \"f\"); } }).value,\n            strictOptions: ({ set value(_o) { __classPrivateFieldSet(_j, _YargsInstance_strictOptions, _o, \"f\"); } }).value,\n            completionCommand: ({ set value(_o) { __classPrivateFieldSet(_k, _YargsInstance_completionCommand, _o, \"f\"); } }).value,\n            parseFn: ({ set value(_o) { __classPrivateFieldSet(_l, _YargsInstance_parseFn, _o, \"f\"); } }).value,\n            parseContext: ({ set value(_o) { __classPrivateFieldSet(_m, _YargsInstance_parseContext, _o, \"f\"); } }).value,\n        } = frozen);\n        __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects = configObjects;\n        __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").unfreeze();\n        __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unfreeze();\n        __classPrivateFieldGet(this, _YargsInstance_command, \"f\").unfreeze();\n        __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").unfreeze();\n    }\n    [kValidateAsync](validation, argv) {\n        return maybeAsyncResult(argv, result => {\n            validation(result);\n            return result;\n        });\n    }\n    getInternalMethods() {\n        return {\n            getCommandInstance: this[kGetCommandInstance].bind(this),\n            getContext: this[kGetContext].bind(this),\n            getHasOutput: this[kGetHasOutput].bind(this),\n            getLoggerInstance: this[kGetLoggerInstance].bind(this),\n            getParseContext: this[kGetParseContext].bind(this),\n            getParserConfiguration: this[kGetParserConfiguration].bind(this),\n            getUsageConfiguration: this[kGetUsageConfiguration].bind(this),\n            getUsageInstance: this[kGetUsageInstance].bind(this),\n            getValidationInstance: this[kGetValidationInstance].bind(this),\n            hasParseCallback: this[kHasParseCallback].bind(this),\n            isGlobalContext: this[kIsGlobalContext].bind(this),\n            postProcess: this[kPostProcess].bind(this),\n            reset: this[kReset].bind(this),\n            runValidation: this[kRunValidation].bind(this),\n            runYargsParserAndExecuteCommands: this[kRunYargsParserAndExecuteCommands].bind(this),\n            setHasOutput: this[kSetHasOutput].bind(this),\n        };\n    }\n    [kGetCommandInstance]() {\n        return __classPrivateFieldGet(this, _YargsInstance_command, \"f\");\n    }\n    [kGetContext]() {\n        return __classPrivateFieldGet(this, _YargsInstance_context, \"f\");\n    }\n    [kGetHasOutput]() {\n        return __classPrivateFieldGet(this, _YargsInstance_hasOutput, \"f\");\n    }\n    [kGetLoggerInstance]() {\n        return __classPrivateFieldGet(this, _YargsInstance_logger, \"f\");\n    }\n    [kGetParseContext]() {\n        return __classPrivateFieldGet(this, _YargsInstance_parseContext, \"f\") || {};\n    }\n    [kGetUsageInstance]() {\n        return __classPrivateFieldGet(this, _YargsInstance_usage, \"f\");\n    }\n    [kGetValidationInstance]() {\n        return __classPrivateFieldGet(this, _YargsInstance_validation, \"f\");\n    }\n    [kHasParseCallback]() {\n        return !!__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\");\n    }\n    [kIsGlobalContext]() {\n        return __classPrivateFieldGet(this, _YargsInstance_isGlobalContext, \"f\");\n    }\n    [kPostProcess](argv, populateDoubleDash, calledFromCommand, runGlobalMiddleware) {\n        if (calledFromCommand)\n            return argv;\n        if (isPromise(argv))\n            return argv;\n        if (!populateDoubleDash) {\n            argv = this[kCopyDoubleDash](argv);\n        }\n        const parsePositionalNumbers = this[kGetParserConfiguration]()['parse-positional-numbers'] ||\n            this[kGetParserConfiguration]()['parse-positional-numbers'] === undefined;\n        if (parsePositionalNumbers) {\n            argv = this[kParsePositionalNumbers](argv);\n        }\n        if (runGlobalMiddleware) {\n            argv = applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").getMiddleware(), false);\n        }\n        return argv;\n    }\n    [kReset](aliases = {}) {\n        __classPrivateFieldSet(this, _YargsInstance_options, __classPrivateFieldGet(this, _YargsInstance_options, \"f\") || {}, \"f\");\n        const tmpOptions = {};\n        tmpOptions.local = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local || [];\n        tmpOptions.configObjects = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects || [];\n        const localLookup = {};\n        tmpOptions.local.forEach(l => {\n            localLookup[l] = true;\n            (aliases[l] || []).forEach(a => {\n                localLookup[a] = true;\n            });\n        });\n        Object.assign(__classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\"), Object.keys(__classPrivateFieldGet(this, _YargsInstance_groups, \"f\")).reduce((acc, groupName) => {\n            const keys = __classPrivateFieldGet(this, _YargsInstance_groups, \"f\")[groupName].filter(key => !(key in localLookup));\n            if (keys.length > 0) {\n                acc[groupName] = keys;\n            }\n            return acc;\n        }, {}));\n        __classPrivateFieldSet(this, _YargsInstance_groups, {}, \"f\");\n        const arrayOptions = [\n            'array',\n            'boolean',\n            'string',\n            'skipValidation',\n            'count',\n            'normalize',\n            'number',\n            'hiddenOptions',\n        ];\n        const objectOptions = [\n            'narg',\n            'key',\n            'alias',\n            'default',\n            'defaultDescription',\n            'config',\n            'choices',\n            'demandedOptions',\n            'demandedCommands',\n            'deprecatedOptions',\n        ];\n        arrayOptions.forEach(k => {\n            tmpOptions[k] = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\")[k] || []).filter((k) => !localLookup[k]);\n        });\n        objectOptions.forEach((k) => {\n            tmpOptions[k] = objFilter(__classPrivateFieldGet(this, _YargsInstance_options, \"f\")[k], k => !localLookup[k]);\n        });\n        tmpOptions.envPrefix = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").envPrefix;\n        __classPrivateFieldSet(this, _YargsInstance_options, tmpOptions, \"f\");\n        __classPrivateFieldSet(this, _YargsInstance_usage, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\")\n            ? __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").reset(localLookup)\n            : Usage(this, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n        __classPrivateFieldSet(this, _YargsInstance_validation, __classPrivateFieldGet(this, _YargsInstance_validation, \"f\")\n            ? __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").reset(localLookup)\n            : Validation(this, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n        __classPrivateFieldSet(this, _YargsInstance_command, __classPrivateFieldGet(this, _YargsInstance_command, \"f\")\n            ? __classPrivateFieldGet(this, _YargsInstance_command, \"f\").reset()\n            : Command(__classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), __classPrivateFieldGet(this, _YargsInstance_validation, \"f\"), __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\"), __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n        if (!__classPrivateFieldGet(this, _YargsInstance_completion, \"f\"))\n            __classPrivateFieldSet(this, _YargsInstance_completion, Completion(this, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), __classPrivateFieldGet(this, _YargsInstance_command, \"f\"), __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n        __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").reset();\n        __classPrivateFieldSet(this, _YargsInstance_completionCommand, null, \"f\");\n        __classPrivateFieldSet(this, _YargsInstance_output, '', \"f\");\n        __classPrivateFieldSet(this, _YargsInstance_exitError, null, \"f\");\n        __classPrivateFieldSet(this, _YargsInstance_hasOutput, false, \"f\");\n        this.parsed = false;\n        return this;\n    }\n    [kRebase](base, dir) {\n        return __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.relative(base, dir);\n    }\n    [kRunYargsParserAndExecuteCommands](args, shortCircuit, calledFromCommand, commandIndex = 0, helpOnly = false) {\n        var _a, _b, _c, _d;\n        let skipValidation = !!calledFromCommand || helpOnly;\n        args = args || __classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\");\n        __classPrivateFieldGet(this, _YargsInstance_options, \"f\").__ = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.__;\n        __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configuration = this[kGetParserConfiguration]();\n        const populateDoubleDash = !!__classPrivateFieldGet(this, _YargsInstance_options, \"f\").configuration['populate--'];\n        const config = Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configuration, {\n            'populate--': true,\n        });\n        const parsed = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").Parser.detailed(args, Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_options, \"f\"), {\n            configuration: { 'parse-positional-numbers': false, ...config },\n        }));\n        const argv = Object.assign(parsed.argv, __classPrivateFieldGet(this, _YargsInstance_parseContext, \"f\"));\n        let argvPromise = undefined;\n        const aliases = parsed.aliases;\n        let helpOptSet = false;\n        let versionOptSet = false;\n        Object.keys(argv).forEach(key => {\n            if (key === __classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\") && argv[key]) {\n                helpOptSet = true;\n            }\n            else if (key === __classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\") && argv[key]) {\n                versionOptSet = true;\n            }\n        });\n        argv.$0 = this.$0;\n        this.parsed = parsed;\n        if (commandIndex === 0) {\n            __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").clearCachedHelpMessage();\n        }\n        try {\n            this[kGuessLocale]();\n            if (shortCircuit) {\n                return this[kPostProcess](argv, populateDoubleDash, !!calledFromCommand, false);\n            }\n            if (__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")) {\n                const helpCmds = [__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")]\n                    .concat(aliases[__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")] || [])\n                    .filter(k => k.length > 1);\n                if (helpCmds.includes('' + argv._[argv._.length - 1])) {\n                    argv._.pop();\n                    helpOptSet = true;\n                }\n            }\n            __classPrivateFieldSet(this, _YargsInstance_isGlobalContext, false, \"f\");\n            const handlerKeys = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").getCommands();\n            const requestCompletions = ((_a = __classPrivateFieldGet(this, _YargsInstance_completion, \"f\")) === null || _a === void 0 ? void 0 : _a.completionKey)\n                ? [\n                    (_b = __classPrivateFieldGet(this, _YargsInstance_completion, \"f\")) === null || _b === void 0 ? void 0 : _b.completionKey,\n                    ...((_d = this.getAliases()[(_c = __classPrivateFieldGet(this, _YargsInstance_completion, \"f\")) === null || _c === void 0 ? void 0 : _c.completionKey]) !== null && _d !== void 0 ? _d : []),\n                ].some((key) => Object.prototype.hasOwnProperty.call(argv, key))\n                : false;\n            const skipRecommendation = helpOptSet || requestCompletions || helpOnly;\n            if (argv._.length) {\n                if (handlerKeys.length) {\n                    let firstUnknownCommand;\n                    for (let i = commandIndex || 0, cmd; argv._[i] !== undefined; i++) {\n                        cmd = String(argv._[i]);\n                        if (handlerKeys.includes(cmd) && cmd !== __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\")) {\n                            const innerArgv = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runCommand(cmd, this, parsed, i + 1, helpOnly, helpOptSet || versionOptSet || helpOnly);\n                            return this[kPostProcess](innerArgv, populateDoubleDash, !!calledFromCommand, false);\n                        }\n                        else if (!firstUnknownCommand &&\n                            cmd !== __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\")) {\n                            firstUnknownCommand = cmd;\n                            break;\n                        }\n                    }\n                    if (!__classPrivateFieldGet(this, _YargsInstance_command, \"f\").hasDefaultCommand() &&\n                        __classPrivateFieldGet(this, _YargsInstance_recommendCommands, \"f\") &&\n                        firstUnknownCommand &&\n                        !skipRecommendation) {\n                        __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").recommendCommands(firstUnknownCommand, handlerKeys);\n                    }\n                }\n                if (__classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\") &&\n                    argv._.includes(__classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\")) &&\n                    !requestCompletions) {\n                    if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n                        setBlocking(true);\n                    this.showCompletionScript();\n                    this.exit(0);\n                }\n            }\n            if (__classPrivateFieldGet(this, _YargsInstance_command, \"f\").hasDefaultCommand() && !skipRecommendation) {\n                const innerArgv = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runCommand(null, this, parsed, 0, helpOnly, helpOptSet || versionOptSet || helpOnly);\n                return this[kPostProcess](innerArgv, populateDoubleDash, !!calledFromCommand, false);\n            }\n            if (requestCompletions) {\n                if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n                    setBlocking(true);\n                args = [].concat(args);\n                const completionArgs = args.slice(args.indexOf(`--${__classPrivateFieldGet(this, _YargsInstance_completion, \"f\").completionKey}`) + 1);\n                __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").getCompletion(completionArgs, (err, completions) => {\n                    if (err)\n                        throw new YError(err.message);\n                    (completions || []).forEach(completion => {\n                        __classPrivateFieldGet(this, _YargsInstance_logger, \"f\").log(completion);\n                    });\n                    this.exit(0);\n                });\n                return this[kPostProcess](argv, !populateDoubleDash, !!calledFromCommand, false);\n            }\n            if (!__classPrivateFieldGet(this, _YargsInstance_hasOutput, \"f\")) {\n                if (helpOptSet) {\n                    if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n                        setBlocking(true);\n                    skipValidation = true;\n                    this.showHelp(message => {\n                        __classPrivateFieldGet(this, _YargsInstance_logger, \"f\").log(message);\n                        this.exit(0);\n                    });\n                }\n                else if (versionOptSet) {\n                    if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n                        setBlocking(true);\n                    skipValidation = true;\n                    __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showVersion('log');\n                    this.exit(0);\n                }\n            }\n            if (!skipValidation && __classPrivateFieldGet(this, _YargsInstance_options, \"f\").skipValidation.length > 0) {\n                skipValidation = Object.keys(argv).some(key => __classPrivateFieldGet(this, _YargsInstance_options, \"f\").skipValidation.indexOf(key) >= 0 && argv[key] === true);\n            }\n            if (!skipValidation) {\n                if (parsed.error)\n                    throw new YError(parsed.error.message);\n                if (!requestCompletions) {\n                    const validation = this[kRunValidation](aliases, {}, parsed.error);\n                    if (!calledFromCommand) {\n                        argvPromise = applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").getMiddleware(), true);\n                    }\n                    argvPromise = this[kValidateAsync](validation, argvPromise !== null && argvPromise !== void 0 ? argvPromise : argv);\n                    if (isPromise(argvPromise) && !calledFromCommand) {\n                        argvPromise = argvPromise.then(() => {\n                            return applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").getMiddleware(), false);\n                        });\n                    }\n                }\n            }\n        }\n        catch (err) {\n            if (err instanceof YError)\n                __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(err.message, err);\n            else\n                throw err;\n        }\n        return this[kPostProcess](argvPromise !== null && argvPromise !== void 0 ? argvPromise : argv, populateDoubleDash, !!calledFromCommand, true);\n    }\n    [kRunValidation](aliases, positionalMap, parseErrors, isDefaultCommand) {\n        const demandedOptions = { ...this.getDemandedOptions() };\n        return (argv) => {\n            if (parseErrors)\n                throw new YError(parseErrors.message);\n            __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").nonOptionCount(argv);\n            __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").requiredArguments(argv, demandedOptions);\n            let failedStrictCommands = false;\n            if (__classPrivateFieldGet(this, _YargsInstance_strictCommands, \"f\")) {\n                failedStrictCommands = __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unknownCommands(argv);\n            }\n            if (__classPrivateFieldGet(this, _YargsInstance_strict, \"f\") && !failedStrictCommands) {\n                __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unknownArguments(argv, aliases, positionalMap, !!isDefaultCommand);\n            }\n            else if (__classPrivateFieldGet(this, _YargsInstance_strictOptions, \"f\")) {\n                __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unknownArguments(argv, aliases, {}, false, false);\n            }\n            __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").limitedChoices(argv);\n            __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").implications(argv);\n            __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").conflicting(argv);\n        };\n    }\n    [kSetHasOutput]() {\n        __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n    }\n    [kTrackManuallySetKeys](keys) {\n        if (typeof keys === 'string') {\n            __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[keys] = true;\n        }\n        else {\n            for (const k of keys) {\n                __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[k] = true;\n            }\n        }\n    }\n}\nexport function isYargsInstance(y) {\n    return !!y && typeof y.getInternalMethods === 'function';\n}\n","'use strict';\n\n// Bootstraps yargs for ESM:\nimport esmPlatformShim from './lib/platform-shims/esm.mjs';\nimport {YargsFactory} from './build/lib/yargs-factory.js';\n\nconst Yargs = YargsFactory(esmPlatformShim);\nexport default Yargs;\n\nexport {Yargs as 'module.exports'};\n","import { Transform } from \"node:stream\";\n\n/**\n * Extracts JSON-RPC messages from a stream that may contain non-JSON output.\n *\n * Lines that start with '{' are passed through as-is. Lines that contain '{'\n * but have a non-JSON prefix (e.g. Python warnings prepended to a JSON message)\n * have the prefix stripped and the JSON portion extracted. Lines with no '{'\n * are dropped entirely.\n */\nexport class JSONFilterTransform extends Transform {\n  private buffer = \"\";\n\n  constructor() {\n    super({ objectMode: false });\n  }\n\n  _flush(callback: (error: Error | null, chunk: Buffer | null) => void) {\n    // Handle any remaining data in buffer\n    const json = extractJson(this.buffer);\n    if (json !== null) {\n      callback(null, Buffer.from(json));\n    } else {\n      callback(null, null);\n    }\n  }\n\n  _transform(\n    chunk: Buffer,\n    _encoding: string,\n    callback: (error: Error | null, chunk: Buffer | null) => void,\n  ) {\n    this.buffer += chunk.toString();\n    const lines = this.buffer.split(\"\\n\");\n\n    // Keep the last incomplete line in the buffer\n    this.buffer = lines.pop() || \"\";\n\n    const jsonLines = [];\n    const nonJsonLines = [];\n\n    for (const line of lines) {\n      const json = extractJson(line);\n      if (json !== null) {\n        jsonLines.push(json);\n      } else if (line.trim().length > 0) {\n        nonJsonLines.push(line);\n      }\n    }\n\n    if (nonJsonLines.length > 0) {\n      console.warn(\"[mcp-proxy] ignoring non-JSON output\", nonJsonLines);\n    }\n\n    if (jsonLines.length > 0) {\n      // Send filtered lines with newlines\n      const output = jsonLines.join(\"\\n\") + \"\\n\";\n\n      callback(null, Buffer.from(output));\n    } else {\n      callback(null, null);\n    }\n  }\n}\n\n/**\n * Extracts the JSON portion from a line that may have a non-JSON prefix.\n * Returns null if the line contains no '{'.\n */\nfunction extractJson(line: string): null | string {\n  const trimmed = line.trim();\n  if (trimmed.length === 0) {\n    return null;\n  }\n\n  const braceIndex = trimmed.indexOf(\"{\");\n  if (braceIndex === -1) {\n    return null;\n  }\n\n  if (braceIndex === 0) {\n    return trimmed;\n  }\n\n  // There's a non-JSON prefix — strip it and return from the first '{'\n  const jsonPart = trimmed.slice(braceIndex);\n  console.warn(\n    \"[mcp-proxy] stripped non-JSON prefix from output:\",\n    trimmed.slice(0, braceIndex),\n  );\n  return jsonPart;\n}\n","/**\n * Forked from https://github.com/modelcontextprotocol/typescript-sdk/blob/a1608a6513d18eb965266286904760f830de96fe/src/client/stdio.ts\n */\n\nimport {\n  ReadBuffer,\n  serializeMessage,\n} from \"@modelcontextprotocol/sdk/shared/stdio.js\";\nimport { Transport } from \"@modelcontextprotocol/sdk/shared/transport.js\";\nimport { JSONRPCMessage } from \"@modelcontextprotocol/sdk/types.js\";\nimport { ChildProcess, IOType, spawn } from \"node:child_process\";\nimport { PassThrough, Stream } from \"node:stream\";\n\nimport { JSONFilterTransform } from \"./JSONFilterTransform.js\";\n\nexport type StdioServerParameters = {\n  /**\n   * Command line arguments to pass to the executable.\n   */\n  args?: string[];\n\n  /**\n   * The executable to run to start the server.\n   */\n  command: string;\n\n  /**\n   * The working directory to use when spawning the process.\n   *\n   * If not specified, the current working directory will be inherited.\n   */\n  cwd?: string;\n\n  /**\n   * The environment to use when spawning the process.\n   *\n   * If not specified, the result of getDefaultEnvironment() will be used.\n   */\n  env: Record<string, string>;\n\n  /**\n   * A function to call when an event occurs.\n   */\n  onEvent?: (event: TransportEvent) => void;\n\n  /**\n   * When true, spawn the child process using the user's shell.\n   */\n  shell?: boolean;\n\n  /**\n   * How to handle stderr of the child process. This matches the semantics of Node's `child_process.spawn`.\n   *\n   * The default is \"inherit\", meaning messages to stderr will be printed to the parent process's stderr.\n   */\n  stderr?: IOType | number | Stream;\n};\n\ntype TransportEvent =\n  | {\n      chunk: string;\n      type: \"data\";\n    }\n  | {\n      error: Error;\n      type: \"error\";\n    }\n  | {\n      message: JSONRPCMessage;\n      type: \"message\";\n    }\n  | {\n      type: \"close\";\n    };\n\n/**\n * Client transport for stdio: this will connect to a server by spawning a process and communicating with it over stdin/stdout.\n *\n * This transport is only available in Node.js environments.\n */\nexport class StdioClientTransport implements Transport {\n  onclose?: () => void;\n\n  onerror?: (error: Error) => void;\n  onmessage?: (message: JSONRPCMessage) => void;\n  /**\n   * The child process pid spawned by this transport.\n   *\n   * This is only available after the transport has been started.\n   */\n  get pid(): null | number {\n    return this._process?.pid ?? null;\n  }\n  /**\n   * The stderr stream of the child process, if `StdioServerParameters.stderr` was set to \"pipe\" or \"overlapped\".\n   *\n   * If stderr piping was requested, a PassThrough stream is returned _immediately_, allowing callers to\n   * attach listeners before the start method is invoked. This prevents loss of any early\n   * error output emitted by the child process.\n   */\n  get stderr(): null | Stream {\n    if (this._stderrStream) {\n      return this._stderrStream;\n    }\n\n    return this._process?.stderr ?? null;\n  }\n  private _abortController: AbortController = new AbortController();\n  private _process?: ChildProcess;\n  private _readBuffer: ReadBuffer = new ReadBuffer();\n  private _serverParams: StdioServerParameters;\n  private _stderrStream: null | PassThrough = null;\n\n  private onEvent?: (event: TransportEvent) => void;\n\n  constructor(server: StdioServerParameters) {\n    this._serverParams = server;\n    if (server.stderr === \"pipe\" || server.stderr === \"overlapped\") {\n      this._stderrStream = new PassThrough();\n    }\n    this.onEvent = server.onEvent;\n  }\n\n  async close(): Promise<void> {\n    this.onEvent?.({\n      type: \"close\",\n    });\n\n    this._abortController.abort();\n    this._process = undefined;\n    this._readBuffer.clear();\n  }\n\n  send(message: JSONRPCMessage): Promise<void> {\n    return new Promise((resolve) => {\n      if (!this._process?.stdin) {\n        throw new Error(\"Not connected\");\n      }\n\n      const json = serializeMessage(message);\n      if (this._process.stdin.write(json)) {\n        resolve();\n      } else {\n        this._process.stdin.once(\"drain\", resolve);\n      }\n    });\n  }\n\n  /**\n   * Starts the server process and prepares to communicate with it.\n   */\n  async start(): Promise<void> {\n    if (this._process) {\n      throw new Error(\n        \"StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.\",\n      );\n    }\n\n    return new Promise((resolve, reject) => {\n      this._process = spawn(\n        this._serverParams.command,\n        this._serverParams.args ?? [],\n        {\n          cwd: this._serverParams.cwd,\n          env: this._serverParams.env,\n          shell: this._serverParams.shell ?? false,\n          signal: this._abortController.signal,\n          stdio: [\"pipe\", \"pipe\", this._serverParams.stderr ?? \"inherit\"],\n        },\n      );\n\n      this._process.on(\"error\", (error) => {\n        if (error.name === \"AbortError\") {\n          // Expected when close() is called.\n          this.onclose?.();\n          return;\n        }\n\n        reject(error);\n        this.onerror?.(error);\n      });\n\n      this._process.on(\"spawn\", () => {\n        resolve();\n      });\n\n      // eslint-disable-next-line @typescript-eslint/no-unused-vars\n      this._process.on(\"close\", (_code) => {\n        this.onEvent?.({\n          type: \"close\",\n        });\n\n        this._process = undefined;\n        this.onclose?.();\n      });\n\n      this._process.stdin?.on(\"error\", (error) => {\n        this.onEvent?.({\n          error,\n          type: \"error\",\n        });\n\n        this.onerror?.(error);\n      });\n\n      const jsonFilterTransform = new JSONFilterTransform();\n\n      this._process.stdout?.pipe(jsonFilterTransform);\n\n      jsonFilterTransform.on(\"data\", (chunk) => {\n        this.onEvent?.({\n          chunk: chunk.toString(),\n          type: \"data\",\n        });\n\n        this._readBuffer.append(chunk);\n        this.processReadBuffer();\n      });\n\n      jsonFilterTransform.on(\"error\", (error) => {\n        this.onEvent?.({\n          error,\n          type: \"error\",\n        });\n\n        this.onerror?.(error);\n      });\n\n      if (this._stderrStream && this._process.stderr) {\n        this._process.stderr.pipe(this._stderrStream);\n      }\n    });\n  }\n\n  private processReadBuffer() {\n    while (true) {\n      try {\n        const message = this._readBuffer.readMessage();\n\n        if (message === null) {\n          break;\n        }\n\n        this.onEvent?.({\n          message,\n          type: \"message\",\n        });\n\n        this.onmessage?.(message);\n      } catch (error) {\n        this.onEvent?.({\n          error: error as Error,\n          type: \"error\",\n        });\n\n        this.onerror?.(error as Error);\n      }\n    }\n  }\n}\n","#!/usr/bin/env node\n\nimport { Client } from \"@modelcontextprotocol/sdk/client/index.js\";\nimport { Server } from \"@modelcontextprotocol/sdk/server/index.js\";\nimport { ServerCapabilities } from \"@modelcontextprotocol/sdk/types.js\";\nimport { EventSource } from \"eventsource\";\nimport { createRequire } from \"node:module\";\nimport { setTimeout } from \"node:timers\";\nimport util from \"node:util\";\nimport { pipenet } from \"pipenet\";\nimport yargs from \"yargs\";\nimport { hideBin } from \"yargs/helpers\";\n\nconst require = createRequire(import.meta.url);\nconst packageJson = require(\"../../package.json\") as { version: string };\n\nimport { proxyServer } from \"../proxyServer.js\";\nimport { SSEServer, startHTTPServer } from \"../startHTTPServer.js\";\nimport { StdioClientTransport } from \"../StdioClientTransport.js\";\n\nutil.inspect.defaultOptions.depth = 8;\n\nif (!(\"EventSource\" in global)) {\n  // @ts-expect-error - figure out how to use --experimental-eventsource with vitest\n  global.EventSource = EventSource;\n}\n\nconst argv = await yargs(hideBin(process.argv))\n  .scriptName(\"mcp-proxy\")\n  .version(packageJson.version)\n  .command(\"$0 [command] [args...]\", \"Proxy an MCP stdio server over HTTP\")\n  .positional(\"command\", {\n    describe: \"The command to run\",\n    type: \"string\",\n  })\n  .positional(\"args\", {\n    array: true,\n    describe: \"The arguments to pass to the command\",\n    type: \"string\",\n  })\n  .usage(\"$0 [options] -- <command> [args...]\\n       $0 <command> [args...]\")\n  .env(\"MCP_PROXY\")\n  .parserConfiguration({\n    \"populate--\": true,\n  })\n  .options({\n    apiKey: {\n      describe: \"API key for authenticating requests (uses X-API-Key header)\",\n      type: \"string\",\n    },\n    connectionTimeout: {\n      default: 60000,\n      describe:\n        \"The timeout (in milliseconds) for initial connection to the MCP server (default: 60 seconds)\",\n      type: \"number\",\n    },\n    corsAddAllowedHeader: {\n      array: true,\n      describe:\n        \"Add a header name to Access-Control-Allow-Headers (defaults preserved). Repeat to add multiple, e.g. `--corsAddAllowedHeader X-API-Key`.\",\n      type: \"string\",\n    },\n    debug: {\n      default: false,\n      describe: \"Enable debug logging\",\n      type: \"boolean\",\n    },\n    endpoint: {\n      describe: \"The endpoint to listen on\",\n      type: \"string\",\n    },\n    eventStore: {\n      default: true,\n      describe:\n        \"Enable the streamable HTTP transport's resumability event store, which lets clients replay missed messages after a reconnect. Use --no-eventStore to disable it entirely for request/response-only deployments that don't need this and would rather avoid the memory overhead\",\n      type: \"boolean\",\n    },\n    eventStoreMaxEvents: {\n      default: 1000,\n      describe:\n        \"Maximum number of buffered events the resumability event store retains (per session) before it evicts the oldest; bounds memory use. Ignored when --no-eventStore is set\",\n      type: \"number\",\n    },\n    gracefulShutdownTimeout: {\n      default: 5000,\n      describe: \"The timeout (in milliseconds) for graceful shutdown\",\n      type: \"number\",\n    },\n    host: {\n      default: \"::\",\n      describe: \"The host to listen on\",\n      type: \"string\",\n    },\n    keepAliveTimeout: {\n      default: 300000,\n      describe:\n        \"The HTTP keep-alive timeout in milliseconds for stateful stream sessions (default: 5 minutes)\",\n      type: \"number\",\n    },\n    maxBodySize: {\n      default: 10485760,\n      describe:\n        \"Maximum request body size in bytes accepted by the stream endpoint; larger requests are answered with 413 Payload Too Large. Bounds the memory a single request can consume (default: 10 MiB). Set to 0 to disable the limit\",\n      type: \"number\",\n    },\n    port: {\n      default: 8080,\n      describe: \"The port to listen on\",\n      type: \"number\",\n    },\n    requestTimeout: {\n      default: 300000,\n      describe:\n        \"The timeout (in milliseconds) for requests to the MCP server (default: 5 minutes)\",\n      type: \"number\",\n    },\n    server: {\n      choices: [\"sse\", \"stream\"],\n      describe:\n        \"The server type to use (sse or stream). By default, both are enabled\",\n      type: \"string\",\n    },\n    shell: {\n      default: false,\n      describe: \"Spawn the server via the user's shell\",\n      type: \"boolean\",\n    },\n    sseEndpoint: {\n      default: \"/sse\",\n      describe: \"The SSE endpoint to listen on\",\n      type: \"string\",\n    },\n    sslCa: {\n      describe: \"Filename to override the trusted CA certificates\",\n      type: \"string\",\n    },\n    sslCert: {\n      describe: \"Cert chains filename in PEM format\",\n      type: \"string\",\n    },\n    sslKey: {\n      describe: \"Private keys filename in PEM format\",\n      type: \"string\",\n    },\n    stateless: {\n      default: false,\n      describe:\n        \"Enable stateless mode for HTTP streamable transport (no session management)\",\n      type: \"boolean\",\n    },\n    streamEndpoint: {\n      default: \"/mcp\",\n      describe: \"The stream endpoint to listen on\",\n      type: \"string\",\n    },\n    tunnel: {\n      default: false,\n      describe: \"Expose the proxy via a public tunnel using tunnel.gla.ma\",\n      type: \"boolean\",\n    },\n    tunnelSubdomain: {\n      describe: \"Request a specific subdomain for the tunnel (availability not guaranteed)\",\n      type: \"string\",\n    },\n  })\n  .help()\n  .parseAsync();\n\nif (!(argv.eventStoreMaxEvents >= 1)) {\n  console.error(\n    `Error: --eventStoreMaxEvents must be a number >= 1 (got ${String(argv.eventStoreMaxEvents)}). Use --no-eventStore to disable the event store instead.`,\n  );\n  process.exit(1);\n}\n\nif (!(argv.maxBodySize >= 0)) {\n  console.error(\n    `Error: --maxBodySize must be a number >= 0 (got ${String(argv.maxBodySize)}). Use --maxBodySize 0 to disable the limit instead.`,\n  );\n  process.exit(1);\n}\n\n// Default Access-Control-Allow-Headers list — must stay in sync with\n// `defaultCorsOptions.allowedHeaders` in src/startHTTPServer.ts.\nconst DEFAULT_ALLOWED_HEADERS = [\n  \"Content-Type\",\n  \"Authorization\",\n  \"Accept\",\n  \"Mcp-Session-Id\",\n  \"Mcp-Protocol-Version\",\n  \"Last-Event-Id\",\n];\n\nconst corsOption =\n  argv.corsAddAllowedHeader && argv.corsAddAllowedHeader.length > 0\n    ? { allowedHeaders: [...DEFAULT_ALLOWED_HEADERS, ...argv.corsAddAllowedHeader] }\n    : undefined;\n\n// If -- separator was used, everything after -- is the command and its args\nconst dashDashArgs = argv[\"--\"] as string[] | undefined;\n\nlet finalCommand: string;\nlet finalArgs: string[];\n\nif (dashDashArgs && dashDashArgs.length > 0) {\n  // -- was used: first item after -- is command, rest are args\n  [finalCommand, ...finalArgs] = dashDashArgs;\n} else if (argv.command) {\n  // No -- used: use positional command and args\n  finalCommand = argv.command as string;\n  finalArgs = (argv.args as string[]) || [];\n} else {\n  console.error(\"Error: No command specified.\");\n  console.error(\"Usage: mcp-proxy [options] -- <command> [args...]\");\n  console.error(\"   or: mcp-proxy <command> [args...]\");\n  console.error(\"\");\n  console.error(\"Examples:\");\n  console.error(\"  mcp-proxy --port 8080 -- node server.js --port 3000\");\n  console.error(\"  mcp-proxy node server.js\");\n  process.exit(1);\n}\n\nconst connect = async (client: Client, connectionTimeout: number) => {\n  const transport = new StdioClientTransport({\n    args: finalArgs,\n    command: finalCommand,\n    env: process.env as Record<string, string>,\n    onEvent: (event) => {\n      if (argv.debug) {\n        console.debug(\"transport event\", event);\n      }\n    },\n    shell: argv.shell,\n    // We want to passthrough stderr from the MCP server to enable better debugging\n    stderr: \"inherit\",\n  });\n\n  await client.connect(transport, { timeout: connectionTimeout });\n};\n\nconst proxy = async () => {\n  const client = new Client(\n    {\n      name: \"mcp-proxy\",\n      version: \"1.0.0\",\n    },\n    {\n      capabilities: {},\n    },\n  );\n\n  await connect(client, argv.connectionTimeout);\n\n  const serverVersion = client.getServerVersion() as {\n    name: string;\n    version: string;\n  };\n\n  const serverCapabilities = client.getServerCapabilities() as ServerCapabilities;\n\n  console.info(\"starting server on port %d\", argv.port);\n\n  const createServer = async () => {\n    const server = new Server(serverVersion, {\n      capabilities: serverCapabilities,\n    });\n\n    proxyServer({\n      client,\n      requestTimeout: argv.requestTimeout,\n      server,\n      serverCapabilities,\n    });\n\n    return server;\n  };\n\n  const server = await startHTTPServer({\n    apiKey: argv.apiKey,\n    cors: corsOption,\n    createServer,\n    eventStore: argv.eventStore ? undefined : false,\n    eventStoreMaxEvents: argv.eventStoreMaxEvents,\n    host: argv.host,\n    keepAliveTimeout: argv.keepAliveTimeout,\n    maxBodySize: argv.maxBodySize === 0 ? false : argv.maxBodySize,\n    port: argv.port,\n    sseEndpoint:\n      argv.server && argv.server !== \"sse\"\n        ? null\n        : (argv.sseEndpoint ?? argv.endpoint),\n    sslCa: argv.sslCa,\n    sslCert: argv.sslCert,\n    sslKey: argv.sslKey,\n    stateless: argv.stateless,\n    streamEndpoint:\n      argv.server && argv.server !== \"stream\"\n        ? null\n        : (argv.streamEndpoint ?? argv.endpoint),\n  });\n\n  let tunnel: Awaited<ReturnType<typeof pipenet>> | undefined;\n\n  if (argv.tunnel) {\n    console.info(\"establishing tunnel via tunnel.gla.ma\");\n    tunnel = await pipenet({\n      host: \"https://tunnel.gla.ma\",\n      port: argv.port,\n      subdomain: argv.tunnelSubdomain,\n    });\n    console.info(\"tunnel established at %s\", tunnel.url);\n  }\n\n  return {\n    close: async () => {\n      await server.close();\n      if (tunnel) {\n        await tunnel.close();\n      }\n    },\n  };\n};\n\nconst createGracefulShutdown = ({\n  server,\n  timeout,\n}: {\n  server: SSEServer;\n  timeout: number;\n}) => {\n  const gracefulShutdown = () => {\n    console.info(\"received shutdown signal; shutting down\");\n\n    server.close();\n\n    setTimeout(() => {\n      // Exit with non-zero code to indicate failure to shutdown gracefully\n      process.exit(1);\n    }, timeout).unref();\n  };\n\n  process.once(\"SIGTERM\", gracefulShutdown);\n  process.once(\"SIGINT\", gracefulShutdown);\n\n  return () => {\n    server.close();\n  };\n};\n\nconst main = async () => {\n  try {\n    const server = await proxy();\n\n    createGracefulShutdown({\n      server,\n      timeout: argv.gracefulShutdownTimeout,\n    });\n  } catch (error) {\n    console.error(\"could not start the proxy\", error);\n\n    // We give an extra second for logs to flush\n    setTimeout(() => {\n      process.exit(1);\n    }, 1000);\n  }\n};\n\nawait main();\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"mappings":"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AK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,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"}