UNPKG

gcommit-ai

Version:

AI-powered conventional commit message generator CLI tool

4 lines 3.46 MB
{ "version": 3, "sources": ["../node_modules/commander/lib/error.js", "../node_modules/commander/lib/argument.js", "../node_modules/commander/lib/help.js", "../node_modules/commander/lib/option.js", "../node_modules/commander/lib/suggestSimilar.js", "../node_modules/commander/lib/command.js", "../node_modules/commander/index.js", "../node_modules/delayed-stream/lib/delayed_stream.js", "../node_modules/combined-stream/lib/combined_stream.js", "../node_modules/mime-db/db.json", "../node_modules/mime-db/index.js", "../node_modules/mime-types/index.js", "../node_modules/asynckit/lib/defer.js", "../node_modules/asynckit/lib/async.js", "../node_modules/asynckit/lib/abort.js", "../node_modules/asynckit/lib/iterate.js", "../node_modules/asynckit/lib/state.js", "../node_modules/asynckit/lib/terminator.js", "../node_modules/asynckit/parallel.js", "../node_modules/asynckit/serialOrdered.js", "../node_modules/asynckit/serial.js", "../node_modules/asynckit/index.js", "../node_modules/es-object-atoms/index.js", "../node_modules/es-errors/index.js", "../node_modules/es-errors/eval.js", "../node_modules/es-errors/range.js", "../node_modules/es-errors/ref.js", "../node_modules/es-errors/syntax.js", "../node_modules/es-errors/type.js", "../node_modules/es-errors/uri.js", "../node_modules/math-intrinsics/abs.js", "../node_modules/math-intrinsics/floor.js", "../node_modules/math-intrinsics/max.js", "../node_modules/math-intrinsics/min.js", "../node_modules/math-intrinsics/pow.js", "../node_modules/math-intrinsics/round.js", "../node_modules/math-intrinsics/isNaN.js", "../node_modules/math-intrinsics/sign.js", "../node_modules/gopd/gOPD.js", "../node_modules/gopd/index.js", "../node_modules/es-define-property/index.js", "../node_modules/has-symbols/shams.js", "../node_modules/has-symbols/index.js", "../node_modules/get-proto/Reflect.getPrototypeOf.js", "../node_modules/get-proto/Object.getPrototypeOf.js", "../node_modules/function-bind/implementation.js", "../node_modules/function-bind/index.js", "../node_modules/call-bind-apply-helpers/functionCall.js", "../node_modules/call-bind-apply-helpers/functionApply.js", "../node_modules/call-bind-apply-helpers/reflectApply.js", "../node_modules/call-bind-apply-helpers/actualApply.js", "../node_modules/call-bind-apply-helpers/index.js", "../node_modules/dunder-proto/get.js", "../node_modules/get-proto/index.js", "../node_modules/hasown/index.js", "../node_modules/get-intrinsic/index.js", "../node_modules/has-tostringtag/shams.js", "../node_modules/es-set-tostringtag/index.js", "../node_modules/form-data/lib/populate.js", "../node_modules/form-data/lib/form_data.js", "../node_modules/proxy-from-env/index.js", "../node_modules/ms/index.js", "../node_modules/debug/src/common.js", "../node_modules/debug/src/browser.js", "../node_modules/has-flag/index.js", "../node_modules/supports-color/index.js", "../node_modules/debug/src/node.js", "../node_modules/debug/src/index.js", "../node_modules/follow-redirects/debug.js", "../node_modules/follow-redirects/index.js", "../node_modules/@kwsites/file-exists/src/index.ts", "../node_modules/@kwsites/file-exists/index.ts", "../node_modules/@kwsites/promise-deferred/src/index.ts", "../node_modules/ansi-escapes/index.js", "../node_modules/yoctocolors-cjs/index.js", "../node_modules/run-async/index.js", "../node_modules/rxjs/src/internal/util/isFunction.ts", "../node_modules/rxjs/src/internal/util/createErrorClass.ts", "../node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "../node_modules/rxjs/src/internal/util/arrRemove.ts", "../node_modules/rxjs/src/internal/Subscription.ts", "../node_modules/rxjs/src/internal/config.ts", "../node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "../node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "../node_modules/rxjs/src/internal/util/noop.ts", "../node_modules/rxjs/src/internal/NotificationFactories.ts", "../node_modules/rxjs/src/internal/util/errorContext.ts", "../node_modules/rxjs/src/internal/Subscriber.ts", "../node_modules/rxjs/src/internal/symbol/observable.ts", "../node_modules/rxjs/src/internal/util/identity.ts", "../node_modules/rxjs/src/internal/util/pipe.ts", "../node_modules/rxjs/src/internal/Observable.ts", "../node_modules/rxjs/src/internal/util/lift.ts", "../node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "../node_modules/rxjs/src/internal/operators/refCount.ts", "../node_modules/rxjs/src/internal/observable/ConnectableObservable.ts", "../node_modules/rxjs/src/internal/scheduler/performanceTimestampProvider.ts", "../node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "../node_modules/rxjs/src/internal/observable/dom/animationFrames.ts", "../node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "../node_modules/rxjs/src/internal/Subject.ts", "../node_modules/rxjs/src/internal/BehaviorSubject.ts", "../node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "../node_modules/rxjs/src/internal/ReplaySubject.ts", "../node_modules/rxjs/src/internal/AsyncSubject.ts", "../node_modules/rxjs/src/internal/scheduler/Action.ts", "../node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "../node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "../node_modules/rxjs/src/internal/util/Immediate.ts", "../node_modules/rxjs/src/internal/scheduler/immediateProvider.ts", "../node_modules/rxjs/src/internal/scheduler/AsapAction.ts", "../node_modules/rxjs/src/internal/Scheduler.ts", "../node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "../node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts", "../node_modules/rxjs/src/internal/scheduler/asap.ts", "../node_modules/rxjs/src/internal/scheduler/async.ts", "../node_modules/rxjs/src/internal/scheduler/QueueAction.ts", "../node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts", "../node_modules/rxjs/src/internal/scheduler/queue.ts", "../node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "../node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "../node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "../node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts", "../node_modules/rxjs/src/internal/observable/empty.ts", "../node_modules/rxjs/src/internal/util/isScheduler.ts", "../node_modules/rxjs/src/internal/util/args.ts", "../node_modules/rxjs/src/internal/util/isArrayLike.ts", "../node_modules/rxjs/src/internal/util/isPromise.ts", "../node_modules/rxjs/src/internal/util/isInteropObservable.ts", "../node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "../node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "../node_modules/rxjs/src/internal/symbol/iterator.ts", "../node_modules/rxjs/src/internal/util/isIterable.ts", "../node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "../node_modules/rxjs/src/internal/observable/innerFrom.ts", "../node_modules/rxjs/src/internal/util/executeSchedule.ts", "../node_modules/rxjs/src/internal/operators/observeOn.ts", "../node_modules/rxjs/src/internal/operators/subscribeOn.ts", "../node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "../node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "../node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "../node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "../node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "../node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "../node_modules/rxjs/src/internal/scheduled/scheduled.ts", "../node_modules/rxjs/src/internal/observable/from.ts", "../node_modules/rxjs/src/internal/observable/of.ts", "../node_modules/rxjs/src/internal/observable/throwError.ts", "../node_modules/rxjs/src/internal/Notification.ts", "../node_modules/rxjs/src/internal/util/isObservable.ts", "../node_modules/rxjs/src/internal/util/EmptyError.ts", "../node_modules/rxjs/src/internal/lastValueFrom.ts", "../node_modules/rxjs/src/internal/firstValueFrom.ts", "../node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts", "../node_modules/rxjs/src/internal/util/NotFoundError.ts", "../node_modules/rxjs/src/internal/util/SequenceError.ts", "../node_modules/rxjs/src/internal/util/isDate.ts", "../node_modules/rxjs/src/internal/operators/timeout.ts", "../node_modules/rxjs/src/internal/operators/map.ts", "../node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "../node_modules/rxjs/src/internal/observable/bindCallbackInternals.ts", "../node_modules/rxjs/src/internal/observable/bindCallback.ts", "../node_modules/rxjs/src/internal/observable/bindNodeCallback.ts", "../node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "../node_modules/rxjs/src/internal/util/createObject.ts", "../node_modules/rxjs/src/internal/observable/combineLatest.ts", "../node_modules/rxjs/src/internal/operators/mergeInternals.ts", "../node_modules/rxjs/src/internal/operators/mergeMap.ts", "../node_modules/rxjs/src/internal/operators/mergeAll.ts", "../node_modules/rxjs/src/internal/operators/concatAll.ts", "../node_modules/rxjs/src/internal/observable/concat.ts", "../node_modules/rxjs/src/internal/observable/defer.ts", "../node_modules/rxjs/src/internal/observable/connectable.ts", "../node_modules/rxjs/src/internal/observable/forkJoin.ts", "../node_modules/rxjs/src/internal/observable/fromEvent.ts", "../node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "../node_modules/rxjs/src/internal/observable/generate.ts", "../node_modules/rxjs/src/internal/observable/iif.ts", "../node_modules/rxjs/src/internal/observable/timer.ts", "../node_modules/rxjs/src/internal/observable/interval.ts", "../node_modules/rxjs/src/internal/observable/merge.ts", "../node_modules/rxjs/src/internal/observable/never.ts", "../node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "../node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts", "../node_modules/rxjs/src/internal/observable/pairs.ts", "../node_modules/rxjs/src/internal/util/not.ts", "../node_modules/rxjs/src/internal/operators/filter.ts", "../node_modules/rxjs/src/internal/observable/partition.ts", "../node_modules/rxjs/src/internal/observable/race.ts", "../node_modules/rxjs/src/internal/observable/range.ts", "../node_modules/rxjs/src/internal/observable/using.ts", "../node_modules/rxjs/src/internal/observable/zip.ts", "../node_modules/rxjs/dist/cjs/internal/types.js", "../node_modules/rxjs/src/internal/operators/audit.ts", "../node_modules/rxjs/src/internal/operators/auditTime.ts", "../node_modules/rxjs/src/internal/operators/buffer.ts", "../node_modules/rxjs/src/internal/operators/bufferCount.ts", "../node_modules/rxjs/src/internal/operators/bufferTime.ts", "../node_modules/rxjs/src/internal/operators/bufferToggle.ts", "../node_modules/rxjs/src/internal/operators/bufferWhen.ts", "../node_modules/rxjs/src/internal/operators/catchError.ts", "../node_modules/rxjs/src/internal/operators/scanInternals.ts", "../node_modules/rxjs/src/internal/operators/reduce.ts", "../node_modules/rxjs/src/internal/operators/toArray.ts", "../node_modules/rxjs/src/internal/operators/joinAllInternals.ts", "../node_modules/rxjs/src/internal/operators/combineLatestAll.ts", "../node_modules/rxjs/src/internal/operators/combineAll.ts", "../node_modules/rxjs/src/internal/operators/combineLatest.ts", "../node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "../node_modules/rxjs/src/internal/operators/concatMap.ts", "../node_modules/rxjs/src/internal/operators/concatMapTo.ts", "../node_modules/rxjs/src/internal/operators/concat.ts", "../node_modules/rxjs/src/internal/operators/concatWith.ts", "../node_modules/rxjs/src/internal/observable/fromSubscribable.ts", "../node_modules/rxjs/src/internal/operators/connect.ts", "../node_modules/rxjs/src/internal/operators/count.ts", "../node_modules/rxjs/src/internal/operators/debounce.ts", "../node_modules/rxjs/src/internal/operators/debounceTime.ts", "../node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "../node_modules/rxjs/src/internal/operators/take.ts", "../node_modules/rxjs/src/internal/operators/ignoreElements.ts", "../node_modules/rxjs/src/internal/operators/mapTo.ts", "../node_modules/rxjs/src/internal/operators/delayWhen.ts", "../node_modules/rxjs/src/internal/operators/delay.ts", "../node_modules/rxjs/src/internal/operators/dematerialize.ts", "../node_modules/rxjs/src/internal/operators/distinct.ts", "../node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "../node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "../node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "../node_modules/rxjs/src/internal/operators/elementAt.ts", "../node_modules/rxjs/src/internal/operators/endWith.ts", "../node_modules/rxjs/src/internal/operators/every.ts", "../node_modules/rxjs/src/internal/operators/exhaustMap.ts", "../node_modules/rxjs/src/internal/operators/exhaustAll.ts", "../node_modules/rxjs/src/internal/operators/exhaust.ts", "../node_modules/rxjs/src/internal/operators/expand.ts", "../node_modules/rxjs/src/internal/operators/finalize.ts", "../node_modules/rxjs/src/internal/operators/find.ts", "../node_modules/rxjs/src/internal/operators/findIndex.ts", "../node_modules/rxjs/src/internal/operators/first.ts", "../node_modules/rxjs/src/internal/operators/groupBy.ts", "../node_modules/rxjs/src/internal/operators/isEmpty.ts", "../node_modules/rxjs/src/internal/operators/takeLast.ts", "../node_modules/rxjs/src/internal/operators/last.ts", "../node_modules/rxjs/src/internal/operators/materialize.ts", "../node_modules/rxjs/src/internal/operators/max.ts", "../node_modules/rxjs/src/internal/operators/flatMap.ts", "../node_modules/rxjs/src/internal/operators/mergeMapTo.ts", "../node_modules/rxjs/src/internal/operators/mergeScan.ts", "../node_modules/rxjs/src/internal/operators/merge.ts", "../node_modules/rxjs/src/internal/operators/mergeWith.ts", "../node_modules/rxjs/src/internal/operators/min.ts", "../node_modules/rxjs/src/internal/operators/multicast.ts", "../node_modules/rxjs/src/internal/operators/onErrorResumeNextWith.ts", "../node_modules/rxjs/src/internal/operators/pairwise.ts", "../node_modules/rxjs/src/internal/operators/pluck.ts", "../node_modules/rxjs/src/internal/operators/publish.ts", "../node_modules/rxjs/src/internal/operators/publishBehavior.ts", "../node_modules/rxjs/src/internal/operators/publishLast.ts", "../node_modules/rxjs/src/internal/operators/publishReplay.ts", "../node_modules/rxjs/src/internal/operators/raceWith.ts", "../node_modules/rxjs/src/internal/operators/repeat.ts", "../node_modules/rxjs/src/internal/operators/repeatWhen.ts", "../node_modules/rxjs/src/internal/operators/retry.ts", "../node_modules/rxjs/src/internal/operators/retryWhen.ts", "../node_modules/rxjs/src/internal/operators/sample.ts", "../node_modules/rxjs/src/internal/operators/sampleTime.ts", "../node_modules/rxjs/src/internal/operators/scan.ts", "../node_modules/rxjs/src/internal/operators/sequenceEqual.ts", "../node_modules/rxjs/src/internal/operators/share.ts", "../node_modules/rxjs/src/internal/operators/shareReplay.ts", "../node_modules/rxjs/src/internal/operators/single.ts", "../node_modules/rxjs/src/internal/operators/skip.ts", "../node_modules/rxjs/src/internal/operators/skipLast.ts", "../node_modules/rxjs/src/internal/operators/skipUntil.ts", "../node_modules/rxjs/src/internal/operators/skipWhile.ts", "../node_modules/rxjs/src/internal/operators/startWith.ts", "../node_modules/rxjs/src/internal/operators/switchMap.ts", "../node_modules/rxjs/src/internal/operators/switchAll.ts", "../node_modules/rxjs/src/internal/operators/switchMapTo.ts", "../node_modules/rxjs/src/internal/operators/switchScan.ts", "../node_modules/rxjs/src/internal/operators/takeUntil.ts", "../node_modules/rxjs/src/internal/operators/takeWhile.ts", "../node_modules/rxjs/src/internal/operators/tap.ts", "../node_modules/rxjs/src/internal/operators/throttle.ts", "../node_modules/rxjs/src/internal/operators/throttleTime.ts", "../node_modules/rxjs/src/internal/operators/timeInterval.ts", "../node_modules/rxjs/src/internal/operators/timeoutWith.ts", "../node_modules/rxjs/src/internal/operators/timestamp.ts", "../node_modules/rxjs/src/internal/operators/window.ts", "../node_modules/rxjs/src/internal/operators/windowCount.ts", "../node_modules/rxjs/src/internal/operators/windowTime.ts", "../node_modules/rxjs/src/internal/operators/windowToggle.ts", "../node_modules/rxjs/src/internal/operators/windowWhen.ts", "../node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "../node_modules/rxjs/src/internal/operators/zipAll.ts", "../node_modules/rxjs/src/internal/operators/zip.ts", "../node_modules/rxjs/src/internal/operators/zipWith.ts", "../node_modules/rxjs/src/index.ts", "../node_modules/cli-width/index.js", "../node_modules/ansi-regex/index.js", "../node_modules/strip-ansi/index.js", "../node_modules/is-fullwidth-code-point/index.js", "../node_modules/emoji-regex/index.js", "../node_modules/string-width/index.js", "../node_modules/color-name/index.js", "../node_modules/color-convert/conversions.js", "../node_modules/color-convert/route.js", "../node_modules/color-convert/index.js", "../node_modules/ansi-styles/index.js", "../node_modules/wrap-ansi/index.js", "../node_modules/chalk/source/util.js", "../node_modules/chalk/source/templates.js", "../node_modules/chalk/source/index.js", "../node_modules/mimic-fn/index.js", "../node_modules/onetime/index.js", "../node_modules/signal-exit/signals.js", "../node_modules/signal-exit/index.js", "../node_modules/restore-cursor/index.js", "../node_modules/cli-cursor/index.js", "../node_modules/cli-spinners/spinners.json", "../node_modules/cli-spinners/index.js", "../node_modules/is-unicode-supported/index.js", "../node_modules/log-symbols/index.js", "../node_modules/clone/clone.js", "../node_modules/defaults/index.js", "../node_modules/wcwidth/combining.js", "../node_modules/wcwidth/index.js", "../node_modules/is-interactive/index.js", "../node_modules/readable-stream/lib/internal/streams/stream.js", "../node_modules/readable-stream/lib/internal/streams/buffer_list.js", "../node_modules/readable-stream/lib/internal/streams/destroy.js", "../node_modules/readable-stream/errors.js", "../node_modules/readable-stream/lib/internal/streams/state.js", "../node_modules/inherits/inherits_browser.js", "../node_modules/inherits/inherits.js", "../node_modules/util-deprecate/node.js", "../node_modules/readable-stream/lib/_stream_writable.js", "../node_modules/readable-stream/lib/_stream_duplex.js", "../node_modules/safe-buffer/index.js", "../node_modules/string_decoder/lib/string_decoder.js", "../node_modules/readable-stream/lib/internal/streams/end-of-stream.js", "../node_modules/readable-stream/lib/internal/streams/async_iterator.js", "../node_modules/readable-stream/lib/internal/streams/from.js", "../node_modules/readable-stream/lib/_stream_readable.js", "../node_modules/readable-stream/lib/_stream_transform.js", "../node_modules/readable-stream/lib/_stream_passthrough.js", "../node_modules/readable-stream/lib/internal/streams/pipeline.js", "../node_modules/readable-stream/readable.js", "../node_modules/bl/BufferList.js", "../node_modules/bl/bl.js", "../node_modules/ora/index.js", "../node_modules/chardet/match.js", "../node_modules/chardet/encoding/utf8.js", "../node_modules/chardet/encoding/unicode.js", "../node_modules/chardet/encoding/mbcs.js", "../node_modules/chardet/encoding/sbcs.js", "../node_modules/chardet/encoding/iso2022.js", "../node_modules/chardet/index.js", "../node_modules/safer-buffer/safer.js", "../node_modules/iconv-lite/lib/bom-handling.js", "../node_modules/iconv-lite/encodings/internal.js", "../node_modules/iconv-lite/encodings/utf16.js", "../node_modules/iconv-lite/encodings/utf7.js", "../node_modules/iconv-lite/encodings/sbcs-codec.js", "../node_modules/iconv-lite/encodings/sbcs-data.js", "../node_modules/iconv-lite/encodings/sbcs-data-generated.js", "../node_modules/iconv-lite/encodings/dbcs-codec.js", "../node_modules/iconv-lite/encodings/tables/shiftjis.json", "../node_modules/iconv-lite/encodings/tables/eucjp.json", "../node_modules/iconv-lite/encodings/tables/cp936.json", "../node_modules/iconv-lite/encodings/tables/gbk-added.json", "../node_modules/iconv-lite/encodings/tables/gb18030-ranges.json", "../node_modules/iconv-lite/encodings/tables/cp949.json", "../node_modules/iconv-lite/encodings/tables/cp950.json", "../node_modules/iconv-lite/encodings/tables/big5-added.json", "../node_modules/iconv-lite/encodings/dbcs-data.js", "../node_modules/iconv-lite/encodings/index.js", "../node_modules/iconv-lite/lib/streams.js", "../node_modules/iconv-lite/lib/extend-node.js", "../node_modules/iconv-lite/lib/index.js", "../node_modules/os-tmpdir/index.js", "../node_modules/tmp/lib/tmp.js", "../node_modules/external-editor/main/errors/CreateFileError.js", "../node_modules/external-editor/main/errors/LaunchEditorError.js", "../node_modules/external-editor/main/errors/ReadFileError.js", "../node_modules/external-editor/main/errors/RemoveFileError.js", "../node_modules/external-editor/main/index.js", "../node_modules/mute-stream/lib/index.js", "../node_modules/commander/esm.mjs", "../node_modules/axios/lib/helpers/bind.js", "../node_modules/axios/lib/utils.js", "../node_modules/axios/lib/core/AxiosError.js", "../node_modules/axios/lib/platform/node/classes/FormData.js", "../node_modules/axios/lib/helpers/toFormData.js", "../node_modules/axios/lib/helpers/AxiosURLSearchParams.js", "../node_modules/axios/lib/helpers/buildURL.js", "../node_modules/axios/lib/core/InterceptorManager.js", "../node_modules/axios/lib/defaults/transitional.js", "../node_modules/axios/lib/platform/node/index.js", "../node_modules/axios/lib/platform/node/classes/URLSearchParams.js", "../node_modules/axios/lib/platform/common/utils.js", "../node_modules/axios/lib/platform/index.js", "../node_modules/axios/lib/helpers/toURLEncodedForm.js", "../node_modules/axios/lib/helpers/formDataToJSON.js", "../node_modules/axios/lib/defaults/index.js", "../node_modules/axios/lib/helpers/parseHeaders.js", "../node_modules/axios/lib/core/AxiosHeaders.js", "../node_modules/axios/lib/core/transformData.js", "../node_modules/axios/lib/cancel/isCancel.js", "../node_modules/axios/lib/cancel/CanceledError.js", "../node_modules/axios/lib/core/settle.js", "../node_modules/axios/lib/helpers/isAbsoluteURL.js", "../node_modules/axios/lib/helpers/combineURLs.js", "../node_modules/axios/lib/core/buildFullPath.js", "../node_modules/axios/lib/adapters/http.js", "../node_modules/axios/lib/env/data.js", "../node_modules/axios/lib/helpers/parseProtocol.js", "../node_modules/axios/lib/helpers/fromDataURI.js", "../node_modules/axios/lib/helpers/AxiosTransformStream.js", "../node_modules/axios/lib/helpers/formDataToStream.js", "../node_modules/axios/lib/helpers/readBlob.js", "../node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js", "../node_modules/axios/lib/helpers/callbackify.js", "../node_modules/axios/lib/helpers/speedometer.js", "../node_modules/axios/lib/helpers/throttle.js", "../node_modules/axios/lib/helpers/progressEventReducer.js", "../node_modules/axios/lib/helpers/isURLSameOrigin.js", "../node_modules/axios/lib/helpers/cookies.js", "../node_modules/axios/lib/core/mergeConfig.js", "../node_modules/axios/lib/helpers/resolveConfig.js", "../node_modules/axios/lib/adapters/xhr.js", "../node_modules/axios/lib/helpers/composeSignals.js", "../node_modules/axios/lib/helpers/trackStream.js", "../node_modules/axios/lib/adapters/fetch.js", "../node_modules/axios/lib/adapters/adapters.js", "../node_modules/axios/lib/core/dispatchRequest.js", "../node_modules/axios/lib/helpers/validator.js", "../node_modules/axios/lib/core/Axios.js", "../node_modules/axios/lib/cancel/CancelToken.js", "../node_modules/axios/lib/helpers/spread.js", "../node_modules/axios/lib/helpers/isAxiosError.js", "../node_modules/axios/lib/helpers/HttpStatusCode.js", "../node_modules/axios/lib/axios.js", "../node_modules/axios/index.js", "../src/openaiService.ts", "../node_modules/simple-git/src/lib/args/pathspec.ts", "../node_modules/simple-git/src/lib/errors/git-error.ts", "../node_modules/simple-git/src/lib/errors/git-response-error.ts", "../node_modules/simple-git/src/lib/errors/task-configuration-error.ts", "../node_modules/simple-git/src/lib/utils/util.ts", "../node_modules/simple-git/src/lib/utils/argument-filters.ts", "../node_modules/simple-git/src/lib/utils/exit-codes.ts", "../node_modules/simple-git/src/lib/utils/git-output-streams.ts", "../node_modules/simple-git/src/lib/utils/line-parser.ts", "../node_modules/simple-git/src/lib/utils/simple-git-options.ts", "../node_modules/simple-git/src/lib/utils/task-options.ts", "../node_modules/simple-git/src/lib/utils/task-parser.ts", "../node_modules/simple-git/src/lib/utils/index.ts", "../node_modules/simple-git/src/lib/tasks/check-is-repo.ts", "../node_modules/simple-git/src/lib/responses/CleanSummary.ts", "../node_modules/simple-git/src/lib/tasks/task.ts", "../node_modules/simple-git/src/lib/tasks/clean.ts", "../node_modules/simple-git/src/lib/responses/ConfigList.ts", "../node_modules/simple-git/src/lib/tasks/config.ts", "../node_modules/simple-git/src/lib/tasks/diff-name-status.ts", "../node_modules/simple-git/src/lib/tasks/grep.ts", "../node_modules/simple-git/src/lib/tasks/reset.ts", "../node_modules/simple-git/src/lib/git-logger.ts", "../node_modules/simple-git/src/lib/runners/tasks-pending-queue.ts", "../node_modules/simple-git/src/lib/runners/git-executor-chain.ts", "../node_modules/simple-git/src/lib/runners/git-executor.ts", "../node_modules/simple-git/src/lib/task-callback.ts", "../node_modules/simple-git/src/lib/tasks/change-working-directory.ts", "../node_modules/simple-git/src/lib/tasks/checkout.ts", "../node_modules/simple-git/src/lib/tasks/count-objects.ts", "../node_modules/simple-git/src/lib/parsers/parse-commit.ts", "../node_modules/simple-git/src/lib/tasks/commit.ts", "../node_modules/simple-git/src/lib/tasks/first-commit.ts", "../node_modules/simple-git/src/lib/tasks/hash-object.ts", "../node_modules/simple-git/src/lib/responses/InitSummary.ts", "../node_modules/simple-git/src/lib/tasks/init.ts", "../node_modules/simple-git/src/lib/args/log-format.ts", "../node_modules/simple-git/src/lib/responses/DiffSummary.ts", "../node_modules/simple-git/src/lib/parsers/parse-diff-summary.ts", "../node_modules/simple-git/src/lib/parsers/parse-list-log-summary.ts", "../node_modules/simple-git/src/lib/tasks/diff.ts", "../node_modules/simple-git/src/lib/tasks/log.ts", "../node_modules/simple-git/src/lib/responses/MergeSummary.ts", "../node_modules/simple-git/src/lib/responses/PullSummary.ts", "../node_modules/simple-git/src/lib/parsers/parse-remote-objects.ts", "../node_modules/simple-git/src/lib/parsers/parse-remote-messages.ts", "../node_modules/simple-git/src/lib/parsers/parse-pull.ts", "../node_modules/simple-git/src/lib/parsers/parse-merge.ts", "../node_modules/simple-git/src/lib/tasks/merge.ts", "../node_modules/simple-git/src/lib/parsers/parse-push.ts", "../node_modules/simple-git/src/lib/tasks/push.ts", "../node_modules/simple-git/src/lib/tasks/show.ts", "../node_modules/simple-git/src/lib/responses/FileStatusSummary.ts", "../node_modules/simple-git/src/lib/responses/StatusSummary.ts", "../node_modules/simple-git/src/lib/tasks/status.ts", "../node_modules/simple-git/src/lib/tasks/version.ts", "../node_modules/simple-git/src/lib/simple-git-api.ts", "../node_modules/simple-git/src/lib/runners/scheduler.ts", "../node_modules/simple-git/src/lib/tasks/apply-patch.ts", "../node_modules/simple-git/src/lib/responses/BranchDeleteSummary.ts", "../node_modules/simple-git/src/lib/parsers/parse-branch-delete.ts", "../node_modules/simple-git/src/lib/responses/BranchSummary.ts", "../node_modules/simple-git/src/lib/parsers/parse-branch.ts", "../node_modules/simple-git/src/lib/tasks/branch.ts", "../node_modules/simple-git/src/lib/responses/CheckIgnore.ts", "../node_modules/simple-git/src/lib/tasks/check-ignore.ts", "../node_modules/simple-git/src/lib/tasks/clone.ts", "../node_modules/simple-git/src/lib/parsers/parse-fetch.ts", "../node_modules/simple-git/src/lib/tasks/fetch.ts", "../node_modules/simple-git/src/lib/parsers/parse-move.ts", "../node_modules/simple-git/src/lib/tasks/move.ts", "../node_modules/simple-git/src/lib/tasks/pull.ts", "../node_modules/simple-git/src/lib/responses/GetRemoteSummary.ts", "../node_modules/simple-git/src/lib/tasks/remote.ts", "../node_modules/simple-git/src/lib/tasks/stash-list.ts", "../node_modules/simple-git/src/lib/tasks/sub-module.ts", "../node_modules/simple-git/src/lib/responses/TagList.ts", "../node_modules/simple-git/src/lib/tasks/tag.ts", "../node_modules/simple-git/src/git.js", "../node_modules/simple-git/src/lib/api.ts", "../node_modules/simple-git/src/lib/errors/git-construct-error.ts", "../node_modules/simple-git/src/lib/errors/git-plugin-error.ts", "../node_modules/simple-git/src/lib/plugins/abort-plugin.ts", "../node_modules/simple-git/src/lib/plugins/block-unsafe-operations-plugin.ts", "../node_modules/simple-git/src/lib/plugins/command-config-prefixing-plugin.ts", "../node_modules/simple-git/src/lib/plugins/completion-detection.plugin.ts", "../node_modules/simple-git/src/lib/plugins/custom-binary.plugin.ts", "../node_modules/simple-git/src/lib/plugins/error-detection.plugin.ts", "../node_modules/simple-git/src/lib/plugins/plugin-store.ts", "../node_modules/simple-git/src/lib/plugins/progress-monitor-plugin.ts", "../node_modules/simple-git/src/lib/plugins/spawn-options-plugin.ts", "../node_modules/simple-git/src/lib/plugins/timout-plugin.ts", "../node_modules/simple-git/src/lib/plugins/suffix-paths.plugin.ts", "../node_modules/simple-git/src/lib/git-factory.ts", "../node_modules/simple-git/src/lib/runners/promise-wrapped.ts", "../node_modules/simple-git/src/esm.mjs", "../src/gitUtils.ts", "../src/config.ts", "../node_modules/inquirer/lib/prompts/list.js", "../node_modules/@inquirer/figures/dist/esm/index.js", "../node_modules/inquirer/lib/utils/events.js", "../node_modules/inquirer/lib/utils/paginator.js", "../node_modules/inquirer/lib/utils/incrementListIndex.js", "../node_modules/inquirer/lib/prompts/base.js", "../node_modules/inquirer/lib/objects/choices.js", "../node_modules/inquirer/lib/objects/separator.js", "../node_modules/inquirer/lib/objects/choice.js", "../node_modules/inquirer/lib/utils/screen-manager.js", "../node_modules/inquirer/lib/utils/readline.js", "../node_modules/inquirer/lib/prompts/input.js", "../node_modules/inquirer/lib/prompts/number.js", "../node_modules/inquirer/lib/prompts/confirm.js", "../node_modules/inquirer/lib/prompts/rawlist.js", "../node_modules/inquirer/lib/prompts/expand.js", "../node_modules/inquirer/lib/prompts/checkbox.js", "../node_modules/inquirer/lib/prompts/password.js", "../node_modules/inquirer/lib/prompts/editor.js", "../node_modules/inquirer/lib/ui/bottom-bar.js", "../node_modules/inquirer/lib/ui/baseUI.js", "../node_modules/inquirer/lib/ui/prompt.js", "../node_modules/inquirer/lib/utils/utils.js", "../node_modules/inquirer/lib/index.js", "../src/cli.ts", "../src/index.ts"], "sourcesContent": ["// @ts-check\n\n/**\n * CommanderError class\n * @class\n */\nclass CommanderError extends Error {\n /**\n * Constructs the CommanderError class\n * @param {number} exitCode suggested exit code which could be used with process.exit\n * @param {string} code an id string representing the error\n * @param {string} message human-readable description of the error\n * @constructor\n */\n constructor(exitCode, code, message) {\n super(message);\n // properly capture stack trace in Node.js\n Error.captureStackTrace(this, this.constructor);\n this.name = this.constructor.name;\n this.code = code;\n this.exitCode = exitCode;\n this.nestedError = undefined;\n }\n}\n\n/**\n * InvalidArgumentError class\n * @class\n */\nclass InvalidArgumentError extends CommanderError {\n /**\n * Constructs the InvalidArgumentError class\n * @param {string} [message] explanation of why argument is invalid\n * @constructor\n */\n constructor(message) {\n super(1, 'commander.invalidArgument', message);\n // properly capture stack trace in Node.js\n Error.captureStackTrace(this, this.constructor);\n this.name = this.constructor.name;\n }\n}\n\nexports.CommanderError = CommanderError;\nexports.InvalidArgumentError = InvalidArgumentError;\n", "const { InvalidArgumentError } = require('./error.js');\n\n// @ts-check\n\nclass Argument {\n /**\n * Initialize a new command argument with the given name and description.\n * The default is that the argument is required, and you can explicitly\n * indicate this with <> around the name. Put [] around the name for an optional argument.\n *\n * @param {string} name\n * @param {string} [description]\n */\n\n constructor(name, description) {\n this.description = description || '';\n this.variadic = false;\n this.parseArg = undefined;\n this.defaultValue = undefined;\n this.defaultValueDescription = undefined;\n this.argChoices = undefined;\n\n switch (name[0]) {\n case '<': // e.g. <required>\n this.required = true;\n this._name = name.slice(1, -1);\n break;\n case '[': // e.g. [optional]\n this.required = false;\n this._name = name.slice(1, -1);\n break;\n default:\n this.required = true;\n this._name = name;\n break;\n }\n\n if (this._name.length > 3 && this._name.slice(-3) === '...') {\n this.variadic = true;\n this._name = this._name.slice(0, -3);\n }\n }\n\n /**\n * Return argument name.\n *\n * @return {string}\n */\n\n name() {\n return this._name;\n }\n\n /**\n * @api private\n */\n\n _concatValue(value, previous) {\n if (previous === this.defaultValue || !Array.isArray(previous)) {\n return [value];\n }\n\n return previous.concat(value);\n }\n\n /**\n * Set the default value, and optionally supply the description to be displayed in the help.\n *\n * @param {any} value\n * @param {string} [description]\n * @return {Argument}\n */\n\n default(value, description) {\n this.defaultValue = value;\n this.defaultValueDescription = description;\n return this;\n }\n\n /**\n * Set the custom handler for processing CLI command arguments into argument values.\n *\n * @param {Function} [fn]\n * @return {Argument}\n */\n\n argParser(fn) {\n this.parseArg = fn;\n return this;\n }\n\n /**\n * Only allow argument value to be one of choices.\n *\n * @param {string[]} values\n * @return {Argument}\n */\n\n choices(values) {\n this.argChoices = values.slice();\n this.parseArg = (arg, previous) => {\n if (!this.argChoices.includes(arg)) {\n throw new InvalidArgumentError(`Allowed choices are ${this.argChoices.join(', ')}.`);\n }\n if (this.variadic) {\n return this._concatValue(arg, previous);\n }\n return arg;\n };\n return this;\n }\n\n /**\n * Make argument required.\n */\n argRequired() {\n this.required = true;\n return this;\n }\n\n /**\n * Make argument optional.\n */\n argOptional() {\n this.required = false;\n return this;\n }\n}\n\n/**\n * Takes an argument and returns its human readable equivalent for help usage.\n *\n * @param {Argument} arg\n * @return {string}\n * @api private\n */\n\nfunction humanReadableArgName(arg) {\n const nameOutput = arg.name() + (arg.variadic === true ? '...' : '');\n\n return arg.required\n ? '<' + nameOutput + '>'\n : '[' + nameOutput + ']';\n}\n\nexports.Argument = Argument;\nexports.humanReadableArgName = humanReadableArgName;\n", "const { humanReadableArgName } = require('./argument.js');\n\n/**\n * TypeScript import types for JSDoc, used by Visual Studio Code IntelliSense and `npm run typescript-checkJS`\n * https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html#import-types\n * @typedef { import(\"./argument.js\").Argument } Argument\n * @typedef { import(\"./command.js\").Command } Command\n * @typedef { import(\"./option.js\").Option } Option\n */\n\n// @ts-check\n\n// Although this is a class, methods are static in style to allow override using subclass or just functions.\nclass Help {\n constructor() {\n this.helpWidth = undefined;\n this.sortSubcommands = false;\n this.sortOptions = false;\n this.showGlobalOptions = false;\n }\n\n /**\n * Get an array of the visible subcommands. Includes a placeholder for the implicit help command, if there is one.\n *\n * @param {Command} cmd\n * @returns {Command[]}\n */\n\n visibleCommands(cmd) {\n const visibleCommands = cmd.commands.filter(cmd => !cmd._hidden);\n if (cmd._hasImplicitHelpCommand()) {\n // Create a command matching the implicit help command.\n const [, helpName, helpArgs] = cmd._helpCommandnameAndArgs.match(/([^ ]+) *(.*)/);\n const helpCommand = cmd.createCommand(helpName)\n .helpOption(false);\n helpCommand.description(cmd._helpCommandDescription);\n if (helpArgs) helpCommand.arguments(helpArgs);\n visibleCommands.push(helpCommand);\n }\n if (this.sortSubcommands) {\n visibleCommands.sort((a, b) => {\n // @ts-ignore: overloaded return type\n return a.name().localeCompare(b.name());\n });\n }\n return visibleCommands;\n }\n\n /**\n * Compare options for sort.\n *\n * @param {Option} a\n * @param {Option} b\n * @returns number\n */\n compareOptions(a, b) {\n const getSortKey = (option) => {\n // WYSIWYG for order displayed in help. Short used for comparison if present. No special handling for negated.\n return option.short ? option.short.replace(/^-/, '') : option.long.replace(/^--/, '');\n };\n return getSortKey(a).localeCompare(getSortKey(b));\n }\n\n /**\n * Get an array of the visible options. Includes a placeholder for the implicit help option, if there is one.\n *\n * @param {Command} cmd\n * @returns {Option[]}\n */\n\n visibleOptions(cmd) {\n const visibleOptions = cmd.options.filter((option) => !option.hidden);\n // Implicit help\n const showShortHelpFlag = cmd._hasHelpOption && cmd._helpShortFlag && !cmd._findOption(cmd._helpShortFlag);\n const showLongHelpFlag = cmd._hasHelpOption && !cmd._findOption(cmd._helpLongFlag);\n if (showShortHelpFlag || showLongHelpFlag) {\n let helpOption;\n if (!showShortHelpFlag) {\n helpOption = cmd.createOption(cmd._helpLongFlag, cmd._helpDescription);\n } else if (!showLongHelpFlag) {\n helpOption = cmd.createOption(cmd._helpShortFlag, cmd._helpDescription);\n } else {\n helpOption = cmd.createOption(cmd._helpFlags, cmd._helpDescription);\n }\n visibleOptions.push(helpOption);\n }\n if (this.sortOptions) {\n visibleOptions.sort(this.compareOptions);\n }\n return visibleOptions;\n }\n\n /**\n * Get an array of the visible global options. (Not including help.)\n *\n * @param {Command} cmd\n * @returns {Option[]}\n */\n\n visibleGlobalOptions(cmd) {\n if (!this.showGlobalOptions) return [];\n\n const globalOptions = [];\n for (let parentCmd = cmd.parent; parentCmd; parentCmd = parentCmd.parent) {\n const visibleOptions = parentCmd.options.filter((option) => !option.hidden);\n globalOptions.push(...visibleOptions);\n }\n if (this.sortOptions) {\n globalOptions.sort(this.compareOptions);\n }\n return globalOptions;\n }\n\n /**\n * Get an array of the arguments if any have a description.\n *\n * @param {Command} cmd\n * @returns {Argument[]}\n */\n\n visibleArguments(cmd) {\n // Side effect! Apply the legacy descriptions before the arguments are displayed.\n if (cmd._argsDescription) {\n cmd._args.forEach(argument => {\n argument.description = argument.description || cmd._argsDescription[argument.name()] || '';\n });\n }\n\n // If there are any arguments with a description then return all the arguments.\n if (cmd._args.find(argument => argument.description)) {\n return cmd._args;\n }\n return [];\n }\n\n /**\n * Get the command term to show in the list of subcommands.\n *\n * @param {Command} cmd\n * @returns {string}\n */\n\n subcommandTerm(cmd) {\n // Legacy. Ignores custom usage string, and nested commands.\n const args = cmd._args.map(arg => humanReadableArgName(arg)).join(' ');\n return cmd._name +\n (cmd._aliases[0] ? '|' + cmd._aliases[0] : '') +\n (cmd.options.length ? ' [options]' : '') + // simplistic check for non-help option\n (args ? ' ' + args : '');\n }\n\n /**\n * Get the option term to show in the list of options.\n *\n * @param {Option} option\n * @returns {string}\n */\n\n optionTerm(option) {\n return option.flags;\n }\n\n /**\n * Get the argument term to show in the list of arguments.\n *\n * @param {Argument} argument\n * @returns {string}\n */\n\n argumentTerm(argument) {\n return argument.name();\n }\n\n /**\n * Get the longest command term length.\n *\n * @param {Command} cmd\n * @param {Help} helper\n * @returns {number}\n */\n\n longestSubcommandTermLength(cmd, helper) {\n return helper.visibleCommands(cmd).reduce((max, command) => {\n return Math.max(max, helper.subcommandTerm(command).length);\n }, 0);\n }\n\n /**\n * Get the longest option term length.\n *\n * @param {Command} cmd\n * @param {Help} helper\n * @returns {number}\n */\n\n longestOptionTermLength(cmd, helper) {\n return helper.visibleOptions(cmd).reduce((max, option) => {\n return Math.max(max, helper.optionTerm(option).length);\n }, 0);\n }\n\n /**\n * Get the longest global option term length.\n *\n * @param {Command} cmd\n * @param {Help} helper\n * @returns {number}\n */\n\n longestGlobalOptionTermLength(cmd, helper) {\n return helper.visibleGlobalOptions(cmd).reduce((max, option) => {\n return Math.max(max, helper.optionTerm(option).length);\n }, 0);\n }\n\n /**\n * Get the longest argument term length.\n *\n * @param {Command} cmd\n * @param {Help} helper\n * @returns {number}\n */\n\n longestArgumentTermLength(cmd, helper) {\n return helper.visibleArguments(cmd).reduce((max, argument) => {\n return Math.max(max, helper.argumentTerm(argument).length);\n }, 0);\n }\n\n /**\n * Get the command usage to be displayed at the top of the built-in help.\n *\n * @param {Command} cmd\n * @returns {string}\n */\n\n commandUsage(cmd) {\n // Usage\n let cmdName = cmd._name;\n if (cmd._aliases[0]) {\n cmdName = cmdName + '|' + cmd._aliases[0];\n }\n let parentCmdNames = '';\n for (let parentCmd = cmd.parent; parentCmd; parentCmd = parentCmd.parent) {\n parentCmdNames = parentCmd.name() + ' ' + parentCmdNames;\n }\n return parentCmdNames + cmdName + ' ' + cmd.usage();\n }\n\n /**\n * Get the description for the command.\n *\n * @param {Command} cmd\n * @returns {string}\n */\n\n commandDescription(cmd) {\n // @ts-ignore: overloaded return type\n return cmd.description();\n }\n\n /**\n * Get the subcommand summary to show in the list of subcommands.\n * (Fallback to description for backwards compatibility.)\n *\n * @param {Command} cmd\n * @returns {string}\n */\n\n subcommandDescription(cmd) {\n // @ts-ignore: overloaded return type\n return cmd.summary() || cmd.description();\n }\n\n /**\n * Get the option description to show in the list of options.\n *\n * @param {Option} option\n * @return {string}\n */\n\n optionDescription(option) {\n const extraInfo = [];\n\n if (option.argChoices) {\n extraInfo.push(\n // use stringify to match the display of the default value\n `choices: ${option.argChoices.map((choice) => JSON.stringify(choice)).join(', ')}`);\n }\n if (option.defaultValue !== undefined) {\n // default for boolean and negated more for programmer than end user,\n // but show true/false for boolean option as may be for hand-rolled env or config processing.\n const showDefault = option.required || option.optional ||\n (option.isBoolean() && typeof option.defaultValue === 'boolean');\n if (showDefault) {\n extraInfo.push(`default: ${option.defaultValueDescription || JSON.stringify(option.defaultValue)}`);\n }\n }\n // preset for boolean and negated are more for programmer than end user\n if (option.presetArg !== undefined && option.optional) {\n extraInfo.push(`preset: ${JSON.stringify(option.presetArg)}`);\n }\n if (option.envVar !== undefined) {\n extraInfo.push(`env: ${option.envVar}`);\n }\n if (extraInfo.length > 0) {\n return `${option.description} (${extraInfo.join(', ')})`;\n }\n\n return option.description;\n }\n\n /**\n * Get the argument description to show in the list of arguments.\n *\n * @param {Argument} argument\n * @return {string}\n */\n\n argumentDescription(argument) {\n const extraInfo = [];\n if (argument.argChoices) {\n extraInfo.push(\n // use stringify to match the display of the default value\n `choices: ${argument.argChoices.map((choice) => JSON.stringify(choice)).join(', ')}`);\n }\n if (argument.defaultValue !== undefined) {\n extraInfo.push(`default: ${argument.defaultValueDescription || JSON.stringify(argument.defaultValue)}`);\n }\n if (extraInfo.length > 0) {\n const extraDescripton = `(${extraInfo.join(', ')})`;\n if (argument.description) {\n return `${argument.description} ${extraDescripton}`;\n }\n return extraDescripton;\n }\n return argument.description;\n }\n\n /**\n * Generate the built-in help text.\n *\n * @param {Command} cmd\n * @param {Help} helper\n * @returns {string}\n */\n\n formatHelp(cmd, helper) {\n const termWidth = helper.padWidth(cmd, helper);\n const helpWidth = helper.helpWidth || 80;\n const itemIndentWidth = 2;\n const itemSeparatorWidth = 2; // between term and description\n function formatItem(term, description) {\n if (description) {\n const fullText = `${term.padEnd(termWidth + itemSeparatorWidth)}${description}`;\n return helper.wrap(fullText, helpWidth - itemIndentWidth, termWidth + itemSeparatorWidth);\n }\n return term;\n }\n function formatList(textArray) {\n return textArray.join('\\n').replace(/^/gm, ' '.repeat(itemIndentWidth));\n }\n\n // Usage\n let output = [`Usage: ${helper.commandUsage(cmd)}`, ''];\n\n // Description\n const commandDescription = helper.commandDescription(cmd);\n if (commandDescription.length > 0) {\n output = output.concat([helper.wrap(commandDescription, helpWidth, 0), '']);\n }\n\n // Arguments\n const argumentList = helper.visibleArguments(cmd).map((argument) => {\n return formatItem(helper.argumentTerm(argument), helper.argumentDescription(argument));\n });\n if (argumentList.length > 0) {\n output = output.concat(['Arguments:', formatList(argumentList), '']);\n }\n\n // Options\n const optionList = helper.visibleOptions(cmd).map((option) => {\n return formatItem(helper.optionTerm(option), helper.optionDescription(option));\n });\n if (optionList.length > 0) {\n output = output.concat(['Options:', formatList(optionList), '']);\n }\n\n if (this.showGlobalOptions) {\n const globalOptionList = helper.visibleGlobalOptions(cmd).map((option) => {\n return formatItem(helper.optionTerm(option), helper.optionDescription(option));\n });\n if (globalOptionList.length > 0) {\n output = output.concat(['Global Options:', formatList(globalOptionList), '']);\n }\n }\n\n // Commands\n const commandList = helper.visibleCommands(cmd).map((cmd) => {\n return formatItem(helper.subcommandTerm(cmd), helper.subcommandDescription(cmd));\n });\n if (commandList.length > 0) {\n output = output.concat(['Commands:', formatList(commandList), '']);\n }\n\n return output.join('\\n');\n }\n\n /**\n * Calculate the pad width from the maximum term length.\n *\n * @param {Command} cmd\n * @param {Help} helper\n * @returns {number}\n */\n\n padWidth(cmd, helper) {\n return Math.max(\n helper.longestOptionTermLength(cmd, helper),\n helper.longestGlobalOptionTermLength(cmd, helper),\n helper.longestSubcommandTermLength(cmd, helper),\n helper.longestArgumentTermLength(cmd, helper)\n );\n }\n\n /**\n * Wrap the given string to width characters per line, with lines after the first indented.\n * Do not wrap if insufficient room for wrapping (minColumnWidth), or string is manually formatted.\n *\n * @param {string} str\n * @param {number} width\n * @param {number} indent\n * @param {number} [minColumnWidth=40]\n * @return {string}\n *\n */\n\n wrap(str, width, indent, minColumnWidth = 40) {\n // Full \\s characters, minus the linefeeds.\n const indents = ' \\\\f\\\\t\\\\v\\u00a0\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff';\n // Detect manually wrapped and indented strings by searching for line break followed by spaces.\n const manualIndent = new RegExp(`[\\\\n][${indents}]+`);\n if (str.match(manualIndent)) return str;\n // Do not wrap if not enough room for a wrapped column of text (as could end up with a word per line).\n const columnWidth = width - indent;\n if (columnWidth < minColumnWidth) return str;\n\n const leadingStr = str.slice(0, indent);\n const columnText = str.slice(indent).replace('\\r\\n', '\\n');\n const indentString = ' '.repeat(indent);\n const zeroWidthSpace = '\\u200B';\n const breaks = `\\\\s${zeroWidthSpac