agent-yes 1.31.41 → 1.32.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map DELETED
@@ -1,435 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../node_modules/is-plain-obj/index.js", "../node_modules/execa/lib/arguments/file-url.js", "../node_modules/execa/lib/methods/parameters.js", "../node_modules/execa/lib/utils/uint-array.js", "../node_modules/execa/lib/methods/template.js", "../node_modules/execa/lib/utils/standard-stream.js", "../node_modules/execa/lib/arguments/specific.js", "../node_modules/execa/lib/verbose/values.js", "../node_modules/execa/lib/arguments/escape.js", "../node_modules/is-unicode-supported/index.js", "../node_modules/figures/index.js", "../node_modules/yoctocolors/base.js", "../node_modules/yoctocolors/index.js", "../node_modules/execa/lib/verbose/default.js", "../node_modules/execa/lib/verbose/custom.js", "../node_modules/execa/lib/verbose/log.js", "../node_modules/execa/lib/verbose/start.js", "../node_modules/execa/lib/verbose/info.js", "../node_modules/execa/lib/return/duration.js", "../node_modules/execa/lib/arguments/command.js", "../node_modules/isexe/windows.js", "../node_modules/isexe/mode.js", "../node_modules/isexe/index.js", "../node_modules/which/which.js", "../node_modules/path-key/index.js", "../node_modules/cross-spawn/lib/util/resolveCommand.js", "../node_modules/cross-spawn/lib/util/escape.js", "../node_modules/shebang-regex/index.js", "../node_modules/shebang-command/index.js", "../node_modules/cross-spawn/lib/util/readShebang.js", "../node_modules/cross-spawn/lib/parse.js", "../node_modules/cross-spawn/lib/enoent.js", "../node_modules/cross-spawn/index.js", "../node_modules/npm-run-path/node_modules/path-key/index.js", "../node_modules/unicorn-magic/node.js", "../node_modules/npm-run-path/index.js", "../node_modules/execa/lib/return/final-error.js", "../node_modules/human-signals/build/src/realtime.js", "../node_modules/human-signals/build/src/core.js", "../node_modules/human-signals/build/src/signals.js", "../node_modules/human-signals/build/src/main.js", "../node_modules/execa/lib/terminate/signal.js", "../node_modules/execa/lib/terminate/kill.js", "../node_modules/execa/lib/utils/abort-signal.js", "../node_modules/execa/lib/terminate/cancel.js", "../node_modules/execa/lib/ipc/validation.js", "../node_modules/execa/lib/utils/deferred.js", "../node_modules/execa/lib/arguments/fd-options.js", "../node_modules/execa/lib/utils/max-listeners.js", "../node_modules/execa/lib/ipc/reference.js", "../node_modules/execa/lib/ipc/incoming.js", "../node_modules/execa/lib/ipc/forward.js", "../node_modules/execa/lib/ipc/strict.js", "../node_modules/execa/lib/ipc/outgoing.js", "../node_modules/execa/lib/ipc/send.js", "../node_modules/execa/lib/ipc/graceful.js", "../node_modules/execa/lib/terminate/graceful.js", "../node_modules/execa/lib/terminate/timeout.js", "../node_modules/execa/lib/methods/node.js", "../node_modules/execa/lib/ipc/ipc-input.js", "../node_modules/execa/lib/arguments/encoding-option.js", "../node_modules/execa/lib/arguments/cwd.js", "../node_modules/execa/lib/arguments/options.js", "../node_modules/execa/lib/arguments/shell.js", "../node_modules/strip-final-newline/index.js", "../node_modules/is-stream/index.js", "../node_modules/@sec-ant/readable-stream/dist/ponyfill/asyncIterator.js", "../node_modules/@sec-ant/readable-stream/dist/ponyfill/index.js", "../node_modules/execa/node_modules/get-stream/source/stream.js", "../node_modules/execa/node_modules/get-stream/source/contents.js", "../node_modules/execa/node_modules/get-stream/source/utils.js", "../node_modules/execa/node_modules/get-stream/source/array.js", "../node_modules/execa/node_modules/get-stream/source/array-buffer.js", "../node_modules/execa/node_modules/get-stream/source/string.js", "../node_modules/execa/node_modules/get-stream/source/exports.js", "../node_modules/execa/node_modules/get-stream/source/index.js", "../node_modules/execa/lib/io/max-buffer.js", "../node_modules/execa/lib/return/message.js", "../node_modules/execa/lib/return/result.js", "../node_modules/parse-ms/index.js", "../node_modules/pretty-ms/index.js", "../node_modules/execa/lib/verbose/error.js", "../node_modules/execa/lib/verbose/complete.js", "../node_modules/execa/lib/return/reject.js", "../node_modules/execa/lib/stdio/type.js", "../node_modules/execa/lib/transform/object-mode.js", "../node_modules/execa/lib/transform/normalize.js", "../node_modules/execa/lib/stdio/direction.js", "../node_modules/execa/lib/ipc/array.js", "../node_modules/execa/lib/stdio/stdio-option.js", "../node_modules/execa/lib/stdio/native.js", "../node_modules/execa/lib/stdio/input-option.js", "../node_modules/execa/lib/stdio/duplicate.js", "../node_modules/execa/lib/stdio/handle.js", "../node_modules/execa/lib/stdio/handle-sync.js", "../node_modules/execa/lib/io/strip-newline.js", "../node_modules/execa/lib/transform/split.js", "../node_modules/execa/lib/transform/validate.js", "../node_modules/execa/lib/transform/encoding-transform.js", "../node_modules/execa/lib/transform/run-async.js", "../node_modules/execa/lib/transform/run-sync.js", "../node_modules/execa/lib/transform/generator.js", "../node_modules/execa/lib/io/input-sync.js", "../node_modules/execa/lib/verbose/output.js", "../node_modules/execa/lib/io/output-sync.js", "../node_modules/execa/lib/resolve/all-sync.js", "../node_modules/execa/lib/resolve/exit-async.js", "../node_modules/execa/lib/resolve/exit-sync.js", "../node_modules/execa/lib/methods/main-sync.js", "../node_modules/execa/lib/ipc/get-one.js", "../node_modules/execa/lib/ipc/get-each.js", "../node_modules/execa/lib/ipc/methods.js", "../node_modules/execa/lib/return/early-error.js", "../node_modules/execa/lib/stdio/handle-async.js", "../node_modules/@sindresorhus/merge-streams/index.js", "../node_modules/execa/lib/io/pipeline.js", "../node_modules/execa/lib/io/output-async.js", "../node_modules/signal-exit/dist/mjs/signals.js", "../node_modules/signal-exit/dist/mjs/index.js", "../node_modules/execa/lib/terminate/cleanup.js", "../node_modules/execa/lib/pipe/pipe-arguments.js", "../node_modules/execa/lib/pipe/throw.js", "../node_modules/execa/lib/pipe/sequence.js", "../node_modules/execa/lib/pipe/streaming.js", "../node_modules/execa/lib/pipe/abort.js", "../node_modules/execa/lib/pipe/setup.js", "../node_modules/execa/lib/io/iterate.js", "../node_modules/execa/lib/io/contents.js", "../node_modules/execa/lib/resolve/wait-stream.js", "../node_modules/execa/lib/resolve/stdio.js", "../node_modules/execa/lib/resolve/all-async.js", "../node_modules/execa/lib/verbose/ipc.js", "../node_modules/execa/lib/ipc/buffer-messages.js", "../node_modules/execa/lib/resolve/wait-subprocess.js", "../node_modules/execa/lib/convert/concurrent.js", "../node_modules/execa/lib/convert/shared.js", "../node_modules/execa/lib/convert/readable.js", "../node_modules/execa/lib/convert/writable.js", "../node_modules/execa/lib/convert/duplex.js", "../node_modules/execa/lib/convert/iterable.js", "../node_modules/execa/lib/convert/add.js", "../node_modules/execa/lib/methods/promise.js", "../node_modules/execa/lib/methods/main-async.js", "../node_modules/execa/lib/methods/bind.js", "../node_modules/execa/lib/methods/create.js", "../node_modules/execa/lib/methods/command.js", "../node_modules/execa/lib/methods/script.js", "../node_modules/execa/index.js", "../node_modules/phpdie/dist/index.js", "../node_modules/sflow/node_modules/phpdie/dist/index.js", "../node_modules/polyfill-text-encoder-stream/dist/index.js", "../node_modules/sflow/node_modules/rambda/dist/rambda.js", "../node_modules/web-streams-extensions/dist/esm/operators/map.js", "../node_modules/web-streams-extensions/dist/esm/_readable-like.js", "../node_modules/web-streams-extensions/dist/esm/from.js", "../node_modules/web-streams-extensions/dist/esm/operators/through.js", "../node_modules/web-streams-extensions/dist/esm/pipe.js", "../node_modules/web-streams-extensions/dist/esm/utils/signal.js", "../node_modules/web-streams-extensions/dist/esm/operators/schedule.js", "../node_modules/web-streams-extensions/dist/esm/operators/on.js", "../node_modules/web-streams-extensions/dist/esm/to-promise.js", "../node_modules/web-streams-extensions/dist/esm/operators/merge.js", "../node_modules/web-streams-extensions/dist/esm/operators/index.js", "../node_modules/web-streams-extensions/dist/esm/to-array.js", "../node_modules/web-streams-extensions/dist/esm/of.js", "../node_modules/web-streams-extensions/dist/esm/_subscribable.js", "../node_modules/web-streams-extensions/dist/esm/subject.js", "../node_modules/web-streams-extensions/dist/esm/behaviour_subject.js", "../node_modules/web-streams-extensions/dist/esm/index.js", "../node_modules/string-replace-async/index.js", "../node_modules/unwind-array/src/index.js", "../node_modules/d3-dispatch/src/dispatch.js", "../node_modules/d3-dispatch/src/index.js", "../node_modules/d3-selection/src/namespaces.js", "../node_modules/d3-selection/src/namespace.js", "../node_modules/d3-selection/src/creator.js", "../node_modules/d3-selection/src/selector.js", "../node_modules/d3-selection/src/selection/select.js", "../node_modules/d3-selection/src/array.js", "../node_modules/d3-selection/src/selectorAll.js", "../node_modules/d3-selection/src/selection/selectAll.js", "../node_modules/d3-selection/src/matcher.js", "../node_modules/d3-selection/src/selection/selectChild.js", "../node_modules/d3-selection/src/selection/selectChildren.js", "../node_modules/d3-selection/src/selection/filter.js", "../node_modules/d3-selection/src/selection/sparse.js", "../node_modules/d3-selection/src/selection/enter.js", "../node_modules/d3-selection/src/constant.js", "../node_modules/d3-selection/src/selection/data.js", "../node_modules/d3-selection/src/selection/exit.js", "../node_modules/d3-selection/src/selection/join.js", "../node_modules/d3-selection/src/selection/merge.js", "../node_modules/d3-selection/src/selection/order.js", "../node_modules/d3-selection/src/selection/sort.js", "../node_modules/d3-selection/src/selection/call.js", "../node_modules/d3-selection/src/selection/nodes.js", "../node_modules/d3-selection/src/selection/node.js", "../node_modules/d3-selection/src/selection/size.js", "../node_modules/d3-selection/src/selection/empty.js", "../node_modules/d3-selection/src/selection/each.js", "../node_modules/d3-selection/src/selection/attr.js", "../node_modules/d3-selection/src/window.js", "../node_modules/d3-selection/src/selection/style.js", "../node_modules/d3-selection/src/selection/property.js", "../node_modules/d3-selection/src/selection/classed.js", "../node_modules/d3-selection/src/selection/text.js", "../node_modules/d3-selection/src/selection/html.js", "../node_modules/d3-selection/src/selection/raise.js", "../node_modules/d3-selection/src/selection/lower.js", "../node_modules/d3-selection/src/selection/append.js", "../node_modules/d3-selection/src/selection/insert.js", "../node_modules/d3-selection/src/selection/remove.js", "../node_modules/d3-selection/src/selection/clone.js", "../node_modules/d3-selection/src/selection/datum.js", "../node_modules/d3-selection/src/selection/on.js", "../node_modules/d3-selection/src/selection/dispatch.js", "../node_modules/d3-selection/src/selection/iterator.js", "../node_modules/d3-selection/src/selection/index.js", "../node_modules/d3-selection/src/index.js", "../node_modules/d3-color/src/define.js", "../node_modules/d3-color/src/color.js", "../node_modules/d3-color/src/index.js", "../node_modules/d3-interpolate/src/basis.js", "../node_modules/d3-interpolate/src/basisClosed.js", "../node_modules/d3-interpolate/src/constant.js", "../node_modules/d3-interpolate/src/color.js", "../node_modules/d3-interpolate/src/rgb.js", "../node_modules/d3-interpolate/src/number.js", "../node_modules/d3-interpolate/src/string.js", "../node_modules/d3-interpolate/src/transform/decompose.js", "../node_modules/d3-interpolate/src/transform/parse.js", "../node_modules/d3-interpolate/src/transform/index.js", "../node_modules/d3-interpolate/src/index.js", "../node_modules/d3-timer/src/timer.js", "../node_modules/d3-timer/src/timeout.js", "../node_modules/d3-timer/src/index.js", "../node_modules/d3-transition/src/transition/schedule.js", "../node_modules/d3-transition/src/interrupt.js", "../node_modules/d3-transition/src/selection/interrupt.js", "../node_modules/d3-transition/src/transition/tween.js", "../node_modules/d3-transition/src/transition/interpolate.js", "../node_modules/d3-transition/src/transition/attr.js", "../node_modules/d3-transition/src/transition/attrTween.js", "../node_modules/d3-transition/src/transition/delay.js", "../node_modules/d3-transition/src/transition/duration.js", "../node_modules/d3-transition/src/transition/ease.js", "../node_modules/d3-transition/src/transition/easeVarying.js", "../node_modules/d3-transition/src/transition/filter.js", "../node_modules/d3-transition/src/transition/merge.js", "../node_modules/d3-transition/src/transition/on.js", "../node_modules/d3-transition/src/transition/remove.js", "../node_modules/d3-transition/src/transition/select.js", "../node_modules/d3-transition/src/transition/selectAll.js", "../node_modules/d3-transition/src/transition/selection.js", "../node_modules/d3-transition/src/transition/style.js", "../node_modules/d3-transition/src/transition/styleTween.js", "../node_modules/d3-transition/src/transition/text.js", "../node_modules/d3-transition/src/transition/textTween.js", "../node_modules/d3-transition/src/transition/transition.js", "../node_modules/d3-transition/src/transition/end.js", "../node_modules/d3-transition/src/transition/index.js", "../node_modules/d3-ease/src/cubic.js", "../node_modules/d3-transition/src/selection/transition.js", "../node_modules/d3-transition/src/selection/index.js", "../node_modules/d3-transition/src/index.js", "../node_modules/d3-brush/src/brush.js", "../node_modules/d3-brush/src/index.js", "../node_modules/d3-dsv/src/dsv.js", "../node_modules/d3-dsv/src/csv.js", "../node_modules/d3-dsv/src/tsv.js", "../node_modules/d3-dsv/src/index.js", "../node_modules/d3-format/src/formatDecimal.js", "../node_modules/d3-format/src/exponent.js", "../node_modules/d3-format/src/formatGroup.js", "../node_modules/d3-format/src/formatNumerals.js", "../node_modules/d3-format/src/formatSpecifier.js", "../node_modules/d3-format/src/formatTrim.js", "../node_modules/d3-format/src/formatPrefixAuto.js", "../node_modules/d3-format/src/formatRounded.js", "../node_modules/d3-format/src/formatTypes.js", "../node_modules/d3-format/src/identity.js", "../node_modules/d3-format/src/locale.js", "../node_modules/d3-format/src/defaultLocale.js", "../node_modules/d3-format/src/index.js", "../node_modules/d3-time/src/interval.js", "../node_modules/d3-time/src/duration.js", "../node_modules/d3-time/src/day.js", "../node_modules/d3-time/src/week.js", "../node_modules/d3-time/src/year.js", "../node_modules/d3-time/src/index.js", "../node_modules/d3-time-format/src/locale.js", "../node_modules/d3-time-format/src/defaultLocale.js", "../node_modules/d3-time-format/src/index.js", "../node_modules/d3-zoom/src/transform.js", "../node_modules/d3-zoom/src/zoom.js", "../node_modules/d3-zoom/src/index.js", "../node_modules/d3/src/index.js", "../node_modules/polyfill-text-decoder-stream/dist/index.js", "../node_modules/sflow/dist/index.js", "../node_modules/terminal-render/dist/index.js", "../ts/catcher.ts", "../ts/resume/codexSessionManager.ts", "../ts/idleWaiter.ts", "../node_modules/logform/format.js", "../node_modules/@colors/colors/lib/styles.js", "../node_modules/@colors/colors/lib/system/has-flag.js", "../node_modules/@colors/colors/lib/system/supports-colors.js", "../node_modules/@colors/colors/lib/custom/trap.js", "../node_modules/@colors/colors/lib/custom/zalgo.js", "../node_modules/@colors/colors/lib/maps/america.js", "../node_modules/@colors/colors/lib/maps/zebra.js", "../node_modules/@colors/colors/lib/maps/rainbow.js", "../node_modules/@colors/colors/lib/maps/random.js", "../node_modules/@colors/colors/lib/colors.js", "../node_modules/@colors/colors/safe.js", "../node_modules/triple-beam/config/cli.js", "../node_modules/triple-beam/config/npm.js", "../node_modules/triple-beam/config/syslog.js", "../node_modules/triple-beam/config/index.js", "../node_modules/triple-beam/index.js", "../node_modules/logform/colorize.js", "../node_modules/logform/levels.js", "../node_modules/logform/align.js", "../node_modules/logform/errors.js", "../node_modules/logform/pad-levels.js", "../node_modules/logform/cli.js", "../node_modules/logform/combine.js", "../node_modules/safe-stable-stringify/index.js", "../node_modules/logform/json.js", "../node_modules/logform/label.js", "../node_modules/logform/logstash.js", "../node_modules/logform/metadata.js", "../node_modules/ms/index.js", "../node_modules/logform/ms.js", "../node_modules/logform/pretty-print.js", "../node_modules/logform/printf.js", "../node_modules/logform/simple.js", "../node_modules/logform/splat.js", "../node_modules/fecha/lib/fecha.umd.js", "../node_modules/logform/timestamp.js", "../node_modules/logform/uncolorize.js", "../node_modules/logform/index.js", "../node_modules/winston/lib/winston/common.js", "../node_modules/util-deprecate/node.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/readable-stream/lib/internal/streams/buffer_list.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_duplex.js", "../node_modules/readable-stream/lib/_stream_writable.js", "../node_modules/winston-transport/modern.js", "../node_modules/winston-transport/legacy.js", "../node_modules/winston-transport/index.js", "../node_modules/winston/lib/winston/transports/console.js", "../node_modules/async/internal/isArrayLike.js", "../node_modules/async/internal/initialParams.js", "../node_modules/async/internal/setImmediate.js", "../node_modules/async/asyncify.js", "../node_modules/async/internal/wrapAsync.js", "../node_modules/async/internal/awaitify.js", "../node_modules/async/internal/parallel.js", "../node_modules/async/internal/once.js", "../node_modules/async/internal/getIterator.js", "../node_modules/async/internal/iterator.js", "../node_modules/async/internal/onlyOnce.js", "../node_modules/async/internal/breakLoop.js", "../node_modules/async/internal/asyncEachOfLimit.js", "../node_modules/async/internal/eachOfLimit.js", "../node_modules/async/eachOfLimit.js", "../node_modules/async/eachOfSeries.js", "../node_modules/async/series.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/@dabh/diagnostics/diagnostics.js", "../node_modules/@so-ric/colorspace/dist/index.cjs.js", "../node_modules/kuler/index.js", "../node_modules/@dabh/diagnostics/modifiers/namespace-ansi.js", "../node_modules/enabled/index.js", "../node_modules/@dabh/diagnostics/adapters/index.js", "../node_modules/@dabh/diagnostics/adapters/process.env.js", "../node_modules/@dabh/diagnostics/logger/console.js", "../node_modules/@dabh/diagnostics/node/development.js", "../node_modules/@dabh/diagnostics/node/index.js", "../node_modules/winston/lib/winston/tail-file.js", "../node_modules/winston/lib/winston/transports/file.js", "../node_modules/winston/lib/winston/transports/http.js", "../node_modules/winston/node_modules/is-stream/index.js", "../node_modules/winston/lib/winston/transports/stream.js", "../node_modules/winston/lib/winston/transports/index.js", "../node_modules/winston/lib/winston/config/index.js", "../node_modules/async/eachOf.js", "../node_modules/async/internal/withoutIndex.js", "../node_modules/async/forEach.js", "../node_modules/fn.name/index.js", "../node_modules/one-time/index.js", "../node_modules/stack-trace/lib/stack-trace.js", "../node_modules/winston/lib/winston/exception-stream.js", "../node_modules/winston/lib/winston/exception-handler.js", "../node_modules/winston/lib/winston/rejection-stream.js", "../node_modules/winston/lib/winston/rejection-handler.js", "../node_modules/winston/lib/winston/profiler.js", "../node_modules/winston/lib/winston/logger.js", "../node_modules/winston/lib/winston/create-logger.js", "../node_modules/winston/lib/winston/container.js", "../node_modules/winston/lib/winston.js", "../ts/logger.ts", "../ts/pty.ts", "../ts/ReadyManager.ts", "../ts/removeControlCharacters.ts", "../ts/runningLock.ts", "../ts/beta/fifo.ts", "../ts/defineConfig.ts", "../ts/utils.ts", "../agent-yes.config.ts", "../ts/pty-fix.ts", "../ts/index.ts"],
4
- "sourcesContent": [
5
- "export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n",
6
- "import {fileURLToPath} from 'node:url';\n\n// Allow some arguments/options to be either a file path string or a file URL\nexport const safeNormalizeFileUrl = (file, name) => {\n\tconst fileString = normalizeFileUrl(normalizeDenoExecPath(file));\n\n\tif (typeof fileString !== 'string') {\n\t\tthrow new TypeError(`${name} must be a string or a file URL: ${fileString}.`);\n\t}\n\n\treturn fileString;\n};\n\n// In Deno node:process execPath is a special object, not just a string:\n// https://github.com/denoland/deno/blob/f460188e583f00144000aa0d8ade08218d47c3c1/ext/node/polyfills/process.ts#L344\nconst normalizeDenoExecPath = file => isDenoExecPath(file)\n\t? file.toString()\n\t: file;\n\nexport const isDenoExecPath = file => typeof file !== 'string'\n\t&& file\n\t&& Object.getPrototypeOf(file) === String.prototype;\n\n// Same but also allows other values, e.g. `boolean` for the `shell` option\nexport const normalizeFileUrl = file => file instanceof URL ? fileURLToPath(file) : file;\n",
7
- "import isPlainObject from 'is-plain-obj';\nimport {safeNormalizeFileUrl} from '../arguments/file-url.js';\n\n// The command `arguments` and `options` are both optional.\n// This also does basic validation on them and on the command file.\nexport const normalizeParameters = (rawFile, rawArguments = [], rawOptions = {}) => {\n\tconst filePath = safeNormalizeFileUrl(rawFile, 'First argument');\n\tconst [commandArguments, options] = isPlainObject(rawArguments)\n\t\t? [[], rawArguments]\n\t\t: [rawArguments, rawOptions];\n\n\tif (!Array.isArray(commandArguments)) {\n\t\tthrow new TypeError(`Second argument must be either an array of arguments or an options object: ${commandArguments}`);\n\t}\n\n\tif (commandArguments.some(commandArgument => typeof commandArgument === 'object' && commandArgument !== null)) {\n\t\tthrow new TypeError(`Second argument must be an array of strings: ${commandArguments}`);\n\t}\n\n\tconst normalizedArguments = commandArguments.map(String);\n\tconst nullByteArgument = normalizedArguments.find(normalizedArgument => normalizedArgument.includes('\\0'));\n\tif (nullByteArgument !== undefined) {\n\t\tthrow new TypeError(`Arguments cannot contain null bytes (\"\\\\0\"): ${nullByteArgument}`);\n\t}\n\n\tif (!isPlainObject(options)) {\n\t\tthrow new TypeError(`Last argument must be an options object: ${options}`);\n\t}\n\n\treturn [filePath, normalizedArguments, options];\n};\n",
8
- "import {StringDecoder} from 'node:string_decoder';\n\nconst {toString: objectToString} = Object.prototype;\n\nexport const isArrayBuffer = value => objectToString.call(value) === '[object ArrayBuffer]';\n\n// Is either Uint8Array or Buffer\nexport const isUint8Array = value => objectToString.call(value) === '[object Uint8Array]';\n\nexport const bufferToUint8Array = buffer => new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n\nconst textEncoder = new TextEncoder();\nconst stringToUint8Array = string => textEncoder.encode(string);\n\nconst textDecoder = new TextDecoder();\nexport const uint8ArrayToString = uint8Array => textDecoder.decode(uint8Array);\n\nexport const joinToString = (uint8ArraysOrStrings, encoding) => {\n\tconst strings = uint8ArraysToStrings(uint8ArraysOrStrings, encoding);\n\treturn strings.join('');\n};\n\nconst uint8ArraysToStrings = (uint8ArraysOrStrings, encoding) => {\n\tif (encoding === 'utf8' && uint8ArraysOrStrings.every(uint8ArrayOrString => typeof uint8ArrayOrString === 'string')) {\n\t\treturn uint8ArraysOrStrings;\n\t}\n\n\tconst decoder = new StringDecoder(encoding);\n\tconst strings = uint8ArraysOrStrings\n\t\t.map(uint8ArrayOrString => typeof uint8ArrayOrString === 'string'\n\t\t\t? stringToUint8Array(uint8ArrayOrString)\n\t\t\t: uint8ArrayOrString)\n\t\t.map(uint8Array => decoder.write(uint8Array));\n\tconst finalString = decoder.end();\n\treturn finalString === '' ? strings : [...strings, finalString];\n};\n\nexport const joinToUint8Array = uint8ArraysOrStrings => {\n\tif (uint8ArraysOrStrings.length === 1 && isUint8Array(uint8ArraysOrStrings[0])) {\n\t\treturn uint8ArraysOrStrings[0];\n\t}\n\n\treturn concatUint8Arrays(stringsToUint8Arrays(uint8ArraysOrStrings));\n};\n\nconst stringsToUint8Arrays = uint8ArraysOrStrings => uint8ArraysOrStrings.map(uint8ArrayOrString => typeof uint8ArrayOrString === 'string'\n\t? stringToUint8Array(uint8ArrayOrString)\n\t: uint8ArrayOrString);\n\nexport const concatUint8Arrays = uint8Arrays => {\n\tconst result = new Uint8Array(getJoinLength(uint8Arrays));\n\n\tlet index = 0;\n\tfor (const uint8Array of uint8Arrays) {\n\t\tresult.set(uint8Array, index);\n\t\tindex += uint8Array.length;\n\t}\n\n\treturn result;\n};\n\nconst getJoinLength = uint8Arrays => {\n\tlet joinLength = 0;\n\tfor (const uint8Array of uint8Arrays) {\n\t\tjoinLength += uint8Array.length;\n\t}\n\n\treturn joinLength;\n};\n",
9
- "import {ChildProcess} from 'node:child_process';\nimport isPlainObject from 'is-plain-obj';\nimport {isUint8Array, uint8ArrayToString} from '../utils/uint-array.js';\n\n// Check whether the template string syntax is being used\nexport const isTemplateString = templates => Array.isArray(templates) && Array.isArray(templates.raw);\n\n// Convert execa`file ...commandArguments` to execa(file, commandArguments)\nexport const parseTemplates = (templates, expressions) => {\n\tlet tokens = [];\n\n\tfor (const [index, template] of templates.entries()) {\n\t\ttokens = parseTemplate({\n\t\t\ttemplates,\n\t\t\texpressions,\n\t\t\ttokens,\n\t\t\tindex,\n\t\t\ttemplate,\n\t\t});\n\t}\n\n\tif (tokens.length === 0) {\n\t\tthrow new TypeError('Template script must not be empty');\n\t}\n\n\tconst [file, ...commandArguments] = tokens;\n\treturn [file, commandArguments, {}];\n};\n\nconst parseTemplate = ({templates, expressions, tokens, index, template}) => {\n\tif (template === undefined) {\n\t\tthrow new TypeError(`Invalid backslash sequence: ${templates.raw[index]}`);\n\t}\n\n\tconst {nextTokens, leadingWhitespaces, trailingWhitespaces} = splitByWhitespaces(template, templates.raw[index]);\n\tconst newTokens = concatTokens(tokens, nextTokens, leadingWhitespaces);\n\n\tif (index === expressions.length) {\n\t\treturn newTokens;\n\t}\n\n\tconst expression = expressions[index];\n\tconst expressionTokens = Array.isArray(expression)\n\t\t? expression.map(expression => parseExpression(expression))\n\t\t: [parseExpression(expression)];\n\treturn concatTokens(newTokens, expressionTokens, trailingWhitespaces);\n};\n\n// Like `string.split(/[ \\t\\r\\n]+/)` except newlines and tabs are:\n// - ignored when input as a backslash sequence like: `echo foo\\n bar`\n// - not ignored when input directly\n// The only way to distinguish those in JavaScript is to use a tagged template and compare:\n// - the first array argument, which does not escape backslash sequences\n// - its `raw` property, which escapes them\nconst splitByWhitespaces = (template, rawTemplate) => {\n\tif (rawTemplate.length === 0) {\n\t\treturn {nextTokens: [], leadingWhitespaces: false, trailingWhitespaces: false};\n\t}\n\n\tconst nextTokens = [];\n\tlet templateStart = 0;\n\tconst leadingWhitespaces = DELIMITERS.has(rawTemplate[0]);\n\n\tfor (\n\t\tlet templateIndex = 0, rawIndex = 0;\n\t\ttemplateIndex < template.length;\n\t\ttemplateIndex += 1, rawIndex += 1\n\t) {\n\t\tconst rawCharacter = rawTemplate[rawIndex];\n\t\tif (DELIMITERS.has(rawCharacter)) {\n\t\t\tif (templateStart !== templateIndex) {\n\t\t\t\tnextTokens.push(template.slice(templateStart, templateIndex));\n\t\t\t}\n\n\t\t\ttemplateStart = templateIndex + 1;\n\t\t} else if (rawCharacter === '\\\\') {\n\t\t\tconst nextRawCharacter = rawTemplate[rawIndex + 1];\n\t\t\tif (nextRawCharacter === '\\n') {\n\t\t\t\t// Handles escaped newlines in templates\n\t\t\t\ttemplateIndex -= 1;\n\t\t\t\trawIndex += 1;\n\t\t\t} else if (nextRawCharacter === 'u' && rawTemplate[rawIndex + 2] === '{') {\n\t\t\t\trawIndex = rawTemplate.indexOf('}', rawIndex + 3);\n\t\t\t} else {\n\t\t\t\trawIndex += ESCAPE_LENGTH[nextRawCharacter] ?? 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tconst trailingWhitespaces = templateStart === template.length;\n\tif (!trailingWhitespaces) {\n\t\tnextTokens.push(template.slice(templateStart));\n\t}\n\n\treturn {nextTokens, leadingWhitespaces, trailingWhitespaces};\n};\n\nconst DELIMITERS = new Set([' ', '\\t', '\\r', '\\n']);\n\n// Number of characters in backslash escape sequences: \\0 \\xXX or \\uXXXX\n// \\cX is allowed in RegExps but not in strings\n// Octal sequences are not allowed in strict mode\nconst ESCAPE_LENGTH = {x: 3, u: 5};\n\nconst concatTokens = (tokens, nextTokens, isSeparated) => isSeparated\n\t|| tokens.length === 0\n\t|| nextTokens.length === 0\n\t? [...tokens, ...nextTokens]\n\t: [\n\t\t...tokens.slice(0, -1),\n\t\t`${tokens.at(-1)}${nextTokens[0]}`,\n\t\t...nextTokens.slice(1),\n\t];\n\n// Handle `${expression}` inside the template string syntax\nconst parseExpression = expression => {\n\tconst typeOfExpression = typeof expression;\n\n\tif (typeOfExpression === 'string') {\n\t\treturn expression;\n\t}\n\n\tif (typeOfExpression === 'number') {\n\t\treturn String(expression);\n\t}\n\n\tif (isPlainObject(expression) && ('stdout' in expression || 'isMaxBuffer' in expression)) {\n\t\treturn getSubprocessResult(expression);\n\t}\n\n\tif (expression instanceof ChildProcess || Object.prototype.toString.call(expression) === '[object Promise]') {\n\t\t// eslint-disable-next-line no-template-curly-in-string\n\t\tthrow new TypeError('Unexpected subprocess in template expression. Please use ${await subprocess} instead of ${subprocess}.');\n\t}\n\n\tthrow new TypeError(`Unexpected \"${typeOfExpression}\" in template expression`);\n};\n\nconst getSubprocessResult = ({stdout}) => {\n\tif (typeof stdout === 'string') {\n\t\treturn stdout;\n\t}\n\n\tif (isUint8Array(stdout)) {\n\t\treturn uint8ArrayToString(stdout);\n\t}\n\n\tif (stdout === undefined) {\n\t\tthrow new TypeError('Missing result.stdout in template expression. This is probably due to the previous subprocess\\' \"stdout\" option.');\n\t}\n\n\tthrow new TypeError(`Unexpected \"${typeof stdout}\" stdout in template expression`);\n};\n",
10
- "import process from 'node:process';\n\nexport const isStandardStream = stream => STANDARD_STREAMS.includes(stream);\nexport const STANDARD_STREAMS = [process.stdin, process.stdout, process.stderr];\nexport const STANDARD_STREAMS_ALIASES = ['stdin', 'stdout', 'stderr'];\nexport const getStreamName = fdNumber => STANDARD_STREAMS_ALIASES[fdNumber] ?? `stdio[${fdNumber}]`;\n",
11
- "import {debuglog} from 'node:util';\nimport isPlainObject from 'is-plain-obj';\nimport {STANDARD_STREAMS_ALIASES} from '../utils/standard-stream.js';\n\n// Some options can have different values for `stdout`/`stderr`/`fd3`.\n// This normalizes those to array of values.\n// For example, `{verbose: {stdout: 'none', stderr: 'full'}}` becomes `{verbose: ['none', 'none', 'full']}`\nexport const normalizeFdSpecificOptions = options => {\n\tconst optionsCopy = {...options};\n\n\tfor (const optionName of FD_SPECIFIC_OPTIONS) {\n\t\toptionsCopy[optionName] = normalizeFdSpecificOption(options, optionName);\n\t}\n\n\treturn optionsCopy;\n};\n\nexport const normalizeFdSpecificOption = (options, optionName) => {\n\tconst optionBaseArray = Array.from({length: getStdioLength(options) + 1});\n\tconst optionArray = normalizeFdSpecificValue(options[optionName], optionBaseArray, optionName);\n\treturn addDefaultValue(optionArray, optionName);\n};\n\nconst getStdioLength = ({stdio}) => Array.isArray(stdio)\n\t? Math.max(stdio.length, STANDARD_STREAMS_ALIASES.length)\n\t: STANDARD_STREAMS_ALIASES.length;\n\nconst normalizeFdSpecificValue = (optionValue, optionArray, optionName) => isPlainObject(optionValue)\n\t? normalizeOptionObject(optionValue, optionArray, optionName)\n\t: optionArray.fill(optionValue);\n\nconst normalizeOptionObject = (optionValue, optionArray, optionName) => {\n\tfor (const fdName of Object.keys(optionValue).sort(compareFdName)) {\n\t\tfor (const fdNumber of parseFdName(fdName, optionName, optionArray)) {\n\t\t\toptionArray[fdNumber] = optionValue[fdName];\n\t\t}\n\t}\n\n\treturn optionArray;\n};\n\n// Ensure priority order when setting both `stdout`/`stderr`, `fd1`/`fd2`, and `all`\nconst compareFdName = (fdNameA, fdNameB) => getFdNameOrder(fdNameA) < getFdNameOrder(fdNameB) ? 1 : -1;\n\nconst getFdNameOrder = fdName => {\n\tif (fdName === 'stdout' || fdName === 'stderr') {\n\t\treturn 0;\n\t}\n\n\treturn fdName === 'all' ? 2 : 1;\n};\n\nconst parseFdName = (fdName, optionName, optionArray) => {\n\tif (fdName === 'ipc') {\n\t\treturn [optionArray.length - 1];\n\t}\n\n\tconst fdNumber = parseFd(fdName);\n\tif (fdNumber === undefined || fdNumber === 0) {\n\t\tthrow new TypeError(`\"${optionName}.${fdName}\" is invalid.\nIt must be \"${optionName}.stdout\", \"${optionName}.stderr\", \"${optionName}.all\", \"${optionName}.ipc\", or \"${optionName}.fd3\", \"${optionName}.fd4\" (and so on).`);\n\t}\n\n\tif (fdNumber >= optionArray.length) {\n\t\tthrow new TypeError(`\"${optionName}.${fdName}\" is invalid: that file descriptor does not exist.\nPlease set the \"stdio\" option to ensure that file descriptor exists.`);\n\t}\n\n\treturn fdNumber === 'all' ? [1, 2] : [fdNumber];\n};\n\n// Use the same syntax for fd-specific options and the `from`/`to` options\nexport const parseFd = fdName => {\n\tif (fdName === 'all') {\n\t\treturn fdName;\n\t}\n\n\tif (STANDARD_STREAMS_ALIASES.includes(fdName)) {\n\t\treturn STANDARD_STREAMS_ALIASES.indexOf(fdName);\n\t}\n\n\tconst regexpResult = FD_REGEXP.exec(fdName);\n\tif (regexpResult !== null) {\n\t\treturn Number(regexpResult[1]);\n\t}\n};\n\nconst FD_REGEXP = /^fd(\\d+)$/;\n\nconst addDefaultValue = (optionArray, optionName) => optionArray.map(optionValue => optionValue === undefined\n\t? DEFAULT_OPTIONS[optionName]\n\t: optionValue);\n\n// Default value for the `verbose` option\nconst verboseDefault = debuglog('execa').enabled ? 'full' : 'none';\n\nconst DEFAULT_OPTIONS = {\n\tlines: false,\n\tbuffer: true,\n\tmaxBuffer: 1000 * 1000 * 100,\n\tverbose: verboseDefault,\n\tstripFinalNewline: true,\n};\n\n// List of options which can have different values for `stdout`/`stderr`\nexport const FD_SPECIFIC_OPTIONS = ['lines', 'buffer', 'maxBuffer', 'verbose', 'stripFinalNewline'];\n\n// Retrieve fd-specific option\nexport const getFdSpecificValue = (optionArray, fdNumber) => fdNumber === 'ipc'\n\t? optionArray.at(-1)\n\t: optionArray[fdNumber];\n",
12
- "import {getFdSpecificValue} from '../arguments/specific.js';\n\n// The `verbose` option can have different values for `stdout`/`stderr`\nexport const isVerbose = ({verbose}, fdNumber) => getFdVerbose(verbose, fdNumber) !== 'none';\n\n// Whether IPC and output and logged\nexport const isFullVerbose = ({verbose}, fdNumber) => !['none', 'short'].includes(getFdVerbose(verbose, fdNumber));\n\n// The `verbose` option can be a function to customize logging\nexport const getVerboseFunction = ({verbose}, fdNumber) => {\n\tconst fdVerbose = getFdVerbose(verbose, fdNumber);\n\treturn isVerboseFunction(fdVerbose) ? fdVerbose : undefined;\n};\n\n// When using `verbose: {stdout, stderr, fd3, ipc}`:\n// - `verbose.stdout|stderr|fd3` is used for 'output'\n// - `verbose.ipc` is only used for 'ipc'\n// - highest `verbose.*` value is used for 'command', 'error' and 'duration'\nconst getFdVerbose = (verbose, fdNumber) => fdNumber === undefined\n\t? getFdGenericVerbose(verbose)\n\t: getFdSpecificValue(verbose, fdNumber);\n\n// When using `verbose: {stdout, stderr, fd3, ipc}` and logging is not specific to a file descriptor.\n// We then use the highest `verbose.*` value, using the following order:\n// - function > 'full' > 'short' > 'none'\n// - if several functions are defined: stdout > stderr > fd3 > ipc\nconst getFdGenericVerbose = verbose => verbose.find(fdVerbose => isVerboseFunction(fdVerbose))\n\t?? VERBOSE_VALUES.findLast(fdVerbose => verbose.includes(fdVerbose));\n\n// Whether the `verbose` option is customized using a function\nexport const isVerboseFunction = fdVerbose => typeof fdVerbose === 'function';\n\nexport const VERBOSE_VALUES = ['none', 'short', 'full'];\n",
13
- "import {platform} from 'node:process';\nimport {stripVTControlCharacters} from 'node:util';\n\n// Compute `result.command` and `result.escapedCommand`\nexport const joinCommand = (filePath, rawArguments) => {\n\tconst fileAndArguments = [filePath, ...rawArguments];\n\tconst command = fileAndArguments.join(' ');\n\tconst escapedCommand = fileAndArguments\n\t\t.map(fileAndArgument => quoteString(escapeControlCharacters(fileAndArgument)))\n\t\t.join(' ');\n\treturn {command, escapedCommand};\n};\n\n// Remove ANSI sequences and escape control characters and newlines\nexport const escapeLines = lines => stripVTControlCharacters(lines)\n\t.split('\\n')\n\t.map(line => escapeControlCharacters(line))\n\t.join('\\n');\n\nconst escapeControlCharacters = line => line.replaceAll(SPECIAL_CHAR_REGEXP, character => escapeControlCharacter(character));\n\nconst escapeControlCharacter = character => {\n\tconst commonEscape = COMMON_ESCAPES[character];\n\tif (commonEscape !== undefined) {\n\t\treturn commonEscape;\n\t}\n\n\tconst codepoint = character.codePointAt(0);\n\tconst codepointHex = codepoint.toString(16);\n\treturn codepoint <= ASTRAL_START\n\t\t? `\\\\u${codepointHex.padStart(4, '0')}`\n\t\t: `\\\\U${codepointHex}`;\n};\n\n// Characters that would create issues when printed are escaped using the \\u or \\U notation.\n// Those include control characters and newlines.\n// The \\u and \\U notation is Bash specific, but there is no way to do this in a shell-agnostic way.\n// Some shells do not even have a way to print those characters in an escaped fashion.\n// Therefore, we prioritize printing those safely, instead of allowing those to be copy-pasted.\n// List of Unicode character categories: https://www.fileformat.info/info/unicode/category/index.htm\nconst getSpecialCharRegExp = () => {\n\ttry {\n\t\t// This throws when using Node.js without ICU support.\n\t\t// When using a RegExp literal, this would throw at parsing-time, instead of runtime.\n\t\t// eslint-disable-next-line prefer-regex-literals\n\t\treturn new RegExp('\\\\p{Separator}|\\\\p{Other}', 'gu');\n\t} catch {\n\t\t// Similar to the above RegExp, but works even when Node.js has been built without ICU support.\n\t\t// Unlike the above RegExp, it only covers whitespaces and C0/C1 control characters.\n\t\t// It does not cover some edge cases, such as Unicode reserved characters.\n\t\t// See https://github.com/sindresorhus/execa/issues/1143\n\t\t// eslint-disable-next-line no-control-regex\n\t\treturn /[\\s\\u0000-\\u001F\\u007F-\\u009F\\u00AD]/g;\n\t}\n};\n\nconst SPECIAL_CHAR_REGEXP = getSpecialCharRegExp();\n\n// Accepted by $'...' in Bash.\n// Exclude \\a \\e \\v which are accepted in Bash but not in JavaScript (except \\v) and JSON.\nconst COMMON_ESCAPES = {\n\t' ': ' ',\n\t'\\b': '\\\\b',\n\t'\\f': '\\\\f',\n\t'\\n': '\\\\n',\n\t'\\r': '\\\\r',\n\t'\\t': '\\\\t',\n};\n\n// Up until that codepoint, \\u notation can be used instead of \\U\nconst ASTRAL_START = 65_535;\n\n// Some characters are shell-specific, i.e. need to be escaped when the command is copy-pasted then run.\n// Escaping is shell-specific. We cannot know which shell is used: `process.platform` detection is not enough.\n// For example, Windows users could be using `cmd.exe`, Powershell or Bash for Windows which all use different escaping.\n// We use '...' on Unix, which is POSIX shell compliant and escape all characters but ' so this is fairly safe.\n// On Windows, we assume cmd.exe is used and escape with \"...\", which also works with Powershell.\nconst quoteString = escapedArgument => {\n\tif (NO_ESCAPE_REGEXP.test(escapedArgument)) {\n\t\treturn escapedArgument;\n\t}\n\n\treturn platform === 'win32'\n\t\t? `\"${escapedArgument.replaceAll('\"', '\"\"')}\"`\n\t\t: `'${escapedArgument.replaceAll('\\'', '\\'\\\\\\'\\'')}'`;\n};\n\nconst NO_ESCAPE_REGEXP = /^[\\w./-]+$/;\n",
14
- "import process from 'node:process';\n\nexport default function isUnicodeSupported() {\n\tconst {env} = process;\n\tconst {TERM, TERM_PROGRAM} = env;\n\n\tif (process.platform !== 'win32') {\n\t\treturn TERM !== 'linux'; // Linux console (kernel)\n\t}\n\n\treturn Boolean(env.WT_SESSION) // Windows Terminal\n\t\t|| Boolean(env.TERMINUS_SUBLIME) // Terminus (<0.2.27)\n\t\t|| env.ConEmuTask === '{cmd::Cmder}' // ConEmu and cmder\n\t\t|| TERM_PROGRAM === 'Terminus-Sublime'\n\t\t|| TERM_PROGRAM === 'vscode'\n\t\t|| TERM === 'xterm-256color'\n\t\t|| TERM === 'alacritty'\n\t\t|| TERM === 'rxvt-unicode'\n\t\t|| TERM === 'rxvt-unicode-256color'\n\t\t|| env.TERMINAL_EMULATOR === 'JetBrains-JediTerm';\n}\n",
15
- "import isUnicodeSupported from 'is-unicode-supported';\n\nconst common = {\n\tcircleQuestionMark: '(?)',\n\tquestionMarkPrefix: '(?)',\n\tsquare: '█',\n\tsquareDarkShade: '▓',\n\tsquareMediumShade: '▒',\n\tsquareLightShade: '░',\n\tsquareTop: '▀',\n\tsquareBottom: '▄',\n\tsquareLeft: '▌',\n\tsquareRight: '▐',\n\tsquareCenter: '■',\n\tbullet: '●',\n\tdot: '․',\n\tellipsis: '…',\n\tpointerSmall: '›',\n\ttriangleUp: '▲',\n\ttriangleUpSmall: '▴',\n\ttriangleDown: '▼',\n\ttriangleDownSmall: '▾',\n\ttriangleLeftSmall: '◂',\n\ttriangleRightSmall: '▸',\n\thome: '⌂',\n\theart: '♥',\n\tmusicNote: '♪',\n\tmusicNoteBeamed: '♫',\n\tarrowUp: '↑',\n\tarrowDown: '↓',\n\tarrowLeft: '←',\n\tarrowRight: '→',\n\tarrowLeftRight: '↔',\n\tarrowUpDown: '↕',\n\talmostEqual: '≈',\n\tnotEqual: '≠',\n\tlessOrEqual: '≤',\n\tgreaterOrEqual: '≥',\n\tidentical: '≡',\n\tinfinity: '∞',\n\tsubscriptZero: '₀',\n\tsubscriptOne: '₁',\n\tsubscriptTwo: '₂',\n\tsubscriptThree: '₃',\n\tsubscriptFour: '₄',\n\tsubscriptFive: '₅',\n\tsubscriptSix: '₆',\n\tsubscriptSeven: '₇',\n\tsubscriptEight: '₈',\n\tsubscriptNine: '₉',\n\toneHalf: '½',\n\toneThird: '⅓',\n\toneQuarter: '¼',\n\toneFifth: '⅕',\n\toneSixth: '⅙',\n\toneEighth: '⅛',\n\ttwoThirds: '⅔',\n\ttwoFifths: '⅖',\n\tthreeQuarters: '¾',\n\tthreeFifths: '⅗',\n\tthreeEighths: '⅜',\n\tfourFifths: '⅘',\n\tfiveSixths: '⅚',\n\tfiveEighths: '⅝',\n\tsevenEighths: '⅞',\n\tline: '─',\n\tlineBold: '━',\n\tlineDouble: '═',\n\tlineDashed0: '┄',\n\tlineDashed1: '┅',\n\tlineDashed2: '┈',\n\tlineDashed3: '┉',\n\tlineDashed4: '╌',\n\tlineDashed5: '╍',\n\tlineDashed6: '╴',\n\tlineDashed7: '╶',\n\tlineDashed8: '╸',\n\tlineDashed9: '╺',\n\tlineDashed10: '╼',\n\tlineDashed11: '╾',\n\tlineDashed12: '−',\n\tlineDashed13: '–',\n\tlineDashed14: '‐',\n\tlineDashed15: '⁃',\n\tlineVertical: '│',\n\tlineVerticalBold: '┃',\n\tlineVerticalDouble: '║',\n\tlineVerticalDashed0: '┆',\n\tlineVerticalDashed1: '┇',\n\tlineVerticalDashed2: '┊',\n\tlineVerticalDashed3: '┋',\n\tlineVerticalDashed4: '╎',\n\tlineVerticalDashed5: '╏',\n\tlineVerticalDashed6: '╵',\n\tlineVerticalDashed7: '╷',\n\tlineVerticalDashed8: '╹',\n\tlineVerticalDashed9: '╻',\n\tlineVerticalDashed10: '╽',\n\tlineVerticalDashed11: '╿',\n\tlineDownLeft: '┐',\n\tlineDownLeftArc: '╮',\n\tlineDownBoldLeftBold: '┓',\n\tlineDownBoldLeft: '┒',\n\tlineDownLeftBold: '┑',\n\tlineDownDoubleLeftDouble: '╗',\n\tlineDownDoubleLeft: '╖',\n\tlineDownLeftDouble: '╕',\n\tlineDownRight: '┌',\n\tlineDownRightArc: '╭',\n\tlineDownBoldRightBold: '┏',\n\tlineDownBoldRight: '┎',\n\tlineDownRightBold: '┍',\n\tlineDownDoubleRightDouble: '╔',\n\tlineDownDoubleRight: '╓',\n\tlineDownRightDouble: '╒',\n\tlineUpLeft: '┘',\n\tlineUpLeftArc: '╯',\n\tlineUpBoldLeftBold: '┛',\n\tlineUpBoldLeft: '┚',\n\tlineUpLeftBold: '┙',\n\tlineUpDoubleLeftDouble: '╝',\n\tlineUpDoubleLeft: '╜',\n\tlineUpLeftDouble: '╛',\n\tlineUpRight: '└',\n\tlineUpRightArc: '╰',\n\tlineUpBoldRightBold: '┗',\n\tlineUpBoldRight: '┖',\n\tlineUpRightBold: '┕',\n\tlineUpDoubleRightDouble: '╚',\n\tlineUpDoubleRight: '╙',\n\tlineUpRightDouble: '╘',\n\tlineUpDownLeft: '┤',\n\tlineUpBoldDownBoldLeftBold: '┫',\n\tlineUpBoldDownBoldLeft: '┨',\n\tlineUpDownLeftBold: '┥',\n\tlineUpBoldDownLeftBold: '┩',\n\tlineUpDownBoldLeftBold: '┪',\n\tlineUpDownBoldLeft: '┧',\n\tlineUpBoldDownLeft: '┦',\n\tlineUpDoubleDownDoubleLeftDouble: '╣',\n\tlineUpDoubleDownDoubleLeft: '╢',\n\tlineUpDownLeftDouble: '╡',\n\tlineUpDownRight: '├',\n\tlineUpBoldDownBoldRightBold: '┣',\n\tlineUpBoldDownBoldRight: '┠',\n\tlineUpDownRightBold: '┝',\n\tlineUpBoldDownRightBold: '┡',\n\tlineUpDownBoldRightBold: '┢',\n\tlineUpDownBoldRight: '┟',\n\tlineUpBoldDownRight: '┞',\n\tlineUpDoubleDownDoubleRightDouble: '╠',\n\tlineUpDoubleDownDoubleRight: '╟',\n\tlineUpDownRightDouble: '╞',\n\tlineDownLeftRight: '┬',\n\tlineDownBoldLeftBoldRightBold: '┳',\n\tlineDownLeftBoldRightBold: '┯',\n\tlineDownBoldLeftRight: '┰',\n\tlineDownBoldLeftBoldRight: '┱',\n\tlineDownBoldLeftRightBold: '┲',\n\tlineDownLeftRightBold: '┮',\n\tlineDownLeftBoldRight: '┭',\n\tlineDownDoubleLeftDoubleRightDouble: '╦',\n\tlineDownDoubleLeftRight: '╥',\n\tlineDownLeftDoubleRightDouble: '╤',\n\tlineUpLeftRight: '┴',\n\tlineUpBoldLeftBoldRightBold: '┻',\n\tlineUpLeftBoldRightBold: '┷',\n\tlineUpBoldLeftRight: '┸',\n\tlineUpBoldLeftBoldRight: '┹',\n\tlineUpBoldLeftRightBold: '┺',\n\tlineUpLeftRightBold: '┶',\n\tlineUpLeftBoldRight: '┵',\n\tlineUpDoubleLeftDoubleRightDouble: '╩',\n\tlineUpDoubleLeftRight: '╨',\n\tlineUpLeftDoubleRightDouble: '╧',\n\tlineUpDownLeftRight: '┼',\n\tlineUpBoldDownBoldLeftBoldRightBold: '╋',\n\tlineUpDownBoldLeftBoldRightBold: '╈',\n\tlineUpBoldDownLeftBoldRightBold: '╇',\n\tlineUpBoldDownBoldLeftRightBold: '╊',\n\tlineUpBoldDownBoldLeftBoldRight: '╉',\n\tlineUpBoldDownLeftRight: '╀',\n\tlineUpDownBoldLeftRight: '╁',\n\tlineUpDownLeftBoldRight: '┽',\n\tlineUpDownLeftRightBold: '┾',\n\tlineUpBoldDownBoldLeftRight: '╂',\n\tlineUpDownLeftBoldRightBold: '┿',\n\tlineUpBoldDownLeftBoldRight: '╃',\n\tlineUpBoldDownLeftRightBold: '╄',\n\tlineUpDownBoldLeftBoldRight: '╅',\n\tlineUpDownBoldLeftRightBold: '╆',\n\tlineUpDoubleDownDoubleLeftDoubleRightDouble: '╬',\n\tlineUpDoubleDownDoubleLeftRight: '╫',\n\tlineUpDownLeftDoubleRightDouble: '╪',\n\tlineCross: '╳',\n\tlineBackslash: '╲',\n\tlineSlash: '╱',\n};\n\nconst specialMainSymbols = {\n\ttick: '✔',\n\tinfo: 'ℹ',\n\twarning: '⚠',\n\tcross: '✘',\n\tsquareSmall: '◻',\n\tsquareSmallFilled: '◼',\n\tcircle: '◯',\n\tcircleFilled: '◉',\n\tcircleDotted: '◌',\n\tcircleDouble: '◎',\n\tcircleCircle: 'ⓞ',\n\tcircleCross: 'ⓧ',\n\tcirclePipe: 'Ⓘ',\n\tradioOn: '◉',\n\tradioOff: '◯',\n\tcheckboxOn: '☒',\n\tcheckboxOff: '☐',\n\tcheckboxCircleOn: 'ⓧ',\n\tcheckboxCircleOff: 'Ⓘ',\n\tpointer: '❯',\n\ttriangleUpOutline: '△',\n\ttriangleLeft: '◀',\n\ttriangleRight: '▶',\n\tlozenge: '◆',\n\tlozengeOutline: '◇',\n\thamburger: '☰',\n\tsmiley: '㋡',\n\tmustache: '෴',\n\tstar: '★',\n\tplay: '▶',\n\tnodejs: '⬢',\n\toneSeventh: '⅐',\n\toneNinth: '⅑',\n\toneTenth: '⅒',\n};\n\nconst specialFallbackSymbols = {\n\ttick: '√',\n\tinfo: 'i',\n\twarning: '‼',\n\tcross: '×',\n\tsquareSmall: '□',\n\tsquareSmallFilled: '■',\n\tcircle: '( )',\n\tcircleFilled: '(*)',\n\tcircleDotted: '( )',\n\tcircleDouble: '( )',\n\tcircleCircle: '(○)',\n\tcircleCross: '(×)',\n\tcirclePipe: '(│)',\n\tradioOn: '(*)',\n\tradioOff: '( )',\n\tcheckboxOn: '[×]',\n\tcheckboxOff: '[ ]',\n\tcheckboxCircleOn: '(×)',\n\tcheckboxCircleOff: '( )',\n\tpointer: '>',\n\ttriangleUpOutline: '∆',\n\ttriangleLeft: '◄',\n\ttriangleRight: '►',\n\tlozenge: '♦',\n\tlozengeOutline: '◊',\n\thamburger: '≡',\n\tsmiley: '☺',\n\tmustache: '┌─┐',\n\tstar: '✶',\n\tplay: '►',\n\tnodejs: '♦',\n\toneSeventh: '1/7',\n\toneNinth: '1/9',\n\toneTenth: '1/10',\n};\n\nexport const mainSymbols = {...common, ...specialMainSymbols};\nexport const fallbackSymbols = {...common, ...specialFallbackSymbols};\n\nconst shouldUseMain = isUnicodeSupported();\nconst figures = shouldUseMain ? mainSymbols : fallbackSymbols;\nexport default figures;\n\nconst replacements = Object.entries(specialMainSymbols);\n\n// On terminals which do not support Unicode symbols, substitute them to other symbols\nexport const replaceSymbols = (string, {useFallback = !shouldUseMain} = {}) => {\n\tif (useFallback) {\n\t\tfor (const [key, mainSymbol] of replacements) {\n\t\t\tstring = string.replaceAll(mainSymbol, fallbackSymbols[key]);\n\t\t}\n\t}\n\n\treturn string;\n};\n",
16
- "import tty from 'node:tty';\n\n// eslint-disable-next-line no-warning-comments\n// TODO: Use a better method when it's added to Node.js (https://github.com/nodejs/node/pull/40240)\n// Lots of optionals here to support Deno.\nconst hasColors = tty?.WriteStream?.prototype?.hasColors?.() ?? false;\n\nconst format = (open, close) => {\n\tif (!hasColors) {\n\t\treturn input => input;\n\t}\n\n\tconst openCode = `\\u001B[${open}m`;\n\tconst closeCode = `\\u001B[${close}m`;\n\n\treturn input => {\n\t\tconst string = input + ''; // eslint-disable-line no-implicit-coercion -- This is faster.\n\t\tlet index = string.indexOf(closeCode);\n\n\t\tif (index === -1) {\n\t\t\t// Note: Intentionally not using string interpolation for performance reasons.\n\t\t\treturn openCode + string + closeCode;\n\t\t}\n\n\t\t// Handle nested colors.\n\n\t\t// We could have done this, but it's too slow (as of Node.js 22).\n\t\t// return openCode + string.replaceAll(closeCode, openCode) + closeCode;\n\n\t\tlet result = openCode;\n\t\tlet lastIndex = 0;\n\n\t\twhile (index !== -1) {\n\t\t\tresult += string.slice(lastIndex, index) + openCode;\n\t\t\tlastIndex = index + closeCode.length;\n\t\t\tindex = string.indexOf(closeCode, lastIndex);\n\t\t}\n\n\t\tresult += string.slice(lastIndex) + closeCode;\n\n\t\treturn result;\n\t};\n};\n\nexport const reset = format(0, 0);\nexport const bold = format(1, 22);\nexport const dim = format(2, 22);\nexport const italic = format(3, 23);\nexport const underline = format(4, 24);\nexport const overline = format(53, 55);\nexport const inverse = format(7, 27);\nexport const hidden = format(8, 28);\nexport const strikethrough = format(9, 29);\n\nexport const black = format(30, 39);\nexport const red = format(31, 39);\nexport const green = format(32, 39);\nexport const yellow = format(33, 39);\nexport const blue = format(34, 39);\nexport const magenta = format(35, 39);\nexport const cyan = format(36, 39);\nexport const white = format(37, 39);\nexport const gray = format(90, 39);\n\nexport const bgBlack = format(40, 49);\nexport const bgRed = format(41, 49);\nexport const bgGreen = format(42, 49);\nexport const bgYellow = format(43, 49);\nexport const bgBlue = format(44, 49);\nexport const bgMagenta = format(45, 49);\nexport const bgCyan = format(46, 49);\nexport const bgWhite = format(47, 49);\nexport const bgGray = format(100, 49);\n\nexport const redBright = format(91, 39);\nexport const greenBright = format(92, 39);\nexport const yellowBright = format(93, 39);\nexport const blueBright = format(94, 39);\nexport const magentaBright = format(95, 39);\nexport const cyanBright = format(96, 39);\nexport const whiteBright = format(97, 39);\n\nexport const bgRedBright = format(101, 49);\nexport const bgGreenBright = format(102, 49);\nexport const bgYellowBright = format(103, 49);\nexport const bgBlueBright = format(104, 49);\nexport const bgMagentaBright = format(105, 49);\nexport const bgCyanBright = format(106, 49);\nexport const bgWhiteBright = format(107, 49);\n",
17
- "export * from './base.js';\nexport * as default from './base.js';\n",
18
- "import figures from 'figures';\nimport {\n\tgray,\n\tbold,\n\tredBright,\n\tyellowBright,\n} from 'yoctocolors';\n\n// Default when `verbose` is not a function\nexport const defaultVerboseFunction = ({\n\ttype,\n\tmessage,\n\ttimestamp,\n\tpiped,\n\tcommandId,\n\tresult: {failed = false} = {},\n\toptions: {reject = true},\n}) => {\n\tconst timestampString = serializeTimestamp(timestamp);\n\tconst icon = ICONS[type]({failed, reject, piped});\n\tconst color = COLORS[type]({reject});\n\treturn `${gray(`[${timestampString}]`)} ${gray(`[${commandId}]`)} ${color(icon)} ${color(message)}`;\n};\n\n// Prepending the timestamp allows debugging the slow paths of a subprocess\nconst serializeTimestamp = timestamp => `${padField(timestamp.getHours(), 2)}:${padField(timestamp.getMinutes(), 2)}:${padField(timestamp.getSeconds(), 2)}.${padField(timestamp.getMilliseconds(), 3)}`;\n\nconst padField = (field, padding) => String(field).padStart(padding, '0');\n\nconst getFinalIcon = ({failed, reject}) => {\n\tif (!failed) {\n\t\treturn figures.tick;\n\t}\n\n\treturn reject ? figures.cross : figures.warning;\n};\n\nconst ICONS = {\n\tcommand: ({piped}) => piped ? '|' : '$',\n\toutput: () => ' ',\n\tipc: () => '*',\n\terror: getFinalIcon,\n\tduration: getFinalIcon,\n};\n\nconst identity = string => string;\n\nconst COLORS = {\n\tcommand: () => bold,\n\toutput: () => identity,\n\tipc: () => identity,\n\terror: ({reject}) => reject ? redBright : yellowBright,\n\tduration: () => gray,\n};\n",
19
- "import {getVerboseFunction} from './values.js';\n\n// Apply the `verbose` function on each line\nexport const applyVerboseOnLines = (printedLines, verboseInfo, fdNumber) => {\n\tconst verboseFunction = getVerboseFunction(verboseInfo, fdNumber);\n\treturn printedLines\n\t\t.map(({verboseLine, verboseObject}) => applyVerboseFunction(verboseLine, verboseObject, verboseFunction))\n\t\t.filter(printedLine => printedLine !== undefined)\n\t\t.map(printedLine => appendNewline(printedLine))\n\t\t.join('');\n};\n\nconst applyVerboseFunction = (verboseLine, verboseObject, verboseFunction) => {\n\tif (verboseFunction === undefined) {\n\t\treturn verboseLine;\n\t}\n\n\tconst printedLine = verboseFunction(verboseLine, verboseObject);\n\tif (typeof printedLine === 'string') {\n\t\treturn printedLine;\n\t}\n};\n\nconst appendNewline = printedLine => printedLine.endsWith('\\n')\n\t? printedLine\n\t: `${printedLine}\\n`;\n",
20
- "import {inspect} from 'node:util';\nimport {escapeLines} from '../arguments/escape.js';\nimport {defaultVerboseFunction} from './default.js';\nimport {applyVerboseOnLines} from './custom.js';\n\n// This prints on stderr.\n// If the subprocess prints on stdout and is using `stdout: 'inherit'`,\n// there is a chance both writes will compete (introducing a race condition).\n// This means their respective order is not deterministic.\n// In particular, this means the verbose command lines might be after the start of the subprocess output.\n// Using synchronous I/O does not solve this problem.\n// However, this only seems to happen when the stdout/stderr target\n// (e.g. a terminal) is being written to by many subprocesses at once, which is unlikely in real scenarios.\nexport const verboseLog = ({type, verboseMessage, fdNumber, verboseInfo, result}) => {\n\tconst verboseObject = getVerboseObject({type, result, verboseInfo});\n\tconst printedLines = getPrintedLines(verboseMessage, verboseObject);\n\tconst finalLines = applyVerboseOnLines(printedLines, verboseInfo, fdNumber);\n\tif (finalLines !== '') {\n\t\tconsole.warn(finalLines.slice(0, -1));\n\t}\n};\n\nconst getVerboseObject = ({\n\ttype,\n\tresult,\n\tverboseInfo: {escapedCommand, commandId, rawOptions: {piped = false, ...options}},\n}) => ({\n\ttype,\n\tescapedCommand,\n\tcommandId: `${commandId}`,\n\ttimestamp: new Date(),\n\tpiped,\n\tresult,\n\toptions,\n});\n\nconst getPrintedLines = (verboseMessage, verboseObject) => verboseMessage\n\t.split('\\n')\n\t.map(message => getPrintedLine({...verboseObject, message}));\n\nconst getPrintedLine = verboseObject => {\n\tconst verboseLine = defaultVerboseFunction(verboseObject);\n\treturn {verboseLine, verboseObject};\n};\n\n// Serialize any type to a line string, for logging\nexport const serializeVerboseMessage = message => {\n\tconst messageString = typeof message === 'string' ? message : inspect(message);\n\tconst escapedMessage = escapeLines(messageString);\n\treturn escapedMessage.replaceAll('\\t', ' '.repeat(TAB_SIZE));\n};\n\n// Same as `util.inspect()`\nconst TAB_SIZE = 2;\n",
21
- "import {isVerbose} from './values.js';\nimport {verboseLog} from './log.js';\n\n// When `verbose` is `short|full|custom`, print each command\nexport const logCommand = (escapedCommand, verboseInfo) => {\n\tif (!isVerbose(verboseInfo)) {\n\t\treturn;\n\t}\n\n\tverboseLog({\n\t\ttype: 'command',\n\t\tverboseMessage: escapedCommand,\n\t\tverboseInfo,\n\t});\n};\n",
22
- "import {isVerbose, VERBOSE_VALUES, isVerboseFunction} from './values.js';\n\n// Information computed before spawning, used by the `verbose` option\nexport const getVerboseInfo = (verbose, escapedCommand, rawOptions) => {\n\tvalidateVerbose(verbose);\n\tconst commandId = getCommandId(verbose);\n\treturn {\n\t\tverbose,\n\t\tescapedCommand,\n\t\tcommandId,\n\t\trawOptions,\n\t};\n};\n\nconst getCommandId = verbose => isVerbose({verbose}) ? COMMAND_ID++ : undefined;\n\n// Prepending the `pid` is useful when multiple commands print their output at the same time.\n// However, we cannot use the real PID since this is not available with `child_process.spawnSync()`.\n// Also, we cannot use the real PID if we want to print it before `child_process.spawn()` is run.\n// As a pro, it is shorter than a normal PID and never re-uses the same id.\n// As a con, it cannot be used to send signals.\nlet COMMAND_ID = 0n;\n\nconst validateVerbose = verbose => {\n\tfor (const fdVerbose of verbose) {\n\t\tif (fdVerbose === false) {\n\t\t\tthrow new TypeError('The \"verbose: false\" option was renamed to \"verbose: \\'none\\'\".');\n\t\t}\n\n\t\tif (fdVerbose === true) {\n\t\t\tthrow new TypeError('The \"verbose: true\" option was renamed to \"verbose: \\'short\\'\".');\n\t\t}\n\n\t\tif (!VERBOSE_VALUES.includes(fdVerbose) && !isVerboseFunction(fdVerbose)) {\n\t\t\tconst allowedValues = VERBOSE_VALUES.map(allowedValue => `'${allowedValue}'`).join(', ');\n\t\t\tthrow new TypeError(`The \"verbose\" option must not be ${fdVerbose}. Allowed values are: ${allowedValues} or a function.`);\n\t\t}\n\t}\n};\n",
23
- "import {hrtime} from 'node:process';\n\n// Start counting time before spawning the subprocess\nexport const getStartTime = () => hrtime.bigint();\n\n// Compute duration after the subprocess ended.\n// Printed by the `verbose` option.\nexport const getDurationMs = startTime => Number(hrtime.bigint() - startTime) / 1e6;\n",
24
- "import {logCommand} from '../verbose/start.js';\nimport {getVerboseInfo} from '../verbose/info.js';\nimport {getStartTime} from '../return/duration.js';\nimport {joinCommand} from './escape.js';\nimport {normalizeFdSpecificOption} from './specific.js';\n\n// Compute `result.command`, `result.escapedCommand` and `verbose`-related information\nexport const handleCommand = (filePath, rawArguments, rawOptions) => {\n\tconst startTime = getStartTime();\n\tconst {command, escapedCommand} = joinCommand(filePath, rawArguments);\n\tconst verbose = normalizeFdSpecificOption(rawOptions, 'verbose');\n\tconst verboseInfo = getVerboseInfo(verbose, escapedCommand, {...rawOptions});\n\tlogCommand(escapedCommand, verboseInfo);\n\treturn {\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstartTime,\n\t\tverboseInfo,\n\t};\n};\n",
25
- "module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction checkPathExt (path, options) {\n var pathext = options.pathExt !== undefined ?\n options.pathExt : process.env.PATHEXT\n\n if (!pathext) {\n return true\n }\n\n pathext = pathext.split(';')\n if (pathext.indexOf('') !== -1) {\n return true\n }\n for (var i = 0; i < pathext.length; i++) {\n var p = pathext[i].toLowerCase()\n if (p && path.substr(-p.length).toLowerCase() === p) {\n return true\n }\n }\n return false\n}\n\nfunction checkStat (stat, path, options) {\n if (!stat.isSymbolicLink() && !stat.isFile()) {\n return false\n }\n return checkPathExt(path, options)\n}\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, path, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), path, options)\n}\n",
26
- "module.exports = isexe\nisexe.sync = sync\n\nvar fs = require('fs')\n\nfunction isexe (path, options, cb) {\n fs.stat(path, function (er, stat) {\n cb(er, er ? false : checkStat(stat, options))\n })\n}\n\nfunction sync (path, options) {\n return checkStat(fs.statSync(path), options)\n}\n\nfunction checkStat (stat, options) {\n return stat.isFile() && checkMode(stat, options)\n}\n\nfunction checkMode (stat, options) {\n var mod = stat.mode\n var uid = stat.uid\n var gid = stat.gid\n\n var myUid = options.uid !== undefined ?\n options.uid : process.getuid && process.getuid()\n var myGid = options.gid !== undefined ?\n options.gid : process.getgid && process.getgid()\n\n var u = parseInt('100', 8)\n var g = parseInt('010', 8)\n var o = parseInt('001', 8)\n var ug = u | g\n\n var ret = (mod & o) ||\n (mod & g) && gid === myGid ||\n (mod & u) && uid === myUid ||\n (mod & ug) && myUid === 0\n\n return ret\n}\n",
27
- "var fs = require('fs')\nvar core\nif (process.platform === 'win32' || global.TESTING_WINDOWS) {\n core = require('./windows.js')\n} else {\n core = require('./mode.js')\n}\n\nmodule.exports = isexe\nisexe.sync = sync\n\nfunction isexe (path, options, cb) {\n if (typeof options === 'function') {\n cb = options\n options = {}\n }\n\n if (!cb) {\n if (typeof Promise !== 'function') {\n throw new TypeError('callback not provided')\n }\n\n return new Promise(function (resolve, reject) {\n isexe(path, options || {}, function (er, is) {\n if (er) {\n reject(er)\n } else {\n resolve(is)\n }\n })\n })\n }\n\n core(path, options || {}, function (er, is) {\n // ignore EACCES because that just means we aren't allowed to run it\n if (er) {\n if (er.code === 'EACCES' || options && options.ignoreErrors) {\n er = null\n is = false\n }\n }\n cb(er, is)\n })\n}\n\nfunction sync (path, options) {\n // my kingdom for a filtered catch\n try {\n return core.sync(path, options || {})\n } catch (er) {\n if (options && options.ignoreErrors || er.code === 'EACCES') {\n return false\n } else {\n throw er\n }\n }\n}\n",
28
- "const isWindows = process.platform === 'win32' ||\n process.env.OSTYPE === 'cygwin' ||\n process.env.OSTYPE === 'msys'\n\nconst path = require('path')\nconst COLON = isWindows ? ';' : ':'\nconst isexe = require('isexe')\n\nconst getNotFoundError = (cmd) =>\n Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })\n\nconst getPathInfo = (cmd, opt) => {\n const colon = opt.colon || COLON\n\n // If it has a slash, then we don't bother searching the pathenv.\n // just check the file itself, and that's it.\n const pathEnv = cmd.match(/\\//) || isWindows && cmd.match(/\\\\/) ? ['']\n : (\n [\n // windows always checks the cwd first\n ...(isWindows ? [process.cwd()] : []),\n ...(opt.path || process.env.PATH ||\n /* istanbul ignore next: very unusual */ '').split(colon),\n ]\n )\n const pathExtExe = isWindows\n ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'\n : ''\n const pathExt = isWindows ? pathExtExe.split(colon) : ['']\n\n if (isWindows) {\n if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')\n pathExt.unshift('')\n }\n\n return {\n pathEnv,\n pathExt,\n pathExtExe,\n }\n}\n\nconst which = (cmd, opt, cb) => {\n if (typeof opt === 'function') {\n cb = opt\n opt = {}\n }\n if (!opt)\n opt = {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n const step = i => new Promise((resolve, reject) => {\n if (i === pathEnv.length)\n return opt.all && found.length ? resolve(found)\n : reject(getNotFoundError(cmd))\n\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n resolve(subStep(p, i, 0))\n })\n\n const subStep = (p, i, ii) => new Promise((resolve, reject) => {\n if (ii === pathExt.length)\n return resolve(step(i + 1))\n const ext = pathExt[ii]\n isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {\n if (!er && is) {\n if (opt.all)\n found.push(p + ext)\n else\n return resolve(p + ext)\n }\n return resolve(subStep(p, i, ii + 1))\n })\n })\n\n return cb ? step(0).then(res => cb(null, res), cb) : step(0)\n}\n\nconst whichSync = (cmd, opt) => {\n opt = opt || {}\n\n const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)\n const found = []\n\n for (let i = 0; i < pathEnv.length; i ++) {\n const ppRaw = pathEnv[i]\n const pathPart = /^\".*\"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw\n\n const pCmd = path.join(pathPart, cmd)\n const p = !pathPart && /^\\.[\\\\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd\n : pCmd\n\n for (let j = 0; j < pathExt.length; j ++) {\n const cur = p + pathExt[j]\n try {\n const is = isexe.sync(cur, { pathExt: pathExtExe })\n if (is) {\n if (opt.all)\n found.push(cur)\n else\n return cur\n }\n } catch (ex) {}\n }\n }\n\n if (opt.all && found.length)\n return found\n\n if (opt.nothrow)\n return null\n\n throw getNotFoundError(cmd)\n}\n\nmodule.exports = which\nwhich.sync = whichSync\n",
29
- "'use strict';\n\nconst pathKey = (options = {}) => {\n\tconst environment = options.env || process.env;\n\tconst platform = options.platform || process.platform;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(environment).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n};\n\nmodule.exports = pathKey;\n// TODO: Remove this for the next major release\nmodule.exports.default = pathKey;\n",
30
- "'use strict';\n\nconst path = require('path');\nconst which = require('which');\nconst getPathKey = require('path-key');\n\nfunction resolveCommandAttempt(parsed, withoutPathExt) {\n const env = parsed.options.env || process.env;\n const cwd = process.cwd();\n const hasCustomCwd = parsed.options.cwd != null;\n // Worker threads do not have process.chdir()\n const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined && !process.chdir.disabled;\n\n // If a custom `cwd` was specified, we need to change the process cwd\n // because `which` will do stat calls but does not support a custom cwd\n if (shouldSwitchCwd) {\n try {\n process.chdir(parsed.options.cwd);\n } catch (err) {\n /* Empty */\n }\n }\n\n let resolved;\n\n try {\n resolved = which.sync(parsed.command, {\n path: env[getPathKey({ env })],\n pathExt: withoutPathExt ? path.delimiter : undefined,\n });\n } catch (e) {\n /* Empty */\n } finally {\n if (shouldSwitchCwd) {\n process.chdir(cwd);\n }\n }\n\n // If we successfully resolved, ensure that an absolute path is returned\n // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it\n if (resolved) {\n resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved);\n }\n\n return resolved;\n}\n\nfunction resolveCommand(parsed) {\n return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true);\n}\n\nmodule.exports = resolveCommand;\n",
31
- "'use strict';\n\n// See http://www.robvanderwoude.com/escapechars.php\nconst metaCharsRegExp = /([()\\][%!^\"`<>&|;, *?])/g;\n\nfunction escapeCommand(arg) {\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n return arg;\n}\n\nfunction escapeArgument(arg, doubleEscapeMetaChars) {\n // Convert to string\n arg = `${arg}`;\n\n // Algorithm below is based on https://qntm.org/cmd\n // It's slightly altered to disable JS backtracking to avoid hanging on specially crafted input\n // Please see https://github.com/moxystudio/node-cross-spawn/pull/160 for more information\n\n // Sequence of backslashes followed by a double quote:\n // double up all the backslashes and escape the double quote\n arg = arg.replace(/(?=(\\\\+?)?)\\1\"/g, '$1$1\\\\\"');\n\n // Sequence of backslashes followed by the end of the string\n // (which will become a double quote later):\n // double up all the backslashes\n arg = arg.replace(/(?=(\\\\+?)?)\\1$/, '$1$1');\n\n // All other backslashes occur literally\n\n // Quote the whole thing:\n arg = `\"${arg}\"`;\n\n // Escape meta chars\n arg = arg.replace(metaCharsRegExp, '^$1');\n\n // Double escape meta chars if necessary\n if (doubleEscapeMetaChars) {\n arg = arg.replace(metaCharsRegExp, '^$1');\n }\n\n return arg;\n}\n\nmodule.exports.command = escapeCommand;\nmodule.exports.argument = escapeArgument;\n",
32
- "'use strict';\nmodule.exports = /^#!(.*)/;\n",
33
- "'use strict';\nconst shebangRegex = require('shebang-regex');\n\nmodule.exports = (string = '') => {\n\tconst match = string.match(shebangRegex);\n\n\tif (!match) {\n\t\treturn null;\n\t}\n\n\tconst [path, argument] = match[0].replace(/#! ?/, '').split(' ');\n\tconst binary = path.split('/').pop();\n\n\tif (binary === 'env') {\n\t\treturn argument;\n\t}\n\n\treturn argument ? `${binary} ${argument}` : binary;\n};\n",
34
- "'use strict';\n\nconst fs = require('fs');\nconst shebangCommand = require('shebang-command');\n\nfunction readShebang(command) {\n // Read the first 150 bytes from the file\n const size = 150;\n const buffer = Buffer.alloc(size);\n\n let fd;\n\n try {\n fd = fs.openSync(command, 'r');\n fs.readSync(fd, buffer, 0, size, 0);\n fs.closeSync(fd);\n } catch (e) { /* Empty */ }\n\n // Attempt to extract shebang (null is returned if not a shebang)\n return shebangCommand(buffer.toString());\n}\n\nmodule.exports = readShebang;\n",
35
- "'use strict';\n\nconst path = require('path');\nconst resolveCommand = require('./util/resolveCommand');\nconst escape = require('./util/escape');\nconst readShebang = require('./util/readShebang');\n\nconst isWin = process.platform === 'win32';\nconst isExecutableRegExp = /\\.(?:com|exe)$/i;\nconst isCmdShimRegExp = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n\nfunction detectShebang(parsed) {\n parsed.file = resolveCommand(parsed);\n\n const shebang = parsed.file && readShebang(parsed.file);\n\n if (shebang) {\n parsed.args.unshift(parsed.file);\n parsed.command = shebang;\n\n return resolveCommand(parsed);\n }\n\n return parsed.file;\n}\n\nfunction parseNonShell(parsed) {\n if (!isWin) {\n return parsed;\n }\n\n // Detect & add support for shebangs\n const commandFile = detectShebang(parsed);\n\n // We don't need a shell if the command filename is an executable\n const needsShell = !isExecutableRegExp.test(commandFile);\n\n // If a shell is required, use cmd.exe and take care of escaping everything correctly\n // Note that `forceShell` is an hidden option used only in tests\n if (parsed.options.forceShell || needsShell) {\n // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/`\n // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument\n // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called,\n // we need to double escape them\n const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);\n\n // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\\bar)\n // This is necessary otherwise it will always fail with ENOENT in those cases\n parsed.command = path.normalize(parsed.command);\n\n // Escape command & arguments\n parsed.command = escape.command(parsed.command);\n parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars));\n\n const shellCommand = [parsed.command].concat(parsed.args).join(' ');\n\n parsed.args = ['/d', '/s', '/c', `\"${shellCommand}\"`];\n parsed.command = process.env.comspec || 'cmd.exe';\n parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped\n }\n\n return parsed;\n}\n\nfunction parse(command, args, options) {\n // Normalize arguments, similar to nodejs\n if (args && !Array.isArray(args)) {\n options = args;\n args = null;\n }\n\n args = args ? args.slice(0) : []; // Clone array to avoid changing the original\n options = Object.assign({}, options); // Clone object to avoid changing the original\n\n // Build our parsed object\n const parsed = {\n command,\n args,\n options,\n file: undefined,\n original: {\n command,\n args,\n },\n };\n\n // Delegate further parsing to shell or non-shell\n return options.shell ? parsed : parseNonShell(parsed);\n}\n\nmodule.exports = parse;\n",
36
- "'use strict';\n\nconst isWin = process.platform === 'win32';\n\nfunction notFoundError(original, syscall) {\n return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), {\n code: 'ENOENT',\n errno: 'ENOENT',\n syscall: `${syscall} ${original.command}`,\n path: original.command,\n spawnargs: original.args,\n });\n}\n\nfunction hookChildProcess(cp, parsed) {\n if (!isWin) {\n return;\n }\n\n const originalEmit = cp.emit;\n\n cp.emit = function (name, arg1) {\n // If emitting \"exit\" event and exit code is 1, we need to check if\n // the command exists and emit an \"error\" instead\n // See https://github.com/IndigoUnited/node-cross-spawn/issues/16\n if (name === 'exit') {\n const err = verifyENOENT(arg1, parsed);\n\n if (err) {\n return originalEmit.call(cp, 'error', err);\n }\n }\n\n return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params\n };\n}\n\nfunction verifyENOENT(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawn');\n }\n\n return null;\n}\n\nfunction verifyENOENTSync(status, parsed) {\n if (isWin && status === 1 && !parsed.file) {\n return notFoundError(parsed.original, 'spawnSync');\n }\n\n return null;\n}\n\nmodule.exports = {\n hookChildProcess,\n verifyENOENT,\n verifyENOENTSync,\n notFoundError,\n};\n",
37
- "'use strict';\n\nconst cp = require('child_process');\nconst parse = require('./lib/parse');\nconst enoent = require('./lib/enoent');\n\nfunction spawn(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const spawned = cp.spawn(parsed.command, parsed.args, parsed.options);\n\n // Hook into child process \"exit\" event to emit an error if the command\n // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n enoent.hookChildProcess(spawned, parsed);\n\n return spawned;\n}\n\nfunction spawnSync(command, args, options) {\n // Parse the arguments\n const parsed = parse(command, args, options);\n\n // Spawn the child process\n const result = cp.spawnSync(parsed.command, parsed.args, parsed.options);\n\n // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16\n result.error = result.error || enoent.verifyENOENTSync(result.status, parsed);\n\n return result;\n}\n\nmodule.exports = spawn;\nmodule.exports.spawn = spawn;\nmodule.exports.sync = spawnSync;\n\nmodule.exports._parse = parse;\nmodule.exports._enoent = enoent;\n",
38
- "export default function pathKey(options = {}) {\n\tconst {\n\t\tenv = process.env,\n\t\tplatform = process.platform\n\t} = options;\n\n\tif (platform !== 'win32') {\n\t\treturn 'PATH';\n\t}\n\n\treturn Object.keys(env).reverse().find(key => key.toUpperCase() === 'PATH') || 'Path';\n}\n",
39
- "import {promisify} from 'node:util';\nimport {execFile as execFileCallback, execFileSync as execFileSyncOriginal} from 'node:child_process';\nimport path from 'node:path';\nimport {fileURLToPath} from 'node:url';\n\nconst execFileOriginal = promisify(execFileCallback);\n\nexport function toPath(urlOrPath) {\n\treturn urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;\n}\n\nexport function rootDirectory(pathInput) {\n\treturn path.parse(toPath(pathInput)).root;\n}\n\nexport function traversePathUp(startPath) {\n\treturn {\n\t\t* [Symbol.iterator]() {\n\t\t\tlet currentPath = path.resolve(toPath(startPath));\n\t\t\tlet previousPath;\n\n\t\t\twhile (previousPath !== currentPath) {\n\t\t\t\tyield currentPath;\n\t\t\t\tpreviousPath = currentPath;\n\t\t\t\tcurrentPath = path.resolve(currentPath, '..');\n\t\t\t}\n\t\t},\n\t};\n}\n\nconst TEN_MEGABYTES_IN_BYTES = 10 * 1024 * 1024;\n\nexport async function execFile(file, arguments_, options = {}) {\n\treturn execFileOriginal(file, arguments_, {\n\t\tmaxBuffer: TEN_MEGABYTES_IN_BYTES,\n\t\t...options,\n\t});\n}\n\nexport function execFileSync(file, arguments_ = [], options = {}) {\n\treturn execFileSyncOriginal(file, arguments_, {\n\t\tmaxBuffer: TEN_MEGABYTES_IN_BYTES,\n\t\tencoding: 'utf8',\n\t\tstdio: 'pipe',\n\t\t...options,\n\t});\n}\n\nexport * from './default.js';\n",
40
- "import process from 'node:process';\nimport path from 'node:path';\nimport pathKey from 'path-key';\nimport {toPath, traversePathUp} from 'unicorn-magic';\n\nexport const npmRunPath = ({\n\tcwd = process.cwd(),\n\tpath: pathOption = process.env[pathKey()],\n\tpreferLocal = true,\n\texecPath = process.execPath,\n\taddExecPath = true,\n} = {}) => {\n\tconst cwdPath = path.resolve(toPath(cwd));\n\tconst result = [];\n\tconst pathParts = pathOption.split(path.delimiter);\n\n\tif (preferLocal) {\n\t\tapplyPreferLocal(result, pathParts, cwdPath);\n\t}\n\n\tif (addExecPath) {\n\t\tapplyExecPath(result, pathParts, execPath, cwdPath);\n\t}\n\n\treturn pathOption === '' || pathOption === path.delimiter\n\t\t? `${result.join(path.delimiter)}${pathOption}`\n\t\t: [...result, pathOption].join(path.delimiter);\n};\n\nconst applyPreferLocal = (result, pathParts, cwdPath) => {\n\tfor (const directory of traversePathUp(cwdPath)) {\n\t\tconst pathPart = path.join(directory, 'node_modules/.bin');\n\t\tif (!pathParts.includes(pathPart)) {\n\t\t\tresult.push(pathPart);\n\t\t}\n\t}\n};\n\n// Ensure the running `node` binary is used\nconst applyExecPath = (result, pathParts, execPath, cwdPath) => {\n\tconst pathPart = path.resolve(cwdPath, toPath(execPath), '..');\n\tif (!pathParts.includes(pathPart)) {\n\t\tresult.push(pathPart);\n\t}\n};\n\nexport const npmRunPathEnv = ({env = process.env, ...options} = {}) => {\n\tenv = {...env};\n\n\tconst pathName = pathKey({env});\n\toptions.path = env[pathName];\n\tenv[pathName] = npmRunPath(options);\n\n\treturn env;\n};\n",
41
- "// When the subprocess fails, this is the error instance being returned.\n// If another error instance is being thrown, it is kept as `error.cause`.\nexport const getFinalError = (originalError, message, isSync) => {\n\tconst ErrorClass = isSync ? ExecaSyncError : ExecaError;\n\tconst options = originalError instanceof DiscardedError ? {} : {cause: originalError};\n\treturn new ErrorClass(message, options);\n};\n\n// Indicates that the error is used only to interrupt control flow, but not in the return value\nexport class DiscardedError extends Error {}\n\n// Proper way to set `error.name`: it should be inherited and non-enumerable\nconst setErrorName = (ErrorClass, value) => {\n\tObject.defineProperty(ErrorClass.prototype, 'name', {\n\t\tvalue,\n\t\twritable: true,\n\t\tenumerable: false,\n\t\tconfigurable: true,\n\t});\n\tObject.defineProperty(ErrorClass.prototype, execaErrorSymbol, {\n\t\tvalue: true,\n\t\twritable: false,\n\t\tenumerable: false,\n\t\tconfigurable: false,\n\t});\n};\n\n// Unlike `instanceof`, this works across realms\nexport const isExecaError = error => isErrorInstance(error) && execaErrorSymbol in error;\n\nconst execaErrorSymbol = Symbol('isExecaError');\n\nexport const isErrorInstance = value => Object.prototype.toString.call(value) === '[object Error]';\n\n// We use two different Error classes for async/sync methods since they have slightly different shape and types\nexport class ExecaError extends Error {}\nsetErrorName(ExecaError, ExecaError.name);\n\nexport class ExecaSyncError extends Error {}\nsetErrorName(ExecaSyncError, ExecaSyncError.name);\n",
42
- "\nexport const getRealtimeSignals=()=>{\nconst length=SIGRTMAX-SIGRTMIN+1;\nreturn Array.from({length},getRealtimeSignal)\n};\n\nconst getRealtimeSignal=(value,index)=>({\nname:`SIGRT${index+1}`,\nnumber:SIGRTMIN+index,\naction:\"terminate\",\ndescription:\"Application-specific signal (realtime)\",\nstandard:\"posix\"\n});\n\nconst SIGRTMIN=34;\nexport const SIGRTMAX=64;",
43
- "\n\nexport const SIGNALS=[\n{\nname:\"SIGHUP\",\nnumber:1,\naction:\"terminate\",\ndescription:\"Terminal closed\",\nstandard:\"posix\"\n},\n{\nname:\"SIGINT\",\nnumber:2,\naction:\"terminate\",\ndescription:\"User interruption with CTRL-C\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGQUIT\",\nnumber:3,\naction:\"core\",\ndescription:\"User interruption with CTRL-\\\\\",\nstandard:\"posix\"\n},\n{\nname:\"SIGILL\",\nnumber:4,\naction:\"core\",\ndescription:\"Invalid machine instruction\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGTRAP\",\nnumber:5,\naction:\"core\",\ndescription:\"Debugger breakpoint\",\nstandard:\"posix\"\n},\n{\nname:\"SIGABRT\",\nnumber:6,\naction:\"core\",\ndescription:\"Aborted\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGIOT\",\nnumber:6,\naction:\"core\",\ndescription:\"Aborted\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGBUS\",\nnumber:7,\naction:\"core\",\ndescription:\n\"Bus error due to misaligned, non-existing address or paging error\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGEMT\",\nnumber:7,\naction:\"terminate\",\ndescription:\"Command should be emulated but is not implemented\",\nstandard:\"other\"\n},\n{\nname:\"SIGFPE\",\nnumber:8,\naction:\"core\",\ndescription:\"Floating point arithmetic error\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGKILL\",\nnumber:9,\naction:\"terminate\",\ndescription:\"Forced termination\",\nstandard:\"posix\",\nforced:true\n},\n{\nname:\"SIGUSR1\",\nnumber:10,\naction:\"terminate\",\ndescription:\"Application-specific signal\",\nstandard:\"posix\"\n},\n{\nname:\"SIGSEGV\",\nnumber:11,\naction:\"core\",\ndescription:\"Segmentation fault\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGUSR2\",\nnumber:12,\naction:\"terminate\",\ndescription:\"Application-specific signal\",\nstandard:\"posix\"\n},\n{\nname:\"SIGPIPE\",\nnumber:13,\naction:\"terminate\",\ndescription:\"Broken pipe or socket\",\nstandard:\"posix\"\n},\n{\nname:\"SIGALRM\",\nnumber:14,\naction:\"terminate\",\ndescription:\"Timeout or timer\",\nstandard:\"posix\"\n},\n{\nname:\"SIGTERM\",\nnumber:15,\naction:\"terminate\",\ndescription:\"Termination\",\nstandard:\"ansi\"\n},\n{\nname:\"SIGSTKFLT\",\nnumber:16,\naction:\"terminate\",\ndescription:\"Stack is empty or overflowed\",\nstandard:\"other\"\n},\n{\nname:\"SIGCHLD\",\nnumber:17,\naction:\"ignore\",\ndescription:\"Child process terminated, paused or unpaused\",\nstandard:\"posix\"\n},\n{\nname:\"SIGCLD\",\nnumber:17,\naction:\"ignore\",\ndescription:\"Child process terminated, paused or unpaused\",\nstandard:\"other\"\n},\n{\nname:\"SIGCONT\",\nnumber:18,\naction:\"unpause\",\ndescription:\"Unpaused\",\nstandard:\"posix\",\nforced:true\n},\n{\nname:\"SIGSTOP\",\nnumber:19,\naction:\"pause\",\ndescription:\"Paused\",\nstandard:\"posix\",\nforced:true\n},\n{\nname:\"SIGTSTP\",\nnumber:20,\naction:\"pause\",\ndescription:\"Paused using CTRL-Z or \\\"suspend\\\"\",\nstandard:\"posix\"\n},\n{\nname:\"SIGTTIN\",\nnumber:21,\naction:\"pause\",\ndescription:\"Background process cannot read terminal input\",\nstandard:\"posix\"\n},\n{\nname:\"SIGBREAK\",\nnumber:21,\naction:\"terminate\",\ndescription:\"User interruption with CTRL-BREAK\",\nstandard:\"other\"\n},\n{\nname:\"SIGTTOU\",\nnumber:22,\naction:\"pause\",\ndescription:\"Background process cannot write to terminal output\",\nstandard:\"posix\"\n},\n{\nname:\"SIGURG\",\nnumber:23,\naction:\"ignore\",\ndescription:\"Socket received out-of-band data\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGXCPU\",\nnumber:24,\naction:\"core\",\ndescription:\"Process timed out\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGXFSZ\",\nnumber:25,\naction:\"core\",\ndescription:\"File too big\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGVTALRM\",\nnumber:26,\naction:\"terminate\",\ndescription:\"Timeout or timer\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGPROF\",\nnumber:27,\naction:\"terminate\",\ndescription:\"Timeout or timer\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGWINCH\",\nnumber:28,\naction:\"ignore\",\ndescription:\"Terminal window size changed\",\nstandard:\"bsd\"\n},\n{\nname:\"SIGIO\",\nnumber:29,\naction:\"terminate\",\ndescription:\"I/O is available\",\nstandard:\"other\"\n},\n{\nname:\"SIGPOLL\",\nnumber:29,\naction:\"terminate\",\ndescription:\"Watched event\",\nstandard:\"other\"\n},\n{\nname:\"SIGINFO\",\nnumber:29,\naction:\"ignore\",\ndescription:\"Request for process information\",\nstandard:\"other\"\n},\n{\nname:\"SIGPWR\",\nnumber:30,\naction:\"terminate\",\ndescription:\"Device running out of power\",\nstandard:\"systemv\"\n},\n{\nname:\"SIGSYS\",\nnumber:31,\naction:\"core\",\ndescription:\"Invalid system call\",\nstandard:\"other\"\n},\n{\nname:\"SIGUNUSED\",\nnumber:31,\naction:\"terminate\",\ndescription:\"Invalid system call\",\nstandard:\"other\"\n}];",
44
- "import{constants}from\"node:os\";\n\nimport{SIGNALS}from\"./core.js\";\nimport{getRealtimeSignals}from\"./realtime.js\";\n\n\n\nexport const getSignals=()=>{\nconst realtimeSignals=getRealtimeSignals();\nconst signals=[...SIGNALS,...realtimeSignals].map(normalizeSignal);\nreturn signals\n};\n\n\n\n\n\n\n\nconst normalizeSignal=({\nname,\nnumber:defaultNumber,\ndescription,\naction,\nforced=false,\nstandard\n})=>{\nconst{\nsignals:{[name]:constantSignal}\n}=constants;\nconst supported=constantSignal!==undefined;\nconst number=supported?constantSignal:defaultNumber;\nreturn{name,number,description,supported,action,forced,standard}\n};",
45
- "import{constants}from\"node:os\";\n\nimport{SIGRTMAX}from\"./realtime.js\";\nimport{getSignals}from\"./signals.js\";\n\n\n\nconst getSignalsByName=()=>{\nconst signals=getSignals();\nreturn Object.fromEntries(signals.map(getSignalByName))\n};\n\nconst getSignalByName=({\nname,\nnumber,\ndescription,\nsupported,\naction,\nforced,\nstandard\n})=>[name,{name,number,description,supported,action,forced,standard}];\n\nexport const signalsByName=getSignalsByName();\n\n\n\n\nconst getSignalsByNumber=()=>{\nconst signals=getSignals();\nconst length=SIGRTMAX+1;\nconst signalsA=Array.from({length},(value,number)=>\ngetSignalByNumber(number,signals)\n);\nreturn Object.assign({},...signalsA)\n};\n\nconst getSignalByNumber=(number,signals)=>{\nconst signal=findSignalByNumber(number,signals);\n\nif(signal===undefined){\nreturn{}\n}\n\nconst{name,description,supported,action,forced,standard}=signal;\nreturn{\n[number]:{\nname,\nnumber,\ndescription,\nsupported,\naction,\nforced,\nstandard\n}\n}\n};\n\n\n\nconst findSignalByNumber=(number,signals)=>{\nconst signal=signals.find(({name})=>constants.signals[name]===number);\n\nif(signal!==undefined){\nreturn signal\n}\n\nreturn signals.find((signalA)=>signalA.number===number)\n};\n\nexport const signalsByNumber=getSignalsByNumber();",
46
- "import {constants} from 'node:os';\nimport {signalsByName} from 'human-signals';\n\n// Normalize signals for comparison purpose.\n// Also validate the signal exists.\nexport const normalizeKillSignal = killSignal => {\n\tconst optionName = 'option `killSignal`';\n\tif (killSignal === 0) {\n\t\tthrow new TypeError(`Invalid ${optionName}: 0 cannot be used.`);\n\t}\n\n\treturn normalizeSignal(killSignal, optionName);\n};\n\nexport const normalizeSignalArgument = signal => signal === 0\n\t? signal\n\t: normalizeSignal(signal, '`subprocess.kill()`\\'s argument');\n\nconst normalizeSignal = (signalNameOrInteger, optionName) => {\n\tif (Number.isInteger(signalNameOrInteger)) {\n\t\treturn normalizeSignalInteger(signalNameOrInteger, optionName);\n\t}\n\n\tif (typeof signalNameOrInteger === 'string') {\n\t\treturn normalizeSignalName(signalNameOrInteger, optionName);\n\t}\n\n\tthrow new TypeError(`Invalid ${optionName} ${String(signalNameOrInteger)}: it must be a string or an integer.\\n${getAvailableSignals()}`);\n};\n\nconst normalizeSignalInteger = (signalInteger, optionName) => {\n\tif (signalsIntegerToName.has(signalInteger)) {\n\t\treturn signalsIntegerToName.get(signalInteger);\n\t}\n\n\tthrow new TypeError(`Invalid ${optionName} ${signalInteger}: this signal integer does not exist.\\n${getAvailableSignals()}`);\n};\n\nconst getSignalsIntegerToName = () => new Map(Object.entries(constants.signals)\n\t.reverse()\n\t.map(([signalName, signalInteger]) => [signalInteger, signalName]));\n\nconst signalsIntegerToName = getSignalsIntegerToName();\n\nconst normalizeSignalName = (signalName, optionName) => {\n\tif (signalName in constants.signals) {\n\t\treturn signalName;\n\t}\n\n\tif (signalName.toUpperCase() in constants.signals) {\n\t\tthrow new TypeError(`Invalid ${optionName} '${signalName}': please rename it to '${signalName.toUpperCase()}'.`);\n\t}\n\n\tthrow new TypeError(`Invalid ${optionName} '${signalName}': this signal name does not exist.\\n${getAvailableSignals()}`);\n};\n\nconst getAvailableSignals = () => `Available signal names: ${getAvailableSignalNames()}.\nAvailable signal numbers: ${getAvailableSignalIntegers()}.`;\n\nconst getAvailableSignalNames = () => Object.keys(constants.signals)\n\t.sort()\n\t.map(signalName => `'${signalName}'`)\n\t.join(', ');\n\nconst getAvailableSignalIntegers = () => [...new Set(Object.values(constants.signals)\n\t.sort((signalInteger, signalIntegerTwo) => signalInteger - signalIntegerTwo))]\n\t.join(', ');\n\n// Human-friendly description of a signal\nexport const getSignalDescription = signal => signalsByName[signal].description;\n",
47
- "import {setTimeout} from 'node:timers/promises';\nimport {isErrorInstance} from '../return/final-error.js';\nimport {normalizeSignalArgument} from './signal.js';\n\n// Normalize the `forceKillAfterDelay` option\nexport const normalizeForceKillAfterDelay = forceKillAfterDelay => {\n\tif (forceKillAfterDelay === false) {\n\t\treturn forceKillAfterDelay;\n\t}\n\n\tif (forceKillAfterDelay === true) {\n\t\treturn DEFAULT_FORCE_KILL_TIMEOUT;\n\t}\n\n\tif (!Number.isFinite(forceKillAfterDelay) || forceKillAfterDelay < 0) {\n\t\tthrow new TypeError(`Expected the \\`forceKillAfterDelay\\` option to be a non-negative integer, got \\`${forceKillAfterDelay}\\` (${typeof forceKillAfterDelay})`);\n\t}\n\n\treturn forceKillAfterDelay;\n};\n\nconst DEFAULT_FORCE_KILL_TIMEOUT = 1000 * 5;\n\n// Monkey-patches `subprocess.kill()` to add `forceKillAfterDelay` behavior and `.kill(error)`\nexport const subprocessKill = (\n\t{kill, options: {forceKillAfterDelay, killSignal}, onInternalError, context, controller},\n\tsignalOrError,\n\terrorArgument,\n) => {\n\tconst {signal, error} = parseKillArguments(signalOrError, errorArgument, killSignal);\n\temitKillError(error, onInternalError);\n\tconst killResult = kill(signal);\n\tsetKillTimeout({\n\t\tkill,\n\t\tsignal,\n\t\tforceKillAfterDelay,\n\t\tkillSignal,\n\t\tkillResult,\n\t\tcontext,\n\t\tcontroller,\n\t});\n\treturn killResult;\n};\n\nconst parseKillArguments = (signalOrError, errorArgument, killSignal) => {\n\tconst [signal = killSignal, error] = isErrorInstance(signalOrError)\n\t\t? [undefined, signalOrError]\n\t\t: [signalOrError, errorArgument];\n\n\tif (typeof signal !== 'string' && !Number.isInteger(signal)) {\n\t\tthrow new TypeError(`The first argument must be an error instance or a signal name string/integer: ${String(signal)}`);\n\t}\n\n\tif (error !== undefined && !isErrorInstance(error)) {\n\t\tthrow new TypeError(`The second argument is optional. If specified, it must be an error instance: ${error}`);\n\t}\n\n\treturn {signal: normalizeSignalArgument(signal), error};\n};\n\n// Fails right away when calling `subprocess.kill(error)`.\n// Does not wait for actual signal termination.\n// Uses a deferred promise instead of the `error` event on the subprocess, as this is less intrusive.\nconst emitKillError = (error, onInternalError) => {\n\tif (error !== undefined) {\n\t\tonInternalError.reject(error);\n\t}\n};\n\nconst setKillTimeout = async ({kill, signal, forceKillAfterDelay, killSignal, killResult, context, controller}) => {\n\tif (signal === killSignal && killResult) {\n\t\tkillOnTimeout({\n\t\t\tkill,\n\t\t\tforceKillAfterDelay,\n\t\t\tcontext,\n\t\t\tcontrollerSignal: controller.signal,\n\t\t});\n\t}\n};\n\n// Forcefully terminate a subprocess after a timeout\nexport const killOnTimeout = async ({kill, forceKillAfterDelay, context, controllerSignal}) => {\n\tif (forceKillAfterDelay === false) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait setTimeout(forceKillAfterDelay, undefined, {signal: controllerSignal});\n\t\tif (kill('SIGKILL')) {\n\t\t\tcontext.isForcefullyTerminated ??= true;\n\t\t}\n\t} catch {}\n};\n",
48
- "import {once} from 'node:events';\n\n// Combines `util.aborted()` and `events.addAbortListener()`: promise-based and cleaned up with a stop signal\nexport const onAbortedSignal = async (mainSignal, stopSignal) => {\n\tif (!mainSignal.aborted) {\n\t\tawait once(mainSignal, 'abort', {signal: stopSignal});\n\t}\n};\n",
49
- "import {onAbortedSignal} from '../utils/abort-signal.js';\n\n// Validate the `cancelSignal` option\nexport const validateCancelSignal = ({cancelSignal}) => {\n\tif (cancelSignal !== undefined && Object.prototype.toString.call(cancelSignal) !== '[object AbortSignal]') {\n\t\tthrow new Error(`The \\`cancelSignal\\` option must be an AbortSignal: ${String(cancelSignal)}`);\n\t}\n};\n\n// Terminate the subprocess when aborting the `cancelSignal` option and `gracefulSignal` is `false`\nexport const throwOnCancel = ({subprocess, cancelSignal, gracefulCancel, context, controller}) => cancelSignal === undefined || gracefulCancel\n\t? []\n\t: [terminateOnCancel(subprocess, cancelSignal, context, controller)];\n\nconst terminateOnCancel = async (subprocess, cancelSignal, context, {signal}) => {\n\tawait onAbortedSignal(cancelSignal, signal);\n\tcontext.terminationReason ??= 'cancel';\n\tsubprocess.kill();\n\tthrow cancelSignal.reason;\n};\n",
50
- "// Validate the IPC channel is connected before receiving/sending messages\nexport const validateIpcMethod = ({methodName, isSubprocess, ipc, isConnected}) => {\n\tvalidateIpcOption(methodName, isSubprocess, ipc);\n\tvalidateConnection(methodName, isSubprocess, isConnected);\n};\n\n// Better error message when forgetting to set `ipc: true` and using the IPC methods\nconst validateIpcOption = (methodName, isSubprocess, ipc) => {\n\tif (!ipc) {\n\t\tthrow new Error(`${getMethodName(methodName, isSubprocess)} can only be used if the \\`ipc\\` option is \\`true\\`.`);\n\t}\n};\n\n// Better error message when one process does not send/receive messages once the other process has disconnected.\n// This also makes it clear that any buffered messages are lost once either process has disconnected.\n// Also when aborting `cancelSignal` after disconnecting the IPC.\nexport const validateConnection = (methodName, isSubprocess, isConnected) => {\n\tif (!isConnected) {\n\t\tthrow new Error(`${getMethodName(methodName, isSubprocess)} cannot be used: the ${getOtherProcessName(isSubprocess)} has already exited or disconnected.`);\n\t}\n};\n\n// When `getOneMessage()` could not complete due to an early disconnection\nexport const throwOnEarlyDisconnect = isSubprocess => {\n\tthrow new Error(`${getMethodName('getOneMessage', isSubprocess)} could not complete: the ${getOtherProcessName(isSubprocess)} exited or disconnected.`);\n};\n\n// When both processes use `sendMessage()` with `strict` at the same time\nexport const throwOnStrictDeadlockError = isSubprocess => {\n\tthrow new Error(`${getMethodName('sendMessage', isSubprocess)} failed: the ${getOtherProcessName(isSubprocess)} is sending a message too, instead of listening to incoming messages.\nThis can be fixed by both sending a message and listening to incoming messages at the same time:\n\nconst [receivedMessage] = await Promise.all([\n\t${getMethodName('getOneMessage', isSubprocess)},\n\t${getMethodName('sendMessage', isSubprocess, 'message, {strict: true}')},\n]);`);\n};\n\n// When the other process used `strict` but the current process had I/O error calling `sendMessage()` for the response\nexport const getStrictResponseError = (error, isSubprocess) => new Error(`${getMethodName('sendMessage', isSubprocess)} failed when sending an acknowledgment response to the ${getOtherProcessName(isSubprocess)}.`, {cause: error});\n\n// When using `strict` but the other process was not listening for messages\nexport const throwOnMissingStrict = isSubprocess => {\n\tthrow new Error(`${getMethodName('sendMessage', isSubprocess)} failed: the ${getOtherProcessName(isSubprocess)} is not listening to incoming messages.`);\n};\n\n// When using `strict` but the other process disconnected before receiving the message\nexport const throwOnStrictDisconnect = isSubprocess => {\n\tthrow new Error(`${getMethodName('sendMessage', isSubprocess)} failed: the ${getOtherProcessName(isSubprocess)} exited without listening to incoming messages.`);\n};\n\n// When the current process disconnects while the subprocess is listening to `cancelSignal`\nexport const getAbortDisconnectError = () => new Error(`\\`cancelSignal\\` aborted: the ${getOtherProcessName(true)} disconnected.`);\n\n// When the subprocess uses `cancelSignal` but not the current process\nexport const throwOnMissingParent = () => {\n\tthrow new Error('`getCancelSignal()` cannot be used without setting the `cancelSignal` subprocess option.');\n};\n\n// EPIPE can happen when sending a message to a subprocess that is closing but has not disconnected yet\nexport const handleEpipeError = ({error, methodName, isSubprocess}) => {\n\tif (error.code === 'EPIPE') {\n\t\tthrow new Error(`${getMethodName(methodName, isSubprocess)} cannot be used: the ${getOtherProcessName(isSubprocess)} is disconnecting.`, {cause: error});\n\t}\n};\n\n// Better error message when sending messages which cannot be serialized.\n// Works with both `serialization: 'advanced'` and `serialization: 'json'`.\nexport const handleSerializationError = ({error, methodName, isSubprocess, message}) => {\n\tif (isSerializationError(error)) {\n\t\tthrow new Error(`${getMethodName(methodName, isSubprocess)}'s argument type is invalid: the message cannot be serialized: ${String(message)}.`, {cause: error});\n\t}\n};\n\nconst isSerializationError = ({code, message}) => SERIALIZATION_ERROR_CODES.has(code)\n\t|| SERIALIZATION_ERROR_MESSAGES.some(serializationErrorMessage => message.includes(serializationErrorMessage));\n\n// `error.code` set by Node.js when it failed to serialize the message\nconst SERIALIZATION_ERROR_CODES = new Set([\n\t// Message is `undefined`\n\t'ERR_MISSING_ARGS',\n\t// Message is a function, a bigint, a symbol\n\t'ERR_INVALID_ARG_TYPE',\n]);\n\n// `error.message` set by Node.js when it failed to serialize the message\nconst SERIALIZATION_ERROR_MESSAGES = [\n\t// Message is a promise or a proxy, with `serialization: 'advanced'`\n\t'could not be cloned',\n\t// Message has cycles, with `serialization: 'json'`\n\t'circular structure',\n\t// Message has cycles inside toJSON(), with `serialization: 'json'`\n\t'call stack size exceeded',\n];\n\nconst getMethodName = (methodName, isSubprocess, parameters = '') => methodName === 'cancelSignal'\n\t? '`cancelSignal`\\'s `controller.abort()`'\n\t: `${getNamespaceName(isSubprocess)}${methodName}(${parameters})`;\n\nconst getNamespaceName = isSubprocess => isSubprocess ? '' : 'subprocess.';\n\nconst getOtherProcessName = isSubprocess => isSubprocess ? 'parent process' : 'subprocess';\n\n// When any error arises, we disconnect the IPC.\n// Otherwise, it is likely that one of the processes will stop sending/receiving messages.\n// This would leave the other process hanging.\nexport const disconnect = anyProcess => {\n\tif (anyProcess.connected) {\n\t\tanyProcess.disconnect();\n\t}\n};\n",
51
- "export const createDeferred = () => {\n\tconst methods = {};\n\tconst promise = new Promise((resolve, reject) => {\n\t\tObject.assign(methods, {resolve, reject});\n\t});\n\treturn Object.assign(promise, methods);\n};\n",
52
- "import {parseFd} from './specific.js';\n\n// Retrieve stream targeted by the `to` option\nexport const getToStream = (destination, to = 'stdin') => {\n\tconst isWritable = true;\n\tconst {options, fileDescriptors} = SUBPROCESS_OPTIONS.get(destination);\n\tconst fdNumber = getFdNumber(fileDescriptors, to, isWritable);\n\tconst destinationStream = destination.stdio[fdNumber];\n\n\tif (destinationStream === null) {\n\t\tthrow new TypeError(getInvalidStdioOptionMessage(fdNumber, to, options, isWritable));\n\t}\n\n\treturn destinationStream;\n};\n\n// Retrieve stream targeted by the `from` option\nexport const getFromStream = (source, from = 'stdout') => {\n\tconst isWritable = false;\n\tconst {options, fileDescriptors} = SUBPROCESS_OPTIONS.get(source);\n\tconst fdNumber = getFdNumber(fileDescriptors, from, isWritable);\n\tconst sourceStream = fdNumber === 'all' ? source.all : source.stdio[fdNumber];\n\n\tif (sourceStream === null || sourceStream === undefined) {\n\t\tthrow new TypeError(getInvalidStdioOptionMessage(fdNumber, from, options, isWritable));\n\t}\n\n\treturn sourceStream;\n};\n\n// Keeps track of the options passed to each Execa call\nexport const SUBPROCESS_OPTIONS = new WeakMap();\n\nconst getFdNumber = (fileDescriptors, fdName, isWritable) => {\n\tconst fdNumber = parseFdNumber(fdName, isWritable);\n\tvalidateFdNumber(fdNumber, fdName, isWritable, fileDescriptors);\n\treturn fdNumber;\n};\n\nconst parseFdNumber = (fdName, isWritable) => {\n\tconst fdNumber = parseFd(fdName);\n\tif (fdNumber !== undefined) {\n\t\treturn fdNumber;\n\t}\n\n\tconst {validOptions, defaultValue} = isWritable\n\t\t? {validOptions: '\"stdin\"', defaultValue: 'stdin'}\n\t\t: {validOptions: '\"stdout\", \"stderr\", \"all\"', defaultValue: 'stdout'};\n\tthrow new TypeError(`\"${getOptionName(isWritable)}\" must not be \"${fdName}\".\nIt must be ${validOptions} or \"fd3\", \"fd4\" (and so on).\nIt is optional and defaults to \"${defaultValue}\".`);\n};\n\nconst validateFdNumber = (fdNumber, fdName, isWritable, fileDescriptors) => {\n\tconst fileDescriptor = fileDescriptors[getUsedDescriptor(fdNumber)];\n\tif (fileDescriptor === undefined) {\n\t\tthrow new TypeError(`\"${getOptionName(isWritable)}\" must not be ${fdName}. That file descriptor does not exist.\nPlease set the \"stdio\" option to ensure that file descriptor exists.`);\n\t}\n\n\tif (fileDescriptor.direction === 'input' && !isWritable) {\n\t\tthrow new TypeError(`\"${getOptionName(isWritable)}\" must not be ${fdName}. It must be a readable stream, not writable.`);\n\t}\n\n\tif (fileDescriptor.direction !== 'input' && isWritable) {\n\t\tthrow new TypeError(`\"${getOptionName(isWritable)}\" must not be ${fdName}. It must be a writable stream, not readable.`);\n\t}\n};\n\nconst getInvalidStdioOptionMessage = (fdNumber, fdName, options, isWritable) => {\n\tif (fdNumber === 'all' && !options.all) {\n\t\treturn 'The \"all\" option must be true to use \"from: \\'all\\'\".';\n\t}\n\n\tconst {optionName, optionValue} = getInvalidStdioOption(fdNumber, options);\n\treturn `The \"${optionName}: ${serializeOptionValue(optionValue)}\" option is incompatible with using \"${getOptionName(isWritable)}: ${serializeOptionValue(fdName)}\".\nPlease set this option with \"pipe\" instead.`;\n};\n\nconst getInvalidStdioOption = (fdNumber, {stdin, stdout, stderr, stdio}) => {\n\tconst usedDescriptor = getUsedDescriptor(fdNumber);\n\n\tif (usedDescriptor === 0 && stdin !== undefined) {\n\t\treturn {optionName: 'stdin', optionValue: stdin};\n\t}\n\n\tif (usedDescriptor === 1 && stdout !== undefined) {\n\t\treturn {optionName: 'stdout', optionValue: stdout};\n\t}\n\n\tif (usedDescriptor === 2 && stderr !== undefined) {\n\t\treturn {optionName: 'stderr', optionValue: stderr};\n\t}\n\n\treturn {optionName: `stdio[${usedDescriptor}]`, optionValue: stdio[usedDescriptor]};\n};\n\nconst getUsedDescriptor = fdNumber => fdNumber === 'all' ? 1 : fdNumber;\n\nconst getOptionName = isWritable => isWritable ? 'to' : 'from';\n\nexport const serializeOptionValue = value => {\n\tif (typeof value === 'string') {\n\t\treturn `'${value}'`;\n\t}\n\n\treturn typeof value === 'number' ? `${value}` : 'Stream';\n};\n",
53
- "import {addAbortListener} from 'node:events';\n\n// Temporarily increase the maximum number of listeners on an eventEmitter\nexport const incrementMaxListeners = (eventEmitter, maxListenersIncrement, signal) => {\n\tconst maxListeners = eventEmitter.getMaxListeners();\n\tif (maxListeners === 0 || maxListeners === Number.POSITIVE_INFINITY) {\n\t\treturn;\n\t}\n\n\teventEmitter.setMaxListeners(maxListeners + maxListenersIncrement);\n\taddAbortListener(signal, () => {\n\t\teventEmitter.setMaxListeners(eventEmitter.getMaxListeners() - maxListenersIncrement);\n\t});\n};\n",
54
- "// By default, Node.js keeps the subprocess alive while it has a `message` or `disconnect` listener.\n// We replicate the same logic for the events that we proxy.\n// This ensures the subprocess is kept alive while `getOneMessage()` and `getEachMessage()` are ongoing.\n// This is not a problem with `sendMessage()` since Node.js handles that method automatically.\n// We do not use `anyProcess.channel.ref()` since this would prevent the automatic `.channel.refCounted()` Node.js is doing.\n// We keep a reference to `anyProcess.channel` since it might be `null` while `getOneMessage()` or `getEachMessage()` is still processing debounced messages.\n// See https://github.com/nodejs/node/blob/2aaeaa863c35befa2ebaa98fb7737ec84df4d8e9/lib/internal/child_process.js#L547\nexport const addReference = (channel, reference) => {\n\tif (reference) {\n\t\taddReferenceCount(channel);\n\t}\n};\n\nconst addReferenceCount = channel => {\n\tchannel.refCounted();\n};\n\nexport const removeReference = (channel, reference) => {\n\tif (reference) {\n\t\tremoveReferenceCount(channel);\n\t}\n};\n\nconst removeReferenceCount = channel => {\n\tchannel.unrefCounted();\n};\n\n// To proxy events, we setup some global listeners on the `message` and `disconnect` events.\n// Those should not keep the subprocess alive, so we remove the automatic counting that Node.js is doing.\n// See https://github.com/nodejs/node/blob/1b965270a9c273d4cf70e8808e9d28b9ada7844f/lib/child_process.js#L180\nexport const undoAddedReferences = (channel, isSubprocess) => {\n\tif (isSubprocess) {\n\t\tremoveReferenceCount(channel);\n\t\tremoveReferenceCount(channel);\n\t}\n};\n\n// Reverse it during `disconnect`\nexport const redoAddedReferences = (channel, isSubprocess) => {\n\tif (isSubprocess) {\n\t\taddReferenceCount(channel);\n\t\taddReferenceCount(channel);\n\t}\n};\n",
55
- "import {once} from 'node:events';\nimport {scheduler} from 'node:timers/promises';\nimport {waitForOutgoingMessages} from './outgoing.js';\nimport {redoAddedReferences} from './reference.js';\nimport {handleStrictRequest, handleStrictResponse} from './strict.js';\nimport {handleAbort, abortOnDisconnect} from './graceful.js';\n\n// By default, Node.js buffers `message` events.\n// - Buffering happens when there is a `message` event is emitted but there is no handler.\n// - As soon as a `message` event handler is set, all buffered `message` events are emitted, emptying the buffer.\n// - This happens both in the current process and the subprocess.\n// - See https://github.com/nodejs/node/blob/501546e8f37059cd577041e23941b640d0d4d406/lib/internal/child_process.js#L719\n// This is helpful. Notably, this allows sending messages to a subprocess that's still initializing.\n// However, it has several problems.\n// - This works with `events.on()` but not `events.once()` since all buffered messages are emitted at once.\n// For example, users cannot call `await getOneMessage()`/`getEachMessage()` multiple times in a row.\n// - When a user intentionally starts listening to `message` at a specific point in time, past `message` events are replayed, which might be unexpected.\n// - Buffering is unlimited, which might lead to an out-of-memory crash.\n// - This does not work well with multiple consumers.\n// For example, Execa consumes events with both `result.ipcOutput` and manual IPC calls like `getOneMessage()`.\n// Since `result.ipcOutput` reads all incoming messages, no buffering happens for manual IPC calls.\n// - Forgetting to setup a `message` listener, or setting it up too late, is a programming mistake.\n// The default behavior does not allow users to realize they made that mistake.\n// To solve those problems, instead of buffering messages, we debounce them.\n// The `message` event so it is emitted at most once per macrotask.\nexport const onMessage = async ({anyProcess, channel, isSubprocess, ipcEmitter}, wrappedMessage) => {\n\tif (handleStrictResponse(wrappedMessage) || handleAbort(wrappedMessage)) {\n\t\treturn;\n\t}\n\n\tif (!INCOMING_MESSAGES.has(anyProcess)) {\n\t\tINCOMING_MESSAGES.set(anyProcess, []);\n\t}\n\n\tconst incomingMessages = INCOMING_MESSAGES.get(anyProcess);\n\tincomingMessages.push(wrappedMessage);\n\n\tif (incomingMessages.length > 1) {\n\t\treturn;\n\t}\n\n\twhile (incomingMessages.length > 0) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tawait waitForOutgoingMessages(anyProcess, ipcEmitter, wrappedMessage);\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tawait scheduler.yield();\n\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst message = await handleStrictRequest({\n\t\t\twrappedMessage: incomingMessages[0],\n\t\t\tanyProcess,\n\t\t\tchannel,\n\t\t\tisSubprocess,\n\t\t\tipcEmitter,\n\t\t});\n\n\t\tincomingMessages.shift();\n\t\tipcEmitter.emit('message', message);\n\t\tipcEmitter.emit('message:done');\n\t}\n};\n\n// If the `message` event is currently debounced, the `disconnect` event must wait for it\nexport const onDisconnect = async ({anyProcess, channel, isSubprocess, ipcEmitter, boundOnMessage}) => {\n\tabortOnDisconnect();\n\n\tconst incomingMessages = INCOMING_MESSAGES.get(anyProcess);\n\twhile (incomingMessages?.length > 0) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tawait once(ipcEmitter, 'message:done');\n\t}\n\n\tanyProcess.removeListener('message', boundOnMessage);\n\tredoAddedReferences(channel, isSubprocess);\n\tipcEmitter.connected = false;\n\tipcEmitter.emit('disconnect');\n};\n\nconst INCOMING_MESSAGES = new WeakMap();\n",
56
- "import {EventEmitter} from 'node:events';\nimport {onMessage, onDisconnect} from './incoming.js';\nimport {undoAddedReferences} from './reference.js';\n\n// Forward the `message` and `disconnect` events from the process and subprocess to a proxy emitter.\n// This prevents the `error` event from stopping IPC.\n// This also allows debouncing the `message` event.\nexport const getIpcEmitter = (anyProcess, channel, isSubprocess) => {\n\tif (IPC_EMITTERS.has(anyProcess)) {\n\t\treturn IPC_EMITTERS.get(anyProcess);\n\t}\n\n\t// Use an `EventEmitter`, like the `process` that is being proxied\n\t// eslint-disable-next-line unicorn/prefer-event-target\n\tconst ipcEmitter = new EventEmitter();\n\tipcEmitter.connected = true;\n\tIPC_EMITTERS.set(anyProcess, ipcEmitter);\n\tforwardEvents({\n\t\tipcEmitter,\n\t\tanyProcess,\n\t\tchannel,\n\t\tisSubprocess,\n\t});\n\treturn ipcEmitter;\n};\n\nconst IPC_EMITTERS = new WeakMap();\n\n// The `message` and `disconnect` events are buffered in the subprocess until the first listener is setup.\n// However, unbuffering happens after one tick, so this give enough time for the caller to setup the listener on the proxy emitter first.\n// See https://github.com/nodejs/node/blob/2aaeaa863c35befa2ebaa98fb7737ec84df4d8e9/lib/internal/child_process.js#L721\nconst forwardEvents = ({ipcEmitter, anyProcess, channel, isSubprocess}) => {\n\tconst boundOnMessage = onMessage.bind(undefined, {\n\t\tanyProcess,\n\t\tchannel,\n\t\tisSubprocess,\n\t\tipcEmitter,\n\t});\n\tanyProcess.on('message', boundOnMessage);\n\tanyProcess.once('disconnect', onDisconnect.bind(undefined, {\n\t\tanyProcess,\n\t\tchannel,\n\t\tisSubprocess,\n\t\tipcEmitter,\n\t\tboundOnMessage,\n\t}));\n\tundoAddedReferences(channel, isSubprocess);\n};\n\n// Check whether there might still be some `message` events to receive\nexport const isConnected = anyProcess => {\n\tconst ipcEmitter = IPC_EMITTERS.get(anyProcess);\n\treturn ipcEmitter === undefined\n\t\t? anyProcess.channel !== null\n\t\t: ipcEmitter.connected;\n};\n",
57
- "import {once} from 'node:events';\nimport {createDeferred} from '../utils/deferred.js';\nimport {incrementMaxListeners} from '../utils/max-listeners.js';\nimport {sendMessage} from './send.js';\nimport {throwOnMissingStrict, throwOnStrictDisconnect, throwOnStrictDeadlockError} from './validation.js';\nimport {getIpcEmitter} from './forward.js';\nimport {hasMessageListeners} from './outgoing.js';\n\n// When using the `strict` option, wrap the message with metadata during `sendMessage()`\nexport const handleSendStrict = ({anyProcess, channel, isSubprocess, message, strict}) => {\n\tif (!strict) {\n\t\treturn message;\n\t}\n\n\tconst ipcEmitter = getIpcEmitter(anyProcess, channel, isSubprocess);\n\tconst hasListeners = hasMessageListeners(anyProcess, ipcEmitter);\n\treturn {\n\t\tid: count++,\n\t\ttype: REQUEST_TYPE,\n\t\tmessage,\n\t\thasListeners,\n\t};\n};\n\nlet count = 0n;\n\n// Handles when both processes are calling `sendMessage()` with `strict` at the same time.\n// If neither process is listening, this would create a deadlock. We detect it and throw.\nexport const validateStrictDeadlock = (outgoingMessages, wrappedMessage) => {\n\tif (wrappedMessage?.type !== REQUEST_TYPE || wrappedMessage.hasListeners) {\n\t\treturn;\n\t}\n\n\tfor (const {id} of outgoingMessages) {\n\t\tif (id !== undefined) {\n\t\t\tSTRICT_RESPONSES[id].resolve({isDeadlock: true, hasListeners: false});\n\t\t}\n\t}\n};\n\n// The other process then sends the acknowledgment back as a response\nexport const handleStrictRequest = async ({wrappedMessage, anyProcess, channel, isSubprocess, ipcEmitter}) => {\n\tif (wrappedMessage?.type !== REQUEST_TYPE || !anyProcess.connected) {\n\t\treturn wrappedMessage;\n\t}\n\n\tconst {id, message} = wrappedMessage;\n\tconst response = {id, type: RESPONSE_TYPE, message: hasMessageListeners(anyProcess, ipcEmitter)};\n\n\ttry {\n\t\tawait sendMessage({\n\t\t\tanyProcess,\n\t\t\tchannel,\n\t\t\tisSubprocess,\n\t\t\tipc: true,\n\t\t}, response);\n\t} catch (error) {\n\t\tipcEmitter.emit('strict:error', error);\n\t}\n\n\treturn message;\n};\n\n// Reception of the acknowledgment response\nexport const handleStrictResponse = wrappedMessage => {\n\tif (wrappedMessage?.type !== RESPONSE_TYPE) {\n\t\treturn false;\n\t}\n\n\tconst {id, message: hasListeners} = wrappedMessage;\n\tSTRICT_RESPONSES[id]?.resolve({isDeadlock: false, hasListeners});\n\treturn true;\n};\n\n// Wait for the other process to receive the message from `sendMessage()`\nexport const waitForStrictResponse = async (wrappedMessage, anyProcess, isSubprocess) => {\n\tif (wrappedMessage?.type !== REQUEST_TYPE) {\n\t\treturn;\n\t}\n\n\tconst deferred = createDeferred();\n\tSTRICT_RESPONSES[wrappedMessage.id] = deferred;\n\tconst controller = new AbortController();\n\n\ttry {\n\t\tconst {isDeadlock, hasListeners} = await Promise.race([\n\t\t\tdeferred,\n\t\t\tthrowOnDisconnect(anyProcess, isSubprocess, controller),\n\t\t]);\n\n\t\tif (isDeadlock) {\n\t\t\tthrowOnStrictDeadlockError(isSubprocess);\n\t\t}\n\n\t\tif (!hasListeners) {\n\t\t\tthrowOnMissingStrict(isSubprocess);\n\t\t}\n\t} finally {\n\t\tcontroller.abort();\n\t\tdelete STRICT_RESPONSES[wrappedMessage.id];\n\t}\n};\n\nconst STRICT_RESPONSES = {};\n\nconst throwOnDisconnect = async (anyProcess, isSubprocess, {signal}) => {\n\tincrementMaxListeners(anyProcess, 1, signal);\n\tawait once(anyProcess, 'disconnect', {signal});\n\tthrowOnStrictDisconnect(isSubprocess);\n};\n\nconst REQUEST_TYPE = 'execa:ipc:request';\nconst RESPONSE_TYPE = 'execa:ipc:response';\n",
58
- "import {createDeferred} from '../utils/deferred.js';\nimport {getFdSpecificValue} from '../arguments/specific.js';\nimport {SUBPROCESS_OPTIONS} from '../arguments/fd-options.js';\nimport {validateStrictDeadlock} from './strict.js';\n\n// When `sendMessage()` is ongoing, any `message` being received waits before being emitted.\n// This allows calling one or multiple `await sendMessage()` followed by `await getOneMessage()`/`await getEachMessage()`.\n// Without running into a race condition when the other process sends a response too fast, before the current process set up a listener.\nexport const startSendMessage = (anyProcess, wrappedMessage, strict) => {\n\tif (!OUTGOING_MESSAGES.has(anyProcess)) {\n\t\tOUTGOING_MESSAGES.set(anyProcess, new Set());\n\t}\n\n\tconst outgoingMessages = OUTGOING_MESSAGES.get(anyProcess);\n\tconst onMessageSent = createDeferred();\n\tconst id = strict ? wrappedMessage.id : undefined;\n\tconst outgoingMessage = {onMessageSent, id};\n\toutgoingMessages.add(outgoingMessage);\n\treturn {outgoingMessages, outgoingMessage};\n};\n\nexport const endSendMessage = ({outgoingMessages, outgoingMessage}) => {\n\toutgoingMessages.delete(outgoingMessage);\n\toutgoingMessage.onMessageSent.resolve();\n};\n\n// Await while `sendMessage()` is ongoing, unless there is already a `message` listener\nexport const waitForOutgoingMessages = async (anyProcess, ipcEmitter, wrappedMessage) => {\n\twhile (!hasMessageListeners(anyProcess, ipcEmitter) && OUTGOING_MESSAGES.get(anyProcess)?.size > 0) {\n\t\tconst outgoingMessages = [...OUTGOING_MESSAGES.get(anyProcess)];\n\t\tvalidateStrictDeadlock(outgoingMessages, wrappedMessage);\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tawait Promise.all(outgoingMessages.map(({onMessageSent}) => onMessageSent));\n\t}\n};\n\nconst OUTGOING_MESSAGES = new WeakMap();\n\n// Whether any `message` listener is setup\nexport const hasMessageListeners = (anyProcess, ipcEmitter) => ipcEmitter.listenerCount('message') > getMinListenerCount(anyProcess);\n\n// When `buffer` is `false`, we set up a `message` listener that should be ignored.\n// That listener is only meant to intercept `strict` acknowledgement responses.\nconst getMinListenerCount = anyProcess => SUBPROCESS_OPTIONS.has(anyProcess)\n\t&& !getFdSpecificValue(SUBPROCESS_OPTIONS.get(anyProcess).options.buffer, 'ipc')\n\t? 1\n\t: 0;\n",
59
- "import {promisify} from 'node:util';\nimport {\n\tvalidateIpcMethod,\n\thandleEpipeError,\n\thandleSerializationError,\n\tdisconnect,\n} from './validation.js';\nimport {startSendMessage, endSendMessage} from './outgoing.js';\nimport {handleSendStrict, waitForStrictResponse} from './strict.js';\n\n// Like `[sub]process.send()` but promise-based.\n// We do not `await subprocess` during `.sendMessage()` nor `.getOneMessage()` since those methods are transient.\n// Users would still need to `await subprocess` after the method is done.\n// Also, this would prevent `unhandledRejection` event from being emitted, making it silent.\nexport const sendMessage = ({anyProcess, channel, isSubprocess, ipc}, message, {strict = false} = {}) => {\n\tconst methodName = 'sendMessage';\n\tvalidateIpcMethod({\n\t\tmethodName,\n\t\tisSubprocess,\n\t\tipc,\n\t\tisConnected: anyProcess.connected,\n\t});\n\n\treturn sendMessageAsync({\n\t\tanyProcess,\n\t\tchannel,\n\t\tmethodName,\n\t\tisSubprocess,\n\t\tmessage,\n\t\tstrict,\n\t});\n};\n\nconst sendMessageAsync = async ({anyProcess, channel, methodName, isSubprocess, message, strict}) => {\n\tconst wrappedMessage = handleSendStrict({\n\t\tanyProcess,\n\t\tchannel,\n\t\tisSubprocess,\n\t\tmessage,\n\t\tstrict,\n\t});\n\tconst outgoingMessagesState = startSendMessage(anyProcess, wrappedMessage, strict);\n\ttry {\n\t\tawait sendOneMessage({\n\t\t\tanyProcess,\n\t\t\tmethodName,\n\t\t\tisSubprocess,\n\t\t\twrappedMessage,\n\t\t\tmessage,\n\t\t});\n\t} catch (error) {\n\t\tdisconnect(anyProcess);\n\t\tthrow error;\n\t} finally {\n\t\tendSendMessage(outgoingMessagesState);\n\t}\n};\n\n// Used internally by `cancelSignal`\nexport const sendOneMessage = async ({anyProcess, methodName, isSubprocess, wrappedMessage, message}) => {\n\tconst sendMethod = getSendMethod(anyProcess);\n\n\ttry {\n\t\tawait Promise.all([\n\t\t\twaitForStrictResponse(wrappedMessage, anyProcess, isSubprocess),\n\t\t\tsendMethod(wrappedMessage),\n\t\t]);\n\t} catch (error) {\n\t\thandleEpipeError({error, methodName, isSubprocess});\n\t\thandleSerializationError({\n\t\t\terror,\n\t\t\tmethodName,\n\t\t\tisSubprocess,\n\t\t\tmessage,\n\t\t});\n\t\tthrow error;\n\t}\n};\n\n// [sub]process.send() promisified, memoized\nconst getSendMethod = anyProcess => {\n\tif (PROCESS_SEND_METHODS.has(anyProcess)) {\n\t\treturn PROCESS_SEND_METHODS.get(anyProcess);\n\t}\n\n\tconst sendMethod = promisify(anyProcess.send.bind(anyProcess));\n\tPROCESS_SEND_METHODS.set(anyProcess, sendMethod);\n\treturn sendMethod;\n};\n\nconst PROCESS_SEND_METHODS = new WeakMap();\n",
60
- "import {scheduler} from 'node:timers/promises';\nimport {sendOneMessage} from './send.js';\nimport {getIpcEmitter} from './forward.js';\nimport {validateConnection, getAbortDisconnectError, throwOnMissingParent} from './validation.js';\n\n// Send an IPC message so the subprocess performs a graceful termination\nexport const sendAbort = (subprocess, message) => {\n\tconst methodName = 'cancelSignal';\n\tvalidateConnection(methodName, false, subprocess.connected);\n\treturn sendOneMessage({\n\t\tanyProcess: subprocess,\n\t\tmethodName,\n\t\tisSubprocess: false,\n\t\twrappedMessage: {type: GRACEFUL_CANCEL_TYPE, message},\n\t\tmessage,\n\t});\n};\n\n// When the signal is being used, start listening for incoming messages.\n// Unbuffering messages takes one microtask to complete, so this must be async.\nexport const getCancelSignal = async ({anyProcess, channel, isSubprocess, ipc}) => {\n\tawait startIpc({\n\t\tanyProcess,\n\t\tchannel,\n\t\tisSubprocess,\n\t\tipc,\n\t});\n\treturn cancelController.signal;\n};\n\nconst startIpc = async ({anyProcess, channel, isSubprocess, ipc}) => {\n\tif (cancelListening) {\n\t\treturn;\n\t}\n\n\tcancelListening = true;\n\n\tif (!ipc) {\n\t\tthrowOnMissingParent();\n\t\treturn;\n\t}\n\n\tif (channel === null) {\n\t\tabortOnDisconnect();\n\t\treturn;\n\t}\n\n\tgetIpcEmitter(anyProcess, channel, isSubprocess);\n\tawait scheduler.yield();\n};\n\nlet cancelListening = false;\n\n// Reception of IPC message to perform a graceful termination\nexport const handleAbort = wrappedMessage => {\n\tif (wrappedMessage?.type !== GRACEFUL_CANCEL_TYPE) {\n\t\treturn false;\n\t}\n\n\tcancelController.abort(wrappedMessage.message);\n\treturn true;\n};\n\nconst GRACEFUL_CANCEL_TYPE = 'execa:ipc:cancel';\n\n// When the current process disconnects early, the subprocess `cancelSignal` is aborted.\n// Otherwise, the signal would never be able to be aborted later on.\nexport const abortOnDisconnect = () => {\n\tcancelController.abort(getAbortDisconnectError());\n};\n\nconst cancelController = new AbortController();\n",
61
- "import {onAbortedSignal} from '../utils/abort-signal.js';\nimport {sendAbort} from '../ipc/graceful.js';\nimport {killOnTimeout} from './kill.js';\n\n// Validate the `gracefulCancel` option\nexport const validateGracefulCancel = ({gracefulCancel, cancelSignal, ipc, serialization}) => {\n\tif (!gracefulCancel) {\n\t\treturn;\n\t}\n\n\tif (cancelSignal === undefined) {\n\t\tthrow new Error('The `cancelSignal` option must be defined when setting the `gracefulCancel` option.');\n\t}\n\n\tif (!ipc) {\n\t\tthrow new Error('The `ipc` option cannot be false when setting the `gracefulCancel` option.');\n\t}\n\n\tif (serialization === 'json') {\n\t\tthrow new Error('The `serialization` option cannot be \\'json\\' when setting the `gracefulCancel` option.');\n\t}\n};\n\n// Send abort reason to the subprocess when aborting the `cancelSignal` option and `gracefulCancel` is `true`\nexport const throwOnGracefulCancel = ({\n\tsubprocess,\n\tcancelSignal,\n\tgracefulCancel,\n\tforceKillAfterDelay,\n\tcontext,\n\tcontroller,\n}) => gracefulCancel\n\t? [sendOnAbort({\n\t\tsubprocess,\n\t\tcancelSignal,\n\t\tforceKillAfterDelay,\n\t\tcontext,\n\t\tcontroller,\n\t})]\n\t: [];\n\nconst sendOnAbort = async ({subprocess, cancelSignal, forceKillAfterDelay, context, controller: {signal}}) => {\n\tawait onAbortedSignal(cancelSignal, signal);\n\tconst reason = getReason(cancelSignal);\n\tawait sendAbort(subprocess, reason);\n\tkillOnTimeout({\n\t\tkill: subprocess.kill,\n\t\tforceKillAfterDelay,\n\t\tcontext,\n\t\tcontrollerSignal: signal,\n\t});\n\tcontext.terminationReason ??= 'gracefulCancel';\n\tthrow cancelSignal.reason;\n};\n\n// The default `reason` is a DOMException, which is not serializable with V8\n// See https://github.com/nodejs/node/issues/53225\nconst getReason = ({reason}) => {\n\tif (!(reason instanceof DOMException)) {\n\t\treturn reason;\n\t}\n\n\tconst error = new Error(reason.message);\n\tObject.defineProperty(error, 'stack', {\n\t\tvalue: reason.stack,\n\t\tenumerable: false,\n\t\tconfigurable: true,\n\t\twritable: true,\n\t});\n\treturn error;\n};\n",
62
- "import {setTimeout} from 'node:timers/promises';\nimport {DiscardedError} from '../return/final-error.js';\n\n// Validate `timeout` option\nexport const validateTimeout = ({timeout}) => {\n\tif (timeout !== undefined && (!Number.isFinite(timeout) || timeout < 0)) {\n\t\tthrow new TypeError(`Expected the \\`timeout\\` option to be a non-negative integer, got \\`${timeout}\\` (${typeof timeout})`);\n\t}\n};\n\n// Fails when the `timeout` option is exceeded\nexport const throwOnTimeout = (subprocess, timeout, context, controller) => timeout === 0 || timeout === undefined\n\t? []\n\t: [killAfterTimeout(subprocess, timeout, context, controller)];\n\nconst killAfterTimeout = async (subprocess, timeout, context, {signal}) => {\n\tawait setTimeout(timeout, undefined, {signal});\n\tcontext.terminationReason ??= 'timeout';\n\tsubprocess.kill();\n\tthrow new DiscardedError();\n};\n",
63
- "import {execPath, execArgv} from 'node:process';\nimport path from 'node:path';\nimport {safeNormalizeFileUrl} from '../arguments/file-url.js';\n\n// `execaNode()` is a shortcut for `execa(..., {node: true})`\nexport const mapNode = ({options}) => {\n\tif (options.node === false) {\n\t\tthrow new TypeError('The \"node\" option cannot be false with `execaNode()`.');\n\t}\n\n\treturn {options: {...options, node: true}};\n};\n\n// Applies the `node: true` option, and the related `nodePath`/`nodeOptions` options.\n// Modifies the file commands/arguments to ensure the same Node binary and flags are re-used.\n// Also adds `ipc: true` and `shell: false`.\nexport const handleNodeOption = (file, commandArguments, {\n\tnode: shouldHandleNode = false,\n\tnodePath = execPath,\n\tnodeOptions = execArgv.filter(nodeOption => !nodeOption.startsWith('--inspect')),\n\tcwd,\n\texecPath: formerNodePath,\n\t...options\n}) => {\n\tif (formerNodePath !== undefined) {\n\t\tthrow new TypeError('The \"execPath\" option has been removed. Please use the \"nodePath\" option instead.');\n\t}\n\n\tconst normalizedNodePath = safeNormalizeFileUrl(nodePath, 'The \"nodePath\" option');\n\tconst resolvedNodePath = path.resolve(cwd, normalizedNodePath);\n\tconst newOptions = {\n\t\t...options,\n\t\tnodePath: resolvedNodePath,\n\t\tnode: shouldHandleNode,\n\t\tcwd,\n\t};\n\n\tif (!shouldHandleNode) {\n\t\treturn [file, commandArguments, newOptions];\n\t}\n\n\tif (path.basename(file, '.exe') === 'node') {\n\t\tthrow new TypeError('When the \"node\" option is true, the first argument does not need to be \"node\".');\n\t}\n\n\treturn [\n\t\tresolvedNodePath,\n\t\t[...nodeOptions, file, ...commandArguments],\n\t\t{ipc: true, ...newOptions, shell: false},\n\t];\n};\n",
64
- "import {serialize} from 'node:v8';\n\n// Validate the `ipcInput` option\nexport const validateIpcInputOption = ({ipcInput, ipc, serialization}) => {\n\tif (ipcInput === undefined) {\n\t\treturn;\n\t}\n\n\tif (!ipc) {\n\t\tthrow new Error('The `ipcInput` option cannot be set unless the `ipc` option is `true`.');\n\t}\n\n\tvalidateIpcInput[serialization](ipcInput);\n};\n\nconst validateAdvancedInput = ipcInput => {\n\ttry {\n\t\tserialize(ipcInput);\n\t} catch (error) {\n\t\tthrow new Error('The `ipcInput` option is not serializable with a structured clone.', {cause: error});\n\t}\n};\n\nconst validateJsonInput = ipcInput => {\n\ttry {\n\t\tJSON.stringify(ipcInput);\n\t} catch (error) {\n\t\tthrow new Error('The `ipcInput` option is not serializable with JSON.', {cause: error});\n\t}\n};\n\nconst validateIpcInput = {\n\tadvanced: validateAdvancedInput,\n\tjson: validateJsonInput,\n};\n\n// When the `ipcInput` option is set, it is sent as an initial IPC message to the subprocess\nexport const sendIpcInput = async (subprocess, ipcInput) => {\n\tif (ipcInput === undefined) {\n\t\treturn;\n\t}\n\n\tawait subprocess.sendMessage(ipcInput);\n};\n",
65
- "// Validate `encoding` option\nexport const validateEncoding = ({encoding}) => {\n\tif (ENCODINGS.has(encoding)) {\n\t\treturn;\n\t}\n\n\tconst correctEncoding = getCorrectEncoding(encoding);\n\tif (correctEncoding !== undefined) {\n\t\tthrow new TypeError(`Invalid option \\`encoding: ${serializeEncoding(encoding)}\\`.\nPlease rename it to ${serializeEncoding(correctEncoding)}.`);\n\t}\n\n\tconst correctEncodings = [...ENCODINGS].map(correctEncoding => serializeEncoding(correctEncoding)).join(', ');\n\tthrow new TypeError(`Invalid option \\`encoding: ${serializeEncoding(encoding)}\\`.\nPlease rename it to one of: ${correctEncodings}.`);\n};\n\nconst TEXT_ENCODINGS = new Set(['utf8', 'utf16le']);\nexport const BINARY_ENCODINGS = new Set(['buffer', 'hex', 'base64', 'base64url', 'latin1', 'ascii']);\nconst ENCODINGS = new Set([...TEXT_ENCODINGS, ...BINARY_ENCODINGS]);\n\nconst getCorrectEncoding = encoding => {\n\tif (encoding === null) {\n\t\treturn 'buffer';\n\t}\n\n\tif (typeof encoding !== 'string') {\n\t\treturn;\n\t}\n\n\tconst lowerEncoding = encoding.toLowerCase();\n\tif (lowerEncoding in ENCODING_ALIASES) {\n\t\treturn ENCODING_ALIASES[lowerEncoding];\n\t}\n\n\tif (ENCODINGS.has(lowerEncoding)) {\n\t\treturn lowerEncoding;\n\t}\n};\n\nconst ENCODING_ALIASES = {\n\t// eslint-disable-next-line unicorn/text-encoding-identifier-case\n\t'utf-8': 'utf8',\n\t'utf-16le': 'utf16le',\n\t'ucs-2': 'utf16le',\n\tucs2: 'utf16le',\n\tbinary: 'latin1',\n};\n\nconst serializeEncoding = encoding => typeof encoding === 'string' ? `\"${encoding}\"` : String(encoding);\n",
66
- "import {statSync} from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\nimport {safeNormalizeFileUrl} from './file-url.js';\n\n// Normalize `cwd` option\nexport const normalizeCwd = (cwd = getDefaultCwd()) => {\n\tconst cwdString = safeNormalizeFileUrl(cwd, 'The \"cwd\" option');\n\treturn path.resolve(cwdString);\n};\n\nconst getDefaultCwd = () => {\n\ttry {\n\t\treturn process.cwd();\n\t} catch (error) {\n\t\terror.message = `The current directory does not exist.\\n${error.message}`;\n\t\tthrow error;\n\t}\n};\n\n// When `cwd` option has an invalid value, provide with a better error message\nexport const fixCwdError = (originalMessage, cwd) => {\n\tif (cwd === getDefaultCwd()) {\n\t\treturn originalMessage;\n\t}\n\n\tlet cwdStat;\n\ttry {\n\t\tcwdStat = statSync(cwd);\n\t} catch (error) {\n\t\treturn `The \"cwd\" option is invalid: ${cwd}.\\n${error.message}\\n${originalMessage}`;\n\t}\n\n\tif (!cwdStat.isDirectory()) {\n\t\treturn `The \"cwd\" option is not a directory: ${cwd}.\\n${originalMessage}`;\n\t}\n\n\treturn originalMessage;\n};\n",
67
- "import path from 'node:path';\nimport process from 'node:process';\nimport crossSpawn from 'cross-spawn';\nimport {npmRunPathEnv} from 'npm-run-path';\nimport {normalizeForceKillAfterDelay} from '../terminate/kill.js';\nimport {normalizeKillSignal} from '../terminate/signal.js';\nimport {validateCancelSignal} from '../terminate/cancel.js';\nimport {validateGracefulCancel} from '../terminate/graceful.js';\nimport {validateTimeout} from '../terminate/timeout.js';\nimport {handleNodeOption} from '../methods/node.js';\nimport {validateIpcInputOption} from '../ipc/ipc-input.js';\nimport {validateEncoding, BINARY_ENCODINGS} from './encoding-option.js';\nimport {normalizeCwd} from './cwd.js';\nimport {normalizeFileUrl} from './file-url.js';\nimport {normalizeFdSpecificOptions} from './specific.js';\n\n// Normalize the options object, and sometimes also the file paths and arguments.\n// Applies default values, validate allowed options, normalize them.\nexport const normalizeOptions = (filePath, rawArguments, rawOptions) => {\n\trawOptions.cwd = normalizeCwd(rawOptions.cwd);\n\tconst [processedFile, processedArguments, processedOptions] = handleNodeOption(filePath, rawArguments, rawOptions);\n\n\tconst {command: file, args: commandArguments, options: initialOptions} = crossSpawn._parse(processedFile, processedArguments, processedOptions);\n\n\tconst fdOptions = normalizeFdSpecificOptions(initialOptions);\n\tconst options = addDefaultOptions(fdOptions);\n\tvalidateTimeout(options);\n\tvalidateEncoding(options);\n\tvalidateIpcInputOption(options);\n\tvalidateCancelSignal(options);\n\tvalidateGracefulCancel(options);\n\toptions.shell = normalizeFileUrl(options.shell);\n\toptions.env = getEnv(options);\n\toptions.killSignal = normalizeKillSignal(options.killSignal);\n\toptions.forceKillAfterDelay = normalizeForceKillAfterDelay(options.forceKillAfterDelay);\n\toptions.lines = options.lines.map((lines, fdNumber) => lines && !BINARY_ENCODINGS.has(options.encoding) && options.buffer[fdNumber]);\n\n\tif (process.platform === 'win32' && path.basename(file, '.exe') === 'cmd') {\n\t\t// #116\n\t\tcommandArguments.unshift('/q');\n\t}\n\n\treturn {file, commandArguments, options};\n};\n\nconst addDefaultOptions = ({\n\textendEnv = true,\n\tpreferLocal = false,\n\tcwd,\n\tlocalDir: localDirectory = cwd,\n\tencoding = 'utf8',\n\treject = true,\n\tcleanup = true,\n\tall = false,\n\twindowsHide = true,\n\tkillSignal = 'SIGTERM',\n\tforceKillAfterDelay = true,\n\tgracefulCancel = false,\n\tipcInput,\n\tipc = ipcInput !== undefined || gracefulCancel,\n\tserialization = 'advanced',\n\t...options\n}) => ({\n\t...options,\n\textendEnv,\n\tpreferLocal,\n\tcwd,\n\tlocalDirectory,\n\tencoding,\n\treject,\n\tcleanup,\n\tall,\n\twindowsHide,\n\tkillSignal,\n\tforceKillAfterDelay,\n\tgracefulCancel,\n\tipcInput,\n\tipc,\n\tserialization,\n});\n\nconst getEnv = ({env: envOption, extendEnv, preferLocal, node, localDirectory, nodePath}) => {\n\tconst env = extendEnv ? {...process.env, ...envOption} : envOption;\n\n\tif (preferLocal || node) {\n\t\treturn npmRunPathEnv({\n\t\t\tenv,\n\t\t\tcwd: localDirectory,\n\t\t\texecPath: nodePath,\n\t\t\tpreferLocal,\n\t\t\taddExecPath: node,\n\t\t});\n\t}\n\n\treturn env;\n};\n",
68
- "// When the `shell` option is set, any command argument is concatenated as a single string by Node.js:\n// https://github.com/nodejs/node/blob/e38ce27f3ca0a65f68a31cedd984cddb927d4002/lib/child_process.js#L614-L624\n// However, since Node 24, it also prints a deprecation warning.\n// To avoid this warning, we perform that same operation before calling `node:child_process`.\n// Shells only understand strings, which is why Node.js performs that concatenation.\n// However, we rely on users splitting command arguments as an array.\n// For example, this allows us to easily detect which arguments are passed.\n// So we do want users to pass array of arguments even with `shell: true`, but we also want to avoid any warning.\nexport const concatenateShell = (file, commandArguments, options) => options.shell && commandArguments.length > 0\n\t? [[file, ...commandArguments].join(' '), [], options]\n\t: [file, commandArguments, options];\n",
69
- "export default function stripFinalNewline(input) {\n\tif (typeof input === 'string') {\n\t\treturn stripFinalNewlineString(input);\n\t}\n\n\tif (!(ArrayBuffer.isView(input) && input.BYTES_PER_ELEMENT === 1)) {\n\t\tthrow new Error('Input must be a string or a Uint8Array');\n\t}\n\n\treturn stripFinalNewlineBinary(input);\n}\n\nconst stripFinalNewlineString = input =>\n\tinput.at(-1) === LF\n\t\t? input.slice(0, input.at(-2) === CR ? -2 : -1)\n\t\t: input;\n\nconst stripFinalNewlineBinary = input =>\n\tinput.at(-1) === LF_BINARY\n\t\t? input.subarray(0, input.at(-2) === CR_BINARY ? -2 : -1)\n\t\t: input;\n\nconst LF = '\\n';\nconst LF_BINARY = LF.codePointAt(0);\nconst CR = '\\r';\nconst CR_BINARY = CR.codePointAt(0);\n",
70
- "export function isStream(stream, {checkOpen = true} = {}) {\n\treturn stream !== null\n\t\t&& typeof stream === 'object'\n\t\t&& (stream.writable || stream.readable || !checkOpen || (stream.writable === undefined && stream.readable === undefined))\n\t\t&& typeof stream.pipe === 'function';\n}\n\nexport function isWritableStream(stream, {checkOpen = true} = {}) {\n\treturn isStream(stream, {checkOpen})\n\t\t&& (stream.writable || !checkOpen)\n\t\t&& typeof stream.write === 'function'\n\t\t&& typeof stream.end === 'function'\n\t\t&& typeof stream.writable === 'boolean'\n\t\t&& typeof stream.writableObjectMode === 'boolean'\n\t\t&& typeof stream.destroy === 'function'\n\t\t&& typeof stream.destroyed === 'boolean';\n}\n\nexport function isReadableStream(stream, {checkOpen = true} = {}) {\n\treturn isStream(stream, {checkOpen})\n\t\t&& (stream.readable || !checkOpen)\n\t\t&& typeof stream.read === 'function'\n\t\t&& typeof stream.readable === 'boolean'\n\t\t&& typeof stream.readableObjectMode === 'boolean'\n\t\t&& typeof stream.destroy === 'function'\n\t\t&& typeof stream.destroyed === 'boolean';\n}\n\nexport function isDuplexStream(stream, options) {\n\treturn isWritableStream(stream, options)\n\t\t&& isReadableStream(stream, options);\n}\n\nexport function isTransformStream(stream, options) {\n\treturn isDuplexStream(stream, options)\n\t\t&& typeof stream._transform === 'function';\n}\n",
71
- "const a = Object.getPrototypeOf(\n Object.getPrototypeOf(\n /* istanbul ignore next */\n async function* () {\n }\n ).prototype\n);\nclass c {\n #t;\n #n;\n #r = !1;\n #e = void 0;\n constructor(e, t) {\n this.#t = e, this.#n = t;\n }\n next() {\n const e = () => this.#s();\n return this.#e = this.#e ? this.#e.then(e, e) : e(), this.#e;\n }\n return(e) {\n const t = () => this.#i(e);\n return this.#e ? this.#e.then(t, t) : t();\n }\n async #s() {\n if (this.#r)\n return {\n done: !0,\n value: void 0\n };\n let e;\n try {\n e = await this.#t.read();\n } catch (t) {\n throw this.#e = void 0, this.#r = !0, this.#t.releaseLock(), t;\n }\n return e.done && (this.#e = void 0, this.#r = !0, this.#t.releaseLock()), e;\n }\n async #i(e) {\n if (this.#r)\n return {\n done: !0,\n value: e\n };\n if (this.#r = !0, !this.#n) {\n const t = this.#t.cancel(e);\n return this.#t.releaseLock(), await t, {\n done: !0,\n value: e\n };\n }\n return this.#t.releaseLock(), {\n done: !0,\n value: e\n };\n }\n}\nconst n = Symbol();\nfunction i() {\n return this[n].next();\n}\nObject.defineProperty(i, \"name\", { value: \"next\" });\nfunction o(r) {\n return this[n].return(r);\n}\nObject.defineProperty(o, \"name\", { value: \"return\" });\nconst u = Object.create(a, {\n next: {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: i\n },\n return: {\n enumerable: !0,\n configurable: !0,\n writable: !0,\n value: o\n }\n});\nfunction h({ preventCancel: r = !1 } = {}) {\n const e = this.getReader(), t = new c(\n e,\n r\n ), s = Object.create(u);\n return s[n] = t, s;\n}\nexport {\n h as asyncIterator\n};\n",
72
- "import { asyncIterator as e } from \"./asyncIterator.js\";\nimport { fromAnyIterable as a } from \"./fromAnyIterable.js\";\nexport {\n e as asyncIterator,\n a as fromAnyIterable\n};\n",
73
- "import {isReadableStream} from 'is-stream';\nimport {asyncIterator} from '@sec-ant/readable-stream/ponyfill';\n\nexport const getAsyncIterable = stream => {\n\tif (isReadableStream(stream, {checkOpen: false}) && nodeImports.on !== undefined) {\n\t\treturn getStreamIterable(stream);\n\t}\n\n\tif (typeof stream?.[Symbol.asyncIterator] === 'function') {\n\t\treturn stream;\n\t}\n\n\t// `ReadableStream[Symbol.asyncIterator]` support is missing in multiple browsers, so we ponyfill it\n\tif (toString.call(stream) === '[object ReadableStream]') {\n\t\treturn asyncIterator.call(stream);\n\t}\n\n\tthrow new TypeError('The first argument must be a Readable, a ReadableStream, or an async iterable.');\n};\n\nconst {toString} = Object.prototype;\n\n// The default iterable for Node.js streams does not allow for multiple readers at once, so we re-implement it\nconst getStreamIterable = async function * (stream) {\n\tconst controller = new AbortController();\n\tconst state = {};\n\thandleStreamEnd(stream, controller, state);\n\n\ttry {\n\t\tfor await (const [chunk] of nodeImports.on(stream, 'data', {signal: controller.signal})) {\n\t\t\tyield chunk;\n\t\t}\n\t} catch (error) {\n\t\t// Stream failure, for example due to `stream.destroy(error)`\n\t\tif (state.error !== undefined) {\n\t\t\tthrow state.error;\n\t\t// `error` event directly emitted on stream\n\t\t} else if (!controller.signal.aborted) {\n\t\t\tthrow error;\n\t\t// Otherwise, stream completed successfully\n\t\t}\n\t\t// The `finally` block also runs when the caller throws, for example due to the `maxBuffer` option\n\t} finally {\n\t\tstream.destroy();\n\t}\n};\n\nconst handleStreamEnd = async (stream, controller, state) => {\n\ttry {\n\t\tawait nodeImports.finished(stream, {\n\t\t\tcleanup: true,\n\t\t\treadable: true,\n\t\t\twritable: false,\n\t\t\terror: false,\n\t\t});\n\t} catch (error) {\n\t\tstate.error = error;\n\t} finally {\n\t\tcontroller.abort();\n\t}\n};\n\n// Loaded by the Node entrypoint, but not by the browser one.\n// This prevents using dynamic imports.\nexport const nodeImports = {};\n",
74
- "import {getAsyncIterable} from './stream.js';\n\nexport const getStreamContents = async (stream, {init, convertChunk, getSize, truncateChunk, addChunk, getFinalChunk, finalize}, {maxBuffer = Number.POSITIVE_INFINITY} = {}) => {\n\tconst asyncIterable = getAsyncIterable(stream);\n\n\tconst state = init();\n\tstate.length = 0;\n\n\ttry {\n\t\tfor await (const chunk of asyncIterable) {\n\t\t\tconst chunkType = getChunkType(chunk);\n\t\t\tconst convertedChunk = convertChunk[chunkType](chunk, state);\n\t\t\tappendChunk({\n\t\t\t\tconvertedChunk,\n\t\t\t\tstate,\n\t\t\t\tgetSize,\n\t\t\t\ttruncateChunk,\n\t\t\t\taddChunk,\n\t\t\t\tmaxBuffer,\n\t\t\t});\n\t\t}\n\n\t\tappendFinalChunk({\n\t\t\tstate,\n\t\t\tconvertChunk,\n\t\t\tgetSize,\n\t\t\ttruncateChunk,\n\t\t\taddChunk,\n\t\t\tgetFinalChunk,\n\t\t\tmaxBuffer,\n\t\t});\n\t\treturn finalize(state);\n\t} catch (error) {\n\t\tconst normalizedError = typeof error === 'object' && error !== null ? error : new Error(error);\n\t\tnormalizedError.bufferedData = finalize(state);\n\t\tthrow normalizedError;\n\t}\n};\n\nconst appendFinalChunk = ({state, getSize, truncateChunk, addChunk, getFinalChunk, maxBuffer}) => {\n\tconst convertedChunk = getFinalChunk(state);\n\tif (convertedChunk !== undefined) {\n\t\tappendChunk({\n\t\t\tconvertedChunk,\n\t\t\tstate,\n\t\t\tgetSize,\n\t\t\ttruncateChunk,\n\t\t\taddChunk,\n\t\t\tmaxBuffer,\n\t\t});\n\t}\n};\n\nconst appendChunk = ({convertedChunk, state, getSize, truncateChunk, addChunk, maxBuffer}) => {\n\tconst chunkSize = getSize(convertedChunk);\n\tconst newLength = state.length + chunkSize;\n\n\tif (newLength <= maxBuffer) {\n\t\taddNewChunk(convertedChunk, state, addChunk, newLength);\n\t\treturn;\n\t}\n\n\tconst truncatedChunk = truncateChunk(convertedChunk, maxBuffer - state.length);\n\n\tif (truncatedChunk !== undefined) {\n\t\taddNewChunk(truncatedChunk, state, addChunk, maxBuffer);\n\t}\n\n\tthrow new MaxBufferError();\n};\n\nconst addNewChunk = (convertedChunk, state, addChunk, newLength) => {\n\tstate.contents = addChunk(convertedChunk, state, newLength);\n\tstate.length = newLength;\n};\n\nconst getChunkType = chunk => {\n\tconst typeOfChunk = typeof chunk;\n\n\tif (typeOfChunk === 'string') {\n\t\treturn 'string';\n\t}\n\n\tif (typeOfChunk !== 'object' || chunk === null) {\n\t\treturn 'others';\n\t}\n\n\tif (globalThis.Buffer?.isBuffer(chunk)) {\n\t\treturn 'buffer';\n\t}\n\n\tconst prototypeName = objectToString.call(chunk);\n\n\tif (prototypeName === '[object ArrayBuffer]') {\n\t\treturn 'arrayBuffer';\n\t}\n\n\tif (prototypeName === '[object DataView]') {\n\t\treturn 'dataView';\n\t}\n\n\tif (\n\t\tNumber.isInteger(chunk.byteLength)\n\t\t&& Number.isInteger(chunk.byteOffset)\n\t\t&& objectToString.call(chunk.buffer) === '[object ArrayBuffer]'\n\t) {\n\t\treturn 'typedArray';\n\t}\n\n\treturn 'others';\n};\n\nconst {toString: objectToString} = Object.prototype;\n\nexport class MaxBufferError extends Error {\n\tname = 'MaxBufferError';\n\n\tconstructor() {\n\t\tsuper('maxBuffer exceeded');\n\t}\n}\n",
75
- "export const identity = value => value;\n\nexport const noop = () => undefined;\n\nexport const getContentsProperty = ({contents}) => contents;\n\nexport const throwObjectStream = chunk => {\n\tthrow new Error(`Streams in object mode are not supported: ${String(chunk)}`);\n};\n\nexport const getLengthProperty = convertedChunk => convertedChunk.length;\n",
76
- "import {getStreamContents} from './contents.js';\nimport {identity, noop, getContentsProperty} from './utils.js';\n\nexport async function getStreamAsArray(stream, options) {\n\treturn getStreamContents(stream, arrayMethods, options);\n}\n\nconst initArray = () => ({contents: []});\n\nconst increment = () => 1;\n\nconst addArrayChunk = (convertedChunk, {contents}) => {\n\tcontents.push(convertedChunk);\n\treturn contents;\n};\n\nconst arrayMethods = {\n\tinit: initArray,\n\tconvertChunk: {\n\t\tstring: identity,\n\t\tbuffer: identity,\n\t\tarrayBuffer: identity,\n\t\tdataView: identity,\n\t\ttypedArray: identity,\n\t\tothers: identity,\n\t},\n\tgetSize: increment,\n\ttruncateChunk: noop,\n\taddChunk: addArrayChunk,\n\tgetFinalChunk: noop,\n\tfinalize: getContentsProperty,\n};\n",
77
- "import {getStreamContents} from './contents.js';\nimport {noop, throwObjectStream, getLengthProperty} from './utils.js';\n\nexport async function getStreamAsArrayBuffer(stream, options) {\n\treturn getStreamContents(stream, arrayBufferMethods, options);\n}\n\nconst initArrayBuffer = () => ({contents: new ArrayBuffer(0)});\n\nconst useTextEncoder = chunk => textEncoder.encode(chunk);\nconst textEncoder = new TextEncoder();\n\nconst useUint8Array = chunk => new Uint8Array(chunk);\n\nconst useUint8ArrayWithOffset = chunk => new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength);\n\nconst truncateArrayBufferChunk = (convertedChunk, chunkSize) => convertedChunk.slice(0, chunkSize);\n\n// `contents` is an increasingly growing `Uint8Array`.\nconst addArrayBufferChunk = (convertedChunk, {contents, length: previousLength}, length) => {\n\tconst newContents = hasArrayBufferResize() ? resizeArrayBuffer(contents, length) : resizeArrayBufferSlow(contents, length);\n\tnew Uint8Array(newContents).set(convertedChunk, previousLength);\n\treturn newContents;\n};\n\n// Without `ArrayBuffer.resize()`, `contents` size is always a power of 2.\n// This means its last bytes are zeroes (not stream data), which need to be\n// trimmed at the end with `ArrayBuffer.slice()`.\nconst resizeArrayBufferSlow = (contents, length) => {\n\tif (length <= contents.byteLength) {\n\t\treturn contents;\n\t}\n\n\tconst arrayBuffer = new ArrayBuffer(getNewContentsLength(length));\n\tnew Uint8Array(arrayBuffer).set(new Uint8Array(contents), 0);\n\treturn arrayBuffer;\n};\n\n// With `ArrayBuffer.resize()`, `contents` size matches exactly the size of\n// the stream data. It does not include extraneous zeroes to trim at the end.\n// The underlying `ArrayBuffer` does allocate a number of bytes that is a power\n// of 2, but those bytes are only visible after calling `ArrayBuffer.resize()`.\nconst resizeArrayBuffer = (contents, length) => {\n\tif (length <= contents.maxByteLength) {\n\t\tcontents.resize(length);\n\t\treturn contents;\n\t}\n\n\tconst arrayBuffer = new ArrayBuffer(length, {maxByteLength: getNewContentsLength(length)});\n\tnew Uint8Array(arrayBuffer).set(new Uint8Array(contents), 0);\n\treturn arrayBuffer;\n};\n\n// Retrieve the closest `length` that is both >= and a power of 2\nconst getNewContentsLength = length => SCALE_FACTOR ** Math.ceil(Math.log(length) / Math.log(SCALE_FACTOR));\n\nconst SCALE_FACTOR = 2;\n\nconst finalizeArrayBuffer = ({contents, length}) => hasArrayBufferResize() ? contents : contents.slice(0, length);\n\n// `ArrayBuffer.slice()` is slow. When `ArrayBuffer.resize()` is available\n// (Node >=20.0.0, Safari >=16.4 and Chrome), we can use it instead.\n// eslint-disable-next-line no-warning-comments\n// TODO: remove after dropping support for Node 20.\n// eslint-disable-next-line no-warning-comments\n// TODO: use `ArrayBuffer.transferToFixedLength()` instead once it is available\nconst hasArrayBufferResize = () => 'resize' in ArrayBuffer.prototype;\n\nconst arrayBufferMethods = {\n\tinit: initArrayBuffer,\n\tconvertChunk: {\n\t\tstring: useTextEncoder,\n\t\tbuffer: useUint8Array,\n\t\tarrayBuffer: useUint8Array,\n\t\tdataView: useUint8ArrayWithOffset,\n\t\ttypedArray: useUint8ArrayWithOffset,\n\t\tothers: throwObjectStream,\n\t},\n\tgetSize: getLengthProperty,\n\ttruncateChunk: truncateArrayBufferChunk,\n\taddChunk: addArrayBufferChunk,\n\tgetFinalChunk: noop,\n\tfinalize: finalizeArrayBuffer,\n};\n",
78
- "import {getStreamContents} from './contents.js';\nimport {\n\tidentity,\n\tgetContentsProperty,\n\tthrowObjectStream,\n\tgetLengthProperty,\n} from './utils.js';\n\nexport async function getStreamAsString(stream, options) {\n\treturn getStreamContents(stream, stringMethods, options);\n}\n\nconst initString = () => ({contents: '', textDecoder: new TextDecoder()});\n\nconst useTextDecoder = (chunk, {textDecoder}) => textDecoder.decode(chunk, {stream: true});\n\nconst addStringChunk = (convertedChunk, {contents}) => contents + convertedChunk;\n\nconst truncateStringChunk = (convertedChunk, chunkSize) => convertedChunk.slice(0, chunkSize);\n\nconst getFinalStringChunk = ({textDecoder}) => {\n\tconst finalChunk = textDecoder.decode();\n\treturn finalChunk === '' ? undefined : finalChunk;\n};\n\nconst stringMethods = {\n\tinit: initString,\n\tconvertChunk: {\n\t\tstring: identity,\n\t\tbuffer: useTextDecoder,\n\t\tarrayBuffer: useTextDecoder,\n\t\tdataView: useTextDecoder,\n\t\ttypedArray: useTextDecoder,\n\t\tothers: throwObjectStream,\n\t},\n\tgetSize: getLengthProperty,\n\ttruncateChunk: truncateStringChunk,\n\taddChunk: addStringChunk,\n\tgetFinalChunk: getFinalStringChunk,\n\tfinalize: getContentsProperty,\n};\n",
79
- "export {getStreamAsArray} from './array.js';\nexport {getStreamAsArrayBuffer} from './array-buffer.js';\nexport {getStreamAsBuffer} from './buffer.js';\nexport {getStreamAsString as default} from './string.js';\nexport {MaxBufferError} from './contents.js';\n",
80
- "import {on} from 'node:events';\nimport {finished} from 'node:stream/promises';\nimport {nodeImports} from './stream.js';\n\nObject.assign(nodeImports, {on, finished});\n\nexport {\n\tdefault,\n\tgetStreamAsArray,\n\tgetStreamAsArrayBuffer,\n\tgetStreamAsBuffer,\n\tMaxBufferError,\n} from './exports.js';\n",
81
- "import {MaxBufferError} from 'get-stream';\nimport {getStreamName} from '../utils/standard-stream.js';\nimport {getFdSpecificValue} from '../arguments/specific.js';\n\n// When the `maxBuffer` option is hit, a MaxBufferError is thrown.\n// The stream is aborted, then specific information is kept for the error message.\nexport const handleMaxBuffer = ({error, stream, readableObjectMode, lines, encoding, fdNumber}) => {\n\tif (!(error instanceof MaxBufferError)) {\n\t\tthrow error;\n\t}\n\n\tif (fdNumber === 'all') {\n\t\treturn error;\n\t}\n\n\tconst unit = getMaxBufferUnit(readableObjectMode, lines, encoding);\n\terror.maxBufferInfo = {fdNumber, unit};\n\tstream.destroy();\n\tthrow error;\n};\n\nconst getMaxBufferUnit = (readableObjectMode, lines, encoding) => {\n\tif (readableObjectMode) {\n\t\treturn 'objects';\n\t}\n\n\tif (lines) {\n\t\treturn 'lines';\n\t}\n\n\tif (encoding === 'buffer') {\n\t\treturn 'bytes';\n\t}\n\n\treturn 'characters';\n};\n\n// Check the `maxBuffer` option with `result.ipcOutput`\nexport const checkIpcMaxBuffer = (subprocess, ipcOutput, maxBuffer) => {\n\tif (ipcOutput.length !== maxBuffer) {\n\t\treturn;\n\t}\n\n\tconst error = new MaxBufferError();\n\terror.maxBufferInfo = {fdNumber: 'ipc'};\n\tthrow error;\n};\n\n// Error message when `maxBuffer` is hit\nexport const getMaxBufferMessage = (error, maxBuffer) => {\n\tconst {streamName, threshold, unit} = getMaxBufferInfo(error, maxBuffer);\n\treturn `Command's ${streamName} was larger than ${threshold} ${unit}`;\n};\n\nconst getMaxBufferInfo = (error, maxBuffer) => {\n\tif (error?.maxBufferInfo === undefined) {\n\t\treturn {streamName: 'output', threshold: maxBuffer[1], unit: 'bytes'};\n\t}\n\n\tconst {maxBufferInfo: {fdNumber, unit}} = error;\n\tdelete error.maxBufferInfo;\n\n\tconst threshold = getFdSpecificValue(maxBuffer, fdNumber);\n\tif (fdNumber === 'ipc') {\n\t\treturn {streamName: 'IPC output', threshold, unit: 'messages'};\n\t}\n\n\treturn {streamName: getStreamName(fdNumber), threshold, unit};\n};\n\n// The only way to apply `maxBuffer` with `spawnSync()` is to use the native `maxBuffer` option Node.js provides.\n// However, this has multiple limitations, and cannot behave the exact same way as the async behavior.\n// When the `maxBuffer` is hit, a `ENOBUFS` error is thrown.\nexport const isMaxBufferSync = (resultError, output, maxBuffer) => resultError?.code === 'ENOBUFS'\n\t&& output !== null\n\t&& output.some(result => result !== null && result.length > getMaxBufferSync(maxBuffer));\n\n// When `maxBuffer` is hit, ensure the result is truncated\nexport const truncateMaxBufferSync = (result, isMaxBuffer, maxBuffer) => {\n\tif (!isMaxBuffer) {\n\t\treturn result;\n\t}\n\n\tconst maxBufferValue = getMaxBufferSync(maxBuffer);\n\treturn result.length > maxBufferValue ? result.slice(0, maxBufferValue) : result;\n};\n\n// `spawnSync()` does not allow differentiating `maxBuffer` per file descriptor, so we always use `stdout`\nexport const getMaxBufferSync = ([, stdoutMaxBuffer]) => stdoutMaxBuffer;\n",
82
- "import {inspect} from 'node:util';\nimport stripFinalNewline from 'strip-final-newline';\nimport {isUint8Array, uint8ArrayToString} from '../utils/uint-array.js';\nimport {fixCwdError} from '../arguments/cwd.js';\nimport {escapeLines} from '../arguments/escape.js';\nimport {getMaxBufferMessage} from '../io/max-buffer.js';\nimport {getSignalDescription} from '../terminate/signal.js';\nimport {DiscardedError, isExecaError} from './final-error.js';\n\n// Computes `error.message`, `error.shortMessage` and `error.originalMessage`\nexport const createMessages = ({\n\tstdio,\n\tall,\n\tipcOutput,\n\toriginalError,\n\tsignal,\n\tsignalDescription,\n\texitCode,\n\tescapedCommand,\n\ttimedOut,\n\tisCanceled,\n\tisGracefullyCanceled,\n\tisMaxBuffer,\n\tisForcefullyTerminated,\n\tforceKillAfterDelay,\n\tkillSignal,\n\tmaxBuffer,\n\ttimeout,\n\tcwd,\n}) => {\n\tconst errorCode = originalError?.code;\n\tconst prefix = getErrorPrefix({\n\t\toriginalError,\n\t\ttimedOut,\n\t\ttimeout,\n\t\tisMaxBuffer,\n\t\tmaxBuffer,\n\t\terrorCode,\n\t\tsignal,\n\t\tsignalDescription,\n\t\texitCode,\n\t\tisCanceled,\n\t\tisGracefullyCanceled,\n\t\tisForcefullyTerminated,\n\t\tforceKillAfterDelay,\n\t\tkillSignal,\n\t});\n\tconst originalMessage = getOriginalMessage(originalError, cwd);\n\tconst suffix = originalMessage === undefined ? '' : `\\n${originalMessage}`;\n\tconst shortMessage = `${prefix}: ${escapedCommand}${suffix}`;\n\tconst messageStdio = all === undefined ? [stdio[2], stdio[1]] : [all];\n\tconst message = [\n\t\tshortMessage,\n\t\t...messageStdio,\n\t\t...stdio.slice(3),\n\t\tipcOutput.map(ipcMessage => serializeIpcMessage(ipcMessage)).join('\\n'),\n\t]\n\t\t.map(messagePart => escapeLines(stripFinalNewline(serializeMessagePart(messagePart))))\n\t\t.filter(Boolean)\n\t\t.join('\\n\\n');\n\treturn {originalMessage, shortMessage, message};\n};\n\nconst getErrorPrefix = ({\n\toriginalError,\n\ttimedOut,\n\ttimeout,\n\tisMaxBuffer,\n\tmaxBuffer,\n\terrorCode,\n\tsignal,\n\tsignalDescription,\n\texitCode,\n\tisCanceled,\n\tisGracefullyCanceled,\n\tisForcefullyTerminated,\n\tforceKillAfterDelay,\n\tkillSignal,\n}) => {\n\tconst forcefulSuffix = getForcefulSuffix(isForcefullyTerminated, forceKillAfterDelay);\n\n\tif (timedOut) {\n\t\treturn `Command timed out after ${timeout} milliseconds${forcefulSuffix}`;\n\t}\n\n\tif (isGracefullyCanceled) {\n\t\tif (signal === undefined) {\n\t\t\treturn `Command was gracefully canceled with exit code ${exitCode}`;\n\t\t}\n\n\t\treturn isForcefullyTerminated\n\t\t\t? `Command was gracefully canceled${forcefulSuffix}`\n\t\t\t: `Command was gracefully canceled with ${signal} (${signalDescription})`;\n\t}\n\n\tif (isCanceled) {\n\t\treturn `Command was canceled${forcefulSuffix}`;\n\t}\n\n\tif (isMaxBuffer) {\n\t\treturn `${getMaxBufferMessage(originalError, maxBuffer)}${forcefulSuffix}`;\n\t}\n\n\tif (errorCode !== undefined) {\n\t\treturn `Command failed with ${errorCode}${forcefulSuffix}`;\n\t}\n\n\tif (isForcefullyTerminated) {\n\t\treturn `Command was killed with ${killSignal} (${getSignalDescription(killSignal)})${forcefulSuffix}`;\n\t}\n\n\tif (signal !== undefined) {\n\t\treturn `Command was killed with ${signal} (${signalDescription})`;\n\t}\n\n\tif (exitCode !== undefined) {\n\t\treturn `Command failed with exit code ${exitCode}`;\n\t}\n\n\treturn 'Command failed';\n};\n\nconst getForcefulSuffix = (isForcefullyTerminated, forceKillAfterDelay) => isForcefullyTerminated\n\t? ` and was forcefully terminated after ${forceKillAfterDelay} milliseconds`\n\t: '';\n\nconst getOriginalMessage = (originalError, cwd) => {\n\tif (originalError instanceof DiscardedError) {\n\t\treturn;\n\t}\n\n\tconst originalMessage = isExecaError(originalError)\n\t\t? originalError.originalMessage\n\t\t: String(originalError?.message ?? originalError);\n\tconst escapedOriginalMessage = escapeLines(fixCwdError(originalMessage, cwd));\n\treturn escapedOriginalMessage === '' ? undefined : escapedOriginalMessage;\n};\n\nconst serializeIpcMessage = ipcMessage => typeof ipcMessage === 'string'\n\t? ipcMessage\n\t: inspect(ipcMessage);\n\nconst serializeMessagePart = messagePart => Array.isArray(messagePart)\n\t? messagePart.map(messageItem => stripFinalNewline(serializeMessageItem(messageItem))).filter(Boolean).join('\\n')\n\t: serializeMessageItem(messagePart);\n\nconst serializeMessageItem = messageItem => {\n\tif (typeof messageItem === 'string') {\n\t\treturn messageItem;\n\t}\n\n\tif (isUint8Array(messageItem)) {\n\t\treturn uint8ArrayToString(messageItem);\n\t}\n\n\treturn '';\n};\n",
83
- "import {getSignalDescription} from '../terminate/signal.js';\nimport {getDurationMs} from './duration.js';\nimport {getFinalError} from './final-error.js';\nimport {createMessages} from './message.js';\n\n// Object returned on subprocess success\nexport const makeSuccessResult = ({\n\tcommand,\n\tescapedCommand,\n\tstdio,\n\tall,\n\tipcOutput,\n\toptions: {cwd},\n\tstartTime,\n}) => omitUndefinedProperties({\n\tcommand,\n\tescapedCommand,\n\tcwd,\n\tdurationMs: getDurationMs(startTime),\n\tfailed: false,\n\ttimedOut: false,\n\tisCanceled: false,\n\tisGracefullyCanceled: false,\n\tisTerminated: false,\n\tisMaxBuffer: false,\n\tisForcefullyTerminated: false,\n\texitCode: 0,\n\tstdout: stdio[1],\n\tstderr: stdio[2],\n\tall,\n\tstdio,\n\tipcOutput,\n\tpipedFrom: [],\n});\n\n// Object returned on subprocess failure before spawning\nexport const makeEarlyError = ({\n\terror,\n\tcommand,\n\tescapedCommand,\n\tfileDescriptors,\n\toptions,\n\tstartTime,\n\tisSync,\n}) => makeError({\n\terror,\n\tcommand,\n\tescapedCommand,\n\tstartTime,\n\ttimedOut: false,\n\tisCanceled: false,\n\tisGracefullyCanceled: false,\n\tisMaxBuffer: false,\n\tisForcefullyTerminated: false,\n\tstdio: Array.from({length: fileDescriptors.length}),\n\tipcOutput: [],\n\toptions,\n\tisSync,\n});\n\n// Object returned on subprocess failure\nexport const makeError = ({\n\terror: originalError,\n\tcommand,\n\tescapedCommand,\n\tstartTime,\n\ttimedOut,\n\tisCanceled,\n\tisGracefullyCanceled,\n\tisMaxBuffer,\n\tisForcefullyTerminated,\n\texitCode: rawExitCode,\n\tsignal: rawSignal,\n\tstdio,\n\tall,\n\tipcOutput,\n\toptions: {\n\t\ttimeoutDuration,\n\t\ttimeout = timeoutDuration,\n\t\tforceKillAfterDelay,\n\t\tkillSignal,\n\t\tcwd,\n\t\tmaxBuffer,\n\t},\n\tisSync,\n}) => {\n\tconst {exitCode, signal, signalDescription} = normalizeExitPayload(rawExitCode, rawSignal);\n\tconst {originalMessage, shortMessage, message} = createMessages({\n\t\tstdio,\n\t\tall,\n\t\tipcOutput,\n\t\toriginalError,\n\t\tsignal,\n\t\tsignalDescription,\n\t\texitCode,\n\t\tescapedCommand,\n\t\ttimedOut,\n\t\tisCanceled,\n\t\tisGracefullyCanceled,\n\t\tisMaxBuffer,\n\t\tisForcefullyTerminated,\n\t\tforceKillAfterDelay,\n\t\tkillSignal,\n\t\tmaxBuffer,\n\t\ttimeout,\n\t\tcwd,\n\t});\n\tconst error = getFinalError(originalError, message, isSync);\n\tObject.assign(error, getErrorProperties({\n\t\terror,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstartTime,\n\t\ttimedOut,\n\t\tisCanceled,\n\t\tisGracefullyCanceled,\n\t\tisMaxBuffer,\n\t\tisForcefullyTerminated,\n\t\texitCode,\n\t\tsignal,\n\t\tsignalDescription,\n\t\tstdio,\n\t\tall,\n\t\tipcOutput,\n\t\tcwd,\n\t\toriginalMessage,\n\t\tshortMessage,\n\t}));\n\treturn error;\n};\n\nconst getErrorProperties = ({\n\terror,\n\tcommand,\n\tescapedCommand,\n\tstartTime,\n\ttimedOut,\n\tisCanceled,\n\tisGracefullyCanceled,\n\tisMaxBuffer,\n\tisForcefullyTerminated,\n\texitCode,\n\tsignal,\n\tsignalDescription,\n\tstdio,\n\tall,\n\tipcOutput,\n\tcwd,\n\toriginalMessage,\n\tshortMessage,\n}) => omitUndefinedProperties({\n\tshortMessage,\n\toriginalMessage,\n\tcommand,\n\tescapedCommand,\n\tcwd,\n\tdurationMs: getDurationMs(startTime),\n\tfailed: true,\n\ttimedOut,\n\tisCanceled,\n\tisGracefullyCanceled,\n\tisTerminated: signal !== undefined,\n\tisMaxBuffer,\n\tisForcefullyTerminated,\n\texitCode,\n\tsignal,\n\tsignalDescription,\n\tcode: error.cause?.code,\n\tstdout: stdio[1],\n\tstderr: stdio[2],\n\tall,\n\tstdio,\n\tipcOutput,\n\tpipedFrom: [],\n});\n\nconst omitUndefinedProperties = result => Object.fromEntries(Object.entries(result).filter(([, value]) => value !== undefined));\n\n// `signal` and `exitCode` emitted on `subprocess.on('exit')` event can be `null`.\n// We normalize them to `undefined`\nconst normalizeExitPayload = (rawExitCode, rawSignal) => {\n\tconst exitCode = rawExitCode === null ? undefined : rawExitCode;\n\tconst signal = rawSignal === null ? undefined : rawSignal;\n\tconst signalDescription = signal === undefined ? undefined : getSignalDescription(rawSignal);\n\treturn {exitCode, signal, signalDescription};\n};\n",
84
- "const toZeroIfInfinity = value => Number.isFinite(value) ? value : 0;\n\nfunction parseNumber(milliseconds) {\n\treturn {\n\t\tdays: Math.trunc(milliseconds / 86_400_000),\n\t\thours: Math.trunc(milliseconds / 3_600_000 % 24),\n\t\tminutes: Math.trunc(milliseconds / 60_000 % 60),\n\t\tseconds: Math.trunc(milliseconds / 1000 % 60),\n\t\tmilliseconds: Math.trunc(milliseconds % 1000),\n\t\tmicroseconds: Math.trunc(toZeroIfInfinity(milliseconds * 1000) % 1000),\n\t\tnanoseconds: Math.trunc(toZeroIfInfinity(milliseconds * 1e6) % 1000),\n\t};\n}\n\nfunction parseBigint(milliseconds) {\n\treturn {\n\t\tdays: milliseconds / 86_400_000n,\n\t\thours: milliseconds / 3_600_000n % 24n,\n\t\tminutes: milliseconds / 60_000n % 60n,\n\t\tseconds: milliseconds / 1000n % 60n,\n\t\tmilliseconds: milliseconds % 1000n,\n\t\tmicroseconds: 0n,\n\t\tnanoseconds: 0n,\n\t};\n}\n\nexport default function parseMilliseconds(milliseconds) {\n\tswitch (typeof milliseconds) {\n\t\tcase 'number': {\n\t\t\tif (Number.isFinite(milliseconds)) {\n\t\t\t\treturn parseNumber(milliseconds);\n\t\t\t}\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'bigint': {\n\t\t\treturn parseBigint(milliseconds);\n\t\t}\n\n\t\t// No default\n\t}\n\n\tthrow new TypeError('Expected a finite number or bigint');\n}\n",
85
- "import parseMilliseconds from 'parse-ms';\n\nconst isZero = value => value === 0 || value === 0n;\nconst pluralize = (word, count) => (count === 1 || count === 1n) ? word : `${word}s`;\n\nconst SECOND_ROUNDING_EPSILON = 0.000_000_1;\nconst ONE_DAY_IN_MILLISECONDS = 24n * 60n * 60n * 1000n;\n\nexport default function prettyMilliseconds(milliseconds, options) {\n\tconst isBigInt = typeof milliseconds === 'bigint';\n\tif (!isBigInt && !Number.isFinite(milliseconds)) {\n\t\tthrow new TypeError('Expected a finite number or bigint');\n\t}\n\n\toptions = {...options};\n\n\tconst sign = milliseconds < 0 ? '-' : '';\n\tmilliseconds = milliseconds < 0 ? -milliseconds : milliseconds; // Cannot use `Math.abs()` because of BigInt support.\n\n\tif (options.colonNotation) {\n\t\toptions.compact = false;\n\t\toptions.formatSubMilliseconds = false;\n\t\toptions.separateMilliseconds = false;\n\t\toptions.verbose = false;\n\t}\n\n\tif (options.compact) {\n\t\toptions.unitCount = 1;\n\t\toptions.secondsDecimalDigits = 0;\n\t\toptions.millisecondsDecimalDigits = 0;\n\t}\n\n\tlet result = [];\n\n\tconst floorDecimals = (value, decimalDigits) => {\n\t\tconst flooredInterimValue = Math.floor((value * (10 ** decimalDigits)) + SECOND_ROUNDING_EPSILON);\n\t\tconst flooredValue = Math.round(flooredInterimValue) / (10 ** decimalDigits);\n\t\treturn flooredValue.toFixed(decimalDigits);\n\t};\n\n\tconst add = (value, long, short, valueString) => {\n\t\tif (\n\t\t\t(result.length === 0 || !options.colonNotation)\n\t\t\t&& isZero(value)\n\t\t\t&& !(options.colonNotation && short === 'm')) {\n\t\t\treturn;\n\t\t}\n\n\t\tvalueString ??= String(value);\n\t\tif (options.colonNotation) {\n\t\t\tconst wholeDigits = valueString.includes('.') ? valueString.split('.')[0].length : valueString.length;\n\t\t\tconst minLength = result.length > 0 ? 2 : 1;\n\t\t\tvalueString = '0'.repeat(Math.max(0, minLength - wholeDigits)) + valueString;\n\t\t} else {\n\t\t\tvalueString += options.verbose ? ' ' + pluralize(long, value) : short;\n\t\t}\n\n\t\tresult.push(valueString);\n\t};\n\n\tconst parsed = parseMilliseconds(milliseconds);\n\tconst days = BigInt(parsed.days);\n\n\tif (options.hideYearAndDays) {\n\t\tadd((BigInt(days) * 24n) + BigInt(parsed.hours), 'hour', 'h');\n\t} else {\n\t\tif (options.hideYear) {\n\t\t\tadd(days, 'day', 'd');\n\t\t} else {\n\t\t\tadd(days / 365n, 'year', 'y');\n\t\t\tadd(days % 365n, 'day', 'd');\n\t\t}\n\n\t\tadd(Number(parsed.hours), 'hour', 'h');\n\t}\n\n\tadd(Number(parsed.minutes), 'minute', 'm');\n\n\tif (!options.hideSeconds) {\n\t\tif (\n\t\t\toptions.separateMilliseconds\n\t\t\t|| options.formatSubMilliseconds\n\t\t\t|| (!options.colonNotation && milliseconds < 1000)\n\t\t) {\n\t\t\tconst seconds = Number(parsed.seconds);\n\t\t\tconst milliseconds = Number(parsed.milliseconds);\n\t\t\tconst microseconds = Number(parsed.microseconds);\n\t\t\tconst nanoseconds = Number(parsed.nanoseconds);\n\n\t\t\tadd(seconds, 'second', 's');\n\n\t\t\tif (options.formatSubMilliseconds) {\n\t\t\t\tadd(milliseconds, 'millisecond', 'ms');\n\t\t\t\tadd(microseconds, 'microsecond', 'µs');\n\t\t\t\tadd(nanoseconds, 'nanosecond', 'ns');\n\t\t\t} else {\n\t\t\t\tconst millisecondsAndBelow\n\t\t\t\t\t= milliseconds\n\t\t\t\t\t+ (microseconds / 1000)\n\t\t\t\t\t+ (nanoseconds / 1e6);\n\n\t\t\t\tconst millisecondsDecimalDigits\n\t\t\t\t\t= typeof options.millisecondsDecimalDigits === 'number'\n\t\t\t\t\t\t? options.millisecondsDecimalDigits\n\t\t\t\t\t\t: 0;\n\n\t\t\t\tconst roundedMilliseconds = millisecondsAndBelow >= 1\n\t\t\t\t\t? Math.round(millisecondsAndBelow)\n\t\t\t\t\t: Math.ceil(millisecondsAndBelow);\n\n\t\t\t\tconst millisecondsString = millisecondsDecimalDigits\n\t\t\t\t\t? millisecondsAndBelow.toFixed(millisecondsDecimalDigits)\n\t\t\t\t\t: roundedMilliseconds;\n\n\t\t\t\tadd(\n\t\t\t\t\tNumber.parseFloat(millisecondsString),\n\t\t\t\t\t'millisecond',\n\t\t\t\t\t'ms',\n\t\t\t\t\tmillisecondsString,\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tconst seconds = (\n\t\t\t\t(isBigInt ? Number(milliseconds % ONE_DAY_IN_MILLISECONDS) : milliseconds)\n\t\t\t\t/ 1000\n\t\t\t) % 60;\n\t\t\tconst secondsDecimalDigits\n\t\t\t\t= typeof options.secondsDecimalDigits === 'number'\n\t\t\t\t\t? options.secondsDecimalDigits\n\t\t\t\t\t: 1;\n\t\t\tconst secondsFixed = floorDecimals(seconds, secondsDecimalDigits);\n\t\t\tconst secondsString = options.keepDecimalsOnWholeSeconds\n\t\t\t\t? secondsFixed\n\t\t\t\t: secondsFixed.replace(/\\.0+$/, '');\n\t\t\tadd(Number.parseFloat(secondsString), 'second', 's', secondsString);\n\t\t}\n\t}\n\n\tif (result.length === 0) {\n\t\treturn sign + '0' + (options.verbose ? ' milliseconds' : 'ms');\n\t}\n\n\tconst separator = options.colonNotation ? ':' : ' ';\n\tif (typeof options.unitCount === 'number') {\n\t\tresult = result.slice(0, Math.max(options.unitCount, 1));\n\t}\n\n\treturn sign + result.join(separator);\n}\n",
86
- "import {verboseLog} from './log.js';\n\n// When `verbose` is `short|full|custom`, print each command's error when it fails\nexport const logError = (result, verboseInfo) => {\n\tif (result.failed) {\n\t\tverboseLog({\n\t\t\ttype: 'error',\n\t\t\tverboseMessage: result.shortMessage,\n\t\t\tverboseInfo,\n\t\t\tresult,\n\t\t});\n\t}\n};\n",
87
- "import prettyMs from 'pretty-ms';\nimport {isVerbose} from './values.js';\nimport {verboseLog} from './log.js';\nimport {logError} from './error.js';\n\n// When `verbose` is `short|full|custom`, print each command's completion, duration and error\nexport const logResult = (result, verboseInfo) => {\n\tif (!isVerbose(verboseInfo)) {\n\t\treturn;\n\t}\n\n\tlogError(result, verboseInfo);\n\tlogDuration(result, verboseInfo);\n};\n\nconst logDuration = (result, verboseInfo) => {\n\tconst verboseMessage = `(done in ${prettyMs(result.durationMs)})`;\n\tverboseLog({\n\t\ttype: 'duration',\n\t\tverboseMessage,\n\t\tverboseInfo,\n\t\tresult,\n\t});\n};\n",
88
- "import {logResult} from '../verbose/complete.js';\n\n// Applies the `reject` option.\n// Also print the final log line with `verbose`.\nexport const handleResult = (result, verboseInfo, {reject}) => {\n\tlogResult(result, verboseInfo);\n\n\tif (result.failed && reject) {\n\t\tthrow result;\n\t}\n\n\treturn result;\n};\n",
89
- "import {isStream as isNodeStream, isDuplexStream} from 'is-stream';\nimport isPlainObj from 'is-plain-obj';\nimport {isUint8Array} from '../utils/uint-array.js';\n\n// The `stdin`/`stdout`/`stderr` option can be of many types. This detects it.\nexport const getStdioItemType = (value, optionName) => {\n\tif (isAsyncGenerator(value)) {\n\t\treturn 'asyncGenerator';\n\t}\n\n\tif (isSyncGenerator(value)) {\n\t\treturn 'generator';\n\t}\n\n\tif (isUrl(value)) {\n\t\treturn 'fileUrl';\n\t}\n\n\tif (isFilePathObject(value)) {\n\t\treturn 'filePath';\n\t}\n\n\tif (isWebStream(value)) {\n\t\treturn 'webStream';\n\t}\n\n\tif (isNodeStream(value, {checkOpen: false})) {\n\t\treturn 'native';\n\t}\n\n\tif (isUint8Array(value)) {\n\t\treturn 'uint8Array';\n\t}\n\n\tif (isAsyncIterableObject(value)) {\n\t\treturn 'asyncIterable';\n\t}\n\n\tif (isIterableObject(value)) {\n\t\treturn 'iterable';\n\t}\n\n\tif (isTransformStream(value)) {\n\t\treturn getTransformStreamType({transform: value}, optionName);\n\t}\n\n\tif (isTransformOptions(value)) {\n\t\treturn getTransformObjectType(value, optionName);\n\t}\n\n\treturn 'native';\n};\n\nconst getTransformObjectType = (value, optionName) => {\n\tif (isDuplexStream(value.transform, {checkOpen: false})) {\n\t\treturn getDuplexType(value, optionName);\n\t}\n\n\tif (isTransformStream(value.transform)) {\n\t\treturn getTransformStreamType(value, optionName);\n\t}\n\n\treturn getGeneratorObjectType(value, optionName);\n};\n\nconst getDuplexType = (value, optionName) => {\n\tvalidateNonGeneratorType(value, optionName, 'Duplex stream');\n\treturn 'duplex';\n};\n\nconst getTransformStreamType = (value, optionName) => {\n\tvalidateNonGeneratorType(value, optionName, 'web TransformStream');\n\treturn 'webTransform';\n};\n\nconst validateNonGeneratorType = ({final, binary, objectMode}, optionName, typeName) => {\n\tcheckUndefinedOption(final, `${optionName}.final`, typeName);\n\tcheckUndefinedOption(binary, `${optionName}.binary`, typeName);\n\tcheckBooleanOption(objectMode, `${optionName}.objectMode`);\n};\n\nconst checkUndefinedOption = (value, optionName, typeName) => {\n\tif (value !== undefined) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option can only be defined when using a generator, not a ${typeName}.`);\n\t}\n};\n\nconst getGeneratorObjectType = ({transform, final, binary, objectMode}, optionName) => {\n\tif (transform !== undefined && !isGenerator(transform)) {\n\t\tthrow new TypeError(`The \\`${optionName}.transform\\` option must be a generator, a Duplex stream or a web TransformStream.`);\n\t}\n\n\tif (isDuplexStream(final, {checkOpen: false})) {\n\t\tthrow new TypeError(`The \\`${optionName}.final\\` option must not be a Duplex stream.`);\n\t}\n\n\tif (isTransformStream(final)) {\n\t\tthrow new TypeError(`The \\`${optionName}.final\\` option must not be a web TransformStream.`);\n\t}\n\n\tif (final !== undefined && !isGenerator(final)) {\n\t\tthrow new TypeError(`The \\`${optionName}.final\\` option must be a generator.`);\n\t}\n\n\tcheckBooleanOption(binary, `${optionName}.binary`);\n\tcheckBooleanOption(objectMode, `${optionName}.objectMode`);\n\n\treturn isAsyncGenerator(transform) || isAsyncGenerator(final) ? 'asyncGenerator' : 'generator';\n};\n\nconst checkBooleanOption = (value, optionName) => {\n\tif (value !== undefined && typeof value !== 'boolean') {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option must use a boolean.`);\n\t}\n};\n\nconst isGenerator = value => isAsyncGenerator(value) || isSyncGenerator(value);\nexport const isAsyncGenerator = value => Object.prototype.toString.call(value) === '[object AsyncGeneratorFunction]';\nconst isSyncGenerator = value => Object.prototype.toString.call(value) === '[object GeneratorFunction]';\nconst isTransformOptions = value => isPlainObj(value)\n\t&& (value.transform !== undefined || value.final !== undefined);\n\nexport const isUrl = value => Object.prototype.toString.call(value) === '[object URL]';\nexport const isRegularUrl = value => isUrl(value) && value.protocol !== 'file:';\n\nconst isFilePathObject = value => isPlainObj(value)\n\t&& Object.keys(value).length > 0\n\t&& Object.keys(value).every(key => FILE_PATH_KEYS.has(key))\n\t&& isFilePathString(value.file);\nconst FILE_PATH_KEYS = new Set(['file', 'append']);\nexport const isFilePathString = file => typeof file === 'string';\n\nexport const isUnknownStdioString = (type, value) => type === 'native'\n\t&& typeof value === 'string'\n\t&& !KNOWN_STDIO_STRINGS.has(value);\nconst KNOWN_STDIO_STRINGS = new Set(['ipc', 'ignore', 'inherit', 'overlapped', 'pipe']);\n\nconst isReadableStream = value => Object.prototype.toString.call(value) === '[object ReadableStream]';\nexport const isWritableStream = value => Object.prototype.toString.call(value) === '[object WritableStream]';\nconst isWebStream = value => isReadableStream(value) || isWritableStream(value);\nconst isTransformStream = value => isReadableStream(value?.readable) && isWritableStream(value?.writable);\n\nconst isAsyncIterableObject = value => isObject(value) && typeof value[Symbol.asyncIterator] === 'function';\nconst isIterableObject = value => isObject(value) && typeof value[Symbol.iterator] === 'function';\nconst isObject = value => typeof value === 'object' && value !== null;\n\n// Types which modify `subprocess.std*`\nexport const TRANSFORM_TYPES = new Set(['generator', 'asyncGenerator', 'duplex', 'webTransform']);\n// Types which write to a file or a file descriptor\nexport const FILE_TYPES = new Set(['fileUrl', 'filePath', 'fileNumber']);\n// When two file descriptors of this type share the same target, we need to do some special logic\nexport const SPECIAL_DUPLICATE_TYPES_SYNC = new Set(['fileUrl', 'filePath']);\nexport const SPECIAL_DUPLICATE_TYPES = new Set([...SPECIAL_DUPLICATE_TYPES_SYNC, 'webStream', 'nodeStream']);\n// Do not allow two file descriptors of this type sharing the same target\nexport const FORBID_DUPLICATE_TYPES = new Set(['webTransform', 'duplex']);\n\n// Convert types to human-friendly strings for error messages\nexport const TYPE_TO_MESSAGE = {\n\tgenerator: 'a generator',\n\tasyncGenerator: 'an async generator',\n\tfileUrl: 'a file URL',\n\tfilePath: 'a file path string',\n\tfileNumber: 'a file descriptor number',\n\twebStream: 'a web stream',\n\tnodeStream: 'a Node.js stream',\n\twebTransform: 'a web TransformStream',\n\tduplex: 'a Duplex stream',\n\tnative: 'any value',\n\titerable: 'an iterable',\n\tasyncIterable: 'an async iterable',\n\tstring: 'a string',\n\tuint8Array: 'a Uint8Array',\n};\n",
90
- "import {TRANSFORM_TYPES} from '../stdio/type.js';\n\n/*\nRetrieve the `objectMode`s of a single transform.\n`objectMode` determines the return value's type, i.e. the `readableObjectMode`.\nThe chunk argument's type is based on the previous generator's return value, i.e. the `writableObjectMode` is based on the previous `readableObjectMode`.\nThe last input's generator is read by `subprocess.stdin` which:\n- should not be in `objectMode` for performance reasons.\n- can only be strings, Buffers and Uint8Arrays.\nTherefore its `readableObjectMode` must be `false`.\nThe same applies to the first output's generator's `writableObjectMode`.\n*/\nexport const getTransformObjectModes = (objectMode, index, newTransforms, direction) => direction === 'output'\n\t? getOutputObjectModes(objectMode, index, newTransforms)\n\t: getInputObjectModes(objectMode, index, newTransforms);\n\nconst getOutputObjectModes = (objectMode, index, newTransforms) => {\n\tconst writableObjectMode = index !== 0 && newTransforms[index - 1].value.readableObjectMode;\n\tconst readableObjectMode = objectMode ?? writableObjectMode;\n\treturn {writableObjectMode, readableObjectMode};\n};\n\nconst getInputObjectModes = (objectMode, index, newTransforms) => {\n\tconst writableObjectMode = index === 0\n\t\t? objectMode === true\n\t\t: newTransforms[index - 1].value.readableObjectMode;\n\tconst readableObjectMode = index !== newTransforms.length - 1 && (objectMode ?? writableObjectMode);\n\treturn {writableObjectMode, readableObjectMode};\n};\n\n// Retrieve the `objectMode` of a file descriptor, e.g. `stdout` or `stderr`\nexport const getFdObjectMode = (stdioItems, direction) => {\n\tconst lastTransform = stdioItems.findLast(({type}) => TRANSFORM_TYPES.has(type));\n\tif (lastTransform === undefined) {\n\t\treturn false;\n\t}\n\n\treturn direction === 'input'\n\t\t? lastTransform.value.writableObjectMode\n\t\t: lastTransform.value.readableObjectMode;\n};\n",
91
- "import isPlainObj from 'is-plain-obj';\nimport {BINARY_ENCODINGS} from '../arguments/encoding-option.js';\nimport {TRANSFORM_TYPES} from '../stdio/type.js';\nimport {getTransformObjectModes} from './object-mode.js';\n\n// Transforms generators/duplex/TransformStream can have multiple shapes.\n// This normalizes it and applies default values.\nexport const normalizeTransforms = (stdioItems, optionName, direction, options) => [\n\t...stdioItems.filter(({type}) => !TRANSFORM_TYPES.has(type)),\n\t...getTransforms(stdioItems, optionName, direction, options),\n];\n\nconst getTransforms = (stdioItems, optionName, direction, {encoding}) => {\n\tconst transforms = stdioItems.filter(({type}) => TRANSFORM_TYPES.has(type));\n\tconst newTransforms = Array.from({length: transforms.length});\n\n\tfor (const [index, stdioItem] of Object.entries(transforms)) {\n\t\tnewTransforms[index] = normalizeTransform({\n\t\t\tstdioItem,\n\t\t\tindex: Number(index),\n\t\t\tnewTransforms,\n\t\t\toptionName,\n\t\t\tdirection,\n\t\t\tencoding,\n\t\t});\n\t}\n\n\treturn sortTransforms(newTransforms, direction);\n};\n\nconst normalizeTransform = ({stdioItem, stdioItem: {type}, index, newTransforms, optionName, direction, encoding}) => {\n\tif (type === 'duplex') {\n\t\treturn normalizeDuplex({stdioItem, optionName});\n\t}\n\n\tif (type === 'webTransform') {\n\t\treturn normalizeTransformStream({\n\t\t\tstdioItem,\n\t\t\tindex,\n\t\t\tnewTransforms,\n\t\t\tdirection,\n\t\t});\n\t}\n\n\treturn normalizeGenerator({\n\t\tstdioItem,\n\t\tindex,\n\t\tnewTransforms,\n\t\tdirection,\n\t\tencoding,\n\t});\n};\n\nconst normalizeDuplex = ({\n\tstdioItem,\n\tstdioItem: {\n\t\tvalue: {\n\t\t\ttransform,\n\t\t\ttransform: {writableObjectMode, readableObjectMode},\n\t\t\tobjectMode = readableObjectMode,\n\t\t},\n\t},\n\toptionName,\n}) => {\n\tif (objectMode && !readableObjectMode) {\n\t\tthrow new TypeError(`The \\`${optionName}.objectMode\\` option can only be \\`true\\` if \\`new Duplex({objectMode: true})\\` is used.`);\n\t}\n\n\tif (!objectMode && readableObjectMode) {\n\t\tthrow new TypeError(`The \\`${optionName}.objectMode\\` option cannot be \\`false\\` if \\`new Duplex({objectMode: true})\\` is used.`);\n\t}\n\n\treturn {\n\t\t...stdioItem,\n\t\tvalue: {transform, writableObjectMode, readableObjectMode},\n\t};\n};\n\nconst normalizeTransformStream = ({stdioItem, stdioItem: {value}, index, newTransforms, direction}) => {\n\tconst {transform, objectMode} = isPlainObj(value) ? value : {transform: value};\n\tconst {writableObjectMode, readableObjectMode} = getTransformObjectModes(objectMode, index, newTransforms, direction);\n\treturn ({\n\t\t...stdioItem,\n\t\tvalue: {transform, writableObjectMode, readableObjectMode},\n\t});\n};\n\nconst normalizeGenerator = ({stdioItem, stdioItem: {value}, index, newTransforms, direction, encoding}) => {\n\tconst {\n\t\ttransform,\n\t\tfinal,\n\t\tbinary: binaryOption = false,\n\t\tpreserveNewlines = false,\n\t\tobjectMode,\n\t} = isPlainObj(value) ? value : {transform: value};\n\tconst binary = binaryOption || BINARY_ENCODINGS.has(encoding);\n\tconst {writableObjectMode, readableObjectMode} = getTransformObjectModes(objectMode, index, newTransforms, direction);\n\treturn {\n\t\t...stdioItem,\n\t\tvalue: {\n\t\t\ttransform,\n\t\t\tfinal,\n\t\t\tbinary,\n\t\t\tpreserveNewlines,\n\t\t\twritableObjectMode,\n\t\t\treadableObjectMode,\n\t\t},\n\t};\n};\n\nconst sortTransforms = (newTransforms, direction) => direction === 'input' ? newTransforms.reverse() : newTransforms;\n",
92
- "import process from 'node:process';\nimport {\n\tisStream as isNodeStream,\n\tisReadableStream as isNodeReadableStream,\n\tisWritableStream as isNodeWritableStream,\n} from 'is-stream';\nimport {isWritableStream} from './type.js';\n\n// For `stdio[fdNumber]` beyond stdin/stdout/stderr, we need to guess whether the value passed is intended for inputs or outputs.\n// This allows us to know whether to pipe _into_ or _from_ the stream.\n// When `stdio[fdNumber]` is a single value, this guess is fairly straightforward.\n// However, when it is an array instead, we also need to make sure the different values are not incompatible with each other.\nexport const getStreamDirection = (stdioItems, fdNumber, optionName) => {\n\tconst directions = stdioItems.map(stdioItem => getStdioItemDirection(stdioItem, fdNumber));\n\n\tif (directions.includes('input') && directions.includes('output')) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option must not be an array of both readable and writable values.`);\n\t}\n\n\treturn directions.find(Boolean) ?? DEFAULT_DIRECTION;\n};\n\nconst getStdioItemDirection = ({type, value}, fdNumber) => KNOWN_DIRECTIONS[fdNumber] ?? guessStreamDirection[type](value);\n\n// `stdin`/`stdout`/`stderr` have a known direction\nconst KNOWN_DIRECTIONS = ['input', 'output', 'output'];\n\nconst anyDirection = () => undefined;\nconst alwaysInput = () => 'input';\n\n// `string` can only be added through the `input` option, i.e. does not need to be handled here\nconst guessStreamDirection = {\n\tgenerator: anyDirection,\n\tasyncGenerator: anyDirection,\n\tfileUrl: anyDirection,\n\tfilePath: anyDirection,\n\titerable: alwaysInput,\n\tasyncIterable: alwaysInput,\n\tuint8Array: alwaysInput,\n\twebStream: value => isWritableStream(value) ? 'output' : 'input',\n\tnodeStream(value) {\n\t\tif (!isNodeReadableStream(value, {checkOpen: false})) {\n\t\t\treturn 'output';\n\t\t}\n\n\t\treturn isNodeWritableStream(value, {checkOpen: false}) ? undefined : 'input';\n\t},\n\twebTransform: anyDirection,\n\tduplex: anyDirection,\n\tnative(value) {\n\t\tconst standardStreamDirection = getStandardStreamDirection(value);\n\t\tif (standardStreamDirection !== undefined) {\n\t\t\treturn standardStreamDirection;\n\t\t}\n\n\t\tif (isNodeStream(value, {checkOpen: false})) {\n\t\t\treturn guessStreamDirection.nodeStream(value);\n\t\t}\n\t},\n};\n\nconst getStandardStreamDirection = value => {\n\tif ([0, process.stdin].includes(value)) {\n\t\treturn 'input';\n\t}\n\n\tif ([1, 2, process.stdout, process.stderr].includes(value)) {\n\t\treturn 'output';\n\t}\n};\n\n// When ambiguous, we initially keep the direction as `undefined`.\n// This allows arrays of `stdio` values to resolve the ambiguity.\n// For example, `stdio[3]: DuplexStream` is ambiguous, but `stdio[3]: [DuplexStream, WritableStream]` is not.\n// When the ambiguity remains, we default to `output` since it is the most common use case for additional file descriptors.\nconst DEFAULT_DIRECTION = 'output';\n",
93
- "// The `ipc` option adds an `ipc` item to the `stdio` option\nexport const normalizeIpcStdioArray = (stdioArray, ipc) => ipc && !stdioArray.includes('ipc')\n\t? [...stdioArray, 'ipc']\n\t: stdioArray;\n",
94
- "import {STANDARD_STREAMS_ALIASES} from '../utils/standard-stream.js';\nimport {normalizeIpcStdioArray} from '../ipc/array.js';\nimport {isFullVerbose} from '../verbose/values.js';\n\n// Add support for `stdin`/`stdout`/`stderr` as an alias for `stdio`.\n// Also normalize the `stdio` option.\nexport const normalizeStdioOption = ({stdio, ipc, buffer, ...options}, verboseInfo, isSync) => {\n\tconst stdioArray = getStdioArray(stdio, options).map((stdioOption, fdNumber) => addDefaultValue(stdioOption, fdNumber));\n\treturn isSync\n\t\t? normalizeStdioSync(stdioArray, buffer, verboseInfo)\n\t\t: normalizeIpcStdioArray(stdioArray, ipc);\n};\n\nconst getStdioArray = (stdio, options) => {\n\tif (stdio === undefined) {\n\t\treturn STANDARD_STREAMS_ALIASES.map(alias => options[alias]);\n\t}\n\n\tif (hasAlias(options)) {\n\t\tthrow new Error(`It's not possible to provide \\`stdio\\` in combination with one of ${STANDARD_STREAMS_ALIASES.map(alias => `\\`${alias}\\``).join(', ')}`);\n\t}\n\n\tif (typeof stdio === 'string') {\n\t\treturn [stdio, stdio, stdio];\n\t}\n\n\tif (!Array.isArray(stdio)) {\n\t\tthrow new TypeError(`Expected \\`stdio\\` to be of type \\`string\\` or \\`Array\\`, got \\`${typeof stdio}\\``);\n\t}\n\n\tconst length = Math.max(stdio.length, STANDARD_STREAMS_ALIASES.length);\n\treturn Array.from({length}, (_, fdNumber) => stdio[fdNumber]);\n};\n\nconst hasAlias = options => STANDARD_STREAMS_ALIASES.some(alias => options[alias] !== undefined);\n\nconst addDefaultValue = (stdioOption, fdNumber) => {\n\tif (Array.isArray(stdioOption)) {\n\t\treturn stdioOption.map(item => addDefaultValue(item, fdNumber));\n\t}\n\n\tif (stdioOption === null || stdioOption === undefined) {\n\t\treturn fdNumber >= STANDARD_STREAMS_ALIASES.length ? 'ignore' : 'pipe';\n\t}\n\n\treturn stdioOption;\n};\n\n// Using `buffer: false` with synchronous methods implies `stdout`/`stderr`: `ignore`.\n// Unless the output is needed, e.g. due to `verbose: 'full'` or to redirecting to a file.\nconst normalizeStdioSync = (stdioArray, buffer, verboseInfo) => stdioArray.map((stdioOption, fdNumber) =>\n\t!buffer[fdNumber]\n\t&& fdNumber !== 0\n\t&& !isFullVerbose(verboseInfo, fdNumber)\n\t&& isOutputPipeOnly(stdioOption)\n\t\t? 'ignore'\n\t\t: stdioOption);\n\nconst isOutputPipeOnly = stdioOption => stdioOption === 'pipe'\n\t|| (Array.isArray(stdioOption) && stdioOption.every(item => item === 'pipe'));\n",
95
- "import {readFileSync} from 'node:fs';\nimport tty from 'node:tty';\nimport {isStream as isNodeStream} from 'is-stream';\nimport {STANDARD_STREAMS} from '../utils/standard-stream.js';\nimport {bufferToUint8Array} from '../utils/uint-array.js';\nimport {serializeOptionValue} from '../arguments/fd-options.js';\n\n// When we use multiple `stdio` values for the same streams, we pass 'pipe' to `child_process.spawn()`.\n// We then emulate the piping done by core Node.js.\n// To do so, we transform the following values:\n// - Node.js streams are marked as `type: nodeStream`\n// - 'inherit' becomes `process.stdin|stdout|stderr`\n// - any file descriptor integer becomes `process.stdio[fdNumber]`\n// All of the above transformations tell Execa to perform manual piping.\nexport const handleNativeStream = ({stdioItem, stdioItem: {type}, isStdioArray, fdNumber, direction, isSync}) => {\n\tif (!isStdioArray || type !== 'native') {\n\t\treturn stdioItem;\n\t}\n\n\treturn isSync\n\t\t? handleNativeStreamSync({stdioItem, fdNumber, direction})\n\t\t: handleNativeStreamAsync({stdioItem, fdNumber});\n};\n\n// Synchronous methods use a different logic.\n// 'inherit', file descriptors and process.std* are handled by readFileSync()/writeFileSync().\nconst handleNativeStreamSync = ({stdioItem, stdioItem: {value, optionName}, fdNumber, direction}) => {\n\tconst targetFd = getTargetFd({\n\t\tvalue,\n\t\toptionName,\n\t\tfdNumber,\n\t\tdirection,\n\t});\n\tif (targetFd !== undefined) {\n\t\treturn targetFd;\n\t}\n\n\tif (isNodeStream(value, {checkOpen: false})) {\n\t\tthrow new TypeError(`The \\`${optionName}: Stream\\` option cannot both be an array and include a stream with synchronous methods.`);\n\t}\n\n\treturn stdioItem;\n};\n\nconst getTargetFd = ({value, optionName, fdNumber, direction}) => {\n\tconst targetFdNumber = getTargetFdNumber(value, fdNumber);\n\tif (targetFdNumber === undefined) {\n\t\treturn;\n\t}\n\n\tif (direction === 'output') {\n\t\treturn {type: 'fileNumber', value: targetFdNumber, optionName};\n\t}\n\n\tif (tty.isatty(targetFdNumber)) {\n\t\tthrow new TypeError(`The \\`${optionName}: ${serializeOptionValue(value)}\\` option is invalid: it cannot be a TTY with synchronous methods.`);\n\t}\n\n\treturn {type: 'uint8Array', value: bufferToUint8Array(readFileSync(targetFdNumber)), optionName};\n};\n\nconst getTargetFdNumber = (value, fdNumber) => {\n\tif (value === 'inherit') {\n\t\treturn fdNumber;\n\t}\n\n\tif (typeof value === 'number') {\n\t\treturn value;\n\t}\n\n\tconst standardStreamIndex = STANDARD_STREAMS.indexOf(value);\n\tif (standardStreamIndex !== -1) {\n\t\treturn standardStreamIndex;\n\t}\n};\n\nconst handleNativeStreamAsync = ({stdioItem, stdioItem: {value, optionName}, fdNumber}) => {\n\tif (value === 'inherit') {\n\t\treturn {type: 'nodeStream', value: getStandardStream(fdNumber, value, optionName), optionName};\n\t}\n\n\tif (typeof value === 'number') {\n\t\treturn {type: 'nodeStream', value: getStandardStream(value, value, optionName), optionName};\n\t}\n\n\tif (isNodeStream(value, {checkOpen: false})) {\n\t\treturn {type: 'nodeStream', value, optionName};\n\t}\n\n\treturn stdioItem;\n};\n\n// Node.js does not allow to easily retrieve file descriptors beyond stdin/stdout/stderr as streams.\n// - `fs.createReadStream()`/`fs.createWriteStream()` with the `fd` option do not work with character devices that use blocking reads/writes (such as interactive TTYs).\n// - Using a TCP `Socket` would work but be rather complex to implement.\n// Since this is an edge case, we simply throw an error message.\n// See https://github.com/sindresorhus/execa/pull/643#discussion_r1435905707\nconst getStandardStream = (fdNumber, value, optionName) => {\n\tconst standardStream = STANDARD_STREAMS[fdNumber];\n\n\tif (standardStream === undefined) {\n\t\tthrow new TypeError(`The \\`${optionName}: ${value}\\` option is invalid: no such standard stream.`);\n\t}\n\n\treturn standardStream;\n};\n",
96
- "import {isReadableStream} from 'is-stream';\nimport {isUint8Array} from '../utils/uint-array.js';\nimport {isUrl, isFilePathString} from './type.js';\n\n// Append the `stdin` option with the `input` and `inputFile` options\nexport const handleInputOptions = ({input, inputFile}, fdNumber) => fdNumber === 0\n\t? [\n\t\t...handleInputOption(input),\n\t\t...handleInputFileOption(inputFile),\n\t]\n\t: [];\n\nconst handleInputOption = input => input === undefined ? [] : [{\n\ttype: getInputType(input),\n\tvalue: input,\n\toptionName: 'input',\n}];\n\nconst getInputType = input => {\n\tif (isReadableStream(input, {checkOpen: false})) {\n\t\treturn 'nodeStream';\n\t}\n\n\tif (typeof input === 'string') {\n\t\treturn 'string';\n\t}\n\n\tif (isUint8Array(input)) {\n\t\treturn 'uint8Array';\n\t}\n\n\tthrow new Error('The `input` option must be a string, a Uint8Array or a Node.js Readable stream.');\n};\n\nconst handleInputFileOption = inputFile => inputFile === undefined ? [] : [{\n\t...getInputFileType(inputFile),\n\toptionName: 'inputFile',\n}];\n\nconst getInputFileType = inputFile => {\n\tif (isUrl(inputFile)) {\n\t\treturn {type: 'fileUrl', value: inputFile};\n\t}\n\n\tif (isFilePathString(inputFile)) {\n\t\treturn {type: 'filePath', value: {file: inputFile}};\n\t}\n\n\tthrow new Error('The `inputFile` option must be a file path string or a file URL.');\n};\n",
97
- "import {\n\tSPECIAL_DUPLICATE_TYPES_SYNC,\n\tSPECIAL_DUPLICATE_TYPES,\n\tFORBID_DUPLICATE_TYPES,\n\tTYPE_TO_MESSAGE,\n} from './type.js';\n\n// Duplicates in the same file descriptor is most likely an error.\n// However, this can be useful with generators.\nexport const filterDuplicates = stdioItems => stdioItems.filter((stdioItemOne, indexOne) =>\n\tstdioItems.every((stdioItemTwo, indexTwo) => stdioItemOne.value !== stdioItemTwo.value\n\t\t|| indexOne >= indexTwo\n\t\t|| stdioItemOne.type === 'generator'\n\t\t|| stdioItemOne.type === 'asyncGenerator'));\n\n// Check if two file descriptors are sharing the same target.\n// For example `{stdout: {file: './output.txt'}, stderr: {file: './output.txt'}}`.\nexport const getDuplicateStream = ({stdioItem: {type, value, optionName}, direction, fileDescriptors, isSync}) => {\n\tconst otherStdioItems = getOtherStdioItems(fileDescriptors, type);\n\tif (otherStdioItems.length === 0) {\n\t\treturn;\n\t}\n\n\tif (isSync) {\n\t\tvalidateDuplicateStreamSync({\n\t\t\totherStdioItems,\n\t\t\ttype,\n\t\t\tvalue,\n\t\t\toptionName,\n\t\t\tdirection,\n\t\t});\n\t\treturn;\n\t}\n\n\tif (SPECIAL_DUPLICATE_TYPES.has(type)) {\n\t\treturn getDuplicateStreamInstance({\n\t\t\totherStdioItems,\n\t\t\ttype,\n\t\t\tvalue,\n\t\t\toptionName,\n\t\t\tdirection,\n\t\t});\n\t}\n\n\tif (FORBID_DUPLICATE_TYPES.has(type)) {\n\t\tvalidateDuplicateTransform({\n\t\t\totherStdioItems,\n\t\t\ttype,\n\t\t\tvalue,\n\t\t\toptionName,\n\t\t});\n\t}\n};\n\n// Values shared by multiple file descriptors\nconst getOtherStdioItems = (fileDescriptors, type) => fileDescriptors\n\t.flatMap(({direction, stdioItems}) => stdioItems\n\t\t.filter(stdioItem => stdioItem.type === type)\n\t\t.map((stdioItem => ({...stdioItem, direction}))));\n\n// With `execaSync()`, do not allow setting a file path both in input and output\nconst validateDuplicateStreamSync = ({otherStdioItems, type, value, optionName, direction}) => {\n\tif (SPECIAL_DUPLICATE_TYPES_SYNC.has(type)) {\n\t\tgetDuplicateStreamInstance({\n\t\t\totherStdioItems,\n\t\t\ttype,\n\t\t\tvalue,\n\t\t\toptionName,\n\t\t\tdirection,\n\t\t});\n\t}\n};\n\n// When two file descriptors share the file or stream, we need to re-use the same underlying stream.\n// Otherwise, the stream would be closed twice when piping ends.\n// This is only an issue with output file descriptors.\n// This is not a problem with generator functions since those create a new instance for each file descriptor.\n// We also forbid input and output file descriptors sharing the same file or stream, since that does not make sense.\nconst getDuplicateStreamInstance = ({otherStdioItems, type, value, optionName, direction}) => {\n\tconst duplicateStdioItems = otherStdioItems.filter(stdioItem => hasSameValue(stdioItem, value));\n\tif (duplicateStdioItems.length === 0) {\n\t\treturn;\n\t}\n\n\tconst differentStdioItem = duplicateStdioItems.find(stdioItem => stdioItem.direction !== direction);\n\tthrowOnDuplicateStream(differentStdioItem, optionName, type);\n\n\treturn direction === 'output' ? duplicateStdioItems[0].stream : undefined;\n};\n\nconst hasSameValue = ({type, value}, secondValue) => {\n\tif (type === 'filePath') {\n\t\treturn value.file === secondValue.file;\n\t}\n\n\tif (type === 'fileUrl') {\n\t\treturn value.href === secondValue.href;\n\t}\n\n\treturn value === secondValue;\n};\n\n// We do not allow two file descriptors to share the same Duplex or TransformStream.\n// This is because those are set directly to `subprocess.std*`.\n// For example, this could result in `subprocess.stdout` and `subprocess.stderr` being the same value.\n// This means reading from either would get data from both stdout and stderr.\nconst validateDuplicateTransform = ({otherStdioItems, type, value, optionName}) => {\n\tconst duplicateStdioItem = otherStdioItems.find(({value: {transform}}) => transform === value.transform);\n\tthrowOnDuplicateStream(duplicateStdioItem, optionName, type);\n};\n\nconst throwOnDuplicateStream = (stdioItem, optionName, type) => {\n\tif (stdioItem !== undefined) {\n\t\tthrow new TypeError(`The \\`${stdioItem.optionName}\\` and \\`${optionName}\\` options must not target ${TYPE_TO_MESSAGE[type]} that is the same.`);\n\t}\n};\n",
98
- "import {getStreamName, isStandardStream} from '../utils/standard-stream.js';\nimport {normalizeTransforms} from '../transform/normalize.js';\nimport {getFdObjectMode} from '../transform/object-mode.js';\nimport {\n\tgetStdioItemType,\n\tisRegularUrl,\n\tisUnknownStdioString,\n\tFILE_TYPES,\n} from './type.js';\nimport {getStreamDirection} from './direction.js';\nimport {normalizeStdioOption} from './stdio-option.js';\nimport {handleNativeStream} from './native.js';\nimport {handleInputOptions} from './input-option.js';\nimport {filterDuplicates, getDuplicateStream} from './duplicate.js';\n\n// Handle `input`, `inputFile`, `stdin`, `stdout` and `stderr` options, before spawning, in async/sync mode\n// They are converted into an array of `fileDescriptors`.\n// Each `fileDescriptor` is normalized, validated and contains all information necessary for further handling.\nexport const handleStdio = (addProperties, options, verboseInfo, isSync) => {\n\tconst stdio = normalizeStdioOption(options, verboseInfo, isSync);\n\tconst initialFileDescriptors = stdio.map((stdioOption, fdNumber) => getFileDescriptor({\n\t\tstdioOption,\n\t\tfdNumber,\n\t\toptions,\n\t\tisSync,\n\t}));\n\tconst fileDescriptors = getFinalFileDescriptors({\n\t\tinitialFileDescriptors,\n\t\taddProperties,\n\t\toptions,\n\t\tisSync,\n\t});\n\toptions.stdio = fileDescriptors.map(({stdioItems}) => forwardStdio(stdioItems));\n\treturn fileDescriptors;\n};\n\nconst getFileDescriptor = ({stdioOption, fdNumber, options, isSync}) => {\n\tconst optionName = getStreamName(fdNumber);\n\tconst {stdioItems: initialStdioItems, isStdioArray} = initializeStdioItems({\n\t\tstdioOption,\n\t\tfdNumber,\n\t\toptions,\n\t\toptionName,\n\t});\n\tconst direction = getStreamDirection(initialStdioItems, fdNumber, optionName);\n\tconst stdioItems = initialStdioItems.map(stdioItem => handleNativeStream({\n\t\tstdioItem,\n\t\tisStdioArray,\n\t\tfdNumber,\n\t\tdirection,\n\t\tisSync,\n\t}));\n\tconst normalizedStdioItems = normalizeTransforms(stdioItems, optionName, direction, options);\n\tconst objectMode = getFdObjectMode(normalizedStdioItems, direction);\n\tvalidateFileObjectMode(normalizedStdioItems, objectMode);\n\treturn {direction, objectMode, stdioItems: normalizedStdioItems};\n};\n\n// We make sure passing an array with a single item behaves the same as passing that item without an array.\n// This is what users would expect.\n// For example, `stdout: ['ignore']` behaves the same as `stdout: 'ignore'`.\nconst initializeStdioItems = ({stdioOption, fdNumber, options, optionName}) => {\n\tconst values = Array.isArray(stdioOption) ? stdioOption : [stdioOption];\n\tconst initialStdioItems = [\n\t\t...values.map(value => initializeStdioItem(value, optionName)),\n\t\t...handleInputOptions(options, fdNumber),\n\t];\n\n\tconst stdioItems = filterDuplicates(initialStdioItems);\n\tconst isStdioArray = stdioItems.length > 1;\n\tvalidateStdioArray(stdioItems, isStdioArray, optionName);\n\tvalidateStreams(stdioItems);\n\treturn {stdioItems, isStdioArray};\n};\n\nconst initializeStdioItem = (value, optionName) => ({\n\ttype: getStdioItemType(value, optionName),\n\tvalue,\n\toptionName,\n});\n\nconst validateStdioArray = (stdioItems, isStdioArray, optionName) => {\n\tif (stdioItems.length === 0) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option must not be an empty array.`);\n\t}\n\n\tif (!isStdioArray) {\n\t\treturn;\n\t}\n\n\tfor (const {value, optionName} of stdioItems) {\n\t\tif (INVALID_STDIO_ARRAY_OPTIONS.has(value)) {\n\t\t\tthrow new Error(`The \\`${optionName}\\` option must not include \\`${value}\\`.`);\n\t\t}\n\t}\n};\n\n// Using those `stdio` values together with others for the same stream does not make sense, so we make it fail.\n// However, we do allow it if the array has a single item.\nconst INVALID_STDIO_ARRAY_OPTIONS = new Set(['ignore', 'ipc']);\n\nconst validateStreams = stdioItems => {\n\tfor (const stdioItem of stdioItems) {\n\t\tvalidateFileStdio(stdioItem);\n\t}\n};\n\nconst validateFileStdio = ({type, value, optionName}) => {\n\tif (isRegularUrl(value)) {\n\t\tthrow new TypeError(`The \\`${optionName}: URL\\` option must use the \\`file:\\` scheme.\nFor example, you can use the \\`pathToFileURL()\\` method of the \\`url\\` core module.`);\n\t}\n\n\tif (isUnknownStdioString(type, value)) {\n\t\tthrow new TypeError(`The \\`${optionName}: { file: '...' }\\` option must be used instead of \\`${optionName}: '...'\\`.`);\n\t}\n};\n\nconst validateFileObjectMode = (stdioItems, objectMode) => {\n\tif (!objectMode) {\n\t\treturn;\n\t}\n\n\tconst fileStdioItem = stdioItems.find(({type}) => FILE_TYPES.has(type));\n\tif (fileStdioItem !== undefined) {\n\t\tthrow new TypeError(`The \\`${fileStdioItem.optionName}\\` option cannot use both files and transforms in objectMode.`);\n\t}\n};\n\n// Some `stdio` values require Execa to create streams.\n// For example, file paths create file read/write streams.\n// Those transformations are specified in `addProperties`, which is both direction-specific and type-specific.\nconst getFinalFileDescriptors = ({initialFileDescriptors, addProperties, options, isSync}) => {\n\tconst fileDescriptors = [];\n\n\ttry {\n\t\tfor (const fileDescriptor of initialFileDescriptors) {\n\t\t\tfileDescriptors.push(getFinalFileDescriptor({\n\t\t\t\tfileDescriptor,\n\t\t\t\tfileDescriptors,\n\t\t\t\taddProperties,\n\t\t\t\toptions,\n\t\t\t\tisSync,\n\t\t\t}));\n\t\t}\n\n\t\treturn fileDescriptors;\n\t} catch (error) {\n\t\tcleanupCustomStreams(fileDescriptors);\n\t\tthrow error;\n\t}\n};\n\nconst getFinalFileDescriptor = ({\n\tfileDescriptor: {direction, objectMode, stdioItems},\n\tfileDescriptors,\n\taddProperties,\n\toptions,\n\tisSync,\n}) => {\n\tconst finalStdioItems = stdioItems.map(stdioItem => addStreamProperties({\n\t\tstdioItem,\n\t\taddProperties,\n\t\tdirection,\n\t\toptions,\n\t\tfileDescriptors,\n\t\tisSync,\n\t}));\n\treturn {direction, objectMode, stdioItems: finalStdioItems};\n};\n\nconst addStreamProperties = ({stdioItem, addProperties, direction, options, fileDescriptors, isSync}) => {\n\tconst duplicateStream = getDuplicateStream({\n\t\tstdioItem,\n\t\tdirection,\n\t\tfileDescriptors,\n\t\tisSync,\n\t});\n\n\tif (duplicateStream !== undefined) {\n\t\treturn {...stdioItem, stream: duplicateStream};\n\t}\n\n\treturn {\n\t\t...stdioItem,\n\t\t...addProperties[direction][stdioItem.type](stdioItem, options),\n\t};\n};\n\n// The stream error handling is performed by the piping logic above, which cannot be performed before subprocess spawning.\n// If the subprocess spawning fails (e.g. due to an invalid command), the streams need to be manually destroyed.\n// We need to create those streams before subprocess spawning, in case their creation fails, e.g. when passing an invalid generator as argument.\n// Like this, an exception would be thrown, which would prevent spawning a subprocess.\nexport const cleanupCustomStreams = fileDescriptors => {\n\tfor (const {stdioItems} of fileDescriptors) {\n\t\tfor (const {stream} of stdioItems) {\n\t\t\tif (stream !== undefined && !isStandardStream(stream)) {\n\t\t\t\tstream.destroy();\n\t\t\t}\n\t\t}\n\t}\n};\n\n// When the `std*: Iterable | WebStream | URL | filePath`, `input` or `inputFile` option is used, we pipe to `subprocess.std*`.\n// When the `std*: Array` option is used, we emulate some of the native values ('inherit', Node.js stream and file descriptor integer). To do so, we also need to pipe to `subprocess.std*`.\n// Therefore the `std*` options must be either `pipe` or `overlapped`. Other values do not set `subprocess.std*`.\nconst forwardStdio = stdioItems => {\n\tif (stdioItems.length > 1) {\n\t\treturn stdioItems.some(({value}) => value === 'overlapped') ? 'overlapped' : 'pipe';\n\t}\n\n\tconst [{type, value}] = stdioItems;\n\treturn type === 'native' ? value : 'pipe';\n};\n",
99
- "import {readFileSync} from 'node:fs';\nimport {bufferToUint8Array} from '../utils/uint-array.js';\nimport {handleStdio} from './handle.js';\nimport {TYPE_TO_MESSAGE} from './type.js';\n\n// Normalize `input`, `inputFile`, `stdin`, `stdout` and `stderr` options, before spawning, in sync mode\nexport const handleStdioSync = (options, verboseInfo) => handleStdio(addPropertiesSync, options, verboseInfo, true);\n\nconst forbiddenIfSync = ({type, optionName}) => {\n\tthrowInvalidSyncValue(optionName, TYPE_TO_MESSAGE[type]);\n};\n\nconst forbiddenNativeIfSync = ({optionName, value}) => {\n\tif (value === 'ipc' || value === 'overlapped') {\n\t\tthrowInvalidSyncValue(optionName, `\"${value}\"`);\n\t}\n\n\treturn {};\n};\n\nconst throwInvalidSyncValue = (optionName, value) => {\n\tthrow new TypeError(`The \\`${optionName}\\` option cannot be ${value} with synchronous methods.`);\n};\n\n// Create streams used internally for redirecting when using specific values for the `std*` options, in sync mode.\n// For example, `stdin: {file}` reads the file synchronously, then passes it as the `input` option.\nconst addProperties = {\n\tgenerator() {},\n\tasyncGenerator: forbiddenIfSync,\n\twebStream: forbiddenIfSync,\n\tnodeStream: forbiddenIfSync,\n\twebTransform: forbiddenIfSync,\n\tduplex: forbiddenIfSync,\n\tasyncIterable: forbiddenIfSync,\n\tnative: forbiddenNativeIfSync,\n};\n\nconst addPropertiesSync = {\n\tinput: {\n\t\t...addProperties,\n\t\tfileUrl: ({value}) => ({contents: [bufferToUint8Array(readFileSync(value))]}),\n\t\tfilePath: ({value: {file}}) => ({contents: [bufferToUint8Array(readFileSync(file))]}),\n\t\tfileNumber: forbiddenIfSync,\n\t\titerable: ({value}) => ({contents: [...value]}),\n\t\tstring: ({value}) => ({contents: [value]}),\n\t\tuint8Array: ({value}) => ({contents: [value]}),\n\t},\n\toutput: {\n\t\t...addProperties,\n\t\tfileUrl: ({value}) => ({path: value}),\n\t\tfilePath: ({value: {file, append}}) => ({path: file, append}),\n\t\tfileNumber: ({value}) => ({path: value}),\n\t\titerable: forbiddenIfSync,\n\t\tstring: forbiddenIfSync,\n\t\tuint8Array: forbiddenIfSync,\n\t},\n};\n",
100
- "import stripFinalNewlineFunction from 'strip-final-newline';\n\n// Apply `stripFinalNewline` option, which applies to `result.stdout|stderr|all|stdio[*]`.\n// If the `lines` option is used, it is applied on each line, but using a different function.\nexport const stripNewline = (value, {stripFinalNewline}, fdNumber) => getStripFinalNewline(stripFinalNewline, fdNumber) && value !== undefined && !Array.isArray(value)\n\t? stripFinalNewlineFunction(value)\n\t: value;\n\n// Retrieve `stripFinalNewline` option value, including with `subprocess.all`\nexport const getStripFinalNewline = (stripFinalNewline, fdNumber) => fdNumber === 'all'\n\t? stripFinalNewline[1] || stripFinalNewline[2]\n\t: stripFinalNewline[fdNumber];\n",
101
- "// Split chunks line-wise for generators passed to the `std*` options\nexport const getSplitLinesGenerator = (binary, preserveNewlines, skipped, state) => binary || skipped\n\t? undefined\n\t: initializeSplitLines(preserveNewlines, state);\n\n// Same but for synchronous methods\nexport const splitLinesSync = (chunk, preserveNewlines, objectMode) => objectMode\n\t? chunk.flatMap(item => splitLinesItemSync(item, preserveNewlines))\n\t: splitLinesItemSync(chunk, preserveNewlines);\n\nconst splitLinesItemSync = (chunk, preserveNewlines) => {\n\tconst {transform, final} = initializeSplitLines(preserveNewlines, {});\n\treturn [...transform(chunk), ...final()];\n};\n\nconst initializeSplitLines = (preserveNewlines, state) => {\n\tstate.previousChunks = '';\n\treturn {\n\t\ttransform: splitGenerator.bind(undefined, state, preserveNewlines),\n\t\tfinal: linesFinal.bind(undefined, state),\n\t};\n};\n\n// This imperative logic is much faster than using `String.split()` and uses very low memory.\nconst splitGenerator = function * (state, preserveNewlines, chunk) {\n\tif (typeof chunk !== 'string') {\n\t\tyield chunk;\n\t\treturn;\n\t}\n\n\tlet {previousChunks} = state;\n\tlet start = -1;\n\n\tfor (let end = 0; end < chunk.length; end += 1) {\n\t\tif (chunk[end] === '\\n') {\n\t\t\tconst newlineLength = getNewlineLength(chunk, end, preserveNewlines, state);\n\t\t\tlet line = chunk.slice(start + 1, end + 1 - newlineLength);\n\n\t\t\tif (previousChunks.length > 0) {\n\t\t\t\tline = concatString(previousChunks, line);\n\t\t\t\tpreviousChunks = '';\n\t\t\t}\n\n\t\t\tyield line;\n\t\t\tstart = end;\n\t\t}\n\t}\n\n\tif (start !== chunk.length - 1) {\n\t\tpreviousChunks = concatString(previousChunks, chunk.slice(start + 1));\n\t}\n\n\tstate.previousChunks = previousChunks;\n};\n\nconst getNewlineLength = (chunk, end, preserveNewlines, state) => {\n\tif (preserveNewlines) {\n\t\treturn 0;\n\t}\n\n\tstate.isWindowsNewline = end !== 0 && chunk[end - 1] === '\\r';\n\treturn state.isWindowsNewline ? 2 : 1;\n};\n\nconst linesFinal = function * ({previousChunks}) {\n\tif (previousChunks.length > 0) {\n\t\tyield previousChunks;\n\t}\n};\n\n// Unless `preserveNewlines: true` is used, we strip the newline of each line.\n// This re-adds them after the user `transform` code has run.\nexport const getAppendNewlineGenerator = ({binary, preserveNewlines, readableObjectMode, state}) => binary || preserveNewlines || readableObjectMode\n\t? undefined\n\t: {transform: appendNewlineGenerator.bind(undefined, state)};\n\nconst appendNewlineGenerator = function * ({isWindowsNewline = false}, chunk) {\n\tconst {unixNewline, windowsNewline, LF, concatBytes} = typeof chunk === 'string' ? linesStringInfo : linesUint8ArrayInfo;\n\n\tif (chunk.at(-1) === LF) {\n\t\tyield chunk;\n\t\treturn;\n\t}\n\n\tconst newline = isWindowsNewline ? windowsNewline : unixNewline;\n\tyield concatBytes(chunk, newline);\n};\n\nconst concatString = (firstChunk, secondChunk) => `${firstChunk}${secondChunk}`;\n\nconst linesStringInfo = {\n\twindowsNewline: '\\r\\n',\n\tunixNewline: '\\n',\n\tLF: '\\n',\n\tconcatBytes: concatString,\n};\n\nconst concatUint8Array = (firstChunk, secondChunk) => {\n\tconst chunk = new Uint8Array(firstChunk.length + secondChunk.length);\n\tchunk.set(firstChunk, 0);\n\tchunk.set(secondChunk, firstChunk.length);\n\treturn chunk;\n};\n\nconst linesUint8ArrayInfo = {\n\twindowsNewline: new Uint8Array([0x0D, 0x0A]),\n\tunixNewline: new Uint8Array([0x0A]),\n\tLF: 0x0A,\n\tconcatBytes: concatUint8Array,\n};\n",
102
- "import {Buffer} from 'node:buffer';\nimport {isUint8Array} from '../utils/uint-array.js';\n\n// Validate the type of chunk argument passed to transform generators\nexport const getValidateTransformInput = (writableObjectMode, optionName) => writableObjectMode\n\t? undefined\n\t: validateStringTransformInput.bind(undefined, optionName);\n\nconst validateStringTransformInput = function * (optionName, chunk) {\n\tif (typeof chunk !== 'string' && !isUint8Array(chunk) && !Buffer.isBuffer(chunk)) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option's transform must use \"objectMode: true\" to receive as input: ${typeof chunk}.`);\n\t}\n\n\tyield chunk;\n};\n\n// Validate the type of the value returned by transform generators\nexport const getValidateTransformReturn = (readableObjectMode, optionName) => readableObjectMode\n\t? validateObjectTransformReturn.bind(undefined, optionName)\n\t: validateStringTransformReturn.bind(undefined, optionName);\n\nconst validateObjectTransformReturn = function * (optionName, chunk) {\n\tvalidateEmptyReturn(optionName, chunk);\n\tyield chunk;\n};\n\nconst validateStringTransformReturn = function * (optionName, chunk) {\n\tvalidateEmptyReturn(optionName, chunk);\n\n\tif (typeof chunk !== 'string' && !isUint8Array(chunk)) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option's function must yield a string or an Uint8Array, not ${typeof chunk}.`);\n\t}\n\n\tyield chunk;\n};\n\nconst validateEmptyReturn = (optionName, chunk) => {\n\tif (chunk === null || chunk === undefined) {\n\t\tthrow new TypeError(`The \\`${optionName}\\` option's function must not call \\`yield ${chunk}\\`.\nInstead, \\`yield\\` should either be called with a value, or not be called at all. For example:\n if (condition) { yield value; }`);\n\t}\n};\n",
103
- "import {Buffer} from 'node:buffer';\nimport {StringDecoder} from 'node:string_decoder';\nimport {isUint8Array, bufferToUint8Array} from '../utils/uint-array.js';\n\n/*\nWhen using binary encodings, add an internal generator that converts chunks from `Buffer` to `string` or `Uint8Array`.\nChunks might be Buffer, Uint8Array or strings since:\n- `subprocess.stdout|stderr` emits Buffers\n- `subprocess.stdin.write()` accepts Buffer, Uint8Array or string\n- Previous generators might return Uint8Array or string\n\nHowever, those are converted to Buffer:\n- on writes: `Duplex.writable` `decodeStrings: true` default option\n- on reads: `Duplex.readable` `readableEncoding: null` default option\n*/\nexport const getEncodingTransformGenerator = (binary, encoding, skipped) => {\n\tif (skipped) {\n\t\treturn;\n\t}\n\n\tif (binary) {\n\t\treturn {transform: encodingUint8ArrayGenerator.bind(undefined, new TextEncoder())};\n\t}\n\n\tconst stringDecoder = new StringDecoder(encoding);\n\treturn {\n\t\ttransform: encodingStringGenerator.bind(undefined, stringDecoder),\n\t\tfinal: encodingStringFinal.bind(undefined, stringDecoder),\n\t};\n};\n\nconst encodingUint8ArrayGenerator = function * (textEncoder, chunk) {\n\tif (Buffer.isBuffer(chunk)) {\n\t\tyield bufferToUint8Array(chunk);\n\t} else if (typeof chunk === 'string') {\n\t\tyield textEncoder.encode(chunk);\n\t} else {\n\t\tyield chunk;\n\t}\n};\n\nconst encodingStringGenerator = function * (stringDecoder, chunk) {\n\tyield isUint8Array(chunk) ? stringDecoder.write(chunk) : chunk;\n};\n\nconst encodingStringFinal = function * (stringDecoder) {\n\tconst lastChunk = stringDecoder.end();\n\tif (lastChunk !== '') {\n\t\tyield lastChunk;\n\t}\n};\n",
104
- "import {callbackify} from 'node:util';\n\n// Applies a series of generator functions asynchronously\nexport const pushChunks = callbackify(async (getChunks, state, getChunksArguments, transformStream) => {\n\tstate.currentIterable = getChunks(...getChunksArguments);\n\n\ttry {\n\t\tfor await (const chunk of state.currentIterable) {\n\t\t\ttransformStream.push(chunk);\n\t\t}\n\t} finally {\n\t\tdelete state.currentIterable;\n\t}\n});\n\n// For each new chunk, apply each `transform()` method\nexport const transformChunk = async function * (chunk, generators, index) {\n\tif (index === generators.length) {\n\t\tyield chunk;\n\t\treturn;\n\t}\n\n\tconst {transform = identityGenerator} = generators[index];\n\tfor await (const transformedChunk of transform(chunk)) {\n\t\tyield * transformChunk(transformedChunk, generators, index + 1);\n\t}\n};\n\n// At the end, apply each `final()` method, followed by the `transform()` method of the next transforms\nexport const finalChunks = async function * (generators) {\n\tfor (const [index, {final}] of Object.entries(generators)) {\n\t\tyield * generatorFinalChunks(final, Number(index), generators);\n\t}\n};\n\nconst generatorFinalChunks = async function * (final, index, generators) {\n\tif (final === undefined) {\n\t\treturn;\n\t}\n\n\tfor await (const finalChunk of final()) {\n\t\tyield * transformChunk(finalChunk, generators, index + 1);\n\t}\n};\n\n// Cancel any ongoing async generator when the Transform is destroyed, e.g. when the subprocess errors\nexport const destroyTransform = callbackify(async ({currentIterable}, error) => {\n\tif (currentIterable !== undefined) {\n\t\tawait (error ? currentIterable.throw(error) : currentIterable.return());\n\t\treturn;\n\t}\n\n\tif (error) {\n\t\tthrow error;\n\t}\n});\n\nconst identityGenerator = function * (chunk) {\n\tyield chunk;\n};\n",
105
- "// Duplicate the code from `run-async.js` but as synchronous functions\nexport const pushChunksSync = (getChunksSync, getChunksArguments, transformStream, done) => {\n\ttry {\n\t\tfor (const chunk of getChunksSync(...getChunksArguments)) {\n\t\t\ttransformStream.push(chunk);\n\t\t}\n\n\t\tdone();\n\t} catch (error) {\n\t\tdone(error);\n\t}\n};\n\n// Run synchronous generators with `execaSync()`\nexport const runTransformSync = (generators, chunks) => [\n\t...chunks.flatMap(chunk => [...transformChunkSync(chunk, generators, 0)]),\n\t...finalChunksSync(generators),\n];\n\nexport const transformChunkSync = function * (chunk, generators, index) {\n\tif (index === generators.length) {\n\t\tyield chunk;\n\t\treturn;\n\t}\n\n\tconst {transform = identityGenerator} = generators[index];\n\tfor (const transformedChunk of transform(chunk)) {\n\t\tyield * transformChunkSync(transformedChunk, generators, index + 1);\n\t}\n};\n\nexport const finalChunksSync = function * (generators) {\n\tfor (const [index, {final}] of Object.entries(generators)) {\n\t\tyield * generatorFinalChunksSync(final, Number(index), generators);\n\t}\n};\n\nconst generatorFinalChunksSync = function * (final, index, generators) {\n\tif (final === undefined) {\n\t\treturn;\n\t}\n\n\tfor (const finalChunk of final()) {\n\t\tyield * transformChunkSync(finalChunk, generators, index + 1);\n\t}\n};\n\nconst identityGenerator = function * (chunk) {\n\tyield chunk;\n};\n",
106
- "import {Transform, getDefaultHighWaterMark} from 'node:stream';\nimport {isAsyncGenerator} from '../stdio/type.js';\nimport {getSplitLinesGenerator, getAppendNewlineGenerator} from './split.js';\nimport {getValidateTransformInput, getValidateTransformReturn} from './validate.js';\nimport {getEncodingTransformGenerator} from './encoding-transform.js';\nimport {\n\tpushChunks,\n\ttransformChunk,\n\tfinalChunks,\n\tdestroyTransform,\n} from './run-async.js';\nimport {\n\tpushChunksSync,\n\ttransformChunkSync,\n\tfinalChunksSync,\n\trunTransformSync,\n} from './run-sync.js';\n\n/*\nGenerators can be used to transform/filter standard streams.\n\nGenerators have a simple syntax, yet allows all of the following:\n- Sharing `state` between chunks\n- Flushing logic, by using a `final` function\n- Asynchronous logic\n- Emitting multiple chunks from a single source chunk, even if spaced in time, by using multiple `yield`\n- Filtering, by using no `yield`\n\nTherefore, there is no need to allow Node.js or web transform streams.\n\nThe `highWaterMark` is kept as the default value, since this is what `subprocess.std*` uses.\n\nChunks are currently processed serially. We could add a `concurrency` option to parallelize in the future.\n\nTransform an array of generator functions into a `Transform` stream.\n`Duplex.from(generator)` cannot be used because it does not allow setting the `objectMode` and `highWaterMark`.\n*/\nexport const generatorToStream = ({\n\tvalue,\n\tvalue: {transform, final, writableObjectMode, readableObjectMode},\n\toptionName,\n}, {encoding}) => {\n\tconst state = {};\n\tconst generators = addInternalGenerators(value, encoding, optionName);\n\n\tconst transformAsync = isAsyncGenerator(transform);\n\tconst finalAsync = isAsyncGenerator(final);\n\tconst transformMethod = transformAsync\n\t\t? pushChunks.bind(undefined, transformChunk, state)\n\t\t: pushChunksSync.bind(undefined, transformChunkSync);\n\tconst finalMethod = transformAsync || finalAsync\n\t\t? pushChunks.bind(undefined, finalChunks, state)\n\t\t: pushChunksSync.bind(undefined, finalChunksSync);\n\tconst destroyMethod = transformAsync || finalAsync\n\t\t? destroyTransform.bind(undefined, state)\n\t\t: undefined;\n\n\tconst stream = new Transform({\n\t\twritableObjectMode,\n\t\twritableHighWaterMark: getDefaultHighWaterMark(writableObjectMode),\n\t\treadableObjectMode,\n\t\treadableHighWaterMark: getDefaultHighWaterMark(readableObjectMode),\n\t\ttransform(chunk, encoding, done) {\n\t\t\ttransformMethod([chunk, generators, 0], this, done);\n\t\t},\n\t\tflush(done) {\n\t\t\tfinalMethod([generators], this, done);\n\t\t},\n\t\tdestroy: destroyMethod,\n\t});\n\treturn {stream};\n};\n\n// Applies transform generators in sync mode\nexport const runGeneratorsSync = (chunks, stdioItems, encoding, isInput) => {\n\tconst generators = stdioItems.filter(({type}) => type === 'generator');\n\tconst reversedGenerators = isInput ? generators.reverse() : generators;\n\n\tfor (const {value, optionName} of reversedGenerators) {\n\t\tconst generators = addInternalGenerators(value, encoding, optionName);\n\t\tchunks = runTransformSync(generators, chunks);\n\t}\n\n\treturn chunks;\n};\n\n// Generators used internally to convert the chunk type, validate it, and split into lines\nconst addInternalGenerators = (\n\t{transform, final, binary, writableObjectMode, readableObjectMode, preserveNewlines},\n\tencoding,\n\toptionName,\n) => {\n\tconst state = {};\n\treturn [\n\t\t{transform: getValidateTransformInput(writableObjectMode, optionName)},\n\t\tgetEncodingTransformGenerator(binary, encoding, writableObjectMode),\n\t\tgetSplitLinesGenerator(binary, preserveNewlines, writableObjectMode, state),\n\t\t{transform, final},\n\t\t{transform: getValidateTransformReturn(readableObjectMode, optionName)},\n\t\tgetAppendNewlineGenerator({\n\t\t\tbinary,\n\t\t\tpreserveNewlines,\n\t\t\treadableObjectMode,\n\t\t\tstate,\n\t\t}),\n\t].filter(Boolean);\n};\n",
107
- "import {runGeneratorsSync} from '../transform/generator.js';\nimport {joinToUint8Array, isUint8Array} from '../utils/uint-array.js';\nimport {TYPE_TO_MESSAGE} from '../stdio/type.js';\n\n// Apply `stdin`/`input`/`inputFile` options, before spawning, in sync mode, by converting it to the `input` option\nexport const addInputOptionsSync = (fileDescriptors, options) => {\n\tfor (const fdNumber of getInputFdNumbers(fileDescriptors)) {\n\t\taddInputOptionSync(fileDescriptors, fdNumber, options);\n\t}\n};\n\nconst getInputFdNumbers = fileDescriptors => new Set(Object.entries(fileDescriptors)\n\t.filter(([, {direction}]) => direction === 'input')\n\t.map(([fdNumber]) => Number(fdNumber)));\n\nconst addInputOptionSync = (fileDescriptors, fdNumber, options) => {\n\tconst {stdioItems} = fileDescriptors[fdNumber];\n\tconst allStdioItems = stdioItems.filter(({contents}) => contents !== undefined);\n\tif (allStdioItems.length === 0) {\n\t\treturn;\n\t}\n\n\tif (fdNumber !== 0) {\n\t\tconst [{type, optionName}] = allStdioItems;\n\t\tthrow new TypeError(`Only the \\`stdin\\` option, not \\`${optionName}\\`, can be ${TYPE_TO_MESSAGE[type]} with synchronous methods.`);\n\t}\n\n\tconst allContents = allStdioItems.map(({contents}) => contents);\n\tconst transformedContents = allContents.map(contents => applySingleInputGeneratorsSync(contents, stdioItems));\n\toptions.input = joinToUint8Array(transformedContents);\n};\n\nconst applySingleInputGeneratorsSync = (contents, stdioItems) => {\n\tconst newContents = runGeneratorsSync(contents, stdioItems, 'utf8', true);\n\tvalidateSerializable(newContents);\n\treturn joinToUint8Array(newContents);\n};\n\nconst validateSerializable = newContents => {\n\tconst invalidItem = newContents.find(item => typeof item !== 'string' && !isUint8Array(item));\n\tif (invalidItem !== undefined) {\n\t\tthrow new TypeError(`The \\`stdin\\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${invalidItem}.`);\n\t}\n};\n",
108
- "import {BINARY_ENCODINGS} from '../arguments/encoding-option.js';\nimport {TRANSFORM_TYPES} from '../stdio/type.js';\nimport {verboseLog, serializeVerboseMessage} from './log.js';\nimport {isFullVerbose} from './values.js';\n\n// `ignore` opts-out of `verbose` for a specific stream.\n// `ipc` cannot use piping.\n// `inherit` would result in double printing.\n// They can also lead to double printing when passing file descriptor integers or `process.std*`.\n// This only leaves with `pipe` and `overlapped`.\nexport const shouldLogOutput = ({stdioItems, encoding, verboseInfo, fdNumber}) => fdNumber !== 'all'\n\t&& isFullVerbose(verboseInfo, fdNumber)\n\t&& !BINARY_ENCODINGS.has(encoding)\n\t&& fdUsesVerbose(fdNumber)\n\t&& (stdioItems.some(({type, value}) => type === 'native' && PIPED_STDIO_VALUES.has(value))\n\t|| stdioItems.every(({type}) => TRANSFORM_TYPES.has(type)));\n\n// Printing input streams would be confusing.\n// Files and streams can produce big outputs, which we don't want to print.\n// We could print `stdio[3+]` but it often is redirected to files and streams, with the same issue.\n// So we only print stdout and stderr.\nconst fdUsesVerbose = fdNumber => fdNumber === 1 || fdNumber === 2;\n\nconst PIPED_STDIO_VALUES = new Set(['pipe', 'overlapped']);\n\n// `verbose: 'full'` printing logic with async methods\nexport const logLines = async (linesIterable, stream, fdNumber, verboseInfo) => {\n\tfor await (const line of linesIterable) {\n\t\tif (!isPipingStream(stream)) {\n\t\t\tlogLine(line, fdNumber, verboseInfo);\n\t\t}\n\t}\n};\n\n// `verbose: 'full'` printing logic with sync methods\nexport const logLinesSync = (linesArray, fdNumber, verboseInfo) => {\n\tfor (const line of linesArray) {\n\t\tlogLine(line, fdNumber, verboseInfo);\n\t}\n};\n\n// When `subprocess.stdout|stderr.pipe()` is called, `verbose` becomes a noop.\n// This prevents the following problems:\n// - `.pipe()` achieves the same result as using `stdout: 'inherit'`, `stdout: stream`, etc. which also make `verbose` a noop.\n// For example, `subprocess.stdout.pipe(process.stdin)` would print each line twice.\n// - When chaining subprocesses with `subprocess.pipe(otherSubprocess)`, only the last one should print its output.\n// Detecting whether `.pipe()` is impossible without monkey-patching it, so we use the following undocumented property.\n// This is not a critical behavior since changes of the following property would only make `verbose` more verbose.\nconst isPipingStream = stream => stream._readableState.pipes.length > 0;\n\n// When `verbose` is `full`, print stdout|stderr\nconst logLine = (line, fdNumber, verboseInfo) => {\n\tconst verboseMessage = serializeVerboseMessage(line);\n\tverboseLog({\n\t\ttype: 'output',\n\t\tverboseMessage,\n\t\tfdNumber,\n\t\tverboseInfo,\n\t});\n};\n",
109
- "import {writeFileSync, appendFileSync} from 'node:fs';\nimport {shouldLogOutput, logLinesSync} from '../verbose/output.js';\nimport {runGeneratorsSync} from '../transform/generator.js';\nimport {splitLinesSync} from '../transform/split.js';\nimport {joinToString, joinToUint8Array, bufferToUint8Array} from '../utils/uint-array.js';\nimport {FILE_TYPES} from '../stdio/type.js';\nimport {truncateMaxBufferSync} from './max-buffer.js';\n\n// Apply `stdout`/`stderr` options, after spawning, in sync mode\nexport const transformOutputSync = ({fileDescriptors, syncResult: {output}, options, isMaxBuffer, verboseInfo}) => {\n\tif (output === null) {\n\t\treturn {output: Array.from({length: 3})};\n\t}\n\n\tconst state = {};\n\tconst outputFiles = new Set([]);\n\tconst transformedOutput = output.map((result, fdNumber) =>\n\t\ttransformOutputResultSync({\n\t\t\tresult,\n\t\t\tfileDescriptors,\n\t\t\tfdNumber,\n\t\t\tstate,\n\t\t\toutputFiles,\n\t\t\tisMaxBuffer,\n\t\t\tverboseInfo,\n\t\t}, options));\n\treturn {output: transformedOutput, ...state};\n};\n\nconst transformOutputResultSync = (\n\t{result, fileDescriptors, fdNumber, state, outputFiles, isMaxBuffer, verboseInfo},\n\t{buffer, encoding, lines, stripFinalNewline, maxBuffer},\n) => {\n\tif (result === null) {\n\t\treturn;\n\t}\n\n\tconst truncatedResult = truncateMaxBufferSync(result, isMaxBuffer, maxBuffer);\n\tconst uint8ArrayResult = bufferToUint8Array(truncatedResult);\n\tconst {stdioItems, objectMode} = fileDescriptors[fdNumber];\n\tconst chunks = runOutputGeneratorsSync([uint8ArrayResult], stdioItems, encoding, state);\n\tconst {serializedResult, finalResult = serializedResult} = serializeChunks({\n\t\tchunks,\n\t\tobjectMode,\n\t\tencoding,\n\t\tlines,\n\t\tstripFinalNewline,\n\t\tfdNumber,\n\t});\n\n\tlogOutputSync({\n\t\tserializedResult,\n\t\tfdNumber,\n\t\tstate,\n\t\tverboseInfo,\n\t\tencoding,\n\t\tstdioItems,\n\t\tobjectMode,\n\t});\n\n\tconst returnedResult = buffer[fdNumber] ? finalResult : undefined;\n\n\ttry {\n\t\tif (state.error === undefined) {\n\t\t\twriteToFiles(serializedResult, stdioItems, outputFiles);\n\t\t}\n\n\t\treturn returnedResult;\n\t} catch (error) {\n\t\tstate.error = error;\n\t\treturn returnedResult;\n\t}\n};\n\n// Applies transform generators to `stdout`/`stderr`\nconst runOutputGeneratorsSync = (chunks, stdioItems, encoding, state) => {\n\ttry {\n\t\treturn runGeneratorsSync(chunks, stdioItems, encoding, false);\n\t} catch (error) {\n\t\tstate.error = error;\n\t\treturn chunks;\n\t}\n};\n\n// The contents is converted to three stages:\n// - serializedResult: used when the target is a file path/URL or a file descriptor (including 'inherit')\n// - finalResult/returnedResult: returned as `result.std*`\nconst serializeChunks = ({chunks, objectMode, encoding, lines, stripFinalNewline, fdNumber}) => {\n\tif (objectMode) {\n\t\treturn {serializedResult: chunks};\n\t}\n\n\tif (encoding === 'buffer') {\n\t\treturn {serializedResult: joinToUint8Array(chunks)};\n\t}\n\n\tconst serializedResult = joinToString(chunks, encoding);\n\tif (lines[fdNumber]) {\n\t\treturn {serializedResult, finalResult: splitLinesSync(serializedResult, !stripFinalNewline[fdNumber], objectMode)};\n\t}\n\n\treturn {serializedResult};\n};\n\nconst logOutputSync = ({serializedResult, fdNumber, state, verboseInfo, encoding, stdioItems, objectMode}) => {\n\tif (!shouldLogOutput({\n\t\tstdioItems,\n\t\tencoding,\n\t\tverboseInfo,\n\t\tfdNumber,\n\t})) {\n\t\treturn;\n\t}\n\n\tconst linesArray = splitLinesSync(serializedResult, false, objectMode);\n\n\ttry {\n\t\tlogLinesSync(linesArray, fdNumber, verboseInfo);\n\t} catch (error) {\n\t\tstate.error ??= error;\n\t}\n};\n\n// When the `std*` target is a file path/URL or a file descriptor\nconst writeToFiles = (serializedResult, stdioItems, outputFiles) => {\n\tfor (const {path, append} of stdioItems.filter(({type}) => FILE_TYPES.has(type))) {\n\t\tconst pathString = typeof path === 'string' ? path : path.toString();\n\t\tif (append || outputFiles.has(pathString)) {\n\t\t\tappendFileSync(path, serializedResult);\n\t\t} else {\n\t\t\toutputFiles.add(pathString);\n\t\t\twriteFileSync(path, serializedResult);\n\t\t}\n\t}\n};\n",
110
- "import {isUint8Array, concatUint8Arrays} from '../utils/uint-array.js';\nimport {stripNewline} from '../io/strip-newline.js';\n\n// Retrieve `result.all` with synchronous methods\nexport const getAllSync = ([, stdout, stderr], options) => {\n\tif (!options.all) {\n\t\treturn;\n\t}\n\n\tif (stdout === undefined) {\n\t\treturn stderr;\n\t}\n\n\tif (stderr === undefined) {\n\t\treturn stdout;\n\t}\n\n\tif (Array.isArray(stdout)) {\n\t\treturn Array.isArray(stderr)\n\t\t\t? [...stdout, ...stderr]\n\t\t\t: [...stdout, stripNewline(stderr, options, 'all')];\n\t}\n\n\tif (Array.isArray(stderr)) {\n\t\treturn [stripNewline(stdout, options, 'all'), ...stderr];\n\t}\n\n\tif (isUint8Array(stdout) && isUint8Array(stderr)) {\n\t\treturn concatUint8Arrays([stdout, stderr]);\n\t}\n\n\treturn `${stdout}${stderr}`;\n};\n",
111
- "import {once} from 'node:events';\nimport {DiscardedError} from '../return/final-error.js';\n\n// If `error` is emitted before `spawn`, `exit` will never be emitted.\n// However, `error` might be emitted after `spawn`.\n// In that case, `exit` will still be emitted.\n// Since the `exit` event contains the signal name, we want to make sure we are listening for it.\n// This function also takes into account the following unlikely cases:\n// - `exit` being emitted in the same microtask as `spawn`\n// - `error` being emitted multiple times\nexport const waitForExit = async (subprocess, context) => {\n\tconst [exitCode, signal] = await waitForExitOrError(subprocess);\n\tcontext.isForcefullyTerminated ??= false;\n\treturn [exitCode, signal];\n};\n\nconst waitForExitOrError = async subprocess => {\n\tconst [spawnPayload, exitPayload] = await Promise.allSettled([\n\t\tonce(subprocess, 'spawn'),\n\t\tonce(subprocess, 'exit'),\n\t]);\n\n\tif (spawnPayload.status === 'rejected') {\n\t\treturn [];\n\t}\n\n\treturn exitPayload.status === 'rejected'\n\t\t? waitForSubprocessExit(subprocess)\n\t\t: exitPayload.value;\n};\n\nconst waitForSubprocessExit = async subprocess => {\n\ttry {\n\t\treturn await once(subprocess, 'exit');\n\t} catch {\n\t\treturn waitForSubprocessExit(subprocess);\n\t}\n};\n\n// Retrieve the final exit code and|or signal name\nexport const waitForSuccessfulExit = async exitPromise => {\n\tconst [exitCode, signal] = await exitPromise;\n\n\tif (!isSubprocessErrorExit(exitCode, signal) && isFailedExit(exitCode, signal)) {\n\t\tthrow new DiscardedError();\n\t}\n\n\treturn [exitCode, signal];\n};\n\n// When the subprocess fails due to an `error` event\nconst isSubprocessErrorExit = (exitCode, signal) => exitCode === undefined && signal === undefined;\n// When the subprocess fails due to a non-0 exit code or to a signal termination\nexport const isFailedExit = (exitCode, signal) => exitCode !== 0 || signal !== null;\n",
112
- "import {DiscardedError} from '../return/final-error.js';\nimport {isMaxBufferSync} from '../io/max-buffer.js';\nimport {isFailedExit} from './exit-async.js';\n\n// Retrieve exit code, signal name and error information, with synchronous methods\nexport const getExitResultSync = ({error, status: exitCode, signal, output}, {maxBuffer}) => {\n\tconst resultError = getResultError(error, exitCode, signal);\n\tconst timedOut = resultError?.code === 'ETIMEDOUT';\n\tconst isMaxBuffer = isMaxBufferSync(resultError, output, maxBuffer);\n\treturn {\n\t\tresultError,\n\t\texitCode,\n\t\tsignal,\n\t\ttimedOut,\n\t\tisMaxBuffer,\n\t};\n};\n\nconst getResultError = (error, exitCode, signal) => {\n\tif (error !== undefined) {\n\t\treturn error;\n\t}\n\n\treturn isFailedExit(exitCode, signal) ? new DiscardedError() : undefined;\n};\n",
113
- "import {spawnSync} from 'node:child_process';\nimport {handleCommand} from '../arguments/command.js';\nimport {normalizeOptions} from '../arguments/options.js';\nimport {concatenateShell} from '../arguments/shell.js';\nimport {makeError, makeEarlyError, makeSuccessResult} from '../return/result.js';\nimport {handleResult} from '../return/reject.js';\nimport {handleStdioSync} from '../stdio/handle-sync.js';\nimport {stripNewline} from '../io/strip-newline.js';\nimport {addInputOptionsSync} from '../io/input-sync.js';\nimport {transformOutputSync} from '../io/output-sync.js';\nimport {getMaxBufferSync} from '../io/max-buffer.js';\nimport {getAllSync} from '../resolve/all-sync.js';\nimport {getExitResultSync} from '../resolve/exit-sync.js';\n\n// Main shared logic for all sync methods: `execaSync()`, `$.sync()`\nexport const execaCoreSync = (rawFile, rawArguments, rawOptions) => {\n\tconst {file, commandArguments, command, escapedCommand, startTime, verboseInfo, options, fileDescriptors} = handleSyncArguments(rawFile, rawArguments, rawOptions);\n\tconst result = spawnSubprocessSync({\n\t\tfile,\n\t\tcommandArguments,\n\t\toptions,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tverboseInfo,\n\t\tfileDescriptors,\n\t\tstartTime,\n\t});\n\treturn handleResult(result, verboseInfo, options);\n};\n\n// Compute arguments to pass to `child_process.spawnSync()`\nconst handleSyncArguments = (rawFile, rawArguments, rawOptions) => {\n\tconst {command, escapedCommand, startTime, verboseInfo} = handleCommand(rawFile, rawArguments, rawOptions);\n\tconst syncOptions = normalizeSyncOptions(rawOptions);\n\tconst {file, commandArguments, options} = normalizeOptions(rawFile, rawArguments, syncOptions);\n\tvalidateSyncOptions(options);\n\tconst fileDescriptors = handleStdioSync(options, verboseInfo);\n\treturn {\n\t\tfile,\n\t\tcommandArguments,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstartTime,\n\t\tverboseInfo,\n\t\toptions,\n\t\tfileDescriptors,\n\t};\n};\n\n// Options normalization logic specific to sync methods\nconst normalizeSyncOptions = options => options.node && !options.ipc ? {...options, ipc: false} : options;\n\n// Options validation logic specific to sync methods\nconst validateSyncOptions = ({ipc, ipcInput, detached, cancelSignal}) => {\n\tif (ipcInput) {\n\t\tthrowInvalidSyncOption('ipcInput');\n\t}\n\n\tif (ipc) {\n\t\tthrowInvalidSyncOption('ipc: true');\n\t}\n\n\tif (detached) {\n\t\tthrowInvalidSyncOption('detached: true');\n\t}\n\n\tif (cancelSignal) {\n\t\tthrowInvalidSyncOption('cancelSignal');\n\t}\n};\n\nconst throwInvalidSyncOption = value => {\n\tthrow new TypeError(`The \"${value}\" option cannot be used with synchronous methods.`);\n};\n\nconst spawnSubprocessSync = ({file, commandArguments, options, command, escapedCommand, verboseInfo, fileDescriptors, startTime}) => {\n\tconst syncResult = runSubprocessSync({\n\t\tfile,\n\t\tcommandArguments,\n\t\toptions,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tfileDescriptors,\n\t\tstartTime,\n\t});\n\tif (syncResult.failed) {\n\t\treturn syncResult;\n\t}\n\n\tconst {resultError, exitCode, signal, timedOut, isMaxBuffer} = getExitResultSync(syncResult, options);\n\tconst {output, error = resultError} = transformOutputSync({\n\t\tfileDescriptors,\n\t\tsyncResult,\n\t\toptions,\n\t\tisMaxBuffer,\n\t\tverboseInfo,\n\t});\n\tconst stdio = output.map((stdioOutput, fdNumber) => stripNewline(stdioOutput, options, fdNumber));\n\tconst all = stripNewline(getAllSync(output, options), options, 'all');\n\treturn getSyncResult({\n\t\terror,\n\t\texitCode,\n\t\tsignal,\n\t\ttimedOut,\n\t\tisMaxBuffer,\n\t\tstdio,\n\t\tall,\n\t\toptions,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstartTime,\n\t});\n};\n\nconst runSubprocessSync = ({file, commandArguments, options, command, escapedCommand, fileDescriptors, startTime}) => {\n\ttry {\n\t\taddInputOptionsSync(fileDescriptors, options);\n\t\tconst normalizedOptions = normalizeSpawnSyncOptions(options);\n\t\treturn spawnSync(...concatenateShell(file, commandArguments, normalizedOptions));\n\t} catch (error) {\n\t\treturn makeEarlyError({\n\t\t\terror,\n\t\t\tcommand,\n\t\t\tescapedCommand,\n\t\t\tfileDescriptors,\n\t\t\toptions,\n\t\t\tstartTime,\n\t\t\tisSync: true,\n\t\t});\n\t}\n};\n\n// The `encoding` option is handled by Execa, not by `child_process.spawnSync()`\nconst normalizeSpawnSyncOptions = ({encoding, maxBuffer, ...options}) => ({...options, encoding: 'buffer', maxBuffer: getMaxBufferSync(maxBuffer)});\n\nconst getSyncResult = ({error, exitCode, signal, timedOut, isMaxBuffer, stdio, all, options, command, escapedCommand, startTime}) => error === undefined\n\t? makeSuccessResult({\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstdio,\n\t\tall,\n\t\tipcOutput: [],\n\t\toptions,\n\t\tstartTime,\n\t})\n\t: makeError({\n\t\terror,\n\t\tcommand,\n\t\tescapedCommand,\n\t\ttimedOut,\n\t\tisCanceled: false,\n\t\tisGracefullyCanceled: false,\n\t\tisMaxBuffer,\n\t\tisForcefullyTerminated: false,\n\t\texitCode,\n\t\tsignal,\n\t\tstdio,\n\t\tall,\n\t\tipcOutput: [],\n\t\toptions,\n\t\tstartTime,\n\t\tisSync: true,\n\t});\n",
114
- "import {once, on} from 'node:events';\nimport {\n\tvalidateIpcMethod,\n\tthrowOnEarlyDisconnect,\n\tdisconnect,\n\tgetStrictResponseError,\n} from './validation.js';\nimport {getIpcEmitter, isConnected} from './forward.js';\nimport {addReference, removeReference} from './reference.js';\n\n// Like `[sub]process.once('message')` but promise-based\nexport const getOneMessage = ({anyProcess, channel, isSubprocess, ipc}, {reference = true, filter} = {}) => {\n\tvalidateIpcMethod({\n\t\tmethodName: 'getOneMessage',\n\t\tisSubprocess,\n\t\tipc,\n\t\tisConnected: isConnected(anyProcess),\n\t});\n\n\treturn getOneMessageAsync({\n\t\tanyProcess,\n\t\tchannel,\n\t\tisSubprocess,\n\t\tfilter,\n\t\treference,\n\t});\n};\n\nconst getOneMessageAsync = async ({anyProcess, channel, isSubprocess, filter, reference}) => {\n\taddReference(channel, reference);\n\tconst ipcEmitter = getIpcEmitter(anyProcess, channel, isSubprocess);\n\tconst controller = new AbortController();\n\ttry {\n\t\treturn await Promise.race([\n\t\t\tgetMessage(ipcEmitter, filter, controller),\n\t\t\tthrowOnDisconnect(ipcEmitter, isSubprocess, controller),\n\t\t\tthrowOnStrictError(ipcEmitter, isSubprocess, controller),\n\t\t]);\n\t} catch (error) {\n\t\tdisconnect(anyProcess);\n\t\tthrow error;\n\t} finally {\n\t\tcontroller.abort();\n\t\tremoveReference(channel, reference);\n\t}\n};\n\nconst getMessage = async (ipcEmitter, filter, {signal}) => {\n\tif (filter === undefined) {\n\t\tconst [message] = await once(ipcEmitter, 'message', {signal});\n\t\treturn message;\n\t}\n\n\tfor await (const [message] of on(ipcEmitter, 'message', {signal})) {\n\t\tif (filter(message)) {\n\t\t\treturn message;\n\t\t}\n\t}\n};\n\nconst throwOnDisconnect = async (ipcEmitter, isSubprocess, {signal}) => {\n\tawait once(ipcEmitter, 'disconnect', {signal});\n\tthrowOnEarlyDisconnect(isSubprocess);\n};\n\nconst throwOnStrictError = async (ipcEmitter, isSubprocess, {signal}) => {\n\tconst [error] = await once(ipcEmitter, 'strict:error', {signal});\n\tthrow getStrictResponseError(error, isSubprocess);\n};\n",
115
- "import {once, on} from 'node:events';\nimport {validateIpcMethod, disconnect, getStrictResponseError} from './validation.js';\nimport {getIpcEmitter, isConnected} from './forward.js';\nimport {addReference, removeReference} from './reference.js';\n\n// Like `[sub]process.on('message')` but promise-based\nexport const getEachMessage = ({anyProcess, channel, isSubprocess, ipc}, {reference = true} = {}) => loopOnMessages({\n\tanyProcess,\n\tchannel,\n\tisSubprocess,\n\tipc,\n\tshouldAwait: !isSubprocess,\n\treference,\n});\n\n// Same but used internally\nexport const loopOnMessages = ({anyProcess, channel, isSubprocess, ipc, shouldAwait, reference}) => {\n\tvalidateIpcMethod({\n\t\tmethodName: 'getEachMessage',\n\t\tisSubprocess,\n\t\tipc,\n\t\tisConnected: isConnected(anyProcess),\n\t});\n\n\taddReference(channel, reference);\n\tconst ipcEmitter = getIpcEmitter(anyProcess, channel, isSubprocess);\n\tconst controller = new AbortController();\n\tconst state = {};\n\tstopOnDisconnect(anyProcess, ipcEmitter, controller);\n\tabortOnStrictError({\n\t\tipcEmitter,\n\t\tisSubprocess,\n\t\tcontroller,\n\t\tstate,\n\t});\n\treturn iterateOnMessages({\n\t\tanyProcess,\n\t\tchannel,\n\t\tipcEmitter,\n\t\tisSubprocess,\n\t\tshouldAwait,\n\t\tcontroller,\n\t\tstate,\n\t\treference,\n\t});\n};\n\nconst stopOnDisconnect = async (anyProcess, ipcEmitter, controller) => {\n\ttry {\n\t\tawait once(ipcEmitter, 'disconnect', {signal: controller.signal});\n\t\tcontroller.abort();\n\t} catch {}\n};\n\nconst abortOnStrictError = async ({ipcEmitter, isSubprocess, controller, state}) => {\n\ttry {\n\t\tconst [error] = await once(ipcEmitter, 'strict:error', {signal: controller.signal});\n\t\tstate.error = getStrictResponseError(error, isSubprocess);\n\t\tcontroller.abort();\n\t} catch {}\n};\n\nconst iterateOnMessages = async function * ({anyProcess, channel, ipcEmitter, isSubprocess, shouldAwait, controller, state, reference}) {\n\ttry {\n\t\tfor await (const [message] of on(ipcEmitter, 'message', {signal: controller.signal})) {\n\t\t\tthrowIfStrictError(state);\n\t\t\tyield message;\n\t\t}\n\t} catch {\n\t\tthrowIfStrictError(state);\n\t} finally {\n\t\tcontroller.abort();\n\t\tremoveReference(channel, reference);\n\n\t\tif (!isSubprocess) {\n\t\t\tdisconnect(anyProcess);\n\t\t}\n\n\t\tif (shouldAwait) {\n\t\t\tawait anyProcess;\n\t\t}\n\t}\n};\n\nconst throwIfStrictError = ({error}) => {\n\tif (error) {\n\t\tthrow error;\n\t}\n};\n",
116
- "import process from 'node:process';\nimport {sendMessage} from './send.js';\nimport {getOneMessage} from './get-one.js';\nimport {getEachMessage} from './get-each.js';\nimport {getCancelSignal} from './graceful.js';\n\n// Add promise-based IPC methods in current process\nexport const addIpcMethods = (subprocess, {ipc}) => {\n\tObject.assign(subprocess, getIpcMethods(subprocess, false, ipc));\n};\n\n// Get promise-based IPC in the subprocess\nexport const getIpcExport = () => {\n\tconst anyProcess = process;\n\tconst isSubprocess = true;\n\tconst ipc = process.channel !== undefined;\n\n\treturn {\n\t\t...getIpcMethods(anyProcess, isSubprocess, ipc),\n\t\tgetCancelSignal: getCancelSignal.bind(undefined, {\n\t\t\tanyProcess,\n\t\t\tchannel: anyProcess.channel,\n\t\t\tisSubprocess,\n\t\t\tipc,\n\t\t}),\n\t};\n};\n\n// Retrieve the `ipc` shared by both the current process and the subprocess\nconst getIpcMethods = (anyProcess, isSubprocess, ipc) => ({\n\tsendMessage: sendMessage.bind(undefined, {\n\t\tanyProcess,\n\t\tchannel: anyProcess.channel,\n\t\tisSubprocess,\n\t\tipc,\n\t}),\n\tgetOneMessage: getOneMessage.bind(undefined, {\n\t\tanyProcess,\n\t\tchannel: anyProcess.channel,\n\t\tisSubprocess,\n\t\tipc,\n\t}),\n\tgetEachMessage: getEachMessage.bind(undefined, {\n\t\tanyProcess,\n\t\tchannel: anyProcess.channel,\n\t\tisSubprocess,\n\t\tipc,\n\t}),\n});\n",
117
- "import {ChildProcess} from 'node:child_process';\nimport {\n\tPassThrough,\n\tReadable,\n\tWritable,\n\tDuplex,\n} from 'node:stream';\nimport {cleanupCustomStreams} from '../stdio/handle.js';\nimport {makeEarlyError} from './result.js';\nimport {handleResult} from './reject.js';\n\n// When the subprocess fails to spawn.\n// We ensure the returned error is always both a promise and a subprocess.\nexport const handleEarlyError = ({error, command, escapedCommand, fileDescriptors, options, startTime, verboseInfo}) => {\n\tcleanupCustomStreams(fileDescriptors);\n\n\tconst subprocess = new ChildProcess();\n\tcreateDummyStreams(subprocess, fileDescriptors);\n\tObject.assign(subprocess, {readable, writable, duplex});\n\n\tconst earlyError = makeEarlyError({\n\t\terror,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tfileDescriptors,\n\t\toptions,\n\t\tstartTime,\n\t\tisSync: false,\n\t});\n\tconst promise = handleDummyPromise(earlyError, verboseInfo, options);\n\treturn {subprocess, promise};\n};\n\nconst createDummyStreams = (subprocess, fileDescriptors) => {\n\tconst stdin = createDummyStream();\n\tconst stdout = createDummyStream();\n\tconst stderr = createDummyStream();\n\tconst extraStdio = Array.from({length: fileDescriptors.length - 3}, createDummyStream);\n\tconst all = createDummyStream();\n\tconst stdio = [stdin, stdout, stderr, ...extraStdio];\n\tObject.assign(subprocess, {\n\t\tstdin,\n\t\tstdout,\n\t\tstderr,\n\t\tall,\n\t\tstdio,\n\t});\n};\n\nconst createDummyStream = () => {\n\tconst stream = new PassThrough();\n\tstream.end();\n\treturn stream;\n};\n\nconst readable = () => new Readable({read() {}});\nconst writable = () => new Writable({write() {}});\nconst duplex = () => new Duplex({read() {}, write() {}});\n\nconst handleDummyPromise = async (error, verboseInfo, options) => handleResult(error, verboseInfo, options);\n",
118
- "import {createReadStream, createWriteStream} from 'node:fs';\nimport {Buffer} from 'node:buffer';\nimport {Readable, Writable, Duplex} from 'node:stream';\nimport {generatorToStream} from '../transform/generator.js';\nimport {handleStdio} from './handle.js';\nimport {TYPE_TO_MESSAGE} from './type.js';\n\n// Handle `input`, `inputFile`, `stdin`, `stdout` and `stderr` options, before spawning, in async mode\nexport const handleStdioAsync = (options, verboseInfo) => handleStdio(addPropertiesAsync, options, verboseInfo, false);\n\nconst forbiddenIfAsync = ({type, optionName}) => {\n\tthrow new TypeError(`The \\`${optionName}\\` option cannot be ${TYPE_TO_MESSAGE[type]}.`);\n};\n\n// Create streams used internally for piping when using specific values for the `std*` options, in async mode.\n// For example, `stdout: {file}` creates a file stream, which is piped from/to.\nconst addProperties = {\n\tfileNumber: forbiddenIfAsync,\n\tgenerator: generatorToStream,\n\tasyncGenerator: generatorToStream,\n\tnodeStream: ({value}) => ({stream: value}),\n\twebTransform({value: {transform, writableObjectMode, readableObjectMode}}) {\n\t\tconst objectMode = writableObjectMode || readableObjectMode;\n\t\tconst stream = Duplex.fromWeb(transform, {objectMode});\n\t\treturn {stream};\n\t},\n\tduplex: ({value: {transform}}) => ({stream: transform}),\n\tnative() {},\n};\n\nconst addPropertiesAsync = {\n\tinput: {\n\t\t...addProperties,\n\t\tfileUrl: ({value}) => ({stream: createReadStream(value)}),\n\t\tfilePath: ({value: {file}}) => ({stream: createReadStream(file)}),\n\t\twebStream: ({value}) => ({stream: Readable.fromWeb(value)}),\n\t\titerable: ({value}) => ({stream: Readable.from(value)}),\n\t\tasyncIterable: ({value}) => ({stream: Readable.from(value)}),\n\t\tstring: ({value}) => ({stream: Readable.from(value)}),\n\t\tuint8Array: ({value}) => ({stream: Readable.from(Buffer.from(value))}),\n\t},\n\toutput: {\n\t\t...addProperties,\n\t\tfileUrl: ({value}) => ({stream: createWriteStream(value)}),\n\t\tfilePath: ({value: {file, append}}) => ({stream: createWriteStream(file, append ? {flags: 'a'} : {})}),\n\t\twebStream: ({value}) => ({stream: Writable.fromWeb(value)}),\n\t\titerable: forbiddenIfAsync,\n\t\tasyncIterable: forbiddenIfAsync,\n\t\tstring: forbiddenIfAsync,\n\t\tuint8Array: forbiddenIfAsync,\n\t},\n};\n",
119
- "import {on, once} from 'node:events';\nimport {PassThrough as PassThroughStream, getDefaultHighWaterMark} from 'node:stream';\nimport {finished} from 'node:stream/promises';\n\nexport default function mergeStreams(streams) {\n\tif (!Array.isArray(streams)) {\n\t\tthrow new TypeError(`Expected an array, got \\`${typeof streams}\\`.`);\n\t}\n\n\tfor (const stream of streams) {\n\t\tvalidateStream(stream);\n\t}\n\n\tconst objectMode = streams.some(({readableObjectMode}) => readableObjectMode);\n\tconst highWaterMark = getHighWaterMark(streams, objectMode);\n\tconst passThroughStream = new MergedStream({\n\t\tobjectMode,\n\t\twritableHighWaterMark: highWaterMark,\n\t\treadableHighWaterMark: highWaterMark,\n\t});\n\n\tfor (const stream of streams) {\n\t\tpassThroughStream.add(stream);\n\t}\n\n\treturn passThroughStream;\n}\n\nconst getHighWaterMark = (streams, objectMode) => {\n\tif (streams.length === 0) {\n\t\treturn getDefaultHighWaterMark(objectMode);\n\t}\n\n\tconst highWaterMarks = streams\n\t\t.filter(({readableObjectMode}) => readableObjectMode === objectMode)\n\t\t.map(({readableHighWaterMark}) => readableHighWaterMark);\n\treturn Math.max(...highWaterMarks);\n};\n\nclass MergedStream extends PassThroughStream {\n\t#streams = new Set([]);\n\t#ended = new Set([]);\n\t#aborted = new Set([]);\n\t#onFinished;\n\t#unpipeEvent = Symbol('unpipe');\n\t#streamPromises = new WeakMap();\n\n\tadd(stream) {\n\t\tvalidateStream(stream);\n\n\t\tif (this.#streams.has(stream)) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#streams.add(stream);\n\n\t\tthis.#onFinished ??= onMergedStreamFinished(this, this.#streams, this.#unpipeEvent);\n\t\tconst streamPromise = endWhenStreamsDone({\n\t\t\tpassThroughStream: this,\n\t\t\tstream,\n\t\t\tstreams: this.#streams,\n\t\t\tended: this.#ended,\n\t\t\taborted: this.#aborted,\n\t\t\tonFinished: this.#onFinished,\n\t\t\tunpipeEvent: this.#unpipeEvent,\n\t\t});\n\t\tthis.#streamPromises.set(stream, streamPromise);\n\n\t\tstream.pipe(this, {end: false});\n\t}\n\n\tasync remove(stream) {\n\t\tvalidateStream(stream);\n\n\t\tif (!this.#streams.has(stream)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst streamPromise = this.#streamPromises.get(stream);\n\t\tif (streamPromise === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.#streamPromises.delete(stream);\n\n\t\tstream.unpipe(this);\n\t\tawait streamPromise;\n\t\treturn true;\n\t}\n}\n\nconst onMergedStreamFinished = async (passThroughStream, streams, unpipeEvent) => {\n\tupdateMaxListeners(passThroughStream, PASSTHROUGH_LISTENERS_COUNT);\n\tconst controller = new AbortController();\n\n\ttry {\n\t\tawait Promise.race([\n\t\t\tonMergedStreamEnd(passThroughStream, controller),\n\t\t\tonInputStreamsUnpipe(passThroughStream, streams, unpipeEvent, controller),\n\t\t]);\n\t} finally {\n\t\tcontroller.abort();\n\t\tupdateMaxListeners(passThroughStream, -PASSTHROUGH_LISTENERS_COUNT);\n\t}\n};\n\nconst onMergedStreamEnd = async (passThroughStream, {signal}) => {\n\ttry {\n\t\tawait finished(passThroughStream, {signal, cleanup: true});\n\t} catch (error) {\n\t\terrorOrAbortStream(passThroughStream, error);\n\t\tthrow error;\n\t}\n};\n\nconst onInputStreamsUnpipe = async (passThroughStream, streams, unpipeEvent, {signal}) => {\n\tfor await (const [unpipedStream] of on(passThroughStream, 'unpipe', {signal})) {\n\t\tif (streams.has(unpipedStream)) {\n\t\t\tunpipedStream.emit(unpipeEvent);\n\t\t}\n\t}\n};\n\nconst validateStream = stream => {\n\tif (typeof stream?.pipe !== 'function') {\n\t\tthrow new TypeError(`Expected a readable stream, got: \\`${typeof stream}\\`.`);\n\t}\n};\n\nconst endWhenStreamsDone = async ({passThroughStream, stream, streams, ended, aborted, onFinished, unpipeEvent}) => {\n\tupdateMaxListeners(passThroughStream, PASSTHROUGH_LISTENERS_PER_STREAM);\n\tconst controller = new AbortController();\n\n\ttry {\n\t\tawait Promise.race([\n\t\t\tafterMergedStreamFinished(onFinished, stream, controller),\n\t\t\tonInputStreamEnd({\n\t\t\t\tpassThroughStream,\n\t\t\t\tstream,\n\t\t\t\tstreams,\n\t\t\t\tended,\n\t\t\t\taborted,\n\t\t\t\tcontroller,\n\t\t\t}),\n\t\t\tonInputStreamUnpipe({\n\t\t\t\tstream,\n\t\t\t\tstreams,\n\t\t\t\tended,\n\t\t\t\taborted,\n\t\t\t\tunpipeEvent,\n\t\t\t\tcontroller,\n\t\t\t}),\n\t\t]);\n\t} finally {\n\t\tcontroller.abort();\n\t\tupdateMaxListeners(passThroughStream, -PASSTHROUGH_LISTENERS_PER_STREAM);\n\t}\n\n\tif (streams.size > 0 && streams.size === ended.size + aborted.size) {\n\t\tif (ended.size === 0 && aborted.size > 0) {\n\t\t\tabortStream(passThroughStream);\n\t\t} else {\n\t\t\tendStream(passThroughStream);\n\t\t}\n\t}\n};\n\nconst afterMergedStreamFinished = async (onFinished, stream, {signal}) => {\n\ttry {\n\t\tawait onFinished;\n\t\tif (!signal.aborted) {\n\t\t\tabortStream(stream);\n\t\t}\n\t} catch (error) {\n\t\tif (!signal.aborted) {\n\t\t\terrorOrAbortStream(stream, error);\n\t\t}\n\t}\n};\n\nconst onInputStreamEnd = async ({passThroughStream, stream, streams, ended, aborted, controller: {signal}}) => {\n\ttry {\n\t\tawait finished(stream, {\n\t\t\tsignal,\n\t\t\tcleanup: true,\n\t\t\treadable: true,\n\t\t\twritable: false,\n\t\t});\n\t\tif (streams.has(stream)) {\n\t\t\tended.add(stream);\n\t\t}\n\t} catch (error) {\n\t\tif (signal.aborted || !streams.has(stream)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isAbortError(error)) {\n\t\t\taborted.add(stream);\n\t\t} else {\n\t\t\terrorStream(passThroughStream, error);\n\t\t}\n\t}\n};\n\nconst onInputStreamUnpipe = async ({stream, streams, ended, aborted, unpipeEvent, controller: {signal}}) => {\n\tawait once(stream, unpipeEvent, {signal});\n\n\tif (!stream.readable) {\n\t\treturn once(signal, 'abort', {signal});\n\t}\n\n\tstreams.delete(stream);\n\tended.delete(stream);\n\taborted.delete(stream);\n};\n\nconst endStream = stream => {\n\tif (stream.writable) {\n\t\tstream.end();\n\t}\n};\n\nconst errorOrAbortStream = (stream, error) => {\n\tif (isAbortError(error)) {\n\t\tabortStream(stream);\n\t} else {\n\t\terrorStream(stream, error);\n\t}\n};\n\n// This is the error thrown by `finished()` on `stream.destroy()`\nconst isAbortError = error => error?.code === 'ERR_STREAM_PREMATURE_CLOSE';\n\nconst abortStream = stream => {\n\tif (stream.readable || stream.writable) {\n\t\tstream.destroy();\n\t}\n};\n\n// `stream.destroy(error)` crashes the process with `uncaughtException` if no `error` event listener exists on `stream`.\n// We take care of error handling on user behalf, so we do not want this to happen.\nconst errorStream = (stream, error) => {\n\tif (!stream.destroyed) {\n\t\tstream.once('error', noop);\n\t\tstream.destroy(error);\n\t}\n};\n\nconst noop = () => {};\n\nconst updateMaxListeners = (passThroughStream, increment) => {\n\tconst maxListeners = passThroughStream.getMaxListeners();\n\tif (maxListeners !== 0 && maxListeners !== Number.POSITIVE_INFINITY) {\n\t\tpassThroughStream.setMaxListeners(maxListeners + increment);\n\t}\n};\n\n// Number of times `passThroughStream.on()` is called regardless of streams:\n// - once due to `finished(passThroughStream)`\n// - once due to `on(passThroughStream)`\nconst PASSTHROUGH_LISTENERS_COUNT = 2;\n\n// Number of times `passThroughStream.on()` is called per stream:\n// - once due to `stream.pipe(passThroughStream)`\nconst PASSTHROUGH_LISTENERS_PER_STREAM = 1;\n",
120
- "import {finished} from 'node:stream/promises';\nimport {isStandardStream} from '../utils/standard-stream.js';\n\n// Similar to `Stream.pipeline(source, destination)`, but does not destroy standard streams\nexport const pipeStreams = (source, destination) => {\n\tsource.pipe(destination);\n\tonSourceFinish(source, destination);\n\tonDestinationFinish(source, destination);\n};\n\n// `source.pipe(destination)` makes `destination` end when `source` ends.\n// But it does not propagate aborts or errors. This function does it.\nconst onSourceFinish = async (source, destination) => {\n\tif (isStandardStream(source) || isStandardStream(destination)) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait finished(source, {cleanup: true, readable: true, writable: false});\n\t} catch {}\n\n\tendDestinationStream(destination);\n};\n\nexport const endDestinationStream = destination => {\n\tif (destination.writable) {\n\t\tdestination.end();\n\t}\n};\n\n// We do the same thing in the other direction as well.\nconst onDestinationFinish = async (source, destination) => {\n\tif (isStandardStream(source) || isStandardStream(destination)) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait finished(destination, {cleanup: true, readable: false, writable: true});\n\t} catch {}\n\n\tabortSourceStream(source);\n};\n\nexport const abortSourceStream = source => {\n\tif (source.readable) {\n\t\tsource.destroy();\n\t}\n};\n",
121
- "import mergeStreams from '@sindresorhus/merge-streams';\nimport {isStandardStream} from '../utils/standard-stream.js';\nimport {incrementMaxListeners} from '../utils/max-listeners.js';\nimport {TRANSFORM_TYPES} from '../stdio/type.js';\nimport {pipeStreams} from './pipeline.js';\n\n// Handle `input`, `inputFile`, `stdin`, `stdout` and `stderr` options, after spawning, in async mode\n// When multiple input streams are used, we merge them to ensure the output stream ends only once each input stream has ended\nexport const pipeOutputAsync = (subprocess, fileDescriptors, controller) => {\n\tconst pipeGroups = new Map();\n\n\tfor (const [fdNumber, {stdioItems, direction}] of Object.entries(fileDescriptors)) {\n\t\tfor (const {stream} of stdioItems.filter(({type}) => TRANSFORM_TYPES.has(type))) {\n\t\t\tpipeTransform(subprocess, stream, direction, fdNumber);\n\t\t}\n\n\t\tfor (const {stream} of stdioItems.filter(({type}) => !TRANSFORM_TYPES.has(type))) {\n\t\t\tpipeStdioItem({\n\t\t\t\tsubprocess,\n\t\t\t\tstream,\n\t\t\t\tdirection,\n\t\t\t\tfdNumber,\n\t\t\t\tpipeGroups,\n\t\t\t\tcontroller,\n\t\t\t});\n\t\t}\n\t}\n\n\tfor (const [outputStream, inputStreams] of pipeGroups.entries()) {\n\t\tconst inputStream = inputStreams.length === 1 ? inputStreams[0] : mergeStreams(inputStreams);\n\t\tpipeStreams(inputStream, outputStream);\n\t}\n};\n\n// When using transforms, `subprocess.stdin|stdout|stderr|stdio` is directly mutated\nconst pipeTransform = (subprocess, stream, direction, fdNumber) => {\n\tif (direction === 'output') {\n\t\tpipeStreams(subprocess.stdio[fdNumber], stream);\n\t} else {\n\t\tpipeStreams(stream, subprocess.stdio[fdNumber]);\n\t}\n\n\tconst streamProperty = SUBPROCESS_STREAM_PROPERTIES[fdNumber];\n\tif (streamProperty !== undefined) {\n\t\tsubprocess[streamProperty] = stream;\n\t}\n\n\tsubprocess.stdio[fdNumber] = stream;\n};\n\nconst SUBPROCESS_STREAM_PROPERTIES = ['stdin', 'stdout', 'stderr'];\n\n// Most `std*` option values involve piping `subprocess.std*` to a stream.\n// The stream is either passed by the user or created internally.\nconst pipeStdioItem = ({subprocess, stream, direction, fdNumber, pipeGroups, controller}) => {\n\tif (stream === undefined) {\n\t\treturn;\n\t}\n\n\tsetStandardStreamMaxListeners(stream, controller);\n\n\tconst [inputStream, outputStream] = direction === 'output'\n\t\t? [stream, subprocess.stdio[fdNumber]]\n\t\t: [subprocess.stdio[fdNumber], stream];\n\tconst outputStreams = pipeGroups.get(inputStream) ?? [];\n\tpipeGroups.set(inputStream, [...outputStreams, outputStream]);\n};\n\n// Multiple subprocesses might be piping from/to `process.std*` at the same time.\n// This is not necessarily an error and should not print a `maxListeners` warning.\nconst setStandardStreamMaxListeners = (stream, {signal}) => {\n\tif (isStandardStream(stream)) {\n\t\tincrementMaxListeners(stream, MAX_LISTENERS_INCREMENT, signal);\n\t}\n};\n\n// `source.pipe(destination)` adds at most 1 listener for each event.\n// If `stdin` option is an array, the values might be combined with `merge-streams`.\n// That library also listens for `source` end, which adds 1 more listener.\nconst MAX_LISTENERS_INCREMENT = 2;\n",
122
- "/**\n * This is not the set of all possible signals.\n *\n * It IS, however, the set of all signals that trigger\n * an exit on either Linux or BSD systems. Linux is a\n * superset of the signal names supported on BSD, and\n * the unknown signals just fail to register, so we can\n * catch that easily enough.\n *\n * Windows signals are a different set, since there are\n * signals that terminate Windows processes, but don't\n * terminate (or don't even exist) on Posix systems.\n *\n * Don't bother with SIGKILL. It's uncatchable, which\n * means that we can't fire any callbacks anyway.\n *\n * If a user does happen to register a handler on a non-\n * fatal signal like SIGWINCH or something, and then\n * exit, it'll end up firing `process.emit('exit')`, so\n * the handler will be fired anyway.\n *\n * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n * artificially, inherently leave the process in a\n * state from which it is not safe to try and enter JS\n * listeners.\n */\nexport const signals = [];\nsignals.push('SIGHUP', 'SIGINT', 'SIGTERM');\nif (process.platform !== 'win32') {\n signals.push('SIGALRM', 'SIGABRT', 'SIGVTALRM', 'SIGXCPU', 'SIGXFSZ', 'SIGUSR2', 'SIGTRAP', 'SIGSYS', 'SIGQUIT', 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n );\n}\nif (process.platform === 'linux') {\n signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT');\n}\n//# sourceMappingURL=signals.js.map",
123
- "// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nimport { signals } from './signals.js';\nexport { signals };\nconst processOk = (process) => !!process &&\n typeof process === 'object' &&\n typeof process.removeListener === 'function' &&\n typeof process.emit === 'function' &&\n typeof process.reallyExit === 'function' &&\n typeof process.listeners === 'function' &&\n typeof process.kill === 'function' &&\n typeof process.pid === 'number' &&\n typeof process.on === 'function';\nconst kExitEmitter = Symbol.for('signal-exit emitter');\nconst global = globalThis;\nconst ObjectDefineProperty = Object.defineProperty.bind(Object);\n// teeny special purpose ee\nclass Emitter {\n emitted = {\n afterExit: false,\n exit: false,\n };\n listeners = {\n afterExit: [],\n exit: [],\n };\n count = 0;\n id = Math.random();\n constructor() {\n if (global[kExitEmitter]) {\n return global[kExitEmitter];\n }\n ObjectDefineProperty(global, kExitEmitter, {\n value: this,\n writable: false,\n enumerable: false,\n configurable: false,\n });\n }\n on(ev, fn) {\n this.listeners[ev].push(fn);\n }\n removeListener(ev, fn) {\n const list = this.listeners[ev];\n const i = list.indexOf(fn);\n /* c8 ignore start */\n if (i === -1) {\n return;\n }\n /* c8 ignore stop */\n if (i === 0 && list.length === 1) {\n list.length = 0;\n }\n else {\n list.splice(i, 1);\n }\n }\n emit(ev, code, signal) {\n if (this.emitted[ev]) {\n return false;\n }\n this.emitted[ev] = true;\n let ret = false;\n for (const fn of this.listeners[ev]) {\n ret = fn(code, signal) === true || ret;\n }\n if (ev === 'exit') {\n ret = this.emit('afterExit', code, signal) || ret;\n }\n return ret;\n }\n}\nclass SignalExitBase {\n}\nconst signalExitWrap = (handler) => {\n return {\n onExit(cb, opts) {\n return handler.onExit(cb, opts);\n },\n load() {\n return handler.load();\n },\n unload() {\n return handler.unload();\n },\n };\n};\nclass SignalExitFallback extends SignalExitBase {\n onExit() {\n return () => { };\n }\n load() { }\n unload() { }\n}\nclass SignalExit extends SignalExitBase {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n /* c8 ignore start */\n #hupSig = process.platform === 'win32' ? 'SIGINT' : 'SIGHUP';\n /* c8 ignore stop */\n #emitter = new Emitter();\n #process;\n #originalProcessEmit;\n #originalProcessReallyExit;\n #sigListeners = {};\n #loaded = false;\n constructor(process) {\n super();\n this.#process = process;\n // { <signal>: <listener fn>, ... }\n this.#sigListeners = {};\n for (const sig of signals) {\n this.#sigListeners[sig] = () => {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n const listeners = this.#process.listeners(sig);\n let { count } = this.#emitter;\n // This is a workaround for the fact that signal-exit v3 and signal\n // exit v4 are not aware of each other, and each will attempt to let\n // the other handle it, so neither of them do. To correct this, we\n // detect if we're the only handler *except* for previous versions\n // of signal-exit, and increment by the count of listeners it has\n // created.\n /* c8 ignore start */\n const p = process;\n if (typeof p.__signal_exit_emitter__ === 'object' &&\n typeof p.__signal_exit_emitter__.count === 'number') {\n count += p.__signal_exit_emitter__.count;\n }\n /* c8 ignore stop */\n if (listeners.length === count) {\n this.unload();\n const ret = this.#emitter.emit('exit', null, sig);\n /* c8 ignore start */\n const s = sig === 'SIGHUP' ? this.#hupSig : sig;\n if (!ret)\n process.kill(process.pid, s);\n /* c8 ignore stop */\n }\n };\n }\n this.#originalProcessReallyExit = process.reallyExit;\n this.#originalProcessEmit = process.emit;\n }\n onExit(cb, opts) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return () => { };\n }\n /* c8 ignore stop */\n if (this.#loaded === false) {\n this.load();\n }\n const ev = opts?.alwaysLast ? 'afterExit' : 'exit';\n this.#emitter.on(ev, cb);\n return () => {\n this.#emitter.removeListener(ev, cb);\n if (this.#emitter.listeners['exit'].length === 0 &&\n this.#emitter.listeners['afterExit'].length === 0) {\n this.unload();\n }\n };\n }\n load() {\n if (this.#loaded) {\n return;\n }\n this.#loaded = true;\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n this.#emitter.count += 1;\n for (const sig of signals) {\n try {\n const fn = this.#sigListeners[sig];\n if (fn)\n this.#process.on(sig, fn);\n }\n catch (_) { }\n }\n this.#process.emit = (ev, ...a) => {\n return this.#processEmit(ev, ...a);\n };\n this.#process.reallyExit = (code) => {\n return this.#processReallyExit(code);\n };\n }\n unload() {\n if (!this.#loaded) {\n return;\n }\n this.#loaded = false;\n signals.forEach(sig => {\n const listener = this.#sigListeners[sig];\n /* c8 ignore start */\n if (!listener) {\n throw new Error('Listener not defined for signal: ' + sig);\n }\n /* c8 ignore stop */\n try {\n this.#process.removeListener(sig, listener);\n /* c8 ignore start */\n }\n catch (_) { }\n /* c8 ignore stop */\n });\n this.#process.emit = this.#originalProcessEmit;\n this.#process.reallyExit = this.#originalProcessReallyExit;\n this.#emitter.count -= 1;\n }\n #processReallyExit(code) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return 0;\n }\n this.#process.exitCode = code || 0;\n /* c8 ignore stop */\n this.#emitter.emit('exit', this.#process.exitCode, null);\n return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);\n }\n #processEmit(ev, ...args) {\n const og = this.#originalProcessEmit;\n if (ev === 'exit' && processOk(this.#process)) {\n if (typeof args[0] === 'number') {\n this.#process.exitCode = args[0];\n /* c8 ignore start */\n }\n /* c8 ignore start */\n const ret = og.call(this.#process, ev, ...args);\n /* c8 ignore start */\n this.#emitter.emit('exit', this.#process.exitCode, null);\n /* c8 ignore stop */\n return ret;\n }\n else {\n return og.call(this.#process, ev, ...args);\n }\n }\n}\nconst process = globalThis.process;\n// wrap so that we call the method on the actual handler, without\n// exporting it directly.\nexport const { \n/**\n * Called when the process is exiting, whether via signal, explicit\n * exit, or running out of stuff to do.\n *\n * If the global process object is not suitable for instrumentation,\n * then this will be a no-op.\n *\n * Returns a function that may be used to unload signal-exit.\n */\nonExit, \n/**\n * Load the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\nload, \n/**\n * Unload the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\nunload, } = signalExitWrap(processOk(process) ? new SignalExit(process) : new SignalExitFallback());\n//# sourceMappingURL=index.js.map",
124
- "import {addAbortListener} from 'node:events';\nimport {onExit} from 'signal-exit';\n\n// If the `cleanup` option is used, call `subprocess.kill()` when the parent process exits\nexport const cleanupOnExit = (subprocess, {cleanup, detached}, {signal}) => {\n\tif (!cleanup || detached) {\n\t\treturn;\n\t}\n\n\tconst removeExitHandler = onExit(() => {\n\t\tsubprocess.kill();\n\t});\n\taddAbortListener(signal, () => {\n\t\tremoveExitHandler();\n\t});\n};\n",
125
- "import {normalizeParameters} from '../methods/parameters.js';\nimport {getStartTime} from '../return/duration.js';\nimport {SUBPROCESS_OPTIONS, getToStream, getFromStream} from '../arguments/fd-options.js';\nimport {isDenoExecPath} from '../arguments/file-url.js';\n\n// Normalize and validate arguments passed to `source.pipe(destination)`\nexport const normalizePipeArguments = ({source, sourcePromise, boundOptions, createNested}, ...pipeArguments) => {\n\tconst startTime = getStartTime();\n\tconst {\n\t\tdestination,\n\t\tdestinationStream,\n\t\tdestinationError,\n\t\tfrom,\n\t\tunpipeSignal,\n\t} = getDestinationStream(boundOptions, createNested, pipeArguments);\n\tconst {sourceStream, sourceError} = getSourceStream(source, from);\n\tconst {options: sourceOptions, fileDescriptors} = SUBPROCESS_OPTIONS.get(source);\n\treturn {\n\t\tsourcePromise,\n\t\tsourceStream,\n\t\tsourceOptions,\n\t\tsourceError,\n\t\tdestination,\n\t\tdestinationStream,\n\t\tdestinationError,\n\t\tunpipeSignal,\n\t\tfileDescriptors,\n\t\tstartTime,\n\t};\n};\n\nconst getDestinationStream = (boundOptions, createNested, pipeArguments) => {\n\ttry {\n\t\tconst {\n\t\t\tdestination,\n\t\t\tpipeOptions: {from, to, unpipeSignal} = {},\n\t\t} = getDestination(boundOptions, createNested, ...pipeArguments);\n\t\tconst destinationStream = getToStream(destination, to);\n\t\treturn {\n\t\t\tdestination,\n\t\t\tdestinationStream,\n\t\t\tfrom,\n\t\t\tunpipeSignal,\n\t\t};\n\t} catch (error) {\n\t\treturn {destinationError: error};\n\t}\n};\n\n// Piping subprocesses can use three syntaxes:\n// - source.pipe('command', commandArguments, pipeOptionsOrDestinationOptions)\n// - source.pipe`command commandArgument` or source.pipe(pipeOptionsOrDestinationOptions)`command commandArgument`\n// - source.pipe(execa(...), pipeOptions)\nconst getDestination = (boundOptions, createNested, firstArgument, ...pipeArguments) => {\n\tif (Array.isArray(firstArgument)) {\n\t\tconst destination = createNested(mapDestinationArguments, boundOptions)(firstArgument, ...pipeArguments);\n\t\treturn {destination, pipeOptions: boundOptions};\n\t}\n\n\tif (typeof firstArgument === 'string' || firstArgument instanceof URL || isDenoExecPath(firstArgument)) {\n\t\tif (Object.keys(boundOptions).length > 0) {\n\t\t\tthrow new TypeError('Please use .pipe(\"file\", ..., options) or .pipe(execa(\"file\", ..., options)) instead of .pipe(options)(\"file\", ...).');\n\t\t}\n\n\t\tconst [rawFile, rawArguments, rawOptions] = normalizeParameters(firstArgument, ...pipeArguments);\n\t\tconst destination = createNested(mapDestinationArguments)(rawFile, rawArguments, rawOptions);\n\t\treturn {destination, pipeOptions: rawOptions};\n\t}\n\n\tif (SUBPROCESS_OPTIONS.has(firstArgument)) {\n\t\tif (Object.keys(boundOptions).length > 0) {\n\t\t\tthrow new TypeError('Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).');\n\t\t}\n\n\t\treturn {destination: firstArgument, pipeOptions: pipeArguments[0]};\n\t}\n\n\tthrow new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${firstArgument}`);\n};\n\n// Force `stdin: 'pipe'` with the destination subprocess\nconst mapDestinationArguments = ({options}) => ({options: {...options, stdin: 'pipe', piped: true}});\n\nconst getSourceStream = (source, from) => {\n\ttry {\n\t\tconst sourceStream = getFromStream(source, from);\n\t\treturn {sourceStream};\n\t} catch (error) {\n\t\treturn {sourceError: error};\n\t}\n};\n",
126
- "import {makeEarlyError} from '../return/result.js';\nimport {abortSourceStream, endDestinationStream} from '../io/pipeline.js';\n\n// When passing invalid arguments to `source.pipe()`, throw asynchronously.\n// We also abort both subprocesses.\nexport const handlePipeArgumentsError = ({\n\tsourceStream,\n\tsourceError,\n\tdestinationStream,\n\tdestinationError,\n\tfileDescriptors,\n\tsourceOptions,\n\tstartTime,\n}) => {\n\tconst error = getPipeArgumentsError({\n\t\tsourceStream,\n\t\tsourceError,\n\t\tdestinationStream,\n\t\tdestinationError,\n\t});\n\tif (error !== undefined) {\n\t\tthrow createNonCommandError({\n\t\t\terror,\n\t\t\tfileDescriptors,\n\t\t\tsourceOptions,\n\t\t\tstartTime,\n\t\t});\n\t}\n};\n\nconst getPipeArgumentsError = ({sourceStream, sourceError, destinationStream, destinationError}) => {\n\tif (sourceError !== undefined && destinationError !== undefined) {\n\t\treturn destinationError;\n\t}\n\n\tif (destinationError !== undefined) {\n\t\tabortSourceStream(sourceStream);\n\t\treturn destinationError;\n\t}\n\n\tif (sourceError !== undefined) {\n\t\tendDestinationStream(destinationStream);\n\t\treturn sourceError;\n\t}\n};\n\n// Specific error return value when passing invalid arguments to `subprocess.pipe()` or when using `unpipeSignal`\nexport const createNonCommandError = ({error, fileDescriptors, sourceOptions, startTime}) => makeEarlyError({\n\terror,\n\tcommand: PIPE_COMMAND_MESSAGE,\n\tescapedCommand: PIPE_COMMAND_MESSAGE,\n\tfileDescriptors,\n\toptions: sourceOptions,\n\tstartTime,\n\tisSync: false,\n});\n\nconst PIPE_COMMAND_MESSAGE = 'source.pipe(destination)';\n",
127
- "// Like Bash, we await both subprocesses. This is unlike some other shells which only await the destination subprocess.\n// Like Bash with the `pipefail` option, if either subprocess fails, the whole pipe fails.\n// Like Bash, if both subprocesses fail, we return the failure of the destination.\n// This ensures both subprocesses' errors are present, using `error.pipedFrom`.\nexport const waitForBothSubprocesses = async subprocessPromises => {\n\tconst [\n\t\t{status: sourceStatus, reason: sourceReason, value: sourceResult = sourceReason},\n\t\t{status: destinationStatus, reason: destinationReason, value: destinationResult = destinationReason},\n\t] = await subprocessPromises;\n\n\tif (!destinationResult.pipedFrom.includes(sourceResult)) {\n\t\tdestinationResult.pipedFrom.push(sourceResult);\n\t}\n\n\tif (destinationStatus === 'rejected') {\n\t\tthrow destinationResult;\n\t}\n\n\tif (sourceStatus === 'rejected') {\n\t\tthrow sourceResult;\n\t}\n\n\treturn destinationResult;\n};\n",
128
- "import {finished} from 'node:stream/promises';\nimport mergeStreams from '@sindresorhus/merge-streams';\nimport {incrementMaxListeners} from '../utils/max-listeners.js';\nimport {pipeStreams} from '../io/pipeline.js';\n\n// The piping behavior is like Bash.\n// In particular, when one subprocess exits, the other is not terminated by a signal.\n// Instead, its stdout (for the source) or stdin (for the destination) closes.\n// If the subprocess uses it, it will make it error with SIGPIPE or EPIPE (for the source) or end (for the destination).\n// If it does not use it, it will continue running.\n// This allows for subprocesses to gracefully exit and lower the coupling between subprocesses.\nexport const pipeSubprocessStream = (sourceStream, destinationStream, maxListenersController) => {\n\tconst mergedStream = MERGED_STREAMS.has(destinationStream)\n\t\t? pipeMoreSubprocessStream(sourceStream, destinationStream)\n\t\t: pipeFirstSubprocessStream(sourceStream, destinationStream);\n\tincrementMaxListeners(sourceStream, SOURCE_LISTENERS_PER_PIPE, maxListenersController.signal);\n\tincrementMaxListeners(destinationStream, DESTINATION_LISTENERS_PER_PIPE, maxListenersController.signal);\n\tcleanupMergedStreamsMap(destinationStream);\n\treturn mergedStream;\n};\n\n// We use `merge-streams` to allow for multiple sources to pipe to the same destination.\nconst pipeFirstSubprocessStream = (sourceStream, destinationStream) => {\n\tconst mergedStream = mergeStreams([sourceStream]);\n\tpipeStreams(mergedStream, destinationStream);\n\tMERGED_STREAMS.set(destinationStream, mergedStream);\n\treturn mergedStream;\n};\n\nconst pipeMoreSubprocessStream = (sourceStream, destinationStream) => {\n\tconst mergedStream = MERGED_STREAMS.get(destinationStream);\n\tmergedStream.add(sourceStream);\n\treturn mergedStream;\n};\n\nconst cleanupMergedStreamsMap = async destinationStream => {\n\ttry {\n\t\tawait finished(destinationStream, {cleanup: true, readable: false, writable: true});\n\t} catch {}\n\n\tMERGED_STREAMS.delete(destinationStream);\n};\n\nconst MERGED_STREAMS = new WeakMap();\n\n// Number of listeners set up on `sourceStream` by each `sourceStream.pipe(destinationStream)`\n// Those are added by `merge-streams`\nconst SOURCE_LISTENERS_PER_PIPE = 2;\n// Number of listeners set up on `destinationStream` by each `sourceStream.pipe(destinationStream)`\n// Those are added by `finished()` in `cleanupMergedStreamsMap()`\nconst DESTINATION_LISTENERS_PER_PIPE = 1;\n",
129
- "import {aborted} from 'node:util';\nimport {createNonCommandError} from './throw.js';\n\n// When passing an `unpipeSignal` option, abort piping when the signal is aborted.\n// However, do not terminate the subprocesses.\nexport const unpipeOnAbort = (unpipeSignal, unpipeContext) => unpipeSignal === undefined\n\t? []\n\t: [unpipeOnSignalAbort(unpipeSignal, unpipeContext)];\n\nconst unpipeOnSignalAbort = async (unpipeSignal, {sourceStream, mergedStream, fileDescriptors, sourceOptions, startTime}) => {\n\tawait aborted(unpipeSignal, sourceStream);\n\tawait mergedStream.remove(sourceStream);\n\tconst error = new Error('Pipe canceled by `unpipeSignal` option.');\n\tthrow createNonCommandError({\n\t\terror,\n\t\tfileDescriptors,\n\t\tsourceOptions,\n\t\tstartTime,\n\t});\n};\n",
130
- "import isPlainObject from 'is-plain-obj';\nimport {normalizePipeArguments} from './pipe-arguments.js';\nimport {handlePipeArgumentsError} from './throw.js';\nimport {waitForBothSubprocesses} from './sequence.js';\nimport {pipeSubprocessStream} from './streaming.js';\nimport {unpipeOnAbort} from './abort.js';\n\n// Pipe a subprocess' `stdout`/`stderr`/`stdio` into another subprocess' `stdin`\nexport const pipeToSubprocess = (sourceInfo, ...pipeArguments) => {\n\tif (isPlainObject(pipeArguments[0])) {\n\t\treturn pipeToSubprocess.bind(undefined, {\n\t\t\t...sourceInfo,\n\t\t\tboundOptions: {...sourceInfo.boundOptions, ...pipeArguments[0]},\n\t\t});\n\t}\n\n\tconst {destination, ...normalizedInfo} = normalizePipeArguments(sourceInfo, ...pipeArguments);\n\tconst promise = handlePipePromise({...normalizedInfo, destination});\n\tpromise.pipe = pipeToSubprocess.bind(undefined, {\n\t\t...sourceInfo,\n\t\tsource: destination,\n\t\tsourcePromise: promise,\n\t\tboundOptions: {},\n\t});\n\treturn promise;\n};\n\n// Asynchronous logic when piping subprocesses\nconst handlePipePromise = async ({\n\tsourcePromise,\n\tsourceStream,\n\tsourceOptions,\n\tsourceError,\n\tdestination,\n\tdestinationStream,\n\tdestinationError,\n\tunpipeSignal,\n\tfileDescriptors,\n\tstartTime,\n}) => {\n\tconst subprocessPromises = getSubprocessPromises(sourcePromise, destination);\n\thandlePipeArgumentsError({\n\t\tsourceStream,\n\t\tsourceError,\n\t\tdestinationStream,\n\t\tdestinationError,\n\t\tfileDescriptors,\n\t\tsourceOptions,\n\t\tstartTime,\n\t});\n\tconst maxListenersController = new AbortController();\n\ttry {\n\t\tconst mergedStream = pipeSubprocessStream(sourceStream, destinationStream, maxListenersController);\n\t\treturn await Promise.race([\n\t\t\twaitForBothSubprocesses(subprocessPromises),\n\t\t\t...unpipeOnAbort(unpipeSignal, {\n\t\t\t\tsourceStream,\n\t\t\t\tmergedStream,\n\t\t\t\tsourceOptions,\n\t\t\t\tfileDescriptors,\n\t\t\t\tstartTime,\n\t\t\t}),\n\t\t]);\n\t} finally {\n\t\tmaxListenersController.abort();\n\t}\n};\n\n// `.pipe()` awaits the subprocess promises.\n// When invalid arguments are passed to `.pipe()`, we throw an error, which prevents awaiting them.\n// We need to ensure this does not create unhandled rejections.\nconst getSubprocessPromises = (sourcePromise, destination) => Promise.allSettled([sourcePromise, destination]);\n",
131
- "import {on} from 'node:events';\nimport {getDefaultHighWaterMark} from 'node:stream';\nimport {getEncodingTransformGenerator} from '../transform/encoding-transform.js';\nimport {getSplitLinesGenerator} from '../transform/split.js';\nimport {transformChunkSync, finalChunksSync} from '../transform/run-sync.js';\n\n// Iterate over lines of `subprocess.stdout`, used by `subprocess.readable|duplex|iterable()`\nexport const iterateOnSubprocessStream = ({subprocessStdout, subprocess, binary, shouldEncode, encoding, preserveNewlines}) => {\n\tconst controller = new AbortController();\n\tstopReadingOnExit(subprocess, controller);\n\treturn iterateOnStream({\n\t\tstream: subprocessStdout,\n\t\tcontroller,\n\t\tbinary,\n\t\tshouldEncode: !subprocessStdout.readableObjectMode && shouldEncode,\n\t\tencoding,\n\t\tshouldSplit: !subprocessStdout.readableObjectMode,\n\t\tpreserveNewlines,\n\t});\n};\n\nconst stopReadingOnExit = async (subprocess, controller) => {\n\ttry {\n\t\tawait subprocess;\n\t} catch {} finally {\n\t\tcontroller.abort();\n\t}\n};\n\n// Iterate over lines of `subprocess.stdout`, used by `result.stdout` and the `verbose: 'full'` option.\n// Applies the `lines` and `encoding` options.\nexport const iterateForResult = ({stream, onStreamEnd, lines, encoding, stripFinalNewline, allMixed}) => {\n\tconst controller = new AbortController();\n\tstopReadingOnStreamEnd(onStreamEnd, controller, stream);\n\tconst objectMode = stream.readableObjectMode && !allMixed;\n\treturn iterateOnStream({\n\t\tstream,\n\t\tcontroller,\n\t\tbinary: encoding === 'buffer',\n\t\tshouldEncode: !objectMode,\n\t\tencoding,\n\t\tshouldSplit: !objectMode && lines,\n\t\tpreserveNewlines: !stripFinalNewline,\n\t});\n};\n\nconst stopReadingOnStreamEnd = async (onStreamEnd, controller, stream) => {\n\ttry {\n\t\tawait onStreamEnd;\n\t} catch {\n\t\tstream.destroy();\n\t} finally {\n\t\tcontroller.abort();\n\t}\n};\n\nconst iterateOnStream = ({stream, controller, binary, shouldEncode, encoding, shouldSplit, preserveNewlines}) => {\n\tconst onStdoutChunk = on(stream, 'data', {\n\t\tsignal: controller.signal,\n\t\thighWaterMark: HIGH_WATER_MARK,\n\t\t// Backward compatibility with older name for this option\n\t\t// See https://github.com/nodejs/node/pull/52080#discussion_r1525227861\n\t\t// @todo Remove after removing support for Node 21\n\t\thighWatermark: HIGH_WATER_MARK,\n\t});\n\treturn iterateOnData({\n\t\tonStdoutChunk,\n\t\tcontroller,\n\t\tbinary,\n\t\tshouldEncode,\n\t\tencoding,\n\t\tshouldSplit,\n\t\tpreserveNewlines,\n\t});\n};\n\nexport const DEFAULT_OBJECT_HIGH_WATER_MARK = getDefaultHighWaterMark(true);\n\n// The `highWaterMark` of `events.on()` is measured in number of events, not in bytes.\n// Not knowing the average amount of bytes per `data` event, we use the same heuristic as streams in objectMode, since they have the same issue.\n// Therefore, we use the value of `getDefaultHighWaterMark(true)`.\n// Note: this option does not exist on Node 18, but this is ok since the logic works without it. It just consumes more memory.\nconst HIGH_WATER_MARK = DEFAULT_OBJECT_HIGH_WATER_MARK;\n\nconst iterateOnData = async function * ({onStdoutChunk, controller, binary, shouldEncode, encoding, shouldSplit, preserveNewlines}) {\n\tconst generators = getGenerators({\n\t\tbinary,\n\t\tshouldEncode,\n\t\tencoding,\n\t\tshouldSplit,\n\t\tpreserveNewlines,\n\t});\n\n\ttry {\n\t\tfor await (const [chunk] of onStdoutChunk) {\n\t\t\tyield * transformChunkSync(chunk, generators, 0);\n\t\t}\n\t} catch (error) {\n\t\tif (!controller.signal.aborted) {\n\t\t\tthrow error;\n\t\t}\n\t} finally {\n\t\tyield * finalChunksSync(generators);\n\t}\n};\n\nconst getGenerators = ({binary, shouldEncode, encoding, shouldSplit, preserveNewlines}) => [\n\tgetEncodingTransformGenerator(binary, encoding, !shouldEncode),\n\tgetSplitLinesGenerator(binary, preserveNewlines, !shouldSplit, {}),\n].filter(Boolean);\n",
132
- "import {setImmediate} from 'node:timers/promises';\nimport getStream, {getStreamAsArrayBuffer, getStreamAsArray} from 'get-stream';\nimport {isArrayBuffer} from '../utils/uint-array.js';\nimport {shouldLogOutput, logLines} from '../verbose/output.js';\nimport {iterateForResult} from './iterate.js';\nimport {handleMaxBuffer} from './max-buffer.js';\nimport {getStripFinalNewline} from './strip-newline.js';\n\n// Retrieve `result.stdout|stderr|all|stdio[*]`\nexport const getStreamOutput = async ({stream, onStreamEnd, fdNumber, encoding, buffer, maxBuffer, lines, allMixed, stripFinalNewline, verboseInfo, streamInfo}) => {\n\tconst logPromise = logOutputAsync({\n\t\tstream,\n\t\tonStreamEnd,\n\t\tfdNumber,\n\t\tencoding,\n\t\tallMixed,\n\t\tverboseInfo,\n\t\tstreamInfo,\n\t});\n\n\tif (!buffer) {\n\t\tawait Promise.all([resumeStream(stream), logPromise]);\n\t\treturn;\n\t}\n\n\tconst stripFinalNewlineValue = getStripFinalNewline(stripFinalNewline, fdNumber);\n\tconst iterable = iterateForResult({\n\t\tstream,\n\t\tonStreamEnd,\n\t\tlines,\n\t\tencoding,\n\t\tstripFinalNewline: stripFinalNewlineValue,\n\t\tallMixed,\n\t});\n\tconst [output] = await Promise.all([\n\t\tgetStreamContents({\n\t\t\tstream,\n\t\t\titerable,\n\t\t\tfdNumber,\n\t\t\tencoding,\n\t\t\tmaxBuffer,\n\t\t\tlines,\n\t\t}),\n\t\tlogPromise,\n\t]);\n\treturn output;\n};\n\nconst logOutputAsync = async ({stream, onStreamEnd, fdNumber, encoding, allMixed, verboseInfo, streamInfo: {fileDescriptors}}) => {\n\tif (!shouldLogOutput({\n\t\tstdioItems: fileDescriptors[fdNumber]?.stdioItems,\n\t\tencoding,\n\t\tverboseInfo,\n\t\tfdNumber,\n\t})) {\n\t\treturn;\n\t}\n\n\tconst linesIterable = iterateForResult({\n\t\tstream,\n\t\tonStreamEnd,\n\t\tlines: true,\n\t\tencoding,\n\t\tstripFinalNewline: true,\n\t\tallMixed,\n\t});\n\tawait logLines(linesIterable, stream, fdNumber, verboseInfo);\n};\n\n// When using `buffer: false`, users need to read `subprocess.stdout|stderr|all` right away\n// See https://github.com/sindresorhus/execa/issues/730 and https://github.com/sindresorhus/execa/pull/729#discussion_r1465496310\nconst resumeStream = async stream => {\n\tawait setImmediate();\n\tif (stream.readableFlowing === null) {\n\t\tstream.resume();\n\t}\n};\n\nconst getStreamContents = async ({stream, stream: {readableObjectMode}, iterable, fdNumber, encoding, maxBuffer, lines}) => {\n\ttry {\n\t\tif (readableObjectMode || lines) {\n\t\t\treturn await getStreamAsArray(iterable, {maxBuffer});\n\t\t}\n\n\t\tif (encoding === 'buffer') {\n\t\t\treturn new Uint8Array(await getStreamAsArrayBuffer(iterable, {maxBuffer}));\n\t\t}\n\n\t\treturn await getStream(iterable, {maxBuffer});\n\t} catch (error) {\n\t\treturn handleBufferedData(handleMaxBuffer({\n\t\t\terror,\n\t\t\tstream,\n\t\t\treadableObjectMode,\n\t\t\tlines,\n\t\t\tencoding,\n\t\t\tfdNumber,\n\t\t}));\n\t}\n};\n\n// On failure, `result.stdout|stderr|all` should contain the currently buffered stream\n// They are automatically closed and flushed by Node.js when the subprocess exits\n// When `buffer` is `false`, `streamPromise` is `undefined` and there is no buffered data to retrieve\nexport const getBufferedData = async streamPromise => {\n\ttry {\n\t\treturn await streamPromise;\n\t} catch (error) {\n\t\treturn handleBufferedData(error);\n\t}\n};\n\n// Ensure we are returning Uint8Arrays when using `encoding: 'buffer'`\nconst handleBufferedData = ({bufferedData}) => isArrayBuffer(bufferedData)\n\t? new Uint8Array(bufferedData)\n\t: bufferedData;\n",
133
- "import {finished} from 'node:stream/promises';\n\n// Wraps `finished(stream)` to handle the following case:\n// - When the subprocess exits, Node.js automatically calls `subprocess.stdin.destroy()`, which we need to ignore.\n// - However, we still need to throw if `subprocess.stdin.destroy()` is called before subprocess exit.\nexport const waitForStream = async (stream, fdNumber, streamInfo, {isSameDirection, stopOnExit = false} = {}) => {\n\tconst state = handleStdinDestroy(stream, streamInfo);\n\tconst abortController = new AbortController();\n\ttry {\n\t\tawait Promise.race([\n\t\t\t...(stopOnExit ? [streamInfo.exitPromise] : []),\n\t\t\tfinished(stream, {cleanup: true, signal: abortController.signal}),\n\t\t]);\n\t} catch (error) {\n\t\tif (!state.stdinCleanedUp) {\n\t\t\thandleStreamError(error, fdNumber, streamInfo, isSameDirection);\n\t\t}\n\t} finally {\n\t\tabortController.abort();\n\t}\n};\n\n// If `subprocess.stdin` is destroyed before being fully written to, it is considered aborted and should throw an error.\n// This can happen for example when user called `subprocess.stdin.destroy()` before `subprocess.stdin.end()`.\n// However, Node.js calls `subprocess.stdin.destroy()` on exit for cleanup purposes.\n// https://github.com/nodejs/node/blob/0b4cdb4b42956cbd7019058e409e06700a199e11/lib/internal/child_process.js#L278\n// This is normal and should not throw an error.\n// Therefore, we need to differentiate between both situations to know whether to throw an error.\n// Unfortunately, events (`close`, `error`, `end`, `exit`) cannot be used because `.destroy()` can take an arbitrary amount of time.\n// For example, `stdin: 'pipe'` is implemented as a TCP socket, and its `.destroy()` method waits for TCP disconnection.\n// Therefore `.destroy()` might end before or after subprocess exit, based on OS speed and load.\n// The only way to detect this is to spy on `subprocess.stdin._destroy()` by wrapping it.\n// If `subprocess.exitCode` or `subprocess.signalCode` is set, it means `.destroy()` is being called by Node.js itself.\nconst handleStdinDestroy = (stream, {originalStreams: [originalStdin], subprocess}) => {\n\tconst state = {stdinCleanedUp: false};\n\tif (stream === originalStdin) {\n\t\tspyOnStdinDestroy(stream, subprocess, state);\n\t}\n\n\treturn state;\n};\n\nconst spyOnStdinDestroy = (subprocessStdin, subprocess, state) => {\n\tconst {_destroy} = subprocessStdin;\n\tsubprocessStdin._destroy = (...destroyArguments) => {\n\t\tsetStdinCleanedUp(subprocess, state);\n\t\t_destroy.call(subprocessStdin, ...destroyArguments);\n\t};\n};\n\nconst setStdinCleanedUp = ({exitCode, signalCode}, state) => {\n\tif (exitCode !== null || signalCode !== null) {\n\t\tstate.stdinCleanedUp = true;\n\t}\n};\n\n// We ignore EPIPEs on writable streams and aborts on readable streams since those can happen normally.\n// When one stream errors, the error is propagated to the other streams on the same file descriptor.\n// Those other streams might have a different direction due to the above.\n// When this happens, the direction of both the initial stream and the others should then be taken into account.\n// Therefore, we keep track of whether a stream error is currently propagating.\nconst handleStreamError = (error, fdNumber, streamInfo, isSameDirection) => {\n\tif (!shouldIgnoreStreamError(error, fdNumber, streamInfo, isSameDirection)) {\n\t\tthrow error;\n\t}\n};\n\nconst shouldIgnoreStreamError = (error, fdNumber, streamInfo, isSameDirection = true) => {\n\tif (streamInfo.propagating) {\n\t\treturn isStreamEpipe(error) || isStreamAbort(error);\n\t}\n\n\tstreamInfo.propagating = true;\n\treturn isInputFileDescriptor(streamInfo, fdNumber) === isSameDirection\n\t\t? isStreamEpipe(error)\n\t\t: isStreamAbort(error);\n};\n\n// Unfortunately, we cannot use the stream's class or properties to know whether it is readable or writable.\n// For example, `subprocess.stdin` is technically a Duplex, but can only be used as a writable.\n// Therefore, we need to use the file descriptor's direction (`stdin` is input, `stdout` is output, etc.).\n// However, while `subprocess.std*` and transforms follow that direction, any stream passed the `std*` option has the opposite direction.\n// For example, `subprocess.stdin` is a writable, but the `stdin` option is a readable.\nexport const isInputFileDescriptor = ({fileDescriptors}, fdNumber) => fdNumber !== 'all' && fileDescriptors[fdNumber].direction === 'input';\n\n// When `stream.destroy()` is called without an `error` argument, stream is aborted.\n// This is the only way to abort a readable stream, which can be useful in some instances.\n// Therefore, we ignore this error on readable streams.\nexport const isStreamAbort = error => error?.code === 'ERR_STREAM_PREMATURE_CLOSE';\n\n// When `stream.write()` is called but the underlying source has been closed, `EPIPE` is emitted.\n// When piping subprocesses, the source subprocess usually decides when to stop piping.\n// However, there are some instances when the destination does instead, such as `... | head -n1`.\n// It notifies the source by using `EPIPE`.\n// Therefore, we ignore this error on writable streams.\nconst isStreamEpipe = error => error?.code === 'EPIPE';\n",
134
- "import {getStreamOutput} from '../io/contents.js';\nimport {waitForStream, isInputFileDescriptor} from './wait-stream.js';\n\n// Read the contents of `subprocess.std*` and|or wait for its completion\nexport const waitForStdioStreams = ({subprocess, encoding, buffer, maxBuffer, lines, stripFinalNewline, verboseInfo, streamInfo}) => subprocess.stdio.map((stream, fdNumber) => waitForSubprocessStream({\n\tstream,\n\tfdNumber,\n\tencoding,\n\tbuffer: buffer[fdNumber],\n\tmaxBuffer: maxBuffer[fdNumber],\n\tlines: lines[fdNumber],\n\tallMixed: false,\n\tstripFinalNewline,\n\tverboseInfo,\n\tstreamInfo,\n}));\n\n// Read the contents of `subprocess.std*` or `subprocess.all` and|or wait for its completion\nexport const waitForSubprocessStream = async ({stream, fdNumber, encoding, buffer, maxBuffer, lines, allMixed, stripFinalNewline, verboseInfo, streamInfo}) => {\n\tif (!stream) {\n\t\treturn;\n\t}\n\n\tconst onStreamEnd = waitForStream(stream, fdNumber, streamInfo);\n\tif (isInputFileDescriptor(streamInfo, fdNumber)) {\n\t\tawait onStreamEnd;\n\t\treturn;\n\t}\n\n\tconst [output] = await Promise.all([\n\t\tgetStreamOutput({\n\t\t\tstream,\n\t\t\tonStreamEnd,\n\t\t\tfdNumber,\n\t\t\tencoding,\n\t\t\tbuffer,\n\t\t\tmaxBuffer,\n\t\t\tlines,\n\t\t\tallMixed,\n\t\t\tstripFinalNewline,\n\t\t\tverboseInfo,\n\t\t\tstreamInfo,\n\t\t}),\n\t\tonStreamEnd,\n\t]);\n\treturn output;\n};\n",
135
- "import mergeStreams from '@sindresorhus/merge-streams';\nimport {waitForSubprocessStream} from './stdio.js';\n\n// `all` interleaves `stdout` and `stderr`\nexport const makeAllStream = ({stdout, stderr}, {all}) => all && (stdout || stderr)\n\t? mergeStreams([stdout, stderr].filter(Boolean))\n\t: undefined;\n\n// Read the contents of `subprocess.all` and|or wait for its completion\nexport const waitForAllStream = ({subprocess, encoding, buffer, maxBuffer, lines, stripFinalNewline, verboseInfo, streamInfo}) => waitForSubprocessStream({\n\t...getAllStream(subprocess, buffer),\n\tfdNumber: 'all',\n\tencoding,\n\tmaxBuffer: maxBuffer[1] + maxBuffer[2],\n\tlines: lines[1] || lines[2],\n\tallMixed: getAllMixed(subprocess),\n\tstripFinalNewline,\n\tverboseInfo,\n\tstreamInfo,\n});\n\nconst getAllStream = ({stdout, stderr, all}, [, bufferStdout, bufferStderr]) => {\n\tconst buffer = bufferStdout || bufferStderr;\n\tif (!buffer) {\n\t\treturn {stream: all, buffer};\n\t}\n\n\tif (!bufferStdout) {\n\t\treturn {stream: stderr, buffer};\n\t}\n\n\tif (!bufferStderr) {\n\t\treturn {stream: stdout, buffer};\n\t}\n\n\treturn {stream: all, buffer};\n};\n\n// When `subprocess.stdout` is in objectMode but not `subprocess.stderr` (or the opposite), we need to use both:\n// - `getStreamAsArray()` for the chunks in objectMode, to return as an array without changing each chunk\n// - `getStreamAsArrayBuffer()` or `getStream()` for the chunks not in objectMode, to convert them from Buffers to string or Uint8Array\n// We do this by emulating the Buffer -> string|Uint8Array conversion performed by `get-stream` with our own, which is identical.\nconst getAllMixed = ({all, stdout, stderr}) => all\n\t&& stdout\n\t&& stderr\n\t&& stdout.readableObjectMode !== stderr.readableObjectMode;\n",
136
- "import {verboseLog, serializeVerboseMessage} from './log.js';\nimport {isFullVerbose} from './values.js';\n\n// When `verbose` is `'full'`, print IPC messages from the subprocess\nexport const shouldLogIpc = verboseInfo => isFullVerbose(verboseInfo, 'ipc');\n\nexport const logIpcOutput = (message, verboseInfo) => {\n\tconst verboseMessage = serializeVerboseMessage(message);\n\tverboseLog({\n\t\ttype: 'ipc',\n\t\tverboseMessage,\n\t\tfdNumber: 'ipc',\n\t\tverboseInfo,\n\t});\n};\n",
137
- "import {checkIpcMaxBuffer} from '../io/max-buffer.js';\nimport {shouldLogIpc, logIpcOutput} from '../verbose/ipc.js';\nimport {getFdSpecificValue} from '../arguments/specific.js';\nimport {loopOnMessages} from './get-each.js';\n\n// Iterate through IPC messages sent by the subprocess\nexport const waitForIpcOutput = async ({\n\tsubprocess,\n\tbuffer: bufferArray,\n\tmaxBuffer: maxBufferArray,\n\tipc,\n\tipcOutput,\n\tverboseInfo,\n}) => {\n\tif (!ipc) {\n\t\treturn ipcOutput;\n\t}\n\n\tconst isVerbose = shouldLogIpc(verboseInfo);\n\tconst buffer = getFdSpecificValue(bufferArray, 'ipc');\n\tconst maxBuffer = getFdSpecificValue(maxBufferArray, 'ipc');\n\n\tfor await (const message of loopOnMessages({\n\t\tanyProcess: subprocess,\n\t\tchannel: subprocess.channel,\n\t\tisSubprocess: false,\n\t\tipc,\n\t\tshouldAwait: false,\n\t\treference: true,\n\t})) {\n\t\tif (buffer) {\n\t\t\tcheckIpcMaxBuffer(subprocess, ipcOutput, maxBuffer);\n\t\t\tipcOutput.push(message);\n\t\t}\n\n\t\tif (isVerbose) {\n\t\t\tlogIpcOutput(message, verboseInfo);\n\t\t}\n\t}\n\n\treturn ipcOutput;\n};\n\nexport const getBufferedIpcOutput = async (ipcOutputPromise, ipcOutput) => {\n\tawait Promise.allSettled([ipcOutputPromise]);\n\treturn ipcOutput;\n};\n",
138
- "import {once} from 'node:events';\nimport {isStream as isNodeStream} from 'is-stream';\nimport {throwOnTimeout} from '../terminate/timeout.js';\nimport {throwOnCancel} from '../terminate/cancel.js';\nimport {throwOnGracefulCancel} from '../terminate/graceful.js';\nimport {isStandardStream} from '../utils/standard-stream.js';\nimport {TRANSFORM_TYPES} from '../stdio/type.js';\nimport {getBufferedData} from '../io/contents.js';\nimport {waitForIpcOutput, getBufferedIpcOutput} from '../ipc/buffer-messages.js';\nimport {sendIpcInput} from '../ipc/ipc-input.js';\nimport {waitForAllStream} from './all-async.js';\nimport {waitForStdioStreams} from './stdio.js';\nimport {waitForExit, waitForSuccessfulExit} from './exit-async.js';\nimport {waitForStream} from './wait-stream.js';\n\n// Retrieve result of subprocess: exit code, signal, error, streams (stdout/stderr/all)\nexport const waitForSubprocessResult = async ({\n\tsubprocess,\n\toptions: {\n\t\tencoding,\n\t\tbuffer,\n\t\tmaxBuffer,\n\t\tlines,\n\t\ttimeoutDuration: timeout,\n\t\tcancelSignal,\n\t\tgracefulCancel,\n\t\tforceKillAfterDelay,\n\t\tstripFinalNewline,\n\t\tipc,\n\t\tipcInput,\n\t},\n\tcontext,\n\tverboseInfo,\n\tfileDescriptors,\n\toriginalStreams,\n\tonInternalError,\n\tcontroller,\n}) => {\n\tconst exitPromise = waitForExit(subprocess, context);\n\tconst streamInfo = {\n\t\toriginalStreams,\n\t\tfileDescriptors,\n\t\tsubprocess,\n\t\texitPromise,\n\t\tpropagating: false,\n\t};\n\n\tconst stdioPromises = waitForStdioStreams({\n\t\tsubprocess,\n\t\tencoding,\n\t\tbuffer,\n\t\tmaxBuffer,\n\t\tlines,\n\t\tstripFinalNewline,\n\t\tverboseInfo,\n\t\tstreamInfo,\n\t});\n\tconst allPromise = waitForAllStream({\n\t\tsubprocess,\n\t\tencoding,\n\t\tbuffer,\n\t\tmaxBuffer,\n\t\tlines,\n\t\tstripFinalNewline,\n\t\tverboseInfo,\n\t\tstreamInfo,\n\t});\n\tconst ipcOutput = [];\n\tconst ipcOutputPromise = waitForIpcOutput({\n\t\tsubprocess,\n\t\tbuffer,\n\t\tmaxBuffer,\n\t\tipc,\n\t\tipcOutput,\n\t\tverboseInfo,\n\t});\n\tconst originalPromises = waitForOriginalStreams(originalStreams, subprocess, streamInfo);\n\tconst customStreamsEndPromises = waitForCustomStreamsEnd(fileDescriptors, streamInfo);\n\n\ttry {\n\t\treturn await Promise.race([\n\t\t\tPromise.all([\n\t\t\t\t{},\n\t\t\t\twaitForSuccessfulExit(exitPromise),\n\t\t\t\tPromise.all(stdioPromises),\n\t\t\t\tallPromise,\n\t\t\t\tipcOutputPromise,\n\t\t\t\tsendIpcInput(subprocess, ipcInput),\n\t\t\t\t...originalPromises,\n\t\t\t\t...customStreamsEndPromises,\n\t\t\t]),\n\t\t\tonInternalError,\n\t\t\tthrowOnSubprocessError(subprocess, controller),\n\t\t\t...throwOnTimeout(subprocess, timeout, context, controller),\n\t\t\t...throwOnCancel({\n\t\t\t\tsubprocess,\n\t\t\t\tcancelSignal,\n\t\t\t\tgracefulCancel,\n\t\t\t\tcontext,\n\t\t\t\tcontroller,\n\t\t\t}),\n\t\t\t...throwOnGracefulCancel({\n\t\t\t\tsubprocess,\n\t\t\t\tcancelSignal,\n\t\t\t\tgracefulCancel,\n\t\t\t\tforceKillAfterDelay,\n\t\t\t\tcontext,\n\t\t\t\tcontroller,\n\t\t\t}),\n\t\t]);\n\t} catch (error) {\n\t\tcontext.terminationReason ??= 'other';\n\t\treturn Promise.all([\n\t\t\t{error},\n\t\t\texitPromise,\n\t\t\tPromise.all(stdioPromises.map(stdioPromise => getBufferedData(stdioPromise))),\n\t\t\tgetBufferedData(allPromise),\n\t\t\tgetBufferedIpcOutput(ipcOutputPromise, ipcOutput),\n\t\t\tPromise.allSettled(originalPromises),\n\t\t\tPromise.allSettled(customStreamsEndPromises),\n\t\t]);\n\t}\n};\n\n// Transforms replace `subprocess.std*`, which means they are not exposed to users.\n// However, we still want to wait for their completion.\nconst waitForOriginalStreams = (originalStreams, subprocess, streamInfo) =>\n\toriginalStreams.map((stream, fdNumber) => stream === subprocess.stdio[fdNumber]\n\t\t? undefined\n\t\t: waitForStream(stream, fdNumber, streamInfo));\n\n// Some `stdin`/`stdout`/`stderr` options create a stream, e.g. when passing a file path.\n// The `.pipe()` method automatically ends that stream when `subprocess` ends.\n// This makes sure we wait for the completion of those streams, in order to catch any error.\nconst waitForCustomStreamsEnd = (fileDescriptors, streamInfo) => fileDescriptors.flatMap(({stdioItems}, fdNumber) => stdioItems\n\t.filter(({value, stream = value}) => isNodeStream(stream, {checkOpen: false}) && !isStandardStream(stream))\n\t.map(({type, value, stream = value}) => waitForStream(stream, fdNumber, streamInfo, {\n\t\tisSameDirection: TRANSFORM_TYPES.has(type),\n\t\tstopOnExit: type === 'native',\n\t})));\n\n// Fails when the subprocess emits an `error` event\nconst throwOnSubprocessError = async (subprocess, {signal}) => {\n\tconst [error] = await once(subprocess, 'error', {signal});\n\tthrow error;\n};\n",
139
- "import {createDeferred} from '../utils/deferred.js';\n\n// When using multiple `.readable()`/`.writable()`/`.duplex()`, `final` and `destroy` should wait for other streams\nexport const initializeConcurrentStreams = () => ({\n\treadableDestroy: new WeakMap(),\n\twritableFinal: new WeakMap(),\n\twritableDestroy: new WeakMap(),\n});\n\n// Each file descriptor + `waitName` has its own array of promises.\n// Each promise is a single `.readable()`/`.writable()`/`.duplex()` call.\nexport const addConcurrentStream = (concurrentStreams, stream, waitName) => {\n\tconst weakMap = concurrentStreams[waitName];\n\tif (!weakMap.has(stream)) {\n\t\tweakMap.set(stream, []);\n\t}\n\n\tconst promises = weakMap.get(stream);\n\tconst promise = createDeferred();\n\tpromises.push(promise);\n\tconst resolve = promise.resolve.bind(promise);\n\treturn {resolve, promises};\n};\n\n// Wait for other streams, but stop waiting when subprocess ends\nexport const waitForConcurrentStreams = async ({resolve, promises}, subprocess) => {\n\tresolve();\n\tconst [isSubprocessExit] = await Promise.race([\n\t\tPromise.allSettled([true, subprocess]),\n\t\tPromise.all([false, ...promises]),\n\t]);\n\treturn !isSubprocessExit;\n};\n",
140
- "import {finished} from 'node:stream/promises';\nimport {isStreamAbort} from '../resolve/wait-stream.js';\n\nexport const safeWaitForSubprocessStdin = async subprocessStdin => {\n\tif (subprocessStdin === undefined) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait waitForSubprocessStdin(subprocessStdin);\n\t} catch {}\n};\n\nexport const safeWaitForSubprocessStdout = async subprocessStdout => {\n\tif (subprocessStdout === undefined) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait waitForSubprocessStdout(subprocessStdout);\n\t} catch {}\n};\n\nexport const waitForSubprocessStdin = async subprocessStdin => {\n\tawait finished(subprocessStdin, {cleanup: true, readable: false, writable: true});\n};\n\nexport const waitForSubprocessStdout = async subprocessStdout => {\n\tawait finished(subprocessStdout, {cleanup: true, readable: true, writable: false});\n};\n\n// When `readable` or `writable` aborts/errors, awaits the subprocess, for the reason mentioned above\nexport const waitForSubprocess = async (subprocess, error) => {\n\tawait subprocess;\n\tif (error) {\n\t\tthrow error;\n\t}\n};\n\nexport const destroyOtherStream = (stream, isOpen, error) => {\n\tif (error && !isStreamAbort(error)) {\n\t\tstream.destroy(error);\n\t} else if (isOpen) {\n\t\tstream.destroy();\n\t}\n};\n",
141
- "import {Readable} from 'node:stream';\nimport {callbackify} from 'node:util';\nimport {BINARY_ENCODINGS} from '../arguments/encoding-option.js';\nimport {getFromStream} from '../arguments/fd-options.js';\nimport {iterateOnSubprocessStream, DEFAULT_OBJECT_HIGH_WATER_MARK} from '../io/iterate.js';\nimport {createDeferred} from '../utils/deferred.js';\nimport {addConcurrentStream, waitForConcurrentStreams} from './concurrent.js';\nimport {\n\tsafeWaitForSubprocessStdin,\n\twaitForSubprocessStdout,\n\twaitForSubprocess,\n\tdestroyOtherStream,\n} from './shared.js';\n\n// Create a `Readable` stream that forwards from `stdout` and awaits the subprocess\nexport const createReadable = ({subprocess, concurrentStreams, encoding}, {from, binary: binaryOption = true, preserveNewlines = true} = {}) => {\n\tconst binary = binaryOption || BINARY_ENCODINGS.has(encoding);\n\tconst {subprocessStdout, waitReadableDestroy} = getSubprocessStdout(subprocess, from, concurrentStreams);\n\tconst {readableEncoding, readableObjectMode, readableHighWaterMark} = getReadableOptions(subprocessStdout, binary);\n\tconst {read, onStdoutDataDone} = getReadableMethods({\n\t\tsubprocessStdout,\n\t\tsubprocess,\n\t\tbinary,\n\t\tencoding,\n\t\tpreserveNewlines,\n\t});\n\tconst readable = new Readable({\n\t\tread,\n\t\tdestroy: callbackify(onReadableDestroy.bind(undefined, {subprocessStdout, subprocess, waitReadableDestroy})),\n\t\thighWaterMark: readableHighWaterMark,\n\t\tobjectMode: readableObjectMode,\n\t\tencoding: readableEncoding,\n\t});\n\tonStdoutFinished({\n\t\tsubprocessStdout,\n\t\tonStdoutDataDone,\n\t\treadable,\n\t\tsubprocess,\n\t});\n\treturn readable;\n};\n\n// Retrieve `stdout` (or other stream depending on `from`)\nexport const getSubprocessStdout = (subprocess, from, concurrentStreams) => {\n\tconst subprocessStdout = getFromStream(subprocess, from);\n\tconst waitReadableDestroy = addConcurrentStream(concurrentStreams, subprocessStdout, 'readableDestroy');\n\treturn {subprocessStdout, waitReadableDestroy};\n};\n\nexport const getReadableOptions = ({readableEncoding, readableObjectMode, readableHighWaterMark}, binary) => binary\n\t? {readableEncoding, readableObjectMode, readableHighWaterMark}\n\t: {readableEncoding, readableObjectMode: true, readableHighWaterMark: DEFAULT_OBJECT_HIGH_WATER_MARK};\n\nexport const getReadableMethods = ({subprocessStdout, subprocess, binary, encoding, preserveNewlines}) => {\n\tconst onStdoutDataDone = createDeferred();\n\tconst onStdoutData = iterateOnSubprocessStream({\n\t\tsubprocessStdout,\n\t\tsubprocess,\n\t\tbinary,\n\t\tshouldEncode: !binary,\n\t\tencoding,\n\t\tpreserveNewlines,\n\t});\n\n\treturn {\n\t\tread() {\n\t\t\tonRead(this, onStdoutData, onStdoutDataDone);\n\t\t},\n\t\tonStdoutDataDone,\n\t};\n};\n\n// Forwards data from `stdout` to `readable`\nconst onRead = async (readable, onStdoutData, onStdoutDataDone) => {\n\ttry {\n\t\tconst {value, done} = await onStdoutData.next();\n\t\tif (done) {\n\t\t\tonStdoutDataDone.resolve();\n\t\t} else {\n\t\t\treadable.push(value);\n\t\t}\n\t} catch {}\n};\n\n// When `subprocess.stdout` ends/aborts/errors, do the same on `readable`.\n// Await the subprocess, for the same reason as above.\nexport const onStdoutFinished = async ({subprocessStdout, onStdoutDataDone, readable, subprocess, subprocessStdin}) => {\n\ttry {\n\t\tawait waitForSubprocessStdout(subprocessStdout);\n\t\tawait subprocess;\n\t\tawait safeWaitForSubprocessStdin(subprocessStdin);\n\t\tawait onStdoutDataDone;\n\n\t\tif (readable.readable) {\n\t\t\treadable.push(null);\n\t\t}\n\t} catch (error) {\n\t\tawait safeWaitForSubprocessStdin(subprocessStdin);\n\t\tdestroyOtherReadable(readable, error);\n\t}\n};\n\n// When `readable` aborts/errors, do the same on `subprocess.stdout`\nexport const onReadableDestroy = async ({subprocessStdout, subprocess, waitReadableDestroy}, error) => {\n\tif (await waitForConcurrentStreams(waitReadableDestroy, subprocess)) {\n\t\tdestroyOtherReadable(subprocessStdout, error);\n\t\tawait waitForSubprocess(subprocess, error);\n\t}\n};\n\nconst destroyOtherReadable = (stream, error) => {\n\tdestroyOtherStream(stream, stream.readable, error);\n};\n",
142
- "import {Writable} from 'node:stream';\nimport {callbackify} from 'node:util';\nimport {getToStream} from '../arguments/fd-options.js';\nimport {addConcurrentStream, waitForConcurrentStreams} from './concurrent.js';\nimport {\n\tsafeWaitForSubprocessStdout,\n\twaitForSubprocessStdin,\n\twaitForSubprocess,\n\tdestroyOtherStream,\n} from './shared.js';\n\n// Create a `Writable` stream that forwards to `stdin` and awaits the subprocess\nexport const createWritable = ({subprocess, concurrentStreams}, {to} = {}) => {\n\tconst {subprocessStdin, waitWritableFinal, waitWritableDestroy} = getSubprocessStdin(subprocess, to, concurrentStreams);\n\tconst writable = new Writable({\n\t\t...getWritableMethods(subprocessStdin, subprocess, waitWritableFinal),\n\t\tdestroy: callbackify(onWritableDestroy.bind(undefined, {\n\t\t\tsubprocessStdin,\n\t\t\tsubprocess,\n\t\t\twaitWritableFinal,\n\t\t\twaitWritableDestroy,\n\t\t})),\n\t\thighWaterMark: subprocessStdin.writableHighWaterMark,\n\t\tobjectMode: subprocessStdin.writableObjectMode,\n\t});\n\tonStdinFinished(subprocessStdin, writable);\n\treturn writable;\n};\n\n// Retrieve `stdin` (or other stream depending on `to`)\nexport const getSubprocessStdin = (subprocess, to, concurrentStreams) => {\n\tconst subprocessStdin = getToStream(subprocess, to);\n\tconst waitWritableFinal = addConcurrentStream(concurrentStreams, subprocessStdin, 'writableFinal');\n\tconst waitWritableDestroy = addConcurrentStream(concurrentStreams, subprocessStdin, 'writableDestroy');\n\treturn {subprocessStdin, waitWritableFinal, waitWritableDestroy};\n};\n\nexport const getWritableMethods = (subprocessStdin, subprocess, waitWritableFinal) => ({\n\twrite: onWrite.bind(undefined, subprocessStdin),\n\tfinal: callbackify(onWritableFinal.bind(undefined, subprocessStdin, subprocess, waitWritableFinal)),\n});\n\n// Forwards data from `writable` to `stdin`\nconst onWrite = (subprocessStdin, chunk, encoding, done) => {\n\tif (subprocessStdin.write(chunk, encoding)) {\n\t\tdone();\n\t} else {\n\t\tsubprocessStdin.once('drain', done);\n\t}\n};\n\n// Ensures that the writable `final` and readable `end` events awaits the subprocess.\n// Like this, any subprocess failure is propagated as a stream `error` event, instead of being lost.\n// The user does not need to `await` the subprocess anymore, but now needs to await the stream completion or error.\n// When multiple writables are targeting the same stream, they wait for each other, unless the subprocess ends first.\nconst onWritableFinal = async (subprocessStdin, subprocess, waitWritableFinal) => {\n\tif (await waitForConcurrentStreams(waitWritableFinal, subprocess)) {\n\t\tif (subprocessStdin.writable) {\n\t\t\tsubprocessStdin.end();\n\t\t}\n\n\t\tawait subprocess;\n\t}\n};\n\n// When `subprocess.stdin` ends/aborts/errors, do the same on `writable`.\nexport const onStdinFinished = async (subprocessStdin, writable, subprocessStdout) => {\n\ttry {\n\t\tawait waitForSubprocessStdin(subprocessStdin);\n\t\tif (writable.writable) {\n\t\t\twritable.end();\n\t\t}\n\t} catch (error) {\n\t\tawait safeWaitForSubprocessStdout(subprocessStdout);\n\t\tdestroyOtherWritable(writable, error);\n\t}\n};\n\n// When `writable` aborts/errors, do the same on `subprocess.stdin`\nexport const onWritableDestroy = async ({subprocessStdin, subprocess, waitWritableFinal, waitWritableDestroy}, error) => {\n\tawait waitForConcurrentStreams(waitWritableFinal, subprocess);\n\tif (await waitForConcurrentStreams(waitWritableDestroy, subprocess)) {\n\t\tdestroyOtherWritable(subprocessStdin, error);\n\t\tawait waitForSubprocess(subprocess, error);\n\t}\n};\n\nconst destroyOtherWritable = (stream, error) => {\n\tdestroyOtherStream(stream, stream.writable, error);\n};\n",
143
- "import {Duplex} from 'node:stream';\nimport {callbackify} from 'node:util';\nimport {BINARY_ENCODINGS} from '../arguments/encoding-option.js';\nimport {\n\tgetSubprocessStdout,\n\tgetReadableOptions,\n\tgetReadableMethods,\n\tonStdoutFinished,\n\tonReadableDestroy,\n} from './readable.js';\nimport {\n\tgetSubprocessStdin,\n\tgetWritableMethods,\n\tonStdinFinished,\n\tonWritableDestroy,\n} from './writable.js';\n\n// Create a `Duplex` stream combining both `subprocess.readable()` and `subprocess.writable()`\nexport const createDuplex = ({subprocess, concurrentStreams, encoding}, {from, to, binary: binaryOption = true, preserveNewlines = true} = {}) => {\n\tconst binary = binaryOption || BINARY_ENCODINGS.has(encoding);\n\tconst {subprocessStdout, waitReadableDestroy} = getSubprocessStdout(subprocess, from, concurrentStreams);\n\tconst {subprocessStdin, waitWritableFinal, waitWritableDestroy} = getSubprocessStdin(subprocess, to, concurrentStreams);\n\tconst {readableEncoding, readableObjectMode, readableHighWaterMark} = getReadableOptions(subprocessStdout, binary);\n\tconst {read, onStdoutDataDone} = getReadableMethods({\n\t\tsubprocessStdout,\n\t\tsubprocess,\n\t\tbinary,\n\t\tencoding,\n\t\tpreserveNewlines,\n\t});\n\tconst duplex = new Duplex({\n\t\tread,\n\t\t...getWritableMethods(subprocessStdin, subprocess, waitWritableFinal),\n\t\tdestroy: callbackify(onDuplexDestroy.bind(undefined, {\n\t\t\tsubprocessStdout,\n\t\t\tsubprocessStdin,\n\t\t\tsubprocess,\n\t\t\twaitReadableDestroy,\n\t\t\twaitWritableFinal,\n\t\t\twaitWritableDestroy,\n\t\t})),\n\t\treadableHighWaterMark,\n\t\twritableHighWaterMark: subprocessStdin.writableHighWaterMark,\n\t\treadableObjectMode,\n\t\twritableObjectMode: subprocessStdin.writableObjectMode,\n\t\tencoding: readableEncoding,\n\t});\n\tonStdoutFinished({\n\t\tsubprocessStdout,\n\t\tonStdoutDataDone,\n\t\treadable: duplex,\n\t\tsubprocess,\n\t\tsubprocessStdin,\n\t});\n\tonStdinFinished(subprocessStdin, duplex, subprocessStdout);\n\treturn duplex;\n};\n\nconst onDuplexDestroy = async ({subprocessStdout, subprocessStdin, subprocess, waitReadableDestroy, waitWritableFinal, waitWritableDestroy}, error) => {\n\tawait Promise.all([\n\t\tonReadableDestroy({subprocessStdout, subprocess, waitReadableDestroy}, error),\n\t\tonWritableDestroy({\n\t\t\tsubprocessStdin,\n\t\t\tsubprocess,\n\t\t\twaitWritableFinal,\n\t\t\twaitWritableDestroy,\n\t\t}, error),\n\t]);\n};\n",
144
- "import {BINARY_ENCODINGS} from '../arguments/encoding-option.js';\nimport {getFromStream} from '../arguments/fd-options.js';\nimport {iterateOnSubprocessStream} from '../io/iterate.js';\n\n// Convert the subprocess to an async iterable\nexport const createIterable = (subprocess, encoding, {\n\tfrom,\n\tbinary: binaryOption = false,\n\tpreserveNewlines = false,\n} = {}) => {\n\tconst binary = binaryOption || BINARY_ENCODINGS.has(encoding);\n\tconst subprocessStdout = getFromStream(subprocess, from);\n\tconst onStdoutData = iterateOnSubprocessStream({\n\t\tsubprocessStdout,\n\t\tsubprocess,\n\t\tbinary,\n\t\tshouldEncode: true,\n\t\tencoding,\n\t\tpreserveNewlines,\n\t});\n\treturn iterateOnStdoutData(onStdoutData, subprocessStdout, subprocess);\n};\n\nconst iterateOnStdoutData = async function * (onStdoutData, subprocessStdout, subprocess) {\n\ttry {\n\t\tyield * onStdoutData;\n\t} finally {\n\t\tif (subprocessStdout.readable) {\n\t\t\tsubprocessStdout.destroy();\n\t\t}\n\n\t\tawait subprocess;\n\t}\n};\n",
145
- "import {initializeConcurrentStreams} from './concurrent.js';\nimport {createReadable} from './readable.js';\nimport {createWritable} from './writable.js';\nimport {createDuplex} from './duplex.js';\nimport {createIterable} from './iterable.js';\n\n// Add methods to convert the subprocess to a stream or iterable\nexport const addConvertedStreams = (subprocess, {encoding}) => {\n\tconst concurrentStreams = initializeConcurrentStreams();\n\tsubprocess.readable = createReadable.bind(undefined, {subprocess, concurrentStreams, encoding});\n\tsubprocess.writable = createWritable.bind(undefined, {subprocess, concurrentStreams});\n\tsubprocess.duplex = createDuplex.bind(undefined, {subprocess, concurrentStreams, encoding});\n\tsubprocess.iterable = createIterable.bind(undefined, subprocess, encoding);\n\tsubprocess[Symbol.asyncIterator] = createIterable.bind(undefined, subprocess, encoding, {});\n};\n",
146
- "// The return value is a mixin of `subprocess` and `Promise`\nexport const mergePromise = (subprocess, promise) => {\n\tfor (const [property, descriptor] of descriptors) {\n\t\tconst value = descriptor.value.bind(promise);\n\t\tReflect.defineProperty(subprocess, property, {...descriptor, value});\n\t}\n};\n\n// eslint-disable-next-line unicorn/prefer-top-level-await\nconst nativePromisePrototype = (async () => {})().constructor.prototype;\n\nconst descriptors = ['then', 'catch', 'finally'].map(property => [\n\tproperty,\n\tReflect.getOwnPropertyDescriptor(nativePromisePrototype, property),\n]);\n",
147
- "import {setMaxListeners} from 'node:events';\nimport {spawn} from 'node:child_process';\nimport {MaxBufferError} from 'get-stream';\nimport {handleCommand} from '../arguments/command.js';\nimport {normalizeOptions} from '../arguments/options.js';\nimport {SUBPROCESS_OPTIONS} from '../arguments/fd-options.js';\nimport {concatenateShell} from '../arguments/shell.js';\nimport {addIpcMethods} from '../ipc/methods.js';\nimport {makeError, makeSuccessResult} from '../return/result.js';\nimport {handleResult} from '../return/reject.js';\nimport {handleEarlyError} from '../return/early-error.js';\nimport {handleStdioAsync} from '../stdio/handle-async.js';\nimport {stripNewline} from '../io/strip-newline.js';\nimport {pipeOutputAsync} from '../io/output-async.js';\nimport {subprocessKill} from '../terminate/kill.js';\nimport {cleanupOnExit} from '../terminate/cleanup.js';\nimport {pipeToSubprocess} from '../pipe/setup.js';\nimport {makeAllStream} from '../resolve/all-async.js';\nimport {waitForSubprocessResult} from '../resolve/wait-subprocess.js';\nimport {addConvertedStreams} from '../convert/add.js';\nimport {createDeferred} from '../utils/deferred.js';\nimport {mergePromise} from './promise.js';\n\n// Main shared logic for all async methods: `execa()`, `$`, `execaNode()`\nexport const execaCoreAsync = (rawFile, rawArguments, rawOptions, createNested) => {\n\tconst {file, commandArguments, command, escapedCommand, startTime, verboseInfo, options, fileDescriptors} = handleAsyncArguments(rawFile, rawArguments, rawOptions);\n\tconst {subprocess, promise} = spawnSubprocessAsync({\n\t\tfile,\n\t\tcommandArguments,\n\t\toptions,\n\t\tstartTime,\n\t\tverboseInfo,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tfileDescriptors,\n\t});\n\tsubprocess.pipe = pipeToSubprocess.bind(undefined, {\n\t\tsource: subprocess,\n\t\tsourcePromise: promise,\n\t\tboundOptions: {},\n\t\tcreateNested,\n\t});\n\tmergePromise(subprocess, promise);\n\tSUBPROCESS_OPTIONS.set(subprocess, {options, fileDescriptors});\n\treturn subprocess;\n};\n\n// Compute arguments to pass to `child_process.spawn()`\nconst handleAsyncArguments = (rawFile, rawArguments, rawOptions) => {\n\tconst {command, escapedCommand, startTime, verboseInfo} = handleCommand(rawFile, rawArguments, rawOptions);\n\tconst {file, commandArguments, options: normalizedOptions} = normalizeOptions(rawFile, rawArguments, rawOptions);\n\tconst options = handleAsyncOptions(normalizedOptions);\n\tconst fileDescriptors = handleStdioAsync(options, verboseInfo);\n\treturn {\n\t\tfile,\n\t\tcommandArguments,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstartTime,\n\t\tverboseInfo,\n\t\toptions,\n\t\tfileDescriptors,\n\t};\n};\n\n// Options normalization logic specific to async methods.\n// Prevent passing the `timeout` option directly to `child_process.spawn()`.\nconst handleAsyncOptions = ({timeout, signal, ...options}) => {\n\tif (signal !== undefined) {\n\t\tthrow new TypeError('The \"signal\" option has been renamed to \"cancelSignal\" instead.');\n\t}\n\n\treturn {...options, timeoutDuration: timeout};\n};\n\nconst spawnSubprocessAsync = ({file, commandArguments, options, startTime, verboseInfo, command, escapedCommand, fileDescriptors}) => {\n\tlet subprocess;\n\ttry {\n\t\tsubprocess = spawn(...concatenateShell(file, commandArguments, options));\n\t} catch (error) {\n\t\treturn handleEarlyError({\n\t\t\terror,\n\t\t\tcommand,\n\t\t\tescapedCommand,\n\t\t\tfileDescriptors,\n\t\t\toptions,\n\t\t\tstartTime,\n\t\t\tverboseInfo,\n\t\t});\n\t}\n\n\tconst controller = new AbortController();\n\tsetMaxListeners(Number.POSITIVE_INFINITY, controller.signal);\n\n\tconst originalStreams = [...subprocess.stdio];\n\tpipeOutputAsync(subprocess, fileDescriptors, controller);\n\tcleanupOnExit(subprocess, options, controller);\n\n\tconst context = {};\n\tconst onInternalError = createDeferred();\n\tsubprocess.kill = subprocessKill.bind(undefined, {\n\t\tkill: subprocess.kill.bind(subprocess),\n\t\toptions,\n\t\tonInternalError,\n\t\tcontext,\n\t\tcontroller,\n\t});\n\tsubprocess.all = makeAllStream(subprocess, options);\n\taddConvertedStreams(subprocess, options);\n\taddIpcMethods(subprocess, options);\n\n\tconst promise = handlePromise({\n\t\tsubprocess,\n\t\toptions,\n\t\tstartTime,\n\t\tverboseInfo,\n\t\tfileDescriptors,\n\t\toriginalStreams,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tcontext,\n\t\tonInternalError,\n\t\tcontroller,\n\t});\n\treturn {subprocess, promise};\n};\n\n// Asynchronous logic, as opposed to the previous logic which can be run synchronously, i.e. can be returned to user right away\nconst handlePromise = async ({subprocess, options, startTime, verboseInfo, fileDescriptors, originalStreams, command, escapedCommand, context, onInternalError, controller}) => {\n\tconst [\n\t\terrorInfo,\n\t\t[exitCode, signal],\n\t\tstdioResults,\n\t\tallResult,\n\t\tipcOutput,\n\t] = await waitForSubprocessResult({\n\t\tsubprocess,\n\t\toptions,\n\t\tcontext,\n\t\tverboseInfo,\n\t\tfileDescriptors,\n\t\toriginalStreams,\n\t\tonInternalError,\n\t\tcontroller,\n\t});\n\tcontroller.abort();\n\tonInternalError.resolve();\n\n\tconst stdio = stdioResults.map((stdioResult, fdNumber) => stripNewline(stdioResult, options, fdNumber));\n\tconst all = stripNewline(allResult, options, 'all');\n\tconst result = getAsyncResult({\n\t\terrorInfo,\n\t\texitCode,\n\t\tsignal,\n\t\tstdio,\n\t\tall,\n\t\tipcOutput,\n\t\tcontext,\n\t\toptions,\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstartTime,\n\t});\n\treturn handleResult(result, verboseInfo, options);\n};\n\nconst getAsyncResult = ({errorInfo, exitCode, signal, stdio, all, ipcOutput, context, options, command, escapedCommand, startTime}) => 'error' in errorInfo\n\t? makeError({\n\t\terror: errorInfo.error,\n\t\tcommand,\n\t\tescapedCommand,\n\t\ttimedOut: context.terminationReason === 'timeout',\n\t\tisCanceled: context.terminationReason === 'cancel' || context.terminationReason === 'gracefulCancel',\n\t\tisGracefullyCanceled: context.terminationReason === 'gracefulCancel',\n\t\tisMaxBuffer: errorInfo.error instanceof MaxBufferError,\n\t\tisForcefullyTerminated: context.isForcefullyTerminated,\n\t\texitCode,\n\t\tsignal,\n\t\tstdio,\n\t\tall,\n\t\tipcOutput,\n\t\toptions,\n\t\tstartTime,\n\t\tisSync: false,\n\t})\n\t: makeSuccessResult({\n\t\tcommand,\n\t\tescapedCommand,\n\t\tstdio,\n\t\tall,\n\t\tipcOutput,\n\t\toptions,\n\t\tstartTime,\n\t});\n",
148
- "import isPlainObject from 'is-plain-obj';\nimport {FD_SPECIFIC_OPTIONS} from '../arguments/specific.js';\n\n// Deep merge specific options like `env`. Shallow merge the other ones.\nexport const mergeOptions = (boundOptions, options) => {\n\tconst newOptions = Object.fromEntries(\n\t\tObject.entries(options).map(([optionName, optionValue]) => [\n\t\t\toptionName,\n\t\t\tmergeOption(optionName, boundOptions[optionName], optionValue),\n\t\t]),\n\t);\n\treturn {...boundOptions, ...newOptions};\n};\n\nconst mergeOption = (optionName, boundOptionValue, optionValue) => {\n\tif (DEEP_OPTIONS.has(optionName) && isPlainObject(boundOptionValue) && isPlainObject(optionValue)) {\n\t\treturn {...boundOptionValue, ...optionValue};\n\t}\n\n\treturn optionValue;\n};\n\nconst DEEP_OPTIONS = new Set(['env', ...FD_SPECIFIC_OPTIONS]);\n",
149
- "import isPlainObject from 'is-plain-obj';\nimport {normalizeParameters} from './parameters.js';\nimport {isTemplateString, parseTemplates} from './template.js';\nimport {execaCoreSync} from './main-sync.js';\nimport {execaCoreAsync} from './main-async.js';\nimport {mergeOptions} from './bind.js';\n\n// Wraps every exported methods to provide the following features:\n// - template string syntax: execa`command argument`\n// - options binding: boundExeca = execa(options)\n// - optional argument/options: execa(file), execa(file, args), execa(file, options), execa(file, args, options)\n// `mapArguments()` and `setBoundExeca()` allows for method-specific logic.\nexport const createExeca = (mapArguments, boundOptions, deepOptions, setBoundExeca) => {\n\tconst createNested = (mapArguments, boundOptions, setBoundExeca) => createExeca(mapArguments, boundOptions, deepOptions, setBoundExeca);\n\tconst boundExeca = (...execaArguments) => callBoundExeca({\n\t\tmapArguments,\n\t\tdeepOptions,\n\t\tboundOptions,\n\t\tsetBoundExeca,\n\t\tcreateNested,\n\t}, ...execaArguments);\n\n\tif (setBoundExeca !== undefined) {\n\t\tsetBoundExeca(boundExeca, createNested, boundOptions);\n\t}\n\n\treturn boundExeca;\n};\n\nconst callBoundExeca = ({mapArguments, deepOptions = {}, boundOptions = {}, setBoundExeca, createNested}, firstArgument, ...nextArguments) => {\n\tif (isPlainObject(firstArgument)) {\n\t\treturn createNested(mapArguments, mergeOptions(boundOptions, firstArgument), setBoundExeca);\n\t}\n\n\tconst {file, commandArguments, options, isSync} = parseArguments({\n\t\tmapArguments,\n\t\tfirstArgument,\n\t\tnextArguments,\n\t\tdeepOptions,\n\t\tboundOptions,\n\t});\n\treturn isSync\n\t\t? execaCoreSync(file, commandArguments, options)\n\t\t: execaCoreAsync(file, commandArguments, options, createNested);\n};\n\nconst parseArguments = ({mapArguments, firstArgument, nextArguments, deepOptions, boundOptions}) => {\n\tconst callArguments = isTemplateString(firstArgument)\n\t\t? parseTemplates(firstArgument, nextArguments)\n\t\t: [firstArgument, ...nextArguments];\n\tconst [initialFile, initialArguments, initialOptions] = normalizeParameters(...callArguments);\n\tconst mergedOptions = mergeOptions(mergeOptions(deepOptions, boundOptions), initialOptions);\n\tconst {\n\t\tfile = initialFile,\n\t\tcommandArguments = initialArguments,\n\t\toptions = mergedOptions,\n\t\tisSync = false,\n\t} = mapArguments({file: initialFile, commandArguments: initialArguments, options: mergedOptions});\n\treturn {\n\t\tfile,\n\t\tcommandArguments,\n\t\toptions,\n\t\tisSync,\n\t};\n};\n",
150
- "// Main logic for `execaCommand()`\nexport const mapCommandAsync = ({file, commandArguments}) => parseCommand(file, commandArguments);\n\n// Main logic for `execaCommandSync()`\nexport const mapCommandSync = ({file, commandArguments}) => ({...parseCommand(file, commandArguments), isSync: true});\n\n// Convert `execaCommand(command)` into `execa(file, ...commandArguments)`\nconst parseCommand = (command, unusedArguments) => {\n\tif (unusedArguments.length > 0) {\n\t\tthrow new TypeError(`The command and its arguments must be passed as a single string: ${command} ${unusedArguments}.`);\n\t}\n\n\tconst [file, ...commandArguments] = parseCommandString(command);\n\treturn {file, commandArguments};\n};\n\n// Convert `command` string into an array of file or arguments to pass to $`${...fileOrCommandArguments}`\nexport const parseCommandString = command => {\n\tif (typeof command !== 'string') {\n\t\tthrow new TypeError(`The command must be a string: ${String(command)}.`);\n\t}\n\n\tconst trimmedCommand = command.trim();\n\tif (trimmedCommand === '') {\n\t\treturn [];\n\t}\n\n\tconst tokens = [];\n\tfor (const token of trimmedCommand.split(SPACES_REGEXP)) {\n\t\t// Allow spaces to be escaped by a backslash if not meant as a delimiter\n\t\tconst previousToken = tokens.at(-1);\n\t\tif (previousToken && previousToken.endsWith('\\\\')) {\n\t\t\t// Merge previous token with current one\n\t\t\ttokens[tokens.length - 1] = `${previousToken.slice(0, -1)} ${token}`;\n\t\t} else {\n\t\t\ttokens.push(token);\n\t\t}\n\t}\n\n\treturn tokens;\n};\n\nconst SPACES_REGEXP = / +/g;\n",
151
- "// Sets `$.sync` and `$.s`\nexport const setScriptSync = (boundExeca, createNested, boundOptions) => {\n\tboundExeca.sync = createNested(mapScriptSync, boundOptions);\n\tboundExeca.s = boundExeca.sync;\n};\n\n// Main logic for `$`\nexport const mapScriptAsync = ({options}) => getScriptOptions(options);\n\n// Main logic for `$.sync`\nconst mapScriptSync = ({options}) => ({...getScriptOptions(options), isSync: true});\n\n// `$` is like `execa` but with script-friendly options: `{stdin: 'inherit', preferLocal: true}`\nconst getScriptOptions = options => ({options: {...getScriptStdinOption(options), ...options}});\n\nconst getScriptStdinOption = ({input, inputFile, stdio}) => input === undefined && inputFile === undefined && stdio === undefined\n\t? {stdin: 'inherit'}\n\t: {};\n\n// When using $(...).pipe(...), most script-friendly options should apply to both commands.\n// However, some options (like `stdin: 'inherit'`) would create issues with piping, i.e. cannot be deep.\nexport const deepScriptOptions = {preferLocal: true};\n",
152
- "import {createExeca} from './lib/methods/create.js';\nimport {mapCommandAsync, mapCommandSync} from './lib/methods/command.js';\nimport {mapNode} from './lib/methods/node.js';\nimport {mapScriptAsync, setScriptSync, deepScriptOptions} from './lib/methods/script.js';\nimport {getIpcExport} from './lib/ipc/methods.js';\n\nexport {parseCommandString} from './lib/methods/command.js';\nexport {ExecaError, ExecaSyncError} from './lib/return/final-error.js';\n\nexport const execa = createExeca(() => ({}));\nexport const execaSync = createExeca(() => ({isSync: true}));\nexport const execaCommand = createExeca(mapCommandAsync);\nexport const execaCommandSync = createExeca(mapCommandSync);\nexport const execaNode = createExeca(mapNode);\nexport const $ = createExeca(mapScriptAsync, {}, deepScriptOptions, setScriptSync);\n\nconst {\n\tsendMessage,\n\tgetOneMessage,\n\tgetEachMessage,\n\tgetCancelSignal,\n} = getIpcExport();\nexport {\n\tsendMessage,\n\tgetOneMessage,\n\tgetEachMessage,\n\tgetCancelSignal,\n};\n",
153
- "// catchArgs.ts\nfunction catchArgs(fn) {\n return (...args) => {\n try {\n const r = fn(...args);\n const isPromise = typeof r.then === \"function\";\n return !isPromise ? r : async function() {\n return await r;\n }().catch((error) => handleError(error, args));\n } catch (error) {\n handleError(error, args);\n }\n };\n}\nfunction handleError(error, args) {\n if (error instanceof Error) {\n throw Object.assign(error, {\n cause: {\n ...typeof error.cause === \"object\" && error.cause || null,\n ...typeof error.cause === \"string\" && { cause: error.cause } || null,\n args\n }\n });\n }\n}\n\n// stringifyError.ts\nfunction stringifyError(reason, ...slots) {\n if (typeof reason === \"string\") {\n return reason.trim();\n }\n if (Array.isArray(reason)) {\n return reason.map((e, i) => e + (slots[i]?.toString() ?? \"\")).join(\"\");\n }\n return String(reason instanceof Error && reason.message || reason);\n}\n\n// index.ts\nvar phpdie_default = DIE;\nfunction DIEError(reason, ...slots) {\n throw new Error(stringifyError(reason, ...slots));\n}\nfunction DIE(reason, ...slots) {\n throw errorFormat(reason, ...slots);\n}\nfunction DIES(alert2, ...args) {\n alert2(...args);\n throw new Error(\"DIES\", { cause: args });\n}\nvar DIEAlert = (...args) => {\n alert(stringifyError(...args));\n DIE(...args);\n};\nvar DIEProcess = (...args) => {\n console.error(stringifyError(...args));\n process.exit(1);\n};\nfunction errorFormat(reason, ...slots) {\n if (typeof reason === \"string\") {\n return reason.trim();\n }\n if (Array.isArray(reason)) {\n return reason.map((e, i) => e + (slots[i] ?? \"\")).join(\"\");\n }\n return reason;\n}\nexport {\n phpdie_default as default,\n catchArgs,\n DIES,\n DIEProcess,\n DIEError,\n DIEAlert,\n DIE\n};\n",
154
- "// catchArgs.ts\nfunction catchArgs(fn) {\n return (...args) => {\n try {\n const r = fn(...args);\n const isPromise = typeof r.then === \"function\";\n return !isPromise ? r : async function() {\n return await r;\n }().catch((error) => handleError(error, args));\n } catch (error) {\n handleError(error, args);\n }\n };\n}\nfunction handleError(error, args) {\n if (error instanceof Error) {\n throw Object.assign(error, {\n cause: {\n ...typeof error.cause === \"object\" && error.cause || null,\n ...typeof error.cause === \"string\" && { cause: error.cause } || null,\n args\n }\n });\n }\n}\n\n// index.ts\nvar phpdie_default = DIE;\nfunction DIEError(reason, ...slots) {\n throw new Error(stringifyError(reason, ...slots));\n}\nfunction DIE(reason, ...slots) {\n throw errorFormat(reason, ...slots);\n}\nvar DIEAlert = (...args) => {\n alert(stringifyError(...args));\n DIE(...args);\n};\nvar DIEProcess = (...args) => {\n console.error(stringifyError(...args));\n process.exit(1);\n};\nfunction errorFormat(reason, ...slots) {\n if (typeof reason === \"string\") {\n return reason.trim();\n }\n if (Array.isArray(reason)) {\n return reason.map((e, i) => e + (slots[i] ?? \"\")).join(\"\");\n }\n return reason;\n}\nfunction stringifyError(reason, ...slots) {\n if (typeof reason === \"string\") {\n return reason.trim();\n }\n if (Array.isArray(reason)) {\n return reason.map((e, i) => e + (slots[i]?.toString() ?? \"\")).join(\"\");\n }\n return String(reason instanceof Error && reason.message || reason);\n}\nexport {\n phpdie_default as default,\n catchArgs,\n DIEProcess,\n DIEError,\n DIEAlert,\n DIE\n};\n",
155
- "// index.ts\nclass PolyfillTextEncoderStream {\n _encoder = new TextEncoder;\n _reader = null;\n ready = Promise.resolve();\n closed = false;\n readable = new ReadableStream({\n start: (controller) => {\n this._reader = controller;\n }\n });\n writable = new WritableStream({\n write: async (chunk) => {\n if (typeof chunk !== \"string\") {\n this._reader.enqueue(chunk);\n return;\n }\n if (chunk != null && this._reader) {\n const encoded = this._encoder.encode(chunk);\n this._reader.enqueue(encoded);\n }\n },\n close: () => {\n this._reader?.close();\n this.closed = true;\n },\n abort: (reason) => {\n this._reader?.error(reason);\n this.closed = true;\n }\n });\n}\nexport {\n PolyfillTextEncoderStream as default\n};\n",
156
- "'use strict';\n\nfunction F() {\n return false;\n}\n\nfunction T() {\n return true;\n}\n\nfunction add(a, b) {\n if (arguments.length === 1) return _b => add(a, _b);\n return Number(a) + Number(b);\n}\n\nfunction _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n let idx;\n const len1 = set1.length;\n const len2 = set2.length;\n const result = [];\n idx = 0;\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n idx = 0;\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n return result;\n}\n\nfunction _arity(n, fn) {\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n case 1:\n return function (_1) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (_1, _2) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (_1, _2, _3) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (_1, _2, _3, _4) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (_1, _2, _3, _4, _5) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (_1, _2, _3, _4, _5, _6) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (_1, _2, _3, _4, _5, _6, _7) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (_1, _2, _3, _4, _5, _6, _7, _8) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (_1, _2, _3, _4, _5, _6, _7, _8, _9) {\n return fn.apply(this, arguments);\n };\n default:\n return function (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) {\n return fn.apply(this, arguments);\n };\n }\n}\n\nfunction _curryN(n, cache, fn) {\n return function () {\n let ci = 0;\n let ai = 0;\n const cl = cache.length;\n const al = arguments.length;\n const args = new Array(cl + al);\n while (ci < cl) {\n args[ci] = cache[ci];\n ci++;\n }\n while (ai < al) {\n args[cl + ai] = arguments[ai];\n ai++;\n }\n const remaining = n - args.length;\n return args.length >= n ? fn.apply(this, args) : _arity(remaining, _curryN(n, args, fn));\n };\n}\nfunction curryN(n, fn) {\n if (arguments.length === 1) return _fn => curryN(n, _fn);\n if (n > 10) {\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n return _arity(n, _curryN(n, [], fn));\n}\n\nfunction addIndex(originalFunction, initialIndexFn = () => 0, loopIndexChange = x => x + 1) {\n return curryN(originalFunction.length, function () {\n const origFn = arguments[0];\n const list = arguments[arguments.length - 1];\n let idx = initialIndexFn(list.length);\n const args = Array.prototype.slice.call(arguments, 0);\n args[0] = function () {\n const result = origFn.apply(this, _concat(arguments, [idx, list]));\n idx = loopIndexChange(idx);\n return result;\n };\n return originalFunction.apply(this, args);\n });\n}\n\nfunction addIndexRight(originalFunction) {\n return addIndex(originalFunction, listLength => listLength - 1, x => x - 1);\n}\n\nconst cloneList = list => Array.prototype.slice.call(list);\n\nfunction curry(fn, args = []) {\n return (..._args) => (rest => rest.length >= fn.length ? fn(...rest) : curry(fn, rest))([...args, ..._args]);\n}\n\nfunction adjustFn(index, replaceFn, list) {\n const actualIndex = index < 0 ? list.length + index : index;\n if (index >= list.length || actualIndex < 0) return list;\n const clone = cloneList(list);\n clone[actualIndex] = replaceFn(clone[actualIndex]);\n return clone;\n}\nconst adjust = curry(adjustFn);\n\nfunction all(predicate, list) {\n if (arguments.length === 1) return _list => all(predicate, _list);\n for (let i = 0; i < list.length; i++) {\n if (!predicate(list[i])) return false;\n }\n return true;\n}\n\nfunction allPass(predicates) {\n return (...input) => {\n let counter = 0;\n while (counter < predicates.length) {\n if (!predicates[counter](...input)) {\n return false;\n }\n counter++;\n }\n return true;\n };\n}\n\nfunction always(x) {\n return _ => x;\n}\n\nfunction and(a, b) {\n if (arguments.length === 1) return _b => and(a, _b);\n return a && b;\n}\n\nfunction any(predicate, list) {\n if (arguments.length === 1) return _list => any(predicate, _list);\n let counter = 0;\n while (counter < list.length) {\n if (predicate(list[counter], counter)) {\n return true;\n }\n counter++;\n }\n return false;\n}\n\nfunction anyPass(predicates) {\n return (...input) => {\n let counter = 0;\n while (counter < predicates.length) {\n if (predicates[counter](...input)) {\n return true;\n }\n counter++;\n }\n return false;\n };\n}\n\nfunction ap(functions, input) {\n if (arguments.length === 1) {\n return _inputs => ap(functions, _inputs);\n }\n return functions.reduce((acc, fn) => [...acc, ...input.map(fn)], []);\n}\n\nfunction aperture(step, list) {\n if (arguments.length === 1) {\n return _list => aperture(step, _list);\n }\n if (step > list.length) return [];\n let idx = 0;\n const limit = list.length - (step - 1);\n const acc = new Array(limit);\n while (idx < limit) {\n acc[idx] = list.slice(idx, idx + step);\n idx += 1;\n }\n return acc;\n}\n\nfunction append(x, input) {\n if (arguments.length === 1) return _input => append(x, _input);\n if (typeof input === 'string') return input.split('').concat(x);\n const clone = cloneList(input);\n clone.push(x);\n return clone;\n}\n\nfunction apply(fn, args) {\n if (arguments.length === 1) {\n return _args => apply(fn, _args);\n }\n return fn.apply(this, args);\n}\n\nconst {\n isArray\n} = Array;\n\nfunction __findHighestArity(spec, max = 0) {\n for (const key in spec) {\n if (spec.hasOwnProperty(key) === false || key === 'constructor') continue;\n if (typeof spec[key] === 'object') {\n max = Math.max(max, __findHighestArity(spec[key]));\n }\n if (typeof spec[key] === 'function') {\n max = Math.max(max, spec[key].length);\n }\n }\n return max;\n}\nfunction __filterUndefined() {\n const defined = [];\n let i = 0;\n const l = arguments.length;\n while (i < l) {\n if (typeof arguments[i] === 'undefined') break;\n defined[i] = arguments[i];\n i++;\n }\n return defined;\n}\nfunction __applySpecWithArity(spec, arity, cache) {\n const remaining = arity - cache.length;\n if (remaining === 1) return x => __applySpecWithArity(spec, arity, __filterUndefined(...cache, x));\n if (remaining === 2) return (x, y) => __applySpecWithArity(spec, arity, __filterUndefined(...cache, x, y));\n if (remaining === 3) return (x, y, z) => __applySpecWithArity(spec, arity, __filterUndefined(...cache, x, y, z));\n if (remaining === 4) return (x, y, z, a) => __applySpecWithArity(spec, arity, __filterUndefined(...cache, x, y, z, a));\n if (remaining > 4) return (...args) => __applySpecWithArity(spec, arity, __filterUndefined(...cache, ...args));\n if (isArray(spec)) {\n const ret = [];\n let i = 0;\n const l = spec.length;\n for (; i < l; i++) {\n if (typeof spec[i] === 'object' || isArray(spec[i])) {\n ret[i] = __applySpecWithArity(spec[i], arity, cache);\n }\n if (typeof spec[i] === 'function') {\n ret[i] = spec[i](...cache);\n }\n }\n return ret;\n }\n const ret = {};\n for (const key in spec) {\n if (spec.hasOwnProperty(key) === false || key === 'constructor') continue;\n if (typeof spec[key] === 'object') {\n ret[key] = __applySpecWithArity(spec[key], arity, cache);\n continue;\n }\n if (typeof spec[key] === 'function') {\n ret[key] = spec[key](...cache);\n }\n }\n return ret;\n}\nfunction applySpec(spec, ...args) {\n const arity = __findHighestArity(spec);\n if (arity === 0) {\n return () => ({});\n }\n const toReturn = __applySpecWithArity(spec, arity, args);\n return toReturn;\n}\n\nfunction applyTo(input, fn) {\n if (arguments.length === 1) {\n return _fn => applyTo(input, _fn);\n }\n return fn(input);\n}\n\nfunction createCompareFunction(a, b, winner, loser) {\n if (a === b) return 0;\n return a < b ? winner : loser;\n}\nfunction ascend(getFunction, a, b) {\n if (arguments.length === 1) {\n return (_a, _b) => ascend(getFunction, _a, _b);\n }\n const aValue = getFunction(a);\n const bValue = getFunction(b);\n return createCompareFunction(aValue, bValue, -1, 1);\n}\n\nfunction assocFn(prop, newValue, obj) {\n return Object.assign({}, obj, {\n [prop]: newValue\n });\n}\nconst assoc = curry(assocFn);\n\nfunction _isInteger(n) {\n return n << 0 === n;\n}\nconst isInteger = Number.isInteger || _isInteger;\nconst isIndexInteger = index => Number.isInteger(Number(index));\n\nfunction createPath(path, delimiter = '.') {\n return typeof path === 'string' ? path.split(delimiter).map(x => isInteger(x) ? Number(x) : x) : path;\n}\n\nfunction assocPathFn(path, newValue, input) {\n const pathArrValue = createPath(path);\n if (pathArrValue.length === 0) return newValue;\n const index = pathArrValue[0];\n if (pathArrValue.length > 1) {\n const condition = typeof input !== 'object' || input === null || !input.hasOwnProperty(index);\n const nextInput = condition ? isIndexInteger(pathArrValue[1]) ? [] : {} : input[index];\n newValue = assocPathFn(Array.prototype.slice.call(pathArrValue, 1), newValue, nextInput);\n }\n if (isIndexInteger(index) && isArray(input)) {\n const arr = cloneList(input);\n arr[index] = newValue;\n return arr;\n }\n return assocFn(index, newValue, input);\n}\nconst assocPath = curry(assocPathFn);\n\nfunction binary(fn) {\n if (fn.length <= 2) return fn;\n return (a, b) => fn(a, b);\n}\n\nfunction bind(fn, thisObj) {\n if (arguments.length === 1) {\n return _thisObj => bind(fn, _thisObj);\n }\n return curryN(fn.length, (...args) => fn.apply(thisObj, args));\n}\n\nfunction both(f, g) {\n if (arguments.length === 1) return _g => both(f, _g);\n return (...input) => f(...input) && g(...input);\n}\n\nconst call = (fn, ...inputs) => fn(...inputs);\n\nfunction chain(fn, list) {\n if (arguments.length === 1) {\n return _list => chain(fn, _list);\n }\n return [].concat(...list.map(fn));\n}\n\nfunction clampFn(min, max, input) {\n if (min > max) {\n throw new Error('min must not be greater than max in clamp(min, max, value)');\n }\n if (input >= min && input <= max) return input;\n if (input > max) return max;\n if (input < min) return min;\n}\nconst clamp = curry(clampFn);\n\nfunction clone(input) {\n const out = isArray(input) ? Array(input.length) : {};\n if (input && input.getTime) return new Date(input.getTime());\n for (const key in input) {\n const v = input[key];\n out[key] = typeof v === 'object' && v !== null ? v.getTime ? new Date(v.getTime()) : clone(v) : v;\n }\n return out;\n}\n\nclass ReduceStopper {\n constructor(value) {\n this.value = value;\n }\n}\nfunction reduceFn(reducer, acc, list) {\n if (list == null) {\n return acc;\n }\n if (!isArray(list)) {\n throw new TypeError('reduce: list must be array or iterable');\n }\n let index = 0;\n const len = list.length;\n while (index < len) {\n acc = reducer(acc, list[index], index, list);\n if (acc instanceof ReduceStopper) {\n return acc.value;\n }\n index++;\n }\n return acc;\n}\nconst reduce = curry(reduceFn);\nconst reduceStopper = value => new ReduceStopper(value);\n\nfunction collectBy(fn, list) {\n if (arguments.length === 1) {\n return _list => collectBy(fn, _list);\n }\n const group = reduce((o, x) => {\n const tag = fn(x);\n if (o[tag] === undefined) {\n o[tag] = [];\n }\n o[tag].push(x);\n return o;\n }, {}, list);\n const newList = [];\n for (const tag in group) {\n newList.push(group[tag]);\n }\n return newList;\n}\n\nfunction comparator(fn) {\n return function (a, b) {\n return fn(a, b) ? -1 : fn(b, a) ? 1 : 0;\n };\n}\n\nfunction complement(fn) {\n return (...input) => !fn(...input);\n}\n\nfunction _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}\nfunction pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n return _arity(arguments[0].length, reduceFn(_pipe, arguments[0], Array.prototype.slice.call(arguments, 1, Infinity)));\n}\n\nfunction compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n return pipe.apply(this, Array.prototype.slice.call(arguments, 0).reverse());\n}\n\nfunction head(listOrString) {\n if (typeof listOrString === 'string') return listOrString[0] || '';\n return listOrString[0];\n}\n\nfunction identity(x) {\n return x;\n}\n\nfunction reverse(listOrString) {\n if (typeof listOrString === 'string') {\n return listOrString.split('').reverse().join('');\n }\n const clone = listOrString.slice();\n return clone.reverse();\n}\n\nfunction drop(howManyToDrop, listOrString) {\n if (arguments.length === 1) return _list => drop(howManyToDrop, _list);\n return listOrString.slice(howManyToDrop > 0 ? howManyToDrop : 0);\n}\n\nfunction tail(listOrString) {\n return drop(1, listOrString);\n}\n\nfunction pipeWith(xf, list) {\n if (list.length <= 0) {\n return identity;\n }\n const headList = head(list);\n const tailList = tail(list);\n return _arity(headList.length, function () {\n return reduce(function (result, f) {\n return xf.call(this, f, result);\n }, headList.apply(this, arguments), tailList);\n });\n}\nfunction composeWith(xf, list) {\n if (arguments.length === 1) return _list => composeWith(xf, _list);\n return pipeWith.apply(this, [xf, reverse(list)]);\n}\n\nfunction concat(x, y) {\n if (arguments.length === 1) return _y => concat(x, _y);\n return typeof x === 'string' ? `${x}${y}` : [...x, ...y];\n}\n\nfunction cond(conditions) {\n return (...input) => {\n let done = false;\n let toReturn;\n conditions.forEach(([predicate, getResult]) => {\n if (!done && predicate(...input)) {\n done = true;\n toReturn = getResult(...input);\n }\n });\n return toReturn;\n };\n}\n\nconst INCORRECT_ITERABLE_INPUT = 'Incorrect iterable input';\n\nconst {\n keys: keys$1\n} = Object;\n\nfunction mapArray(fn, list, isIndexed = false) {\n let index = 0;\n const willReturn = Array(list.length);\n while (index < list.length) {\n willReturn[index] = isIndexed ? fn(list[index], index) : fn(list[index]);\n index++;\n }\n return willReturn;\n}\nfunction mapObject(fn, obj) {\n if (arguments.length === 1) {\n return _obj => mapObject(fn, _obj);\n }\n let index = 0;\n const objKeys = keys$1(obj);\n const len = objKeys.length;\n const willReturn = {};\n while (index < len) {\n const key = objKeys[index];\n willReturn[key] = fn(obj[key], key, obj);\n index++;\n }\n return willReturn;\n}\nconst mapObjIndexed = mapObject;\nfunction map(fn, iterable) {\n if (arguments.length === 1) return _iterable => map(fn, _iterable);\n if (!iterable) {\n throw new Error(INCORRECT_ITERABLE_INPUT);\n }\n if (isArray(iterable)) return mapArray(fn, iterable);\n return mapObject(fn, iterable);\n}\n\nfunction max(x, y) {\n if (arguments.length === 1) return _y => max(x, _y);\n return y > x ? y : x;\n}\n\nfunction converge(fn, transformers) {\n if (arguments.length === 1) return _transformers => converge(fn, _transformers);\n const highestArity = reduce((a, b) => max(a, b.length), 0, transformers);\n return curryN(highestArity, function () {\n return fn.apply(this, map(g => g.apply(this, arguments), transformers));\n });\n}\n\nfunction count(predicate, list) {\n if (arguments.length === 1) {\n return _list => count(predicate, _list);\n }\n if (!isArray(list)) return 0;\n return list.filter(x => predicate(x)).length;\n}\n\nfunction countBy(fn, list) {\n if (arguments.length === 1) {\n return _list => countBy(fn, _list);\n }\n const willReturn = {};\n list.forEach(item => {\n const key = fn(item);\n if (!willReturn[key]) {\n willReturn[key] = 1;\n } else {\n willReturn[key]++;\n }\n });\n return willReturn;\n}\n\nconst dec = x => x - 1;\n\nfunction isFalsy(input) {\n return input === undefined || input === null || Number.isNaN(input) === true;\n}\nfunction defaultTo(defaultArgument, input) {\n if (arguments.length === 1) {\n return _input => defaultTo(defaultArgument, _input);\n }\n return isFalsy(input) ? defaultArgument : input;\n}\n\nfunction descend(getFunction, a, b) {\n if (arguments.length === 1) {\n return (_a, _b) => descend(getFunction, _a, _b);\n }\n const aValue = getFunction(a);\n const bValue = getFunction(b);\n return createCompareFunction(aValue, bValue, 1, -1);\n}\n\nfunction type(input) {\n if (input === null) {\n return 'Null';\n } else if (input === undefined) {\n return 'Undefined';\n } else if (Number.isNaN(input)) {\n return 'NaN';\n }\n const typeResult = Object.prototype.toString.call(input).slice(8, -1);\n return typeResult === 'AsyncFunction' ? 'Promise' : typeResult;\n}\n\nfunction _lastIndexOf(valueToFind, list) {\n if (!isArray(list)) throw new Error(`Cannot read property 'indexOf' of ${list}`);\n const typeOfValue = type(valueToFind);\n if (!['Array', 'NaN', 'Object', 'RegExp'].includes(typeOfValue)) return list.lastIndexOf(valueToFind);\n const {\n length\n } = list;\n let index = length;\n let foundIndex = -1;\n while (--index > -1 && foundIndex === -1) if (equals(list[index], valueToFind)) foundIndex = index;\n return foundIndex;\n}\nfunction _indexOf(valueToFind, list) {\n if (!isArray(list)) throw new Error(`Cannot read property 'indexOf' of ${list}`);\n const typeOfValue = type(valueToFind);\n if (!['Array', 'NaN', 'Object', 'RegExp'].includes(typeOfValue)) return list.indexOf(valueToFind);\n let index = -1;\n let foundIndex = -1;\n const {\n length\n } = list;\n while (++index < length && foundIndex === -1) if (equals(list[index], valueToFind)) foundIndex = index;\n return foundIndex;\n}\nfunction _arrayFromIterator(iter) {\n const list = [];\n let next;\n while (!(next = iter.next()).done) list.push(next.value);\n return list;\n}\nfunction _compareSets(a, b) {\n if (a.size !== b.size) return false;\n const aList = _arrayFromIterator(a.values());\n const bList = _arrayFromIterator(b.values());\n const filtered = aList.filter(aInstance => _indexOf(aInstance, bList) === -1);\n return filtered.length === 0;\n}\nfunction compareErrors(a, b) {\n if (a.message !== b.message) return false;\n if (a.toString !== b.toString) return false;\n return a.toString() === b.toString();\n}\nfunction parseDate(maybeDate) {\n if (!maybeDate.toDateString) return [false];\n return [true, maybeDate.getTime()];\n}\nfunction parseRegex(maybeRegex) {\n if (maybeRegex.constructor !== RegExp) return [false];\n return [true, maybeRegex.toString()];\n}\nfunction equals(a, b) {\n if (arguments.length === 1) return _b => equals(a, _b);\n if (Object.is(a, b)) return true;\n const aType = type(a);\n if (aType !== type(b)) return false;\n if (aType === 'Function') return a.name === undefined ? false : a.name === b.name;\n if (['NaN', 'Null', 'Undefined'].includes(aType)) return true;\n if (['BigInt', 'Number'].includes(aType)) {\n if (Object.is(-0, a) !== Object.is(-0, b)) return false;\n return a.toString() === b.toString();\n }\n if (['Boolean', 'String'].includes(aType)) return a.toString() === b.toString();\n if (aType === 'Array') {\n const aClone = Array.from(a);\n const bClone = Array.from(b);\n if (aClone.toString() !== bClone.toString()) return false;\n let loopArrayFlag = true;\n aClone.forEach((aCloneInstance, aCloneIndex) => {\n if (loopArrayFlag) if (aCloneInstance !== bClone[aCloneIndex] && !equals(aCloneInstance, bClone[aCloneIndex])) loopArrayFlag = false;\n });\n return loopArrayFlag;\n }\n const aRegex = parseRegex(a);\n const bRegex = parseRegex(b);\n if (aRegex[0]) return bRegex[0] ? aRegex[1] === bRegex[1] : false;else if (bRegex[0]) return false;\n const aDate = parseDate(a);\n const bDate = parseDate(b);\n if (aDate[0]) return bDate[0] ? aDate[1] === bDate[1] : false;else if (bDate[0]) return false;\n if (a instanceof Error) {\n if (!(b instanceof Error)) return false;\n return compareErrors(a, b);\n }\n if (aType === 'Set') return _compareSets(a, b);\n if (aType === 'Object') {\n const aKeys = Object.keys(a);\n if (aKeys.length !== Object.keys(b).length) return false;\n let loopObjectFlag = true;\n aKeys.forEach(aKeyInstance => {\n if (loopObjectFlag) {\n const aValue = a[aKeyInstance];\n const bValue = b[aKeyInstance];\n if (aValue !== bValue && !equals(aValue, bValue)) loopObjectFlag = false;\n }\n });\n return loopObjectFlag;\n }\n return false;\n}\n\nfunction includes$1(valueToFind, iterable) {\n if (arguments.length === 1) return _iterable => includes$1(valueToFind, _iterable);\n if (typeof iterable === 'string') {\n return iterable.includes(valueToFind);\n }\n if (!iterable) {\n throw new TypeError(`Cannot read property \\'indexOf\\' of ${iterable}`);\n }\n if (!isArray(iterable)) return false;\n return _indexOf(valueToFind, iterable) > -1;\n}\n\nclass _Set {\n constructor() {\n this.set = new Set();\n this.items = {};\n }\n checkUniqueness(item) {\n const type$1 = type(item);\n if (['Null', 'Undefined', 'NaN'].includes(type$1)) {\n if (type$1 in this.items) {\n return false;\n }\n this.items[type$1] = true;\n return true;\n }\n if (!['Object', 'Array'].includes(type$1)) {\n const prevSize = this.set.size;\n this.set.add(item);\n return this.set.size !== prevSize;\n }\n if (!(type$1 in this.items)) {\n this.items[type$1] = [item];\n return true;\n }\n if (_indexOf(item, this.items[type$1]) === -1) {\n this.items[type$1].push(item);\n return true;\n }\n return false;\n }\n}\n\nfunction uniq(list) {\n const set = new _Set();\n const willReturn = [];\n list.forEach(item => {\n if (set.checkUniqueness(item)) {\n willReturn.push(item);\n }\n });\n return willReturn;\n}\n\nfunction difference(a, b) {\n if (arguments.length === 1) return _b => difference(a, _b);\n return uniq(a).filter(aInstance => !includes$1(aInstance, b));\n}\n\nfunction differenceWithFn(fn, a, b) {\n const willReturn = [];\n const [first, second] = a.length >= b.length ? [a, b] : [b, a];\n first.forEach(item => {\n const hasItem = second.some(secondItem => fn(item, secondItem));\n if (!hasItem && _indexOf(item, willReturn) === -1) {\n willReturn.push(item);\n }\n });\n return willReturn;\n}\nconst differenceWith = curry(differenceWithFn);\n\nfunction dissoc(prop, obj) {\n if (arguments.length === 1) return _obj => dissoc(prop, _obj);\n if (obj === null || obj === undefined) return {};\n const willReturn = {};\n for (const p in obj) {\n willReturn[p] = obj[p];\n }\n delete willReturn[prop];\n return willReturn;\n}\n\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\n\nfunction compare(a, b) {\n return String(a) === String(b);\n}\n\nfunction includes(a, list) {\n let index = -1;\n const {\n length\n } = list;\n while (++index < length) if (compare(list[index], a)) return true;\n return false;\n}\n\nfunction omit(propsToOmit, obj) {\n if (arguments.length === 1) return _obj => omit(propsToOmit, _obj);\n if (obj === null || obj === undefined) return undefined;\n const propsToOmitValue = createPath(propsToOmit, ',');\n const willReturn = {};\n for (const key in obj) if (!includes(key, propsToOmitValue)) willReturn[key] = obj[key];\n return willReturn;\n}\n\nfunction pathFn(pathInput, obj) {\n let willReturn = obj;\n let counter = 0;\n const pathArrValue = createPath(pathInput);\n while (counter < pathArrValue.length) {\n if (willReturn === null || willReturn === undefined) {\n return undefined;\n }\n if (willReturn[pathArrValue[counter]] === null) return undefined;\n willReturn = willReturn[pathArrValue[counter]];\n counter++;\n }\n return willReturn;\n}\nfunction path(pathInput, obj) {\n if (arguments.length === 1) return _obj => path(pathInput, _obj);\n if (obj === null || obj === undefined) {\n return undefined;\n }\n return pathFn(pathInput, obj);\n}\n\nfunction removeIndex(index, list) {\n if (arguments.length === 1) return _list => removeIndex(index, _list);\n if (index <= 0) return list.slice(1);\n if (index >= list.length - 1) return list.slice(0, list.length - 1);\n return [...list.slice(0, index), ...list.slice(index + 1)];\n}\n\nfunction updateFn(index, newValue, list) {\n const clone = cloneList(list);\n if (index === -1) return clone.fill(newValue, index);\n return clone.fill(newValue, index, index + 1);\n}\nconst update = curry(updateFn);\n\nfunction dissocPath(pathInput, input) {\n if (arguments.length === 1) return _obj => dissocPath(pathInput, _obj);\n const pathArrValue = createPath(pathInput);\n if (pathArrValue.length === 0) return input;\n const pathResult = path(pathArrValue, input);\n if (pathResult === undefined) return input;\n const index = pathArrValue[0];\n const condition = typeof input !== 'object' || input === null || !input.hasOwnProperty(index);\n if (pathArrValue.length > 1) {\n const nextInput = condition ? isIndexInteger(pathArrValue[1]) ? [] : {} : input[index];\n const nextPathInput = Array.prototype.slice.call(pathArrValue, 1);\n const intermediateResult = dissocPath(nextPathInput, nextInput, input);\n if (isArray(input)) return update(index, intermediateResult, input);\n return _objectSpread2(_objectSpread2({}, input), {}, {\n [index]: intermediateResult\n });\n }\n if (isArray(input)) return removeIndex(index, input);\n return omit([index], input);\n}\n\nfunction divide(a, b) {\n if (arguments.length === 1) return _b => divide(a, _b);\n return a / b;\n}\n\nfunction dropLast(howManyToDrop, listOrString) {\n if (arguments.length === 1) {\n return _listOrString => dropLast(howManyToDrop, _listOrString);\n }\n return howManyToDrop > 0 ? listOrString.slice(0, -howManyToDrop) : listOrString.slice();\n}\n\nfunction dropLastWhile(predicate, iterable) {\n if (arguments.length === 1) {\n return _iterable => dropLastWhile(predicate, _iterable);\n }\n if (iterable.length === 0) return iterable;\n const isArray$1 = isArray(iterable);\n if (typeof predicate !== 'function') {\n throw new Error(`'predicate' is from wrong type ${typeof predicate}`);\n }\n if (!isArray$1 && typeof iterable !== 'string') {\n throw new Error(`'iterable' is from wrong type ${typeof iterable}`);\n }\n const toReturn = [];\n let counter = iterable.length;\n while (counter) {\n const item = iterable[--counter];\n if (!predicate(item)) {\n toReturn.push(item);\n break;\n }\n }\n while (counter) {\n toReturn.push(iterable[--counter]);\n }\n return isArray$1 ? toReturn.reverse() : toReturn.reverse().join('');\n}\n\nfunction dropRepeats(list) {\n if (!isArray(list)) {\n throw new Error(`${list} is not a list`);\n }\n const toReturn = [];\n list.reduce((prev, current) => {\n if (!equals(prev, current)) {\n toReturn.push(current);\n }\n return current;\n }, undefined);\n return toReturn;\n}\n\nfunction dropRepeatsBy(fn, list) {\n if (arguments.length === 1) return _list => dropRepeatsBy(fn, _list);\n let lastEvaluated = null;\n return list.slice().filter(item => {\n if (lastEvaluated === null) {\n lastEvaluated = fn(item);\n return true;\n }\n const evaluatedResult = fn(item);\n if (equals(lastEvaluated, evaluatedResult)) return false;\n lastEvaluated = evaluatedResult;\n return true;\n });\n}\n\nfunction dropRepeatsWith(predicate, list) {\n if (arguments.length === 1) {\n return _iterable => dropRepeatsWith(predicate, _iterable);\n }\n if (!isArray(list)) {\n throw new Error(`${list} is not a list`);\n }\n const toReturn = [];\n list.reduce((prev, current) => {\n if (prev === undefined) {\n toReturn.push(current);\n return current;\n }\n if (!predicate(prev, current)) {\n toReturn.push(current);\n }\n return current;\n }, undefined);\n return toReturn;\n}\n\nfunction dropWhile(predicate, iterable) {\n if (arguments.length === 1) {\n return _iterable => dropWhile(predicate, _iterable);\n }\n const isArray$1 = isArray(iterable);\n if (!isArray$1 && typeof iterable !== 'string') {\n throw new Error('`iterable` is neither list nor a string');\n }\n const toReturn = [];\n let counter = 0;\n while (counter < iterable.length) {\n const item = iterable[counter++];\n if (!predicate(item)) {\n toReturn.push(item);\n break;\n }\n }\n while (counter < iterable.length) {\n toReturn.push(iterable[counter++]);\n }\n return isArray$1 ? toReturn : toReturn.join('');\n}\n\nfunction either(firstPredicate, secondPredicate) {\n if (arguments.length === 1) {\n return _secondPredicate => either(firstPredicate, _secondPredicate);\n }\n return (...input) => Boolean(firstPredicate(...input) || secondPredicate(...input));\n}\n\nfunction empty(list) {\n if (typeof list === 'string') return '';\n if (Array.isArray(list)) {\n const {\n name\n } = list.constructor;\n if (name === 'Uint8Array') return Uint8Array.from('');\n if (name === 'Float32Array') return new Float32Array([]);\n return [];\n }\n if (type(list) === 'Object') return {};\n}\n\nfunction endsWith(target, iterable) {\n if (arguments.length === 1) return _iterable => endsWith(target, _iterable);\n if (typeof iterable === 'string') {\n return iterable.endsWith(target);\n }\n if (!isArray(target)) return false;\n const diff = iterable.length - target.length;\n let correct = true;\n const filtered = target.filter((x, index) => {\n if (!correct) return false;\n const result = equals(x, iterable[index + diff]);\n if (!result) correct = false;\n return result;\n });\n return filtered.length === target.length;\n}\n\nfunction eqByFn(fn, a, b) {\n return equals(fn(a), fn(b));\n}\nconst eqBy = curry(eqByFn);\n\nfunction propFn(searchProperty, obj) {\n if (!obj) return undefined;\n return obj[searchProperty];\n}\nfunction prop(searchProperty, obj) {\n if (arguments.length === 1) return _obj => prop(searchProperty, _obj);\n return propFn(searchProperty, obj);\n}\n\nfunction eqPropsFn(property, objA, objB) {\n return equals(prop(property, objA), prop(property, objB));\n}\nconst eqProps = curry(eqPropsFn);\n\nfunction evolveArray(rules, list) {\n return mapArray((x, i) => {\n if (type(rules[i]) === 'Function') {\n return rules[i](x);\n }\n return x;\n }, list, true);\n}\nfunction evolveObject(rules, iterable) {\n return mapObject((x, prop) => {\n if (type(x) === 'Object') {\n const typeRule = type(rules[prop]);\n if (typeRule === 'Function') {\n return rules[prop](x);\n }\n if (typeRule === 'Object') {\n return evolve(rules[prop], x);\n }\n return x;\n }\n if (type(rules[prop]) === 'Function') {\n return rules[prop](x);\n }\n return x;\n }, iterable);\n}\nfunction evolve(rules, iterable) {\n if (arguments.length === 1) {\n return _iterable => evolve(rules, _iterable);\n }\n const rulesType = type(rules);\n const iterableType = type(iterable);\n if (iterableType !== rulesType) {\n throw new Error('iterableType !== rulesType');\n }\n if (!['Object', 'Array'].includes(rulesType)) {\n throw new Error(`'iterable' and 'rules' are from wrong type ${rulesType}`);\n }\n if (iterableType === 'Object') {\n return evolveObject(rules, iterable);\n }\n return evolveArray(rules, iterable);\n}\n\nfunction filterObject(predicate, obj) {\n const willReturn = {};\n for (const prop in obj) {\n if (predicate(obj[prop], prop, obj)) {\n willReturn[prop] = obj[prop];\n }\n }\n return willReturn;\n}\nfunction filterArray(predicate, list, indexed = false) {\n let index = 0;\n const len = list.length;\n const willReturn = [];\n while (index < len) {\n const predicateResult = indexed ? predicate(list[index], index) : predicate(list[index]);\n if (predicateResult) {\n willReturn.push(list[index]);\n }\n index++;\n }\n return willReturn;\n}\nfunction filter(predicate, iterable) {\n if (arguments.length === 1) return _iterable => filter(predicate, _iterable);\n if (!iterable) {\n throw new Error('Incorrect iterable input');\n }\n if (isArray(iterable)) return filterArray(predicate, iterable, false);\n return filterObject(predicate, iterable);\n}\n\nfunction find(predicate, list) {\n if (arguments.length === 1) return _list => find(predicate, _list);\n let index = 0;\n const len = list.length;\n while (index < len) {\n const x = list[index];\n if (predicate(x)) {\n return x;\n }\n index++;\n }\n}\n\nfunction findIndex(predicate, list) {\n if (arguments.length === 1) return _list => findIndex(predicate, _list);\n const len = list.length;\n let index = -1;\n while (++index < len) {\n if (predicate(list[index])) {\n return index;\n }\n }\n return -1;\n}\n\nfunction findLast(predicate, list) {\n if (arguments.length === 1) return _list => findLast(predicate, _list);\n let index = list.length;\n while (--index >= 0) {\n if (predicate(list[index])) {\n return list[index];\n }\n }\n return undefined;\n}\n\nfunction findLastIndex(fn, list) {\n if (arguments.length === 1) return _list => findLastIndex(fn, _list);\n let index = list.length;\n while (--index >= 0) {\n if (fn(list[index])) {\n return index;\n }\n }\n return -1;\n}\n\nfunction flatten(list, input) {\n const willReturn = input === undefined ? [] : input;\n for (let i = 0; i < list.length; i++) {\n if (isArray(list[i])) {\n flatten(list[i], willReturn);\n } else {\n willReturn.push(list[i]);\n }\n }\n return willReturn;\n}\n\nfunction flipFn(fn) {\n return (...input) => {\n if (input.length === 1) {\n return holder => fn(holder, input[0]);\n } else if (input.length === 2) {\n return fn(input[1], input[0]);\n } else if (input.length === 3) {\n return fn(input[1], input[0], input[2]);\n } else if (input.length === 4) {\n return fn(input[1], input[0], input[2], input[3]);\n }\n throw new Error('R.flip doesn\\'t work with arity > 4');\n };\n}\nfunction flip(fn) {\n return flipFn(fn);\n}\n\nfunction forEachObjIndexedFn(fn, obj) {\n let index = 0;\n const listKeys = keys$1(obj);\n const len = listKeys.length;\n while (index < len) {\n const key = listKeys[index];\n fn(obj[key], key, obj);\n index++;\n }\n return obj;\n}\nfunction forEachObjIndexed(fn, list) {\n if (arguments.length === 1) return _list => forEachObjIndexed(fn, _list);\n if (list === undefined) return;\n return forEachObjIndexedFn(fn, list);\n}\n\nfunction forEach(fn, iterable) {\n if (arguments.length === 1) return _list => forEach(fn, _list);\n if (iterable === undefined) return;\n if (isArray(iterable)) {\n let index = 0;\n const len = iterable.length;\n while (index < len) {\n fn(iterable[index]);\n index++;\n }\n } else return forEachObjIndexedFn(fn, iterable);\n return iterable;\n}\n\nfunction fromPairs(listOfPairs) {\n const toReturn = {};\n listOfPairs.forEach(([prop, value]) => toReturn[prop] = value);\n return toReturn;\n}\n\nfunction groupBy(groupFn, list) {\n if (arguments.length === 1) return _list => groupBy(groupFn, _list);\n const result = {};\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n const key = groupFn(item);\n if (!result[key]) {\n result[key] = [];\n }\n result[key].push(item);\n }\n return result;\n}\n\nfunction groupWith(compareFn, list) {\n if (!isArray(list)) throw new TypeError('list.reduce is not a function');\n const clone = cloneList(list);\n if (list.length === 1) return [clone];\n const toReturn = [];\n let holder = [];\n clone.reduce((prev, current, i) => {\n if (i === 0) return current;\n const okCompare = compareFn(prev, current);\n const holderIsEmpty = holder.length === 0;\n const lastCall = i === list.length - 1;\n if (okCompare) {\n if (holderIsEmpty) holder.push(prev);\n holder.push(current);\n if (lastCall) toReturn.push(holder);\n return current;\n }\n if (holderIsEmpty) {\n toReturn.push([prev]);\n if (lastCall) toReturn.push([current]);\n return current;\n }\n toReturn.push(holder);\n if (lastCall) toReturn.push([current]);\n holder = [];\n return current;\n }, undefined);\n return toReturn;\n}\n\nfunction gt(a, b) {\n if (arguments.length === 1) return _b => gt(a, _b);\n return a > b;\n}\n\nfunction gte(a, b) {\n if (arguments.length === 1) return _b => gte(a, _b);\n return a >= b;\n}\n\nfunction has(prop, obj) {\n if (arguments.length === 1) return _obj => has(prop, _obj);\n if (!obj) return false;\n return obj.hasOwnProperty(prop);\n}\n\nfunction hasIn(searchProperty, obj) {\n if (arguments.length === 1) {\n return _obj => hasIn(searchProperty, _obj);\n }\n return propFn(searchProperty, obj) !== undefined;\n}\n\nfunction hasPath(pathInput, obj) {\n if (arguments.length === 1) {\n return objHolder => hasPath(pathInput, objHolder);\n }\n return path(pathInput, obj) !== undefined;\n}\n\nfunction _objectIs(a, b) {\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n }\n return a !== a && b !== b;\n}\nconst objectIs = Object.is || _objectIs;\n\nfunction identical(a, b) {\n if (arguments.length === 1) return _b => identical(a, _b);\n return objectIs(a, b);\n}\n\nfunction ifElseFn(condition, onTrue, onFalse) {\n return (...input) => {\n const conditionResult = typeof condition === 'boolean' ? condition : condition(...input);\n if (Boolean(conditionResult)) {\n return onTrue(...input);\n }\n return onFalse(...input);\n };\n}\nconst ifElse = curry(ifElseFn);\n\nconst inc = x => x + 1;\n\nfunction indexByPath(pathInput, list) {\n const toReturn = {};\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n toReturn[path(pathInput, item)] = item;\n }\n return toReturn;\n}\nfunction indexBy(condition, list) {\n if (arguments.length === 1) {\n return _list => indexBy(condition, _list);\n }\n if (typeof condition === 'string') {\n return indexByPath(condition, list);\n }\n const toReturn = {};\n for (let i = 0; i < list.length; i++) {\n const item = list[i];\n toReturn[condition(item)] = item;\n }\n return toReturn;\n}\n\nfunction indexOf(valueToFind, list) {\n if (arguments.length === 1) {\n return _list => _indexOf(valueToFind, _list);\n }\n return _indexOf(valueToFind, list);\n}\n\nfunction baseSlice(array, start, end) {\n let index = -1;\n let {\n length\n } = array;\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : end - start >>> 0;\n start >>>= 0;\n const result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nfunction init(listOrString) {\n if (typeof listOrString === 'string') return listOrString.slice(0, -1);\n return listOrString.length ? baseSlice(listOrString, 0, -1) : [];\n}\n\nfunction _includesWith(pred, x, list) {\n let idx = 0;\n const len = list.length;\n while (idx < len) {\n if (pred(x, list[idx])) return true;\n idx += 1;\n }\n return false;\n}\nfunction _filter(fn, list) {\n let idx = 0;\n const len = list.length;\n const result = [];\n while (idx < len) {\n if (fn(list[idx])) result[result.length] = list[idx];\n idx += 1;\n }\n return result;\n}\nfunction innerJoinFn(pred, xs, ys) {\n return _filter(x => _includesWith(pred, x, ys), xs);\n}\nconst innerJoin = curry(innerJoinFn);\n\nfunction insertFn(indexToInsert, valueToInsert, array) {\n return [...array.slice(0, indexToInsert), valueToInsert, ...array.slice(indexToInsert)];\n}\nconst insert = curry(insertFn);\n\nfunction insertAllFn(index, listToInsert, list) {\n return [...list.slice(0, index), ...listToInsert, ...list.slice(index)];\n}\nconst insertAll = curry(insertAllFn);\n\nfunction intersection(listA, listB) {\n if (arguments.length === 1) return _list => intersection(listA, _list);\n return filter(x => includes$1(x, listA), listB);\n}\n\nfunction intersperse(separator, list) {\n if (arguments.length === 1) return _list => intersperse(separator, _list);\n let index = -1;\n const len = list.length;\n const willReturn = [];\n while (++index < len) {\n if (index === len - 1) {\n willReturn.push(list[index]);\n } else {\n willReturn.push(list[index], separator);\n }\n }\n return willReturn;\n}\n\nfunction is(targetPrototype, x) {\n if (arguments.length === 1) return _x => is(targetPrototype, _x);\n return x != null && x.constructor === targetPrototype || x instanceof targetPrototype;\n}\n\nfunction isEmpty(input) {\n const inputType = type(input);\n if (['Undefined', 'NaN', 'Number', 'Null'].includes(inputType)) return false;\n if (!input) return true;\n if (inputType === 'Object') {\n return Object.keys(input).length === 0;\n }\n if (inputType === 'Array') {\n return input.length === 0;\n }\n return false;\n}\n\nfunction isNil(x) {\n return x === undefined || x === null;\n}\n\nfunction isNotEmpty(input) {\n return !isEmpty(input);\n}\n\nfunction isNotNil(input) {\n return input != null;\n}\n\nfunction join(glue, list) {\n if (arguments.length === 1) return _list => join(glue, _list);\n return list.join(glue);\n}\n\nfunction juxt(listOfFunctions) {\n return (...args) => listOfFunctions.map(fn => fn(...args));\n}\n\nfunction keys(x) {\n return Object.keys(x);\n}\n\nfunction last(listOrString) {\n if (typeof listOrString === 'string') {\n return listOrString[listOrString.length - 1] || '';\n }\n return listOrString[listOrString.length - 1];\n}\n\nfunction lastIndexOf(valueToFind, list) {\n if (arguments.length === 1) {\n return _list => _lastIndexOf(valueToFind, _list);\n }\n return _lastIndexOf(valueToFind, list);\n}\n\nfunction length(x) {\n if (isArray(x)) return x.length;\n if (typeof x === 'string') return x.length;\n return NaN;\n}\n\nfunction lens(getter, setter) {\n return function (functor) {\n return function (target) {\n return functor(getter(target)).map(focus => setter(focus, target));\n };\n };\n}\n\nfunction nth(index, input) {\n if (arguments.length === 1) return _input => nth(index, _input);\n const idx = index < 0 ? input.length + index : index;\n return Object.prototype.toString.call(input) === '[object String]' ? input.charAt(idx) : input[idx];\n}\n\nfunction lensIndex(index) {\n return lens(nth(index), update(index));\n}\n\nfunction lensPath(key) {\n return lens(path(key), assocPath(key));\n}\n\nfunction lensProp(key) {\n return lens(prop(key), assoc(key));\n}\n\nfunction lt(a, b) {\n if (arguments.length === 1) return _b => lt(a, _b);\n return a < b;\n}\n\nfunction lte(a, b) {\n if (arguments.length === 1) return _b => lte(a, _b);\n return a <= b;\n}\n\nfunction match(pattern, input) {\n if (arguments.length === 1) return _input => match(pattern, _input);\n const willReturn = input.match(pattern);\n return willReturn === null ? [] : willReturn;\n}\n\nfunction mathMod(x, y) {\n if (arguments.length === 1) return _y => mathMod(x, _y);\n if (!isInteger(x) || !isInteger(y) || y < 1) return NaN;\n return (x % y + y) % y;\n}\n\nfunction maxByFn(compareFn, x, y) {\n return compareFn(y) > compareFn(x) ? y : x;\n}\nconst maxBy = curry(maxByFn);\n\nfunction sum(list) {\n return list.reduce((prev, current) => prev + current, 0);\n}\n\nfunction mean(list) {\n return sum(list) / list.length;\n}\n\nfunction median(list) {\n const len = list.length;\n if (len === 0) return NaN;\n const width = 2 - len % 2;\n const idx = (len - width) / 2;\n return mean(Array.prototype.slice.call(list, 0).sort((a, b) => {\n if (a === b) return 0;\n return a < b ? -1 : 1;\n }).slice(idx, idx + width));\n}\n\nfunction mergeRight(target, newProps) {\n if (arguments.length === 1) return _newProps => mergeRight(target, _newProps);\n return Object.assign({}, target || {}, newProps || {});\n}\n\nfunction mergeAll(arr) {\n let willReturn = {};\n map(val => {\n willReturn = mergeRight(willReturn, val);\n }, arr);\n return willReturn;\n}\n\nfunction mergeDeepRight(target, source) {\n if (arguments.length === 1) {\n return sourceHolder => mergeDeepRight(target, sourceHolder);\n }\n const willReturn = clone(target);\n Object.keys(source).forEach(key => {\n if (type(source[key]) === 'Object') {\n if (type(target[key]) === 'Object') {\n willReturn[key] = mergeDeepRight(target[key], source[key]);\n } else {\n willReturn[key] = source[key];\n }\n } else {\n willReturn[key] = source[key];\n }\n });\n return willReturn;\n}\n\nfunction mergeDeepLeft(newProps, target) {\n return mergeDeepRight(target, newProps);\n}\n\nfunction mergeLeft(x, y) {\n if (arguments.length === 1) return _y => mergeLeft(x, _y);\n return mergeRight(y, x);\n}\n\nfunction mergeWithFn(mergeFn, aInput, bInput) {\n const a = aInput !== null && aInput !== void 0 ? aInput : {};\n const b = bInput !== null && bInput !== void 0 ? bInput : {};\n const willReturn = {};\n Object.keys(a).forEach(key => {\n if (b[key] === undefined) willReturn[key] = a[key];else willReturn[key] = mergeFn(a[key], b[key]);\n });\n Object.keys(b).forEach(key => {\n if (willReturn[key] !== undefined) return;\n if (a[key] === undefined) willReturn[key] = b[key];else willReturn[key] = mergeFn(a[key], b[key]);\n });\n return willReturn;\n}\nconst mergeWith = curry(mergeWithFn);\n\nfunction min(x, y) {\n if (arguments.length === 1) return _y => min(x, _y);\n return y < x ? y : x;\n}\n\nfunction minByFn(compareFn, x, y) {\n return compareFn(y) < compareFn(x) ? y : x;\n}\nconst minBy = curry(minByFn);\n\nfunction isIterable(input) {\n return Array.isArray(input) || type(input) === 'Object';\n}\n\nfunction modifyFn(property, fn, iterable) {\n if (!isIterable(iterable)) return iterable;\n if (iterable[property] === undefined) return iterable;\n if (isArray(iterable)) {\n return updateFn(property, fn(iterable[property]), iterable);\n }\n return _objectSpread2(_objectSpread2({}, iterable), {}, {\n [property]: fn(iterable[property])\n });\n}\nconst modify = curry(modifyFn);\n\nfunction modifyPathFn(pathInput, fn, object) {\n const path$1 = createPath(pathInput);\n if (path$1.length === 1) {\n return _objectSpread2(_objectSpread2({}, object), {}, {\n [path$1[0]]: fn(object[path$1[0]])\n });\n }\n if (path(path$1, object) === undefined) return object;\n const val = modifyPath(Array.prototype.slice.call(path$1, 1), fn, object[path$1[0]]);\n if (val === object[path$1[0]]) {\n return object;\n }\n return assoc(path$1[0], val, object);\n}\nconst modifyPath = curry(modifyPathFn);\n\nfunction modulo(x, y) {\n if (arguments.length === 1) return _y => modulo(x, _y);\n return x % y;\n}\n\nfunction moveFn(fromIndex, toIndex, list) {\n if (fromIndex < 0 || toIndex < 0) {\n throw new Error('Rambda.move does not support negative indexes');\n }\n if (fromIndex > list.length - 1 || toIndex > list.length - 1) return list;\n const clone = cloneList(list);\n clone[fromIndex] = list[toIndex];\n clone[toIndex] = list[fromIndex];\n return clone;\n}\nconst move = curry(moveFn);\n\nfunction multiply(x, y) {\n if (arguments.length === 1) return _y => multiply(x, _y);\n return x * y;\n}\n\nfunction negate(x) {\n return -x;\n}\n\nfunction none(predicate, list) {\n if (arguments.length === 1) return _list => none(predicate, _list);\n for (let i = 0; i < list.length; i++) {\n if (predicate(list[i])) return false;\n }\n return true;\n}\n\nfunction not(input) {\n return !input;\n}\n\nfunction objOf(key, value) {\n if (arguments.length === 1) {\n return _value => objOf(key, _value);\n }\n return {\n [key]: value\n };\n}\n\nfunction of(value) {\n return [value];\n}\n\nfunction on(binaryFn, unaryFn, a, b) {\n if (arguments.length === 3) {\n return _b => on(binaryFn, unaryFn, a, _b);\n }\n if (arguments.length === 2) {\n return (_a, _b) => on(binaryFn, unaryFn, _a, _b);\n }\n return binaryFn(unaryFn(a), unaryFn(b));\n}\n\nfunction onceFn(fn, context) {\n let result;\n return function () {\n if (fn) {\n result = fn.apply(context || this, arguments);\n fn = null;\n }\n return result;\n };\n}\nfunction once(fn, context) {\n if (arguments.length === 1) {\n const wrap = onceFn(fn, context);\n return curry(wrap);\n }\n return onceFn(fn, context);\n}\n\nfunction or(a, b) {\n if (arguments.length === 1) return _b => or(a, _b);\n return a || b;\n}\n\nconst Identity = x => ({\n x,\n map: fn => Identity(fn(x))\n});\nfunction overFn(lens, fn, object) {\n return lens(x => Identity(fn(x)))(object).x;\n}\nconst over = curry(overFn);\n\nfunction partial(fn, ...args) {\n const len = fn.length;\n const argList = args.length === 1 && isArray(args[0]) ? args[0] : args;\n return (...rest) => {\n if (argList.length + rest.length >= len) {\n return fn(...argList, ...rest);\n }\n return partial(fn, ...[...argList, ...rest]);\n };\n}\n\nfunction partialObject(fn, input) {\n return nextInput => fn(mergeDeepRight(nextInput, input));\n}\n\nfunction partitionObject(predicate, iterable) {\n const yes = {};\n const no = {};\n Object.entries(iterable).forEach(([prop, value]) => {\n if (predicate(value, prop)) {\n yes[prop] = value;\n } else {\n no[prop] = value;\n }\n });\n return [yes, no];\n}\nfunction partitionArray(predicate, list, indexed = false) {\n const yes = [];\n const no = [];\n let counter = -1;\n while (counter++ < list.length - 1) {\n if (indexed ? predicate(list[counter], counter) : predicate(list[counter])) {\n yes.push(list[counter]);\n } else {\n no.push(list[counter]);\n }\n }\n return [yes, no];\n}\nfunction partition(predicate, iterable) {\n if (arguments.length === 1) {\n return listHolder => partition(predicate, listHolder);\n }\n if (!isArray(iterable)) return partitionObject(predicate, iterable);\n return partitionArray(predicate, iterable);\n}\n\nfunction pathEqFn(pathToSearch, target, input) {\n return equals(path(pathToSearch, input), target);\n}\nconst pathEq = curry(pathEqFn);\n\nfunction pathOrFn(defaultValue, pathInput, obj) {\n return defaultTo(defaultValue, path(pathInput, obj));\n}\nconst pathOr = curry(pathOrFn);\n\nfunction pathSatisfiesFn(fn, pathInput, obj) {\n if (pathInput.length === 0) throw new Error(\"R.pathSatisfies received an empty path\");\n return Boolean(fn(path(pathInput, obj)));\n}\nconst pathSatisfies = curry(pathSatisfiesFn);\n\nfunction paths(pathsToSearch, obj) {\n if (arguments.length === 1) {\n return _obj => paths(pathsToSearch, _obj);\n }\n return pathsToSearch.map(singlePath => path(singlePath, obj));\n}\n\nfunction pick(propsToPick, input) {\n if (arguments.length === 1) return _input => pick(propsToPick, _input);\n if (input === null || input === undefined) {\n return undefined;\n }\n const keys = createPath(propsToPick, ',');\n const willReturn = {};\n let counter = 0;\n while (counter < keys.length) {\n if (keys[counter] in input) {\n willReturn[keys[counter]] = input[keys[counter]];\n }\n counter++;\n }\n return willReturn;\n}\n\nfunction pickAll(propsToPick, obj) {\n if (arguments.length === 1) return _obj => pickAll(propsToPick, _obj);\n if (obj === null || obj === undefined) {\n return undefined;\n }\n const keysValue = createPath(propsToPick, ',');\n const willReturn = {};\n let counter = 0;\n while (counter < keysValue.length) {\n if (keysValue[counter] in obj) {\n willReturn[keysValue[counter]] = obj[keysValue[counter]];\n } else {\n willReturn[keysValue[counter]] = undefined;\n }\n counter++;\n }\n return willReturn;\n}\n\nfunction pickBy(predicate, obj) {\n if (arguments.length === 1) {\n return _obj => pickBy(predicate, _obj);\n }\n return Object.keys(obj).reduce((accum, key) => {\n if (predicate(obj[key], key, obj)) {\n accum[key] = obj[key];\n }\n return accum;\n }, {});\n}\n\nfunction pluck(property, list) {\n if (arguments.length === 1) return _list => pluck(property, _list);\n const willReturn = [];\n map(x => {\n if (x[property] !== undefined) {\n willReturn.push(x[property]);\n }\n }, list);\n return willReturn;\n}\n\nfunction prepend(x, input) {\n if (arguments.length === 1) return _input => prepend(x, _input);\n if (typeof input === 'string') return [x].concat(input.split(''));\n return [x].concat(input);\n}\n\nconst product = reduce(multiply, 1);\n\nfunction propEqFn(valueToMatch, propToFind, obj) {\n if (!obj) return false;\n return equals(valueToMatch, prop(propToFind, obj));\n}\nconst propEq = curry(propEqFn);\n\nfunction propIsFn(targetPrototype, property, obj) {\n return is(targetPrototype, obj[property]);\n}\nconst propIs = curry(propIsFn);\n\nfunction propOrFn(defaultValue, property, obj) {\n if (!obj) return defaultValue;\n return defaultTo(defaultValue, obj[property]);\n}\nconst propOr = curry(propOrFn);\n\nfunction propSatisfiesFn(predicate, property, obj) {\n return predicate(prop(property, obj));\n}\nconst propSatisfies = curry(propSatisfiesFn);\n\nfunction props(propsToPick, obj) {\n if (arguments.length === 1) {\n return _obj => props(propsToPick, _obj);\n }\n if (!isArray(propsToPick)) {\n throw new Error('propsToPick is not a list');\n }\n return mapArray(prop => obj[prop], propsToPick);\n}\n\nfunction range(start, end) {\n if (arguments.length === 1) return _end => range(start, _end);\n if (Number.isNaN(Number(start)) || Number.isNaN(Number(end))) {\n throw new TypeError('Both arguments to range must be numbers');\n }\n if (end < start) return [];\n const len = end - start;\n const willReturn = Array(len);\n for (let i = 0; i < len; i++) {\n willReturn[i] = start + i;\n }\n return willReturn;\n}\n\nfunction reduceByFunction(valueFn, valueAcc, keyFn, acc, elt) {\n const key = keyFn(elt);\n const value = valueFn(has(key, acc) ? acc[key] : clone(valueAcc), elt);\n acc[key] = value;\n return acc;\n}\nfunction reduceByFn(valueFn, valueAcc, keyFn, list) {\n return reduce((acc, elt) => reduceByFunction(valueFn, valueAcc, keyFn, acc, elt), {}, list);\n}\nconst reduceBy = curry(reduceByFn);\n\nfunction reject(predicate, list) {\n if (arguments.length === 1) return _list => reject(predicate, _list);\n return filter(x => !predicate(x), list);\n}\n\nfunction repeat(x, timesToRepeat) {\n if (arguments.length === 1) {\n return _timesToRepeat => repeat(x, _timesToRepeat);\n }\n return Array(timesToRepeat).fill(x);\n}\n\nfunction replaceFn(pattern, replacer, str) {\n return str.replace(pattern, replacer);\n}\nconst replace = curry(replaceFn);\n\nfunction setFn(lens, replacer, x) {\n return over(lens, always(replacer), x);\n}\nconst set = curry(setFn);\n\nfunction sliceFn(from, to, list) {\n return list.slice(from, to);\n}\nconst slice = curry(sliceFn);\n\nfunction sort(sortFn, list) {\n if (arguments.length === 1) return _list => sort(sortFn, _list);\n return cloneList(list).sort(sortFn);\n}\n\nfunction sortBy(sortFn, list) {\n if (arguments.length === 1) return _list => sortBy(sortFn, _list);\n const clone = cloneList(list);\n return clone.sort((a, b) => {\n const aSortResult = sortFn(a);\n const bSortResult = sortFn(b);\n if (aSortResult === bSortResult) return 0;\n return aSortResult < bSortResult ? -1 : 1;\n });\n}\n\nfunction sortHelper(a, b, listOfSortingFns) {\n let result = 0;\n let i = 0;\n while (result === 0 && i < listOfSortingFns.length) {\n result = listOfSortingFns[i](a, b);\n i += 1;\n }\n return result;\n}\nfunction sortWith(listOfSortingFns, list) {\n if (arguments.length === 1) return _list => sortWith(listOfSortingFns, _list);\n if (Array.isArray(list) === false) return [];\n const clone = list.slice();\n clone.sort((a, b) => sortHelper(a, b, listOfSortingFns));\n return clone;\n}\n\nfunction split(separator, str) {\n if (arguments.length === 1) return _str => split(separator, _str);\n return str.split(separator);\n}\n\nfunction maybe(ifRule, whenIf, whenElse) {\n const whenIfInput = ifRule && type(whenIf) === 'Function' ? whenIf() : whenIf;\n const whenElseInput = !ifRule && type(whenElse) === 'Function' ? whenElse() : whenElse;\n return ifRule ? whenIfInput : whenElseInput;\n}\n\nfunction take(howMany, listOrString) {\n if (arguments.length === 1) return _listOrString => take(howMany, _listOrString);\n if (howMany < 0) return listOrString.slice();\n if (typeof listOrString === 'string') return listOrString.slice(0, howMany);\n return baseSlice(listOrString, 0, howMany);\n}\n\nfunction splitAt(index, input) {\n if (arguments.length === 1) {\n return _list => splitAt(index, _list);\n }\n if (!input) throw new TypeError(`Cannot read property 'slice' of ${input}`);\n if (!isArray(input) && typeof input !== 'string') return [[], []];\n const correctIndex = maybe(index < 0, input.length + index < 0 ? 0 : input.length + index, index);\n return [take(correctIndex, input), drop(correctIndex, input)];\n}\n\nfunction splitEvery(sliceLength, listOrString) {\n if (arguments.length === 1) {\n return _listOrString => splitEvery(sliceLength, _listOrString);\n }\n if (sliceLength < 1) {\n throw new Error('First argument to splitEvery must be a positive integer');\n }\n const willReturn = [];\n let counter = 0;\n while (counter < listOrString.length) {\n willReturn.push(listOrString.slice(counter, counter += sliceLength));\n }\n return willReturn;\n}\n\nfunction splitWhen(predicate, input) {\n if (arguments.length === 1) {\n return _input => splitWhen(predicate, _input);\n }\n if (!input) throw new TypeError(`Cannot read property 'length' of ${input}`);\n const preFound = [];\n const postFound = [];\n let found = false;\n let counter = -1;\n while (counter++ < input.length - 1) {\n if (found) {\n postFound.push(input[counter]);\n } else if (predicate(input[counter])) {\n postFound.push(input[counter]);\n found = true;\n } else {\n preFound.push(input[counter]);\n }\n }\n return [preFound, postFound];\n}\n\nfunction startsWith(question, iterable) {\n if (arguments.length === 1) return _iterable => startsWith(question, _iterable);\n if (typeof iterable === 'string') {\n return iterable.startsWith(question);\n }\n if (!isArray(question)) return false;\n let correct = true;\n const filtered = question.filter((x, index) => {\n if (!correct) return false;\n const result = equals(x, iterable[index]);\n if (!result) correct = false;\n return result;\n });\n return filtered.length === question.length;\n}\n\nfunction subtract(a, b) {\n if (arguments.length === 1) return _b => subtract(a, _b);\n return a - b;\n}\n\nfunction swapArrayOrString(indexA, indexB, iterable) {\n const actualIndexA = indexA < 0 ? iterable.length + indexA : indexA;\n const actualIndexB = indexB < 0 ? iterable.length + indexB : indexB;\n if (actualIndexA === actualIndexB || Math.min(actualIndexA, actualIndexB) < 0 || Math.max(actualIndexA, actualIndexB) >= iterable.length) return iterable;\n if (typeof iterable === 'string') {\n return iterable.slice(0, actualIndexA) + iterable[actualIndexB] + iterable.slice(actualIndexA + 1, actualIndexB) + iterable[actualIndexA] + iterable.slice(actualIndexB + 1);\n }\n const clone = iterable.slice();\n const temp = clone[actualIndexA];\n clone[actualIndexA] = clone[actualIndexB];\n clone[actualIndexB] = temp;\n return clone;\n}\nfunction swapFn(indexA, indexB, iterable) {\n if (isArray(iterable) || typeof iterable === 'string') return swapArrayOrString(indexA, indexB, iterable);\n const aVal = iterable[indexA];\n const bVal = iterable[indexB];\n if (aVal === undefined || bVal === undefined) return iterable;\n return _objectSpread2(_objectSpread2({}, iterable), {}, {\n [indexA]: iterable[indexB],\n [indexB]: iterable[indexA]\n });\n}\nconst swap = curry(swapFn);\n\nfunction symmetricDifference(x, y) {\n if (arguments.length === 1) {\n return _y => symmetricDifference(x, _y);\n }\n return concat(filter(value => !includes$1(value, y), x), filter(value => !includes$1(value, x), y));\n}\n\nfunction takeLast(howMany, listOrString) {\n if (arguments.length === 1) return _listOrString => takeLast(howMany, _listOrString);\n const len = listOrString.length;\n if (howMany < 0) return listOrString.slice();\n let numValue = howMany > len ? len : howMany;\n if (typeof listOrString === 'string') return listOrString.slice(len - numValue);\n numValue = len - numValue;\n return baseSlice(listOrString, numValue, len);\n}\n\nfunction takeLastWhile(predicate, input) {\n if (arguments.length === 1) {\n return _input => takeLastWhile(predicate, _input);\n }\n if (input.length === 0) return input;\n const toReturn = [];\n let counter = input.length;\n while (counter) {\n const item = input[--counter];\n if (!predicate(item)) {\n break;\n }\n toReturn.push(item);\n }\n return isArray(input) ? toReturn.reverse() : toReturn.reverse().join('');\n}\n\nfunction takeWhile(predicate, iterable) {\n if (arguments.length === 1) {\n return _iterable => takeWhile(predicate, _iterable);\n }\n const isArray$1 = isArray(iterable);\n if (!isArray$1 && typeof iterable !== 'string') {\n throw new Error('`iterable` is neither list nor a string');\n }\n const toReturn = [];\n let counter = 0;\n while (counter < iterable.length) {\n const item = iterable[counter++];\n if (!predicate(item)) {\n break;\n }\n toReturn.push(item);\n }\n return isArray$1 ? toReturn : toReturn.join('');\n}\n\nfunction tap(fn, x) {\n if (arguments.length === 1) return _x => tap(fn, _x);\n fn(x);\n return x;\n}\n\nfunction test(pattern, str) {\n if (arguments.length === 1) return _str => test(pattern, _str);\n if (typeof pattern === 'string') {\n throw new TypeError(`R.test requires a value of type RegExp as its first argument; received \"${pattern}\"`);\n }\n return str.search(pattern) !== -1;\n}\n\nfunction times(fn, howMany) {\n if (arguments.length === 1) return _howMany => times(fn, _howMany);\n if (!isInteger(howMany) || howMany < 0) {\n throw new RangeError('n must be an integer');\n }\n return map(fn, range(0, howMany));\n}\n\nfunction toLower(str) {\n return str.toLowerCase();\n}\n\nfunction toPairs(obj) {\n return Object.entries(obj);\n}\n\nfunction toString(x) {\n return x.toString();\n}\n\nfunction toUpper(str) {\n return str.toUpperCase();\n}\n\nfunction transpose(array) {\n return array.reduce((acc, el) => {\n el.forEach((nestedEl, i) => isArray(acc[i]) ? acc[i].push(nestedEl) : acc.push([nestedEl]));\n return acc;\n }, []);\n}\n\nfunction trim(str) {\n return str.trim();\n}\n\nconst isFunction = x => ['Promise', 'Function'].includes(type(x));\nfunction tryCatch(fn, fallback) {\n if (!isFunction(fn)) {\n throw new Error(`R.tryCatch | fn '${fn}'`);\n }\n const passFallback = isFunction(fallback);\n return (...inputs) => {\n try {\n return fn(...inputs);\n } catch (e) {\n return passFallback ? fallback(e, ...inputs) : fallback;\n }\n };\n}\n\nfunction unapply(fn) {\n return function (...args) {\n return fn.call(this, args);\n };\n}\n\nfunction union(x, y) {\n if (arguments.length === 1) return _y => union(x, _y);\n const toReturn = cloneList(x);\n y.forEach(yInstance => {\n if (!includes$1(yInstance, x)) toReturn.push(yInstance);\n });\n return toReturn;\n}\n\nfunction uniqBy(fn, list) {\n if (arguments.length === 1) {\n return _list => uniqBy(fn, _list);\n }\n const set = new _Set();\n return list.filter(item => set.checkUniqueness(fn(item)));\n}\n\nfunction includesWith(predicate, target, list) {\n let willReturn = false;\n let index = -1;\n while (++index < list.length && !willReturn) {\n const value = list[index];\n if (predicate(target, value)) {\n willReturn = true;\n }\n }\n return willReturn;\n}\nfunction uniqWith(predicate, list) {\n if (arguments.length === 1) return _list => uniqWith(predicate, _list);\n let index = -1;\n const willReturn = [];\n while (++index < list.length) {\n const value = list[index];\n if (!includesWith(predicate, value, willReturn)) {\n willReturn.push(value);\n }\n }\n return willReturn;\n}\n\nfunction unlessFn(predicate, whenFalseFn, input) {\n if (predicate(input)) return input;\n return whenFalseFn(input);\n}\nconst unless = curry(unlessFn);\n\nfunction unnest(list) {\n return list.reduce((acc, item) => {\n if (Array.isArray(item)) {\n return [...acc, ...item];\n }\n return [...acc, item];\n }, []);\n}\n\nfunction unwind(property, obj) {\n if (arguments.length === 1) {\n return _obj => unwind(property, _obj);\n }\n if (!isArray(obj[property])) return [obj];\n return mapArray(x => _objectSpread2(_objectSpread2({}, obj), {}, {\n [property]: x\n }), obj[property]);\n}\n\nfunction values(obj) {\n if (type(obj) !== 'Object') return [];\n return Object.values(obj);\n}\n\nconst Const = x => ({\n x,\n map: fn => Const(x)\n});\nfunction view(lens, target) {\n if (arguments.length === 1) return _target => view(lens, _target);\n return lens(Const)(target).x;\n}\n\nfunction whenFn(predicate, whenTrueFn, input) {\n if (!predicate(input)) return input;\n return whenTrueFn(input);\n}\nconst when = curry(whenFn);\n\nfunction where(conditions, input) {\n if (input === undefined) {\n return _input => where(conditions, _input);\n }\n let flag = true;\n for (const prop in conditions) {\n if (!flag) continue;\n const result = conditions[prop](input[prop]);\n if (flag && result === false) {\n flag = false;\n }\n }\n return flag;\n}\n\nfunction whereAny(conditions, input) {\n if (input === undefined) {\n return _input => whereAny(conditions, _input);\n }\n for (const prop in conditions) {\n if (conditions[prop](input[prop])) {\n return true;\n }\n }\n return false;\n}\n\nfunction whereEq(condition, input) {\n if (arguments.length === 1) {\n return _input => whereEq(condition, _input);\n }\n const result = filter((conditionValue, conditionProp) => equals(conditionValue, input[conditionProp]), condition);\n return Object.keys(result).length === Object.keys(condition).length;\n}\n\nfunction without(matchAgainst, source) {\n if (source === undefined) {\n return _source => without(matchAgainst, _source);\n }\n return reduce((prev, current) => _indexOf(current, matchAgainst) > -1 ? prev : prev.concat(current), [], source);\n}\n\nfunction xor(a, b) {\n if (arguments.length === 1) return _b => xor(a, _b);\n return Boolean(a) && !b || Boolean(b) && !a;\n}\n\nfunction zip(left, right) {\n if (arguments.length === 1) return _right => zip(left, _right);\n const result = [];\n const length = Math.min(left.length, right.length);\n for (let i = 0; i < length; i++) {\n result[i] = [left[i], right[i]];\n }\n return result;\n}\n\nfunction zipObj(keys, values) {\n if (arguments.length === 1) return yHolder => zipObj(keys, yHolder);\n return take(values.length, keys).reduce((prev, xInstance, i) => {\n prev[xInstance] = values[i];\n return prev;\n }, {});\n}\n\nfunction zipWithFn(fn, x, y) {\n return take(x.length > y.length ? y.length : x.length, x).map((xInstance, i) => fn(xInstance, y[i]));\n}\nconst zipWith = curry(zipWithFn);\n\nexports.F = F;\nexports.T = T;\nexports.__findHighestArity = __findHighestArity;\nexports._indexOf = _indexOf;\nexports._lastIndexOf = _lastIndexOf;\nexports._pipe = _pipe;\nexports.add = add;\nexports.addIndex = addIndex;\nexports.addIndexRight = addIndexRight;\nexports.adjust = adjust;\nexports.all = all;\nexports.allPass = allPass;\nexports.always = always;\nexports.and = and;\nexports.any = any;\nexports.anyPass = anyPass;\nexports.ap = ap;\nexports.aperture = aperture;\nexports.append = append;\nexports.apply = apply;\nexports.applySpec = applySpec;\nexports.applyTo = applyTo;\nexports.ascend = ascend;\nexports.assoc = assoc;\nexports.assocFn = assocFn;\nexports.assocPath = assocPath;\nexports.assocPathFn = assocPathFn;\nexports.binary = binary;\nexports.bind = bind;\nexports.both = both;\nexports.call = call;\nexports.chain = chain;\nexports.clamp = clamp;\nexports.clone = clone;\nexports.collectBy = collectBy;\nexports.comparator = comparator;\nexports.complement = complement;\nexports.compose = compose;\nexports.composeWith = composeWith;\nexports.concat = concat;\nexports.cond = cond;\nexports.converge = converge;\nexports.count = count;\nexports.countBy = countBy;\nexports.createCompareFunction = createCompareFunction;\nexports.curry = curry;\nexports.curryN = curryN;\nexports.dec = dec;\nexports.defaultTo = defaultTo;\nexports.descend = descend;\nexports.difference = difference;\nexports.differenceWith = differenceWith;\nexports.differenceWithFn = differenceWithFn;\nexports.dissoc = dissoc;\nexports.dissocPath = dissocPath;\nexports.divide = divide;\nexports.drop = drop;\nexports.dropLast = dropLast;\nexports.dropLastWhile = dropLastWhile;\nexports.dropRepeats = dropRepeats;\nexports.dropRepeatsBy = dropRepeatsBy;\nexports.dropRepeatsWith = dropRepeatsWith;\nexports.dropWhile = dropWhile;\nexports.either = either;\nexports.empty = empty;\nexports.endsWith = endsWith;\nexports.eqBy = eqBy;\nexports.eqByFn = eqByFn;\nexports.eqProps = eqProps;\nexports.equals = equals;\nexports.evolve = evolve;\nexports.evolveArray = evolveArray;\nexports.evolveObject = evolveObject;\nexports.filter = filter;\nexports.filterArray = filterArray;\nexports.filterObject = filterObject;\nexports.find = find;\nexports.findIndex = findIndex;\nexports.findLast = findLast;\nexports.findLastIndex = findLastIndex;\nexports.flatten = flatten;\nexports.flip = flip;\nexports.forEach = forEach;\nexports.forEachObjIndexed = forEachObjIndexed;\nexports.forEachObjIndexedFn = forEachObjIndexedFn;\nexports.fromPairs = fromPairs;\nexports.groupBy = groupBy;\nexports.groupWith = groupWith;\nexports.gt = gt;\nexports.gte = gte;\nexports.has = has;\nexports.hasIn = hasIn;\nexports.hasPath = hasPath;\nexports.head = head;\nexports.identical = identical;\nexports.identity = identity;\nexports.ifElse = ifElse;\nexports.inc = inc;\nexports.includes = includes$1;\nexports.indexBy = indexBy;\nexports.indexOf = indexOf;\nexports.init = init;\nexports.innerJoin = innerJoin;\nexports.innerJoinFn = innerJoinFn;\nexports.insert = insert;\nexports.insertAll = insertAll;\nexports.insertAllFn = insertAllFn;\nexports.insertFn = insertFn;\nexports.intersection = intersection;\nexports.intersperse = intersperse;\nexports.is = is;\nexports.isEmpty = isEmpty;\nexports.isNil = isNil;\nexports.isNotEmpty = isNotEmpty;\nexports.isNotNil = isNotNil;\nexports.join = join;\nexports.juxt = juxt;\nexports.keys = keys;\nexports.last = last;\nexports.lastIndexOf = lastIndexOf;\nexports.length = length;\nexports.lens = lens;\nexports.lensIndex = lensIndex;\nexports.lensPath = lensPath;\nexports.lensProp = lensProp;\nexports.lt = lt;\nexports.lte = lte;\nexports.map = map;\nexports.mapArray = mapArray;\nexports.mapObjIndexed = mapObjIndexed;\nexports.mapObject = mapObject;\nexports.match = match;\nexports.mathMod = mathMod;\nexports.max = max;\nexports.maxBy = maxBy;\nexports.maxByFn = maxByFn;\nexports.mean = mean;\nexports.median = median;\nexports.merge = mergeRight;\nexports.mergeAll = mergeAll;\nexports.mergeDeepLeft = mergeDeepLeft;\nexports.mergeDeepRight = mergeDeepRight;\nexports.mergeLeft = mergeLeft;\nexports.mergeRight = mergeRight;\nexports.mergeWith = mergeWith;\nexports.mergeWithFn = mergeWithFn;\nexports.min = min;\nexports.minBy = minBy;\nexports.minByFn = minByFn;\nexports.modify = modify;\nexports.modifyPath = modifyPath;\nexports.modifyPathFn = modifyPathFn;\nexports.modulo = modulo;\nexports.move = move;\nexports.multiply = multiply;\nexports.negate = negate;\nexports.none = none;\nexports.not = not;\nexports.nth = nth;\nexports.objOf = objOf;\nexports.of = of;\nexports.omit = omit;\nexports.on = on;\nexports.once = once;\nexports.or = or;\nexports.over = over;\nexports.partial = partial;\nexports.partialObject = partialObject;\nexports.partition = partition;\nexports.partitionArray = partitionArray;\nexports.partitionObject = partitionObject;\nexports.path = path;\nexports.pathEq = pathEq;\nexports.pathFn = pathFn;\nexports.pathOr = pathOr;\nexports.pathSatisfies = pathSatisfies;\nexports.pathSatisfiesFn = pathSatisfiesFn;\nexports.paths = paths;\nexports.pick = pick;\nexports.pickAll = pickAll;\nexports.pickBy = pickBy;\nexports.pipe = pipe;\nexports.pipeWith = pipeWith;\nexports.pluck = pluck;\nexports.prepend = prepend;\nexports.product = product;\nexports.prop = prop;\nexports.propEq = propEq;\nexports.propFn = propFn;\nexports.propIs = propIs;\nexports.propOr = propOr;\nexports.propSatisfies = propSatisfies;\nexports.props = props;\nexports.range = range;\nexports.reduce = reduce;\nexports.reduceBy = reduceBy;\nexports.reduceByFn = reduceByFn;\nexports.reduceFn = reduceFn;\nexports.reduceStopper = reduceStopper;\nexports.reject = reject;\nexports.removeIndex = removeIndex;\nexports.repeat = repeat;\nexports.replace = replace;\nexports.reverse = reverse;\nexports.set = set;\nexports.slice = slice;\nexports.sort = sort;\nexports.sortBy = sortBy;\nexports.sortWith = sortWith;\nexports.split = split;\nexports.splitAt = splitAt;\nexports.splitEvery = splitEvery;\nexports.splitWhen = splitWhen;\nexports.startsWith = startsWith;\nexports.subtract = subtract;\nexports.sum = sum;\nexports.swap = swap;\nexports.symmetricDifference = symmetricDifference;\nexports.tail = tail;\nexports.take = take;\nexports.takeLast = takeLast;\nexports.takeLastWhile = takeLastWhile;\nexports.takeWhile = takeWhile;\nexports.tap = tap;\nexports.test = test;\nexports.times = times;\nexports.toLower = toLower;\nexports.toPairs = toPairs;\nexports.toString = toString;\nexports.toUpper = toUpper;\nexports.transpose = transpose;\nexports.trim = trim;\nexports.tryCatch = tryCatch;\nexports.type = type;\nexports.unapply = unapply;\nexports.union = union;\nexports.uniq = uniq;\nexports.uniqBy = uniqBy;\nexports.uniqWith = uniqWith;\nexports.unless = unless;\nexports.unnest = unnest;\nexports.unwind = unwind;\nexports.update = update;\nexports.updateFn = updateFn;\nexports.values = values;\nexports.view = view;\nexports.when = when;\nexports.where = where;\nexports.whereAny = whereAny;\nexports.whereEq = whereEq;\nexports.without = without;\nexports.xor = xor;\nexports.zip = zip;\nexports.zipObj = zipObj;\nexports.zipWith = zipWith;\n",
157
- "export function map(select) {\n let reader = null;\n async function flush(controller) {\n try {\n while (controller.desiredSize > 0 && reader != null) {\n let next = await reader.read();\n if (next.done) {\n controller.close();\n reader = null;\n }\n else {\n let mapped = await select(next.value);\n if (mapped !== undefined)\n controller.enqueue(mapped);\n }\n }\n }\n catch (err) {\n controller.error(err);\n }\n }\n return function (src, opts) {\n return new ReadableStream({\n start(controller) {\n reader = src.getReader();\n return flush(controller);\n },\n pull(controller) {\n return flush(controller);\n },\n cancel(reason) {\n if (reader) {\n reader.cancel(reason);\n reader.releaseLock();\n reader = null;\n }\n }\n }, opts);\n };\n}\n",
158
- "export function isReadableLike(obj) {\n return obj['readable'] != null;\n}\n",
159
- "import { isReadableLike } from \"./_readable-like.js\";\nexport function from(src) {\n let it;\n async function flush(controller) {\n try {\n while (controller.desiredSize > 0 && it != null) {\n let next = await it.next();\n if (next.done) {\n it = null;\n controller.close();\n }\n else {\n controller.enqueue(next.value);\n }\n }\n }\n catch (err) {\n controller.error(err);\n }\n }\n if (isReadableLike(src)) {\n return src.readable;\n }\n return new ReadableStream({\n async start(controller) {\n let iterable;\n if (typeof src == \"function\") {\n src = src();\n }\n if (Symbol.asyncIterator && src[Symbol.asyncIterator])\n iterable = src[Symbol.asyncIterator].bind(src);\n else if (src[Symbol.iterator])\n iterable = src[Symbol.iterator].bind(src);\n else {\n let value = await Promise.resolve(src);\n controller.enqueue(value);\n controller.close();\n return;\n }\n it = iterable();\n return flush(controller);\n },\n async pull(controller) {\n return flush(controller);\n },\n async cancel(reason) {\n if (reason && it && it.throw) {\n it.throw(reason);\n }\n else if (it && it.return) {\n await it.return();\n }\n it = null;\n }\n });\n}\n",
160
- "/**\n * given a stream of T, pipeThrough a TransformStream<T,R> and return a ReadableStream of R;\n */\nexport function through(dst) {\n return function (src) {\n return src.pipeThrough(dst);\n };\n}\n",
161
- "import { isReadableLike } from \"./_readable-like.js\";\nimport { through } from \"./operators/through.js\";\nexport function pipe(src, ...ops) {\n if (isReadableLike(src)) {\n src = src.readable;\n }\n return ops\n .map(x => isTransform(x) ? through(x) : x)\n .reduce((p, c) => {\n return c(p, { highWaterMark: 1 });\n }, src);\n}\nfunction isTransform(x) {\n return x['readable'] != null && x['writable'] != null;\n}\n",
162
- "export class Signal {\n _sub = [];\n async wait() {\n return new Promise(r => {\n let cb = () => {\n this._sub.splice(this._sub.indexOf(cb), 1);\n r();\n };\n this._sub.push(cb);\n });\n }\n signal() {\n for (let sub of this._sub) {\n sub();\n }\n }\n}\n/** concurrent gate */\nexport class Gate {\n _count;\n _queue = [];\n constructor(_count) {\n this._count = _count;\n }\n async wait() {\n if (this._count > 0) {\n --this._count;\n return Promise.resolve();\n }\n return new Promise(r => {\n let cb = () => {\n this._queue.splice(this._queue.indexOf(cb), 1);\n --this._count;\n r();\n };\n this._queue.push(cb);\n });\n }\n increment() {\n ++this._count;\n this.clearQueue();\n }\n setCount(count) {\n this._count = count;\n this.clearQueue();\n }\n clearQueue() {\n while (this._count > 0 && this._queue.length > 0) {\n (this._queue.shift())();\n }\n }\n}\nexport class BlockingQueue {\n _pushers = [];\n _pullers = [];\n constructor() { }\n async push(value) {\n return new Promise(r => {\n this._pushers.unshift(() => { r(); return value; });\n this.dequeue();\n });\n }\n async pull() {\n return new Promise(r => {\n this._pullers.unshift((value) => { r(value); });\n this.dequeue();\n });\n }\n dequeue() {\n while (this._pullers.length > 0 && this._pushers.length > 0) {\n let puller = this._pullers.pop();\n let pusher = this._pushers.pop();\n puller(pusher());\n }\n }\n}\n",
163
- "/**\n * schedule enqueuing stream chunks via a scheduler.\n * @param scheduler operator to schedule pipe-through\n */\nexport function schedule(scheduler) {\n let reader = null;\n async function flush(controller) {\n try {\n while (controller.desiredSize > 0 && reader != null) {\n let next = await reader.read();\n if (next.done) {\n controller.close();\n reader = null;\n }\n else {\n await scheduler.nextTick();\n controller.enqueue(next.value);\n }\n }\n }\n catch (err) {\n controller.error(err);\n }\n }\n return function (src, opts) {\n return new ReadableStream({\n start(controller) {\n reader = src.getReader();\n return flush(controller);\n },\n pull(controller) {\n return flush(controller);\n },\n cancel(reason) {\n if (reader) {\n reader.cancel(reason);\n reader.releaseLock();\n reader = null;\n }\n }\n }, opts);\n };\n}\n",
164
- "export function on(callbacks) {\n let reader = null;\n async function flush(controller) {\n try {\n while (controller.desiredSize > 0 && reader != null) {\n let next = await reader.read();\n if (next.done) {\n controller.close();\n reader = null;\n if (callbacks.complete)\n callbacks.complete();\n }\n else {\n controller.enqueue(next.value);\n }\n }\n }\n catch (err) {\n controller.error(err);\n if (callbacks.error)\n callbacks.error(err);\n }\n }\n return function (src, opts) {\n return new ReadableStream({\n start(controller) {\n reader = src.getReader();\n if (callbacks.start)\n callbacks.start();\n return flush(controller);\n },\n pull(controller) {\n return flush(controller);\n },\n cancel(reason) {\n if (reader) {\n reader.cancel(reason);\n reader.releaseLock();\n reader = null;\n if (callbacks.complete)\n callbacks.complete(reason);\n }\n }\n }, opts);\n };\n}\n",
165
- "import { isReadableLike } from \"./_readable-like.js\";\nexport async function toPromise(src) {\n let res = undefined;\n if (isReadableLike(src)) {\n src = src.readable;\n }\n let reader = src.getReader();\n let done = false;\n while (done == false) {\n let next = await reader.read();\n done = next.done;\n if (!done)\n res = next.value;\n }\n return res;\n}\n",
166
- "import { from } from \"../from.js\";\nimport { pipe } from \"../pipe.js\";\nimport { BlockingQueue, Gate } from \"../utils/signal.js\";\nimport { map } from \"./map.js\";\nimport { schedule } from \"./schedule.js\";\nimport { on } from \"./on.js\";\nimport { toPromise } from \"../to-promise.js\";\nexport function merge(concurrent = Infinity) {\n if (concurrent == 0)\n throw Error(\"zero is an invalid concurrency limit\");\n return function (src) {\n let outerGate = new Gate(concurrent);\n let innerQueue = new BlockingQueue();\n let subscription;\n let errored = null;\n return new ReadableStream({\n start(outerController) {\n let reading = [];\n let readingDone = false;\n toPromise(pipe(src, schedule({\n nextTick: async () => {\n await outerGate.wait();\n },\n }), map((innerStream) => {\n //wrap Promises as Streams\n if (!(innerStream instanceof ReadableStream)) {\n innerStream = from(innerStream);\n }\n reading.push(innerStream);\n pipe(innerStream, \n //\n map(async (value) => {\n await innerQueue.push({ done: false, value });\n }), \n //tap into complete lifecycle to track number of concurrent active streams\n on({\n error(err) {\n outerController.error(err);\n },\n complete() {\n outerGate.increment();\n reading.splice(reading.indexOf(innerStream), 1);\n if (reading.length == 0 && readingDone) {\n innerQueue.push({ done: true });\n }\n },\n }));\n }), on({\n error(err) {\n outerController.error(err);\n errored = err;\n },\n complete() {\n readingDone = true;\n }\n }))).catch((err) => {\n outerController.error(err);\n });\n },\n async pull(controller) {\n while (controller.desiredSize > 0) {\n let next = await innerQueue.pull();\n if (errored) {\n controller.error(errored);\n }\n if (next.done) {\n controller.close();\n }\n else {\n controller.enqueue(next.value);\n }\n }\n },\n cancel(reason) {\n if (subscription) {\n subscription.unsubscribe();\n subscription = null;\n }\n },\n });\n };\n}\n",
167
- "export * from \"./buffer.js\";\nexport * from \"./concatAll.js\";\nexport * from \"./filter.js\";\nexport * from \"./first.js\";\nexport * from \"./last.js\";\nexport * from \"./map.js\";\nexport * from \"./mapSync.js\";\nexport * from \"./merge.js\";\nexport * from \"./on.js\";\nexport * from \"./skip.js\";\nexport * from \"./schedule.js\";\nexport * from \"./take.js\";\nexport * from \"./tap.js\";\nexport * from \"./through.js\";\nexport * from \"./debounceTime.js\";\nexport * from \"./schedule.js\";\nexport * from \"./timeout.js\";\n",
168
- "import { isReadableLike } from \"./_readable-like.js\";\nexport async function toArray(src) {\n let res = [];\n if (isReadableLike(src)) {\n src = src.readable;\n }\n let reader = src.getReader();\n try {\n let done = false;\n while (done == false) {\n let next = await reader.read();\n done = next.done;\n if (!done)\n res.push(next.value);\n }\n }\n finally {\n reader.releaseLock();\n }\n return res;\n}\n",
169
- "import { from } from \"./from.js\";\nexport function of(...args) {\n return from(args);\n}\n",
170
- "export class Subscribable {\n closed = false;\n subscribers = [];\n subscribe(cb) {\n let self = this;\n self.subscribers.push(cb);\n let _closed = false;\n return {\n get closed() { return _closed || self.closed; },\n unsubscribe() {\n let index = self.subscribers.findIndex(x => x === cb);\n if (index >= 0) {\n self.subscribers.splice(index, 1);\n }\n _closed = true;\n }\n };\n }\n next(value) {\n return Math.min(...this.subscribers.map(x => x.next(value)));\n }\n complete() {\n for (let sub of this.subscribers) {\n sub.complete();\n }\n this.subscribers = [];\n this.closed = true;\n }\n error(err) {\n for (let sub of this.subscribers) {\n sub.error(err);\n }\n this.subscribers = [];\n this.closed = true;\n }\n}\n",
171
- "import { Subscribable } from \"./_subscribable.js\";\nexport class Subject {\n _subscribable = new Subscribable();\n _closingResolve;\n _closing = new Promise((r) => this._closingResolve = r);\n get closed() {\n return this._subscribable.closed;\n }\n /** create a new readable */\n get readable() {\n let self = this;\n let subscription;\n let cancelled = false;\n return new ReadableStream({\n async start(controller) {\n subscription = self.subscribe({\n next: (value) => {\n if (cancelled)\n return;\n controller.enqueue(value);\n return controller.desiredSize;\n },\n complete: () => {\n controller.close();\n },\n error: (err) => {\n controller.error(err);\n }\n });\n },\n cancel() {\n cancelled = true;\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n });\n }\n ;\n get writable() {\n const queuingStrategy = new CountQueuingStrategy({ highWaterMark: 1 });\n const self = this;\n let stream = new WritableStream({\n write(chunk, controller) {\n if (self.closed && controller.signal.aborted == false) {\n controller.error();\n return;\n }\n if (controller.signal.aborted) {\n self._error(controller.signal.reason);\n return;\n }\n self._next(chunk);\n },\n close() {\n self._complete();\n },\n abort(reason) {\n self._error(reason);\n }\n }, queuingStrategy);\n this._closing.then(_ => {\n if (stream.locked == false) {\n stream.close();\n }\n });\n return stream;\n }\n subscribe(cb) {\n let subscription = this._subscribable.subscribe(cb);\n return subscription;\n }\n _next(value) {\n return this._subscribable.next(value);\n }\n _complete() {\n this._subscribable.complete();\n }\n _error(err) {\n this._subscribable.error(err);\n }\n async next(value) {\n return this._next(value);\n }\n async complete() {\n this._closingResolve(void 0);\n return this._complete();\n }\n async error(err) {\n this._closingResolve(void 0);\n return this._error(err);\n }\n}\n",
172
- "import { Subject } from \"./subject.js\";\nexport class BehaviorSubject extends Subject {\n _value;\n constructor(init) {\n super();\n this._value = init;\n }\n get value() {\n return this._value;\n }\n _next(value) {\n this._value = value;\n return super._next(value);\n }\n subscribe(cb) {\n let subscription = super.subscribe(cb);\n cb.next(this._value);\n return subscription;\n }\n}\n",
173
- "export * from \"./operators/index.js\";\nexport * from \"./schedulers/index.js\";\nexport * from './_op.js';\nexport * from './_subject.js';\nexport * from './_subscription.js';\nexport * from './_readable-like.js';\nexport * from './_scheduler.js';\nexport * from \"./concat.js\";\nexport * from \"./defer.js\";\nexport * from \"./from.js\";\nexport * from \"./join.js\";\nexport * from \"./pipe.js\";\nexport * from \"./to-array.js\";\nexport * from \"./to-promise.js\";\nexport * from \"./to-string.js\";\nexport * from \"./zip.js\";\nexport * from \"./of.js\";\nexport * from \"./subject.js\";\nexport * from \"./behaviour_subject.js\";\nexport * from \"./subscribe.js\";\n",
174
- "export default function replaceAsync(string, searchValue, replacer) {\n try {\n if (typeof replacer === \"function\") {\n // 1. Run fake pass of `replace`, collect values from `replacer` calls\n // 2. Resolve them with `Promise.all`\n // 3. Run `replace` with resolved values\n var values = [];\n String.prototype.replace.call(string, searchValue, function () {\n values.push(replacer.apply(undefined, arguments));\n return \"\";\n });\n return Promise.all(values).then(function (resolvedValues) {\n return String.prototype.replace.call(string, searchValue, function () {\n return resolvedValues.shift();\n });\n });\n } else {\n return Promise.resolve(\n String.prototype.replace.call(string, searchValue, replacer)\n );\n }\n } catch (error) {\n return Promise.reject(error);\n }\n}\n",
175
- "const unwind = (dataObject, options) => {\n const unwindRecursive = (dataObject, path, currPath) => {\n const pathArr = path.split('.')\n if (!currPath) {\n currPath = pathArr[0]\n }\n const result = []\n let added = false\n const addObject = (objectTempUnwind, objectKey) => {\n Object.keys(objectTempUnwind).forEach(objectTempUnwindKey => {\n const newObjectCopy = {}\n Object.keys(dataObject).forEach(dataObjectKey => {\n newObjectCopy[dataObjectKey] = dataObject[dataObjectKey]\n })\n newObjectCopy[objectKey] = objectTempUnwind[objectTempUnwindKey]\n added = true\n result.push(newObjectCopy)\n })\n }\n Object.keys(dataObject).forEach(objectKey => {\n if (currPath === objectKey) {\n if (dataObject[objectKey] instanceof Array) {\n if (dataObject[objectKey].length === 0 && options.preserveEmptyArray !== true) {\n delete dataObject[objectKey]\n } else {\n Object.keys(dataObject[objectKey]).forEach(objectElementKey => {\n addObject(\n unwindRecursive(dataObject[objectKey][objectElementKey], path.replace(`${currPath}.`, '')),\n objectKey\n )\n })\n }\n } else {\n addObject(unwindRecursive(dataObject[objectKey], path.replace(`${currPath}.`, '')), objectKey)\n }\n }\n })\n if (!added) {\n result.push(dataObject)\n }\n return result\n }\n return unwindRecursive(dataObject, options.path)\n}\nmodule.exports = { unwind }\n",
176
- "var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n",
177
- "export {default as dispatch} from \"./dispatch.js\";\n",
178
- "export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n",
179
- "import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n",
180
- "import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n",
181
- "function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n",
182
- "import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n",
183
- "// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n",
184
- "function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n",
185
- "import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n",
186
- "export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n",
187
- "import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n",
188
- "import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n",
189
- "import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n",
190
- "export default function(update) {\n return new Array(update.length);\n}\n",
191
- "import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n",
192
- "export default function(x) {\n return function() {\n return x;\n };\n}\n",
193
- "import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n",
194
- "import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n",
195
- "export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n",
196
- "import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n",
197
- "export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n",
198
- "import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n",
199
- "export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n",
200
- "export default function() {\n return Array.from(this);\n}\n",
201
- "export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n",
202
- "export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n",
203
- "export default function() {\n return !this.node();\n}\n",
204
- "export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n",
205
- "import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n",
206
- "export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n",
207
- "import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n",
208
- "function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n",
209
- "function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n",
210
- "function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n",
211
- "function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n",
212
- "function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n",
213
- "function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n",
214
- "import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n",
215
- "import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n",
216
- "function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n",
217
- "function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n",
218
- "export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n",
219
- "function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n",
220
- "import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n",
221
- "export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n",
222
- "import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n",
223
- "export {default as create} from \"./create.js\";\nexport {default as creator} from \"./creator.js\";\nexport {default as local} from \"./local.js\";\nexport {default as matcher} from \"./matcher.js\";\nexport {default as namespace} from \"./namespace.js\";\nexport {default as namespaces} from \"./namespaces.js\";\nexport {default as pointer} from \"./pointer.js\";\nexport {default as pointers} from \"./pointers.js\";\nexport {default as select} from \"./select.js\";\nexport {default as selectAll} from \"./selectAll.js\";\nexport {default as selection} from \"./selection/index.js\";\nexport {default as selector} from \"./selector.js\";\nexport {default as selectorAll} from \"./selectorAll.js\";\nexport {styleValue as style} from \"./selection/style.js\";\nexport {default as window} from \"./window.js\";\n",
224
- "export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n",
225
- "import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n",
226
- "export {default as color, rgb, hsl} from \"./color.js\";\nexport {default as lab, hcl, lch, gray} from \"./lab.js\";\nexport {default as cubehelix} from \"./cubehelix.js\";\n",
227
- "export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n",
228
- "import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n",
229
- "export default x => () => x;\n",
230
- "import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n",
231
- "import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n",
232
- "export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n",
233
- "import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n",
234
- "var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n",
235
- "import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n",
236
- "import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n",
237
- "export {default as interpolate} from \"./value.js\";\nexport {default as interpolateArray} from \"./array.js\";\nexport {default as interpolateBasis} from \"./basis.js\";\nexport {default as interpolateBasisClosed} from \"./basisClosed.js\";\nexport {default as interpolateDate} from \"./date.js\";\nexport {default as interpolateDiscrete} from \"./discrete.js\";\nexport {default as interpolateHue} from \"./hue.js\";\nexport {default as interpolateNumber} from \"./number.js\";\nexport {default as interpolateNumberArray} from \"./numberArray.js\";\nexport {default as interpolateObject} from \"./object.js\";\nexport {default as interpolateRound} from \"./round.js\";\nexport {default as interpolateString} from \"./string.js\";\nexport {interpolateTransformCss, interpolateTransformSvg} from \"./transform/index.js\";\nexport {default as interpolateZoom} from \"./zoom.js\";\nexport {default as interpolateRgb, rgbBasis as interpolateRgbBasis, rgbBasisClosed as interpolateRgbBasisClosed} from \"./rgb.js\";\nexport {default as interpolateHsl, hslLong as interpolateHslLong} from \"./hsl.js\";\nexport {default as interpolateLab} from \"./lab.js\";\nexport {default as interpolateHcl, hclLong as interpolateHclLong} from \"./hcl.js\";\nexport {default as interpolateCubehelix, cubehelixLong as interpolateCubehelixLong} from \"./cubehelix.js\";\nexport {default as piecewise} from \"./piecewise.js\";\nexport {default as quantize} from \"./quantize.js\";\n",
238
- "var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n",
239
- "import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n",
240
- "export {\n now,\n timer,\n timerFlush\n} from \"./timer.js\";\n\nexport {\n default as timeout\n} from \"./timeout.js\";\n\nexport {\n default as interval\n} from \"./interval.js\";\n",
241
- "import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n",
242
- "import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n",
243
- "import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n",
244
- "import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n",
245
- "import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n",
246
- "import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n",
247
- "import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n",
248
- "import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n",
249
- "import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n",
250
- "import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n",
251
- "import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n",
252
- "import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n",
253
- "import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n",
254
- "import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n",
255
- "function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n",
256
- "import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n",
257
- "import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n",
258
- "import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n",
259
- "import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n",
260
- "function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n",
261
- "import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n",
262
- "function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n",
263
- "import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n",
264
- "import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n",
265
- "import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n",
266
- "export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n",
267
- "import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n",
268
- "import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n",
269
- "import \"./selection/index.js\";\nexport {default as transition} from \"./transition/index.js\";\nexport {default as active} from \"./active.js\";\nexport {default as interrupt} from \"./interrupt.js\";\n",
270
- "import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n",
271
- "export {\n default as brush,\n brushX,\n brushY,\n brushSelection\n} from \"./brush.js\";\n",
272
- "var EOL = {},\n EOF = {},\n QUOTE = 34,\n NEWLINE = 10,\n RETURN = 13;\n\nfunction objectConverter(columns) {\n return new Function(\"d\", \"return {\" + columns.map(function(name, i) {\n return JSON.stringify(name) + \": d[\" + i + \"] || \\\"\\\"\";\n }).join(\",\") + \"}\");\n}\n\nfunction customConverter(columns, f) {\n var object = objectConverter(columns);\n return function(row, i) {\n return f(object(row), i, columns);\n };\n}\n\n// Compute unique columns in order of discovery.\nfunction inferColumns(rows) {\n var columnSet = Object.create(null),\n columns = [];\n\n rows.forEach(function(row) {\n for (var column in row) {\n if (!(column in columnSet)) {\n columns.push(columnSet[column] = column);\n }\n }\n });\n\n return columns;\n}\n\nfunction pad(value, width) {\n var s = value + \"\", length = s.length;\n return length < width ? new Array(width - length + 1).join(0) + s : s;\n}\n\nfunction formatYear(year) {\n return year < 0 ? \"-\" + pad(-year, 6)\n : year > 9999 ? \"+\" + pad(year, 6)\n : pad(year, 4);\n}\n\nfunction formatDate(date) {\n var hours = date.getUTCHours(),\n minutes = date.getUTCMinutes(),\n seconds = date.getUTCSeconds(),\n milliseconds = date.getUTCMilliseconds();\n return isNaN(date) ? \"Invalid Date\"\n : formatYear(date.getUTCFullYear(), 4) + \"-\" + pad(date.getUTCMonth() + 1, 2) + \"-\" + pad(date.getUTCDate(), 2)\n + (milliseconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \".\" + pad(milliseconds, 3) + \"Z\"\n : seconds ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \":\" + pad(seconds, 2) + \"Z\"\n : minutes || hours ? \"T\" + pad(hours, 2) + \":\" + pad(minutes, 2) + \"Z\"\n : \"\");\n}\n\nexport default function(delimiter) {\n var reFormat = new RegExp(\"[\\\"\" + delimiter + \"\\n\\r]\"),\n DELIMITER = delimiter.charCodeAt(0);\n\n function parse(text, f) {\n var convert, columns, rows = parseRows(text, function(row, i) {\n if (convert) return convert(row, i - 1);\n columns = row, convert = f ? customConverter(row, f) : objectConverter(row);\n });\n rows.columns = columns || [];\n return rows;\n }\n\n function parseRows(text, f) {\n var rows = [], // output rows\n N = text.length,\n I = 0, // current character index\n n = 0, // current line number\n t, // current token\n eof = N <= 0, // current token followed by EOF?\n eol = false; // current token followed by EOL?\n\n // Strip the trailing newline.\n if (text.charCodeAt(N - 1) === NEWLINE) --N;\n if (text.charCodeAt(N - 1) === RETURN) --N;\n\n function token() {\n if (eof) return EOF;\n if (eol) return eol = false, EOL;\n\n // Unescape quotes.\n var i, j = I, c;\n if (text.charCodeAt(j) === QUOTE) {\n while (I++ < N && text.charCodeAt(I) !== QUOTE || text.charCodeAt(++I) === QUOTE);\n if ((i = I) >= N) eof = true;\n else if ((c = text.charCodeAt(I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n return text.slice(j + 1, i - 1).replace(/\"\"/g, \"\\\"\");\n }\n\n // Find next delimiter or newline.\n while (I < N) {\n if ((c = text.charCodeAt(i = I++)) === NEWLINE) eol = true;\n else if (c === RETURN) { eol = true; if (text.charCodeAt(I) === NEWLINE) ++I; }\n else if (c !== DELIMITER) continue;\n return text.slice(j, i);\n }\n\n // Return last token before EOF.\n return eof = true, text.slice(j, N);\n }\n\n while ((t = token()) !== EOF) {\n var row = [];\n while (t !== EOL && t !== EOF) row.push(t), t = token();\n if (f && (row = f(row, n++)) == null) continue;\n rows.push(row);\n }\n\n return rows;\n }\n\n function preformatBody(rows, columns) {\n return rows.map(function(row) {\n return columns.map(function(column) {\n return formatValue(row[column]);\n }).join(delimiter);\n });\n }\n\n function format(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return [columns.map(formatValue).join(delimiter)].concat(preformatBody(rows, columns)).join(\"\\n\");\n }\n\n function formatBody(rows, columns) {\n if (columns == null) columns = inferColumns(rows);\n return preformatBody(rows, columns).join(\"\\n\");\n }\n\n function formatRows(rows) {\n return rows.map(formatRow).join(\"\\n\");\n }\n\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n\n function formatValue(value) {\n return value == null ? \"\"\n : value instanceof Date ? formatDate(value)\n : reFormat.test(value += \"\") ? \"\\\"\" + value.replace(/\"/g, \"\\\"\\\"\") + \"\\\"\"\n : value;\n }\n\n return {\n parse: parse,\n parseRows: parseRows,\n format: format,\n formatBody: formatBody,\n formatRows: formatRows,\n formatRow: formatRow,\n formatValue: formatValue\n };\n}\n",
273
- "import dsv from \"./dsv.js\";\n\nvar csv = dsv(\",\");\n\nexport var csvParse = csv.parse;\nexport var csvParseRows = csv.parseRows;\nexport var csvFormat = csv.format;\nexport var csvFormatBody = csv.formatBody;\nexport var csvFormatRows = csv.formatRows;\nexport var csvFormatRow = csv.formatRow;\nexport var csvFormatValue = csv.formatValue;\n",
274
- "import dsv from \"./dsv.js\";\n\nvar tsv = dsv(\"\\t\");\n\nexport var tsvParse = tsv.parse;\nexport var tsvParseRows = tsv.parseRows;\nexport var tsvFormat = tsv.format;\nexport var tsvFormatBody = tsv.formatBody;\nexport var tsvFormatRows = tsv.formatRows;\nexport var tsvFormatRow = tsv.formatRow;\nexport var tsvFormatValue = tsv.formatValue;\n",
275
- "export {default as dsvFormat} from \"./dsv.js\";\nexport {csvParse, csvParseRows, csvFormat, csvFormatBody, csvFormatRows, csvFormatRow, csvFormatValue} from \"./csv.js\";\nexport {tsvParse, tsvParseRows, tsvFormat, tsvFormatBody, tsvFormatRows, tsvFormatRow, tsvFormatValue} from \"./tsv.js\";\nexport {default as autoType} from \"./autoType.js\";\n",
276
- "export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n",
277
- "import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n",
278
- "export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n",
279
- "export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n",
280
- "// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n",
281
- "// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n",
282
- "import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n",
283
- "import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n",
284
- "import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n",
285
- "export default function(x) {\n return x;\n}\n",
286
- "import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n",
287
- "import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n",
288
- "export {default as formatDefaultLocale, format, formatPrefix} from \"./defaultLocale.js\";\nexport {default as formatLocale} from \"./locale.js\";\nexport {default as formatSpecifier, FormatSpecifier} from \"./formatSpecifier.js\";\nexport {default as precisionFixed} from \"./precisionFixed.js\";\nexport {default as precisionPrefix} from \"./precisionPrefix.js\";\nexport {default as precisionRound} from \"./precisionRound.js\";\n",
289
- "const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n",
290
- "export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n",
291
- "import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n",
292
- "import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n",
293
- "import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n",
294
- "export {\n timeInterval\n} from \"./interval.js\";\n\nexport {\n millisecond as utcMillisecond,\n milliseconds as utcMilliseconds,\n millisecond as timeMillisecond,\n milliseconds as timeMilliseconds\n} from \"./millisecond.js\";\n\nexport {\n second as utcSecond,\n seconds as utcSeconds,\n second as timeSecond,\n seconds as timeSeconds\n} from \"./second.js\";\n\nexport {\n timeMinute,\n timeMinutes,\n utcMinute,\n utcMinutes\n} from \"./minute.js\";\n\nexport {\n timeHour,\n timeHours,\n utcHour,\n utcHours\n} from \"./hour.js\";\n\nexport {\n timeDay,\n timeDays,\n utcDay,\n utcDays,\n unixDay,\n unixDays\n} from \"./day.js\";\n\nexport {\n timeSunday as timeWeek,\n timeSundays as timeWeeks,\n timeSunday,\n timeSundays,\n timeMonday,\n timeMondays,\n timeTuesday,\n timeTuesdays,\n timeWednesday,\n timeWednesdays,\n timeThursday,\n timeThursdays,\n timeFriday,\n timeFridays,\n timeSaturday,\n timeSaturdays,\n utcSunday as utcWeek,\n utcSundays as utcWeeks,\n utcSunday,\n utcSundays,\n utcMonday,\n utcMondays,\n utcTuesday,\n utcTuesdays,\n utcWednesday,\n utcWednesdays,\n utcThursday,\n utcThursdays,\n utcFriday,\n utcFridays,\n utcSaturday,\n utcSaturdays\n} from \"./week.js\";\n\nexport {\n timeMonth,\n timeMonths,\n utcMonth,\n utcMonths\n} from \"./month.js\";\n\nexport {\n timeYear,\n timeYears,\n utcYear,\n utcYears\n} from \"./year.js\";\n\nexport {\n utcTicks,\n utcTickInterval,\n timeTicks,\n timeTickInterval\n} from \"./ticks.js\";\n",
295
- "import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n",
296
- "import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n",
297
- "export {default as timeFormatDefaultLocale, timeFormat, timeParse, utcFormat, utcParse} from \"./defaultLocale.js\";\nexport {default as timeFormatLocale} from \"./locale.js\";\nexport {default as isoFormat} from \"./isoFormat.js\";\nexport {default as isoParse} from \"./isoParse.js\";\n",
298
- "export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n",
299
- "import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n",
300
- "export {default as zoom} from \"./zoom.js\";\nexport {default as zoomTransform, identity as zoomIdentity, Transform as ZoomTransform} from \"./transform.js\";\n",
301
- "export * from \"d3-array\";\nexport * from \"d3-axis\";\nexport * from \"d3-brush\";\nexport * from \"d3-chord\";\nexport * from \"d3-color\";\nexport * from \"d3-contour\";\nexport * from \"d3-delaunay\";\nexport * from \"d3-dispatch\";\nexport * from \"d3-drag\";\nexport * from \"d3-dsv\";\nexport * from \"d3-ease\";\nexport * from \"d3-fetch\";\nexport * from \"d3-force\";\nexport * from \"d3-format\";\nexport * from \"d3-geo\";\nexport * from \"d3-hierarchy\";\nexport * from \"d3-interpolate\";\nexport * from \"d3-path\";\nexport * from \"d3-polygon\";\nexport * from \"d3-quadtree\";\nexport * from \"d3-random\";\nexport * from \"d3-scale\";\nexport * from \"d3-scale-chromatic\";\nexport * from \"d3-selection\";\nexport * from \"d3-shape\";\nexport * from \"d3-time\";\nexport * from \"d3-time-format\";\nexport * from \"d3-timer\";\nexport * from \"d3-transition\";\nexport * from \"d3-zoom\";\n",
302
- "// index.ts\nclass PolyfillTextDecoderStream extends TransformStream {\n encoding;\n fatal;\n ignoreBOM;\n constructor(encoding = \"utf-8\", {\n fatal = false,\n ignoreBOM = false\n } = {}) {\n const decoder = new TextDecoder(encoding, { fatal, ignoreBOM });\n super({\n transform(chunk, controller) {\n if (typeof chunk === \"string\") {\n controller.enqueue(chunk);\n return;\n }\n const decoded = decoder.decode(chunk);\n if (decoded.length > 0) {\n controller.enqueue(decoded);\n }\n },\n flush(controller) {\n const output = decoder.decode();\n if (output.length > 0) {\n controller.enqueue(output);\n }\n }\n });\n this.encoding = encoding;\n this.fatal = fatal;\n this.ignoreBOM = ignoreBOM;\n }\n}\nexport {\n PolyfillTextDecoderStream as default\n};\n",
303
- "// src/andIgnoreError.ts\nimport DIE from \"phpdie\";\nfunction andIgnoreError(regex) {\n return (error) => error?.message?.match(regex) ? null : DIE(error);\n}\n\n// src/sflow.ts\nimport DIE8 from \"phpdie\";\nimport PolyfillTextEncoderStream from \"polyfill-text-encoder-stream\";\n\n// src/asyncMaps.ts\nvar asyncMaps = (fn, options = {}) => {\n let i = 0;\n let tasks = new Map;\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n const id = i++;\n tasks.set(id, async function() {\n return fn(chunk, id);\n }().then((data) => ({ id, data })));\n if (tasks.size >= (options.concurrency ?? Infinity)) {\n const { id: id2, data } = await Promise.race(tasks.values());\n tasks.delete(id2);\n ctrl.enqueue(data);\n }\n },\n flush: async (ctrl) => {\n while (tasks.size) {\n const { id, data } = await Promise.race(tasks.values());\n tasks.delete(id);\n ctrl.enqueue(data);\n }\n }\n });\n};\n\n// src/cacheLists.ts\nimport DIE2 from \"phpdie\";\n\n// src/never.ts\nvar never = () => new Promise(() => null);\n\n// src/cacheLists.ts\nfunction cacheLists(store, _options) {\n const { key = new Error().stack ?? DIE2(\"missing cache key\") } = typeof _options === \"string\" ? { key: _options } : _options ?? {};\n const chunks = [];\n const cacheHitPromise = store.has?.(key) || store.get(key);\n let hitflag = false;\n return new TransformStream({\n start: async (ctrl) => {\n if (!await cacheHitPromise)\n return;\n const cached = await store.get(key);\n if (!cached)\n return;\n cached.map((c) => ctrl.enqueue(c));\n hitflag = true;\n },\n transform: async (chunk, ctrl) => {\n if (await cacheHitPromise || hitflag) {\n ctrl.terminate();\n return never();\n }\n chunks.push(chunk);\n ctrl.enqueue(chunk);\n },\n flush: async () => await store.set(key, chunks)\n });\n}\n\n// src/cacheSkips.ts\nimport DIE3 from \"phpdie\";\nfunction cacheSkips(store, _options) {\n const {\n key = new Error().stack ?? DIE3(\"missing cache key\"),\n windowSize = 1\n } = typeof _options === \"string\" ? { key: _options } : _options ?? {};\n const chunks = [];\n const cachePromise = store.get(key);\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n const cache = await cachePromise;\n const chunked = JSON.stringify(chunk);\n const inf404 = (idx) => idx == null || idx < 0 ? Infinity : idx;\n const hitCache = (item) => JSON.stringify(item) === chunked;\n const cachedContents = cache?.slice(inf404(cache.findIndex(hitCache)));\n if (cachedContents?.length) {\n await store.set(key, [...chunks, ...cachedContents].slice(0, windowSize));\n ctrl.terminate();\n return await never();\n }\n chunks.push(chunk);\n ctrl.enqueue(chunk);\n },\n flush: async () => {\n await store.set(key, chunks.slice(0, windowSize));\n }\n });\n}\n\n// src/cacheTails.ts\nimport DIE4 from \"phpdie\";\nimport { equals } from \"rambda\";\nfunction cacheTails(store, _options) {\n const { key = new Error().stack ?? DIE4(\"missing cache key\") } = typeof _options === \"string\" ? { key: _options } : _options ?? {};\n const chunks = [];\n const cachePromise = Promise.withResolvers();\n const t = new TransformStream;\n const w = t.writable.getWriter();\n const writable = new WritableStream({\n start: async () => cachePromise.resolve(await store.get(key)),\n write: async (chunk, ctrl) => {\n const cache = await cachePromise.promise;\n if (cache && equals(chunk, cache[0])) {\n await store.set(key, [...chunks, ...cache]);\n for await (const item of cache)\n await w.write(item);\n await w.close();\n ctrl.error(new Error(\"cached\"));\n return await never();\n }\n chunks.push(chunk);\n await w.write(chunk);\n },\n close: async () => {\n await store.set(key, [...chunks]);\n await w.close();\n },\n abort: () => w.abort()\n });\n return { writable, readable: t.readable };\n}\n\n// src/chunkBys.ts\nfunction chunkBys(compareFn) {\n let chunks = [];\n let lastOrder;\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n const order = await compareFn(chunk);\n if (lastOrder && lastOrder !== order)\n ctrl.enqueue(chunks.splice(0, Infinity));\n chunks.push(chunk);\n lastOrder = order;\n },\n flush: async (ctrl) => void (chunks.length && ctrl.enqueue(chunks))\n });\n}\n\n// src/chunkIfs.ts\nfunction chunkIfs(predicate, { inclusive = false } = {}) {\n let chunks = [];\n let i = 0;\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n const cond = await predicate(chunk, i++, chunks);\n if (!inclusive && !cond)\n chunks.length && ctrl.enqueue(chunks.splice(0, Infinity));\n chunks.push(chunk);\n if (!cond)\n ctrl.enqueue(chunks.splice(0, Infinity));\n },\n flush: async (ctrl) => void (chunks.length && ctrl.enqueue(chunks))\n });\n}\n\n// src/chunkIntervals.ts\nfunction chunkIntervals(interval = 0) {\n let chunks = [];\n let id = null;\n return new TransformStream({\n start: (ctrl) => {\n id = setInterval(() => ctrl.enqueue(chunks.splice(0, Infinity)), interval);\n },\n transform: async (chunk) => {\n chunks.push(chunk);\n },\n flush: async (ctrl) => {\n if (chunks.length)\n ctrl.enqueue(chunks.splice(0, Infinity));\n id !== null && clearInterval(id);\n }\n });\n}\n\n// src/chunks.ts\nfunction chunks(n = Infinity) {\n let chunks2 = [];\n if (n <= 0)\n throw new Error(\"Buffer size must be greater than 0\");\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n chunks2.push(chunk);\n if (chunks2.length >= n)\n ctrl.enqueue(chunks2.splice(0, Infinity));\n },\n flush: async (ctrl) => void (chunks2.length && ctrl.enqueue(chunks2))\n });\n}\n\n// src/wse.ts\nimport { toArray } from \"web-streams-extensions\";\nimport { toPromise } from \"web-streams-extensions\";\nimport { merge } from \"web-streams-extensions\";\nimport { from } from \"web-streams-extensions\";\n\n// src/froms.ts\nvar toStream = (src) => src instanceof ReadableStream ? src : from(src ?? []);\n\n// src/maps.ts\nfunction maps(fn) {\n let i = 0;\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n const ret = fn(chunk, i++);\n const val = ret instanceof Promise ? await ret : ret;\n ctrl.enqueue(val);\n }\n });\n}\n\n// src/nils.ts\nfunction nils() {\n return new WritableStream;\n}\nfunction nil() {\n return null;\n}\n\n// src/concats.ts\nvar concats = (srcs) => {\n if (!srcs)\n return new TransformStream;\n const upstream = new TransformStream;\n return {\n writable: upstream.writable,\n readable: concatStream([upstream.readable, concatStream(srcs)])\n };\n};\nvar concatStream = (srcs) => {\n if (!srcs)\n return new ReadableStream({ start: (c) => c.close() });\n const t = new TransformStream;\n const w = t.writable.getWriter();\n toStream(srcs).pipeThrough(maps(toStream)).pipeThrough(maps(async (s) => {\n const r = s.getReader();\n while (true) {\n const { value, done } = await r.read();\n if (done)\n break;\n await w.write(value);\n }\n })).pipeTo(nils()).then(() => w.close()).catch((reason) => w.abort(reason));\n return t.readable;\n};\n\n// src/confluences.ts\nimport DIE5 from \"phpdie\";\nvar confluences = ({\n order = \"breadth\"\n} = {}) => {\n const baseError = new Error;\n if (order !== \"breadth\")\n DIE5(\"not implemented\");\n const { writable, readable: sources } = new TransformStream;\n const srcsQueue = [];\n const readable = new ReadableStream({\n async pull(ctrl) {\n while (true) {\n const src = await async function() {\n const r2 = sources.getReader();\n const { done: done2, value: src2 } = await r2.read();\n r2.releaseLock();\n if (done2)\n return srcsQueue.shift();\n return src2;\n }();\n if (!src)\n return ctrl.close();\n const r = src.getReader();\n const { done, value } = await r.read();\n r.releaseLock();\n if (done)\n continue;\n srcsQueue.push(src);\n ctrl.enqueue(value);\n return;\n }\n }\n });\n return { writable, readable };\n};\n\n// src/convolves.ts\nfunction convolves(n) {\n const buffer = [];\n return new TransformStream({\n transform(chunk, controller) {\n buffer.push(chunk);\n if (buffer.length > n)\n buffer.shift();\n if (buffer.length === n)\n controller.enqueue([...buffer]);\n },\n flush(controller) {\n while (buffer.length > 1) {\n buffer.shift();\n if (buffer.length === n)\n controller.enqueue([...buffer]);\n }\n }\n });\n}\n\n// src/debounces.ts\nfunction debounces(t) {\n let id = null;\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n if (id)\n clearTimeout(id);\n id = setTimeout(() => {\n ctrl.enqueue(chunk);\n id = null;\n }, t);\n },\n flush: async () => {\n while (id)\n await new Promise((r) => setTimeout(r, t / 2));\n }\n });\n}\n\n// src/filters.ts\nvar filters = (fn) => {\n let i = 0;\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n if (fn) {\n const shouldEnqueue = await fn(chunk, i++);\n if (shouldEnqueue)\n ctrl.enqueue(chunk);\n } else {\n const isNull = chunk === undefined || chunk === null;\n if (!isNull)\n ctrl.enqueue(chunk);\n }\n }\n });\n};\n\n// src/flatMaps.ts\nfunction flatMaps(fn) {\n let i = 0;\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n const ret = fn(chunk, i++);\n const val = ret instanceof Promise ? await ret : ret;\n val.map((e) => ctrl.enqueue(e));\n }\n });\n}\n\n// src/flats.ts\nimport DIE6 from \"phpdie\";\nfunction flats() {\n const emptyError = new Error(\"Flatten for empty array [] in stream is not supported yet, To fix this error, you can add a .filter(array=>array.length) stage before flat\");\n return new TransformStream({\n transform: async (a, ctrl) => {\n a.length || DIE6(emptyError);\n a.map((e) => ctrl.enqueue(e));\n }\n });\n}\n\n// src/forEachs.ts\nfunction forEachs(fn) {\n let i = 0;\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n const ret = fn(chunk, i++);\n ret instanceof Promise && await ret;\n ctrl.enqueue(chunk);\n }\n });\n}\n\n// src/heads.ts\nfunction heads(n = 1) {\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n return n-- > 0 ? ctrl.enqueue(chunk) : await never();\n }\n });\n}\n\n// src/limits.ts\nfunction limits(n, { terminate = true } = {}) {\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n ctrl.enqueue(chunk);\n if (--n === 0) {\n terminate && ctrl.terminate();\n return never();\n }\n },\n flush: () => {}\n }, { highWaterMark: 1 }, { highWaterMark: 0 });\n}\n\n// src/throughs.ts\nvar throughs = (arg) => {\n if (!arg)\n return new TransformStream;\n if (typeof arg !== \"function\")\n return throughs((s) => s.pipeThrough(arg));\n const fn = arg;\n const { writable, readable } = new TransformStream;\n return { writable, readable: fn(readable) };\n};\n\n// src/lines.ts\nvar lines = ({ EOL = \"KEEP\" } = {}) => {\n const CRLFMap = {\n KEEP: \"$1\",\n LF: `\n`,\n CRLF: `\\r\n`,\n NONE: \"\"\n };\n return throughs((r) => r.pipeThrough(flatMaps((s) => s.split(/(?<=\\n)/g))).pipeThrough(chunkIfs((ch) => ch.indexOf(`\n`) === -1, { inclusive: true })).pipeThrough(maps((chunks2) => chunks2.join(\"\").replace(/(\\r?\\n?)$/, CRLFMap[EOL]))));\n};\n\n// src/unpromises.ts\nfunction unpromises(promise) {\n const tr = new TransformStream;\n (async function() {\n const s = await promise;\n await s.pipeTo(tr.writable);\n })().catch((error) => {\n tr.readable.cancel(error).catch(() => {\n throw error;\n });\n }).then();\n return tr.readable;\n}\n\n// src/bys.ts\nfunction bys(arg) {\n if (!arg)\n return new TransformStream;\n if (typeof arg !== \"function\")\n return bys((s) => s.pipeThrough(arg));\n const fn = arg;\n const { writable, readable } = new TransformStream;\n return { writable, readable: unpromises(fn(readable)) };\n}\n\n// src/peeks.ts\nfunction peeks(fn) {\n let i = 0;\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n ctrl.enqueue(chunk);\n const ret = fn(chunk, i++);\n const val = ret instanceof Promise ? await ret : ret;\n }\n });\n}\n\n// src/logs.ts\nfunction logs(mapFn = (s, i) => s) {\n return bys(peeks(async (e, i) => {\n const ret = mapFn(e, i);\n const val = ret instanceof Promise ? await ret : ret;\n console.log(typeof val === \"string\" ? val.replace(/\\n$/, \"\") : val);\n }));\n}\n\n// src/mapAddFields.ts\nfunction mapAddFields(key, fn) {\n let i = 0;\n return new TransformStream({\n transform: async (chunk, ctrl) => ctrl.enqueue({ ...chunk, [key]: await fn(chunk, i++) })\n });\n}\n\n// src/wseMerges.ts\nvar wseMerges = merge;\n\n// src/parallels.ts\nvar parallels = (...srcs) => wseMerges()(from(srcs));\n\n// src/merges.ts\nvar merges = (...srcs) => {\n if (!srcs.length)\n return new TransformStream;\n const upstream = new TransformStream;\n return {\n writable: upstream.writable,\n readable: parallels(upstream.readable, ...srcs.map(toStream))\n };\n};\n\n// src/streamAsyncIterator.ts\nasync function* streamAsyncIterator() {\n const reader = this.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n return;\n yield value;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\n// src/mergeStream.ts\nvar mergeStream = (...srcs) => {\n if (!srcs.length)\n return new ReadableStream({ start: (c) => c.close() });\n if (srcs.length === 1)\n return toStream(srcs[0]);\n const t = new TransformStream;\n const w = t.writable.getWriter();\n const streams = srcs.map(toStream);\n Promise.all(streams.map(async (s) => {\n for await (const chunk of Object.assign(s, {\n [Symbol.asyncIterator]: streamAsyncIterator\n }))\n await w.write(chunk);\n })).then(async () => w.close()).catch((error) => {\n console.error(error);\n return Promise.all([\n t.writable.abort(error),\n ...streams.map((e) => e.cancel(error))\n ]);\n });\n return t.readable;\n};\n\n// src/mergeStreamsBy.ts\nimport DIE7 from \"phpdie\";\nimport { sortBy } from \"rambda\";\n\n// src/emptyStream.ts\nvar emptyStream = () => new ReadableStream({ start: (c) => c.close() });\n\n// src/mergeStreamsBy.ts\nfunction mergeStreamsBy(transform, sources) {\n if (!sources)\n return (srcs) => mergeStreamsBy(transform, srcs);\n if (!sources.length)\n return emptyStream();\n const streams = sources.map((s) => toStream(s));\n const readers = streams.map((stream) => stream.getReader());\n let slots = streams.map(() => null);\n return new ReadableStream({\n pull: async (ctrl) => {\n const results = await Promise.all(readers.map(async (reader, i) => slots[i] ??= await reader.read()));\n slots = await transform([...slots], ctrl);\n if (slots.length !== streams.length)\n DIE7(\"slot length mismatch\");\n }\n });\n}\nfunction mergeStreamsByAscend(ordFn, sources) {\n if (!sources)\n return (sources2) => mergeStreamsByAscend(ordFn, sources2);\n let lastEmit = null;\n return mergeStreamsBy(async (slots, ctrl) => {\n const cands = slots.filter((e) => e?.done === false).map((e) => e.value);\n if (!cands.length) {\n ctrl.close();\n return [];\n }\n const peak = sortBy(ordFn, cands)[0];\n const index = slots.findIndex((e) => e?.done === false && e?.value === peak);\n if (lastEmit && lastEmit.value !== sortBy(ordFn, [lastEmit.value, peak])[0] && ordFn(lastEmit.value) !== ordFn(peak))\n DIE7(new Error(\"MergeStreamError: one of sources is not ordered by ascending\", {\n cause: {\n prevOrd: ordFn(lastEmit.value),\n currOrd: ordFn(peak),\n prev: lastEmit.value,\n curr: peak\n }\n }));\n lastEmit = { value: peak };\n ctrl.enqueue(peak);\n return slots.toSpliced(index, 1, null);\n }, sources);\n}\nfunction mergeStreamsByDescend(ordFn, sources) {\n if (!sources)\n return (srcs) => mergeStreamsByDescend(ordFn, srcs);\n let lastEmit = null;\n return mergeStreamsBy(async (slots, ctrl) => {\n const cands = slots.filter((e) => e?.done === false).map((e) => e.value);\n if (!cands.length) {\n ctrl.close();\n return [];\n }\n const peak = sortBy(ordFn, cands).toReversed()[0];\n const index = slots.findIndex((e) => e?.done === false && e?.value === peak);\n if (lastEmit && lastEmit.value !== sortBy(ordFn, [lastEmit.value, peak]).toReversed()[0] && ordFn(lastEmit.value) !== ordFn(peak))\n DIE7(new Error(\"MergeStreamError: one of sources is not ordered by descending\", {\n cause: {\n prevOrd: ordFn(lastEmit.value),\n currOrd: ordFn(peak),\n prev: lastEmit.value,\n curr: peak\n }\n }));\n lastEmit = { value: peak };\n ctrl.enqueue(peak);\n return slots.toSpliced(index, 1, null);\n }, sources);\n}\n\n// src/pMaps.ts\nvar pMaps = (fn, options = {}) => {\n let i = 0;\n let promises = [];\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n promises.push(fn(chunk, i++));\n if (promises.length >= (options.concurrency ?? Infinity))\n ctrl.enqueue(await promises.shift());\n },\n flush: async (ctrl) => {\n while (promises.length)\n ctrl.enqueue(await promises.shift());\n }\n });\n};\n\n// src/portals.ts\nvar portals = (arg) => {\n if (!arg)\n return new TransformStream;\n if (typeof arg !== \"function\")\n return throughs((s) => s.pipeThrough(arg));\n const fn = arg;\n const { writable, readable } = new TransformStream;\n return { writable, readable: fn(readable) };\n};\n\n// src/reduceEmits.ts\nvar reduceEmits = (fn, _state) => {\n let i = 0;\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n const { next, emit } = await fn(_state, chunk, i++);\n _state = next;\n ctrl.enqueue(emit);\n }\n });\n};\n\n// src/reduces.ts\nvar reduces = (fn, state) => {\n let i = 0;\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n const ret = fn(state, chunk, i++);\n const val = ret instanceof Promise ? await ret : ret;\n state = await val;\n ctrl.enqueue(state);\n }\n });\n};\n\n// src/riffles.ts\nfunction riffles(sep) {\n let last;\n return new TransformStream({\n transform: (chunk, ctrl) => {\n if (last !== undefined) {\n ctrl.enqueue(last);\n ctrl.enqueue(sep);\n }\n last = chunk;\n },\n flush: (ctrl) => ctrl.enqueue(last)\n });\n}\n\n// src/skips.ts\nfunction skips(n = 1) {\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n if (n <= 0)\n ctrl.enqueue(chunk);\n else\n n--;\n }\n });\n}\n\n// src/slices.ts\nfunction slices(start = 0, end = Infinity) {\n const count = end - start;\n const { readable, writable } = new TransformStream;\n return {\n writable,\n readable: readable.pipeThrough(skips(start)).pipeThrough(limits(count))\n };\n}\n\n// src/strings.ts\nimport replaceAsync from \"string-replace-async\";\nvar matchs = (matcher) => {\n return new TransformStream({\n transform: (chunk, ctrl) => ctrl.enqueue(chunk.match(matcher))\n });\n};\nvar matchAlls = (matcher) => {\n return new TransformStream({\n transform: (chunk, ctrl) => ctrl.enqueue(chunk.matchAll(matcher))\n });\n};\nvar replaces = (searchValue, replacement) => {\n return maps((s) => typeof replacement === \"string\" ? s.replace(searchValue, replacement) : replaceAsync(s, searchValue, replacement));\n};\nvar replaceAlls = (searchValue, replacement) => {\n return maps((s) => typeof replacement === \"string\" ? s.replaceAll(searchValue, replacement) : replaceAsync(s, searchValue, replacement));\n};\n\n// src/tails.ts\nfunction tails(n = 1) {\n let chunks2 = [];\n return new TransformStream({\n transform: (chunk) => {\n chunks2.push(chunk);\n if (chunks2.length > n)\n chunks2.shift();\n },\n flush: (ctrl) => {\n chunks2.map((e) => ctrl.enqueue(e));\n }\n });\n}\n\n// src/tees.ts\nvar tees = (arg) => {\n if (!arg)\n return new TransformStream;\n if (arg instanceof WritableStream)\n return tees((s) => s.pipeTo(arg));\n const fn = arg;\n const { writable, readable } = new TransformStream;\n const [a, b] = readable.tee();\n fn(a);\n return { writable, readable: b };\n};\n\n// src/terminates.ts\nfunction terminates(signal) {\n return throughs((r) => r.pipeThrough(new TransformStream, { signal }));\n}\n\n// src/throttles.ts\nfunction throttles(interval, { drop = false, keepLast = true } = {}) {\n let timerId = null;\n let cdPromise = Promise.withResolvers();\n let lasts = [];\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n if (timerId) {\n if (keepLast)\n lasts = [chunk];\n if (drop)\n return;\n await cdPromise.promise;\n }\n lasts = [];\n ctrl.enqueue(chunk);\n [cdPromise, timerId] = [\n Promise.withResolvers(),\n setTimeout(() => {\n timerId = null;\n cdPromise.resolve();\n }, interval)\n ];\n },\n flush: async (ctrl) => {\n while (timerId)\n await new Promise((r) => setTimeout(r, interval / 2));\n lasts.map((e) => ctrl.enqueue(e));\n }\n });\n}\n\n// src/uniqs.ts\nvar uniqs = () => {\n const set = new Set;\n return throughs((s) => s.pipeThrough(filters((x) => {\n if (set.has(x))\n return false;\n set.add(x);\n return true;\n })));\n};\nvar uniqBys = (keyFn) => {\n const set = new Set;\n return throughs((s) => s.pipeThrough(filters(async (x) => {\n const key = await keyFn(x);\n if (set.has(key))\n return false;\n set.add(key);\n return true;\n })));\n};\n\n// src/unwinds.ts\nimport { unwind } from \"unwind-array\";\nfunction unwinds(key) {\n return flatMaps((e) => unwind(e, { path: key }));\n}\n\n// src/xsvStreams.ts\nimport { csvFormatBody, csvParse, tsvFormatBody, tsvParse } from \"d3\";\nfunction csvFormats(header) {\n const _header = typeof header === \"string\" ? header.split(\",\") : header;\n return new TransformStream({\n start: (ctrl) => ctrl.enqueue(_header.join(\",\") + `\n`),\n transform: (chunk, ctrl) => ctrl.enqueue(csvFormatBody([chunk], _header) + `\n`)\n });\n}\nfunction csvParses(header) {\n const _header = typeof header === \"string\" ? header.split(\",\") : header;\n let i = 0;\n return throughs((r) => r.pipeThrough(lines({ EOL: \"LF\" })).pipeThrough(skips(1)).pipeThrough(maps((line) => csvParse(_header + `\n` + line)[0])));\n}\nfunction tsvFormats(header) {\n const sep = \"\\t\";\n const _header = typeof header === \"string\" ? header.split(sep) : header;\n return new TransformStream({\n start: (ctrl) => ctrl.enqueue(_header.join(sep) + `\n`),\n transform: (chunk, ctrl) => ctrl.enqueue(tsvFormatBody([chunk], _header) + `\n`)\n });\n}\nfunction tsvParses(header) {\n const _header = typeof header === \"string\" ? header.split(\"\\t\") : header;\n let i = 0;\n return throughs((r) => r.pipeThrough(lines({ EOL: \"LF\" })).pipeThrough(skips(1)).pipeThrough(maps((line) => tsvParse(_header + `\n` + line)[0])));\n}\n\n// src/sflow.ts\nfunction sflow(...srcs) {\n let r = srcs.length === 1 ? toStream(srcs[0]) : concatStream(srcs);\n return Object.assign(r, {\n _type: null,\n get readable() {\n return r;\n },\n portal: (...args) => sflow(r.pipeThrough(portals(...args))),\n through: (...args) => sflow(r.pipeThrough(_throughs(...args))),\n by: (...args) => sflow(r.pipeThrough(_throughs(...args))),\n byLazy: (t) => _byLazy(r, t),\n mapAddField: (...args) => sflow(r.pipeThrough(mapAddFields(...args))),\n cacheSkip: (...args) => sflow(r).byLazy(cacheSkips(...args)),\n cacheList: (...args) => sflow(r).byLazy(cacheLists(...args)),\n cacheTail: (...args) => sflow(r).byLazy(cacheTails(...args)),\n chunkBy: (...args) => sflow(r.pipeThrough(chunkBys(...args))),\n chunkIf: (...args) => sflow(r.pipeThrough(chunkIfs(...args))),\n buffer: (...args) => sflow(r.pipeThrough(chunks(...args))),\n chunk: (...args) => sflow(r.pipeThrough(chunks(...args))),\n convolve: (...args) => sflow(r.pipeThrough(convolves(...args))),\n abort: (...args) => sflow(r.pipeThrough(terminates(...args))),\n chunkInterval: (...args) => sflow(r.pipeThrough(chunkIntervals(...args))),\n interval: (...args) => sflow(r.pipeThrough(chunkIntervals(...args))),\n debounce: (...args) => sflow(r.pipeThrough(debounces(...args))),\n filter: (...args) => sflow(r.pipeThrough(filters(...args))),\n flatMap: (...args) => sflow(r.pipeThrough(flatMaps(...args))),\n flat: (...args) => sflow(r).byLazy(flats(...args)),\n join: (...args) => sflow(r.pipeThrough(riffles(...args))),\n match: (...args) => sflow(r.pipeThrough(matchs(...args))),\n matchAll: (...args) => sflow(r.pipeThrough(matchAlls(...args))),\n replace: (...args) => sflow(r.pipeThrough(replaces(...args))),\n replaceAll: (...args) => sflow(r.pipeThrough(replaceAlls(...args))),\n merge: (...args) => sflow(r.pipeThrough(merges(...args))),\n concat: (srcs2) => sflow(r.pipeThrough(concats(srcs2))),\n confluence: (...args) => sflow(r.pipeThrough(confluences(...args))),\n confluenceByZip: () => sflow(r).by(confluences()),\n confluenceByConcat: () => sflow(r).by((srcs2) => concatStream(srcs2)),\n confluenceByParallel: () => sflow(r).by((srcs2) => sflow(srcs2).toArray().then((srcs3) => mergeStream(...srcs3))).confluence(),\n confluenceByAscend: (ordFn) => sflow(r).chunk().map((srcs2) => mergeStreamsByAscend(ordFn, srcs2)).confluence(),\n confluenceByDescend: (ordFn) => sflow(r).chunk().map((srcs2) => mergeStreamsByDescend(ordFn, srcs2)).confluence(),\n limit: (...args) => sflow(r).byLazy(limits(...args)),\n head: (...args) => sflow(r.pipeThrough(heads(...args))),\n map: (...args) => sflow(r.pipeThrough(maps(...args))),\n log: (...args) => sflow(r.pipeThrough(logs(...args))),\n uniq: (...args) => sflow(r.pipeThrough(uniqs(...args))),\n uniqBy: (...args) => sflow(r.pipeThrough(uniqBys(...args))),\n unwind: (...args) => sflow(r.pipeThrough(unwinds(...args))),\n asyncMap: (...args) => sflow(r.pipeThrough(asyncMaps(...args))),\n pMap: (...args) => sflow(r.pipeThrough(pMaps(...args))),\n peek: (...args) => sflow(r.pipeThrough(peeks(...args))),\n riffle: (...args) => sflow(r.pipeThrough(riffles(...args))),\n forEach: (...args) => sflow(r.pipeThrough(forEachs(...args))),\n reduce: (...args) => sflow(r.pipeThrough(reduces(...args))),\n reduceEmit: (...args) => sflow(r.pipeThrough(reduceEmits(...args))),\n skip: (...args) => sflow(r.pipeThrough(skips(...args))),\n slice: (...args) => sflow(r.pipeThrough(slices(...args))),\n tail: (...args) => sflow(r.pipeThrough(tails(...args))),\n tees: (...args) => sflow(r.pipeThrough(_tees(...args))),\n forkTo: (...args) => sflow(r.pipeThrough(_tees(...args))),\n fork: () => {\n let b;\n [r, b] = r.tee();\n return sflow(b);\n },\n throttle: (...args) => sflow(r.pipeThrough(throttles(...args))),\n csvFormat: (...args) => sflow(r.pipeThrough(csvFormats(...args))),\n tsvFormat: (...args) => sflow(r.pipeThrough(tsvFormats(...args))),\n csvParse: (...args) => sflow(r.pipeThrough(csvParses(...args))),\n tsvParse: (...args) => sflow(r.pipeThrough(tsvParses(...args))),\n preventAbort: () => sflow(r.pipeThrough(throughs(), { preventAbort: true })),\n preventClose: () => sflow(r.pipeThrough(throughs(), { preventClose: true })),\n preventCancel: () => sflow(r.pipeThrough(throughs(), { preventCancel: true })),\n onStart: (start) => sflow(r).by(new TransformStream({ start })),\n onTransform: (transform) => sflow(r).by(new TransformStream({ transform })),\n onFlush: (flush) => sflow(r).by(new TransformStream({ flush })),\n done: () => r.pipeTo(nils()),\n end: (dst = nils()) => r.pipeTo(dst),\n to: (dst = nils()) => r.pipeTo(dst),\n run: () => r.pipeTo(nils()),\n toEnd: () => r.pipeTo(nils()),\n toNil: () => r.pipeTo(nils()),\n toArray: () => toArray(r),\n toCount: async () => {\n let i = 0;\n const d = r.getReader();\n while (!(await d.read()).done)\n i++;\n return i;\n },\n toFirst: () => toPromise(sflow(r).limit(1, { terminate: true })),\n toLast: () => toPromise(sflow(r).tail(1)),\n toExactlyOne: async () => {\n const a = await toArray(r);\n a.length !== 1 || DIE8(`Expect exactly 1 Item, but got ${a.length}`);\n return a[0];\n },\n toOne: async () => {\n const a = await toArray(r);\n if (a.length > 1)\n DIE8(`Expect only 1 Item, but got ${a.length}`);\n return a[0];\n },\n toAtLeastOne: async () => {\n const a = await toArray(r);\n if (a.length > 1)\n DIE8(`Expect only 1 Item, but got ${a.length}`);\n if (a.length < 1)\n DIE8(`Expect at least 1 Item, but got ${a.length}`);\n return a[0];\n },\n toLog: (...args) => sflow(r.pipeThrough(logs(...args))).done(),\n lines: (...args) => sflow(r.pipeThrough(lines(...args))),\n toResponse: (init) => new Response(r, init),\n text: (init) => new Response(r.pipeThrough(new PolyfillTextEncoderStream), init).text(),\n json: (init) => new Response(r.pipeThrough(new PolyfillTextEncoderStream), init).json(),\n blob: (init) => new Response(sflow(r), init).blob(),\n arrayBuffer: (init) => new Response(r, init).arrayBuffer(),\n [Symbol.asyncIterator]: streamAsyncIterator\n });\n}\nvar _tees = (arg) => {\n if (!arg)\n return new TransformStream;\n if (arg instanceof WritableStream)\n return tees((s) => s.pipeTo(arg));\n const fn = arg;\n const { writable, readable } = new TransformStream;\n const [a, b] = readable.tee();\n fn(sflow(a));\n return { writable, readable: b };\n};\nvar _throughs = (arg) => {\n if (!arg)\n return new TransformStream;\n if (typeof arg !== \"function\")\n return throughs((s) => s.pipeThrough(arg));\n const fn = arg;\n const { writable, readable } = new TransformStream;\n return { writable, readable: sflow(fn(sflow(readable))) };\n};\nfunction _byLazy(r, t) {\n const reader = r.getReader();\n const tw = t.writable.getWriter();\n const tr = t.readable.getReader();\n return sflow(new ReadableStream({\n start: async (ctrl) => {\n (async function() {\n while (true) {\n const { done, value } = await tr.read();\n if (done)\n return ctrl.close();\n ctrl.enqueue(value);\n }\n })();\n },\n pull: async (ctrl) => {\n const { done, value } = await reader.read();\n if (done)\n return tw.close();\n await tw.write(value);\n },\n cancel: async (r2) => {\n reader.cancel(r2);\n tr.cancel(r2);\n }\n }, { highWaterMark: 0 }));\n}\n\n// src/index.ts\nimport { default as default2 } from \"polyfill-text-decoder-stream\";\nimport { default as default3 } from \"polyfill-text-encoder-stream\";\n\n// src/chunkOverlaps.ts\nfunction chunkOverlaps({\n step,\n overlap\n}) {\n let chunks2 = [];\n if (step <= 0)\n throw new Error(\"step must be greater than 0\");\n if (overlap < 0)\n throw new Error(\"overlap must be greater than or equal to 0\");\n return new TransformStream({\n transform: async (chunk, ctrl) => {\n chunks2.push(chunk);\n if (chunks2.length >= step + overlap)\n ctrl.enqueue([...chunks2.splice(0, step), ...chunks2.slice(0, overlap)]);\n },\n flush: async (ctrl) => void (chunks2.length && ctrl.enqueue(chunks2))\n });\n}\n// src/chunkTransforms.ts\nfunction chunkTransforms(options) {\n let chunks2 = [];\n const { start, transform, flush } = options;\n return new TransformStream({\n start: async (ctrl) => {\n if (start)\n chunks2 = await start(chunks2, ctrl);\n },\n transform: async (chunk, ctrl) => {\n chunks2.push(chunk);\n if (transform)\n chunks2 = await transform(chunks2, ctrl);\n },\n flush: async (ctrl) => {\n if (flush)\n chunks2 = await flush(chunks2, ctrl);\n }\n });\n}\n// src/distributeBys.ts\nvar distributeBys = (groupFn) => {\n const streams = new Map;\n const { writable: srcs, readable } = new TransformStream;\n const { writable, readable: chunks2 } = new TransformStream;\n const w = srcs.getWriter();\n chunks2.pipeThrough(pMaps(async (chunk) => {\n const ord = await groupFn(chunk);\n if (!streams.has(ord))\n await async function() {\n const t2 = new TransformStream;\n await w.write(t2.readable);\n const r = { ...t2, writer: t2.writable.getWriter() };\n streams.set(ord, r);\n return r;\n }();\n const t = streams.get(ord);\n await t.writer.write(chunk);\n })).pipeTo(nils()).finally(() => {\n w.close();\n [...streams.values()].map((e) => e.writer.close());\n });\n return { writable, readable };\n};\n// src/sfTemplate.ts\nfunction sfTemplate(tsa, ...args) {\n return sflow(...tsa.map((str) => [sflow([str]), args.shift() || []]).flat());\n}\nvar sfT = sfTemplate;\n// src/mergeAscends.ts\nimport DIE9 from \"phpdie\";\nimport { sortBy as sortBy2 } from \"rambda\";\nvar mergeAscends = (ordFn, _srcs) => {\n if (!_srcs)\n return (srcs) => mergeAscends(ordFn, srcs);\n return sflow(new ReadableStream({\n pull: async (ctrl) => {\n const srcs = await sflow(_srcs).toArray();\n const slots = srcs.map(() => {\n return;\n });\n const pendingSlotRemoval = srcs.map(() => {\n return;\n });\n const drains = srcs.map(() => false);\n let lastMinValue = undefined;\n await Promise.all(srcs.map(async (src, i) => {\n for await (const value of sflow(src)) {\n while (slots[i] !== undefined) {\n if (shiftMinValueIfFull())\n continue;\n pendingSlotRemoval[i] = Promise.withResolvers();\n await pendingSlotRemoval[i].promise;\n }\n slots[i] = { value };\n shiftMinValueIfFull();\n }\n drains[i] = true;\n pendingSlotRemoval.map((e) => e?.resolve());\n await Promise.all(pendingSlotRemoval.map((e) => e?.promise));\n const allDrain = drains.every(Boolean);\n if (allDrain) {\n while (slots.some((e) => e !== undefined))\n shiftMinValueIfFull();\n ctrl.close();\n }\n function shiftMinValueIfFull() {\n const isFull = slots.every((slot, i2) => slot !== undefined || drains[i2]);\n if (!isFull)\n return false;\n const fullSlots = slots.flatMap((e) => e !== undefined ? [e] : []).map((e) => e.value);\n const minValue = sortBy2(ordFn, fullSlots)[0];\n const minIndex = slots.findIndex((e) => e?.value === minValue);\n if (lastMinValue !== undefined) {\n const ordered = sortBy2(ordFn, [lastMinValue, minValue]);\n ordered[0] === lastMinValue && ordered[1] === minValue || DIE9(`\nMergeAscendError: one of source stream is not ascending ordered.\n\nstream index: ${minIndex}\n\nprev: ${ordFn(lastMinValue)}\nprev: ${JSON.stringify(lastMinValue)}\n\ncurr: ${ordFn(minValue)}\ncurr: ${JSON.stringify(minValue)}\n`);\n }\n lastMinValue = minValue;\n ctrl.enqueue(minValue);\n slots[minIndex] = undefined;\n pendingSlotRemoval[minIndex]?.resolve();\n pendingSlotRemoval[minIndex] = undefined;\n return true;\n }\n }));\n }\n }, { highWaterMark: 0 }));\n};\nvar mergeDescends = (ordFn, _srcs) => {\n if (!_srcs)\n return (srcs) => mergeDescends(ordFn, srcs);\n return toStream(new ReadableStream({\n pull: async (ctrl) => {\n const srcs = await sflow(_srcs).toArray();\n const slots = srcs.map(() => {\n return;\n });\n const pendingSlotRemoval = srcs.map(() => {\n return;\n });\n const drains = srcs.map(() => false);\n let lastMaxValue = undefined;\n await Promise.all(srcs.map(async (src, i) => {\n for await (const value of toStream(src)) {\n while (slots[i] !== undefined) {\n if (shiftMaxValueIfFull())\n continue;\n pendingSlotRemoval[i] = Promise.withResolvers();\n await pendingSlotRemoval[i].promise;\n }\n slots[i] = { value };\n shiftMaxValueIfFull();\n }\n drains[i] = true;\n pendingSlotRemoval.map((e) => e?.resolve());\n await Promise.all(pendingSlotRemoval.map((e) => e?.promise));\n const allDrain = drains.every(Boolean);\n if (allDrain) {\n while (slots.some((e) => e !== undefined))\n shiftMaxValueIfFull();\n ctrl.close();\n }\n function shiftMaxValueIfFull() {\n const isFull = slots.every((slot, i2) => slot !== undefined || drains[i2]);\n if (!isFull)\n return false;\n const fullSlots = slots.flatMap((e) => e !== undefined ? [e] : []).map((e) => e.value);\n const maxValue = sortBy2(ordFn, fullSlots).toReversed()[0];\n const maxIndex = slots.findIndex((e) => e?.value === maxValue);\n if (lastMaxValue !== undefined) {\n const ordered = sortBy2(ordFn, [maxValue, lastMaxValue]);\n ordered[0] === maxValue && ordered[1] === lastMaxValue || DIE9(`\nMergeDescendError: one of source stream is not descending ordered.\n\nstream index: ${maxIndex}\n\nprev: ${ordFn(lastMaxValue)}\nprev: ${JSON.stringify(lastMaxValue)}\n\ncurr: ${ordFn(maxValue)}\ncurr: ${JSON.stringify(maxValue)}\n`);\n }\n lastMaxValue = maxValue;\n ctrl.enqueue(maxValue);\n slots[maxIndex] = undefined;\n pendingSlotRemoval[maxIndex]?.resolve();\n pendingSlotRemoval[maxIndex] = undefined;\n return true;\n }\n }));\n }\n }, { highWaterMark: 0 }));\n};\n// src/pageStream.ts\nfunction pageStream(initialQuery, fetcher) {\n let query = null;\n return new ReadableStream({\n pull: async (ctrl) => {\n if (query === null)\n query = { value: await initialQuery };\n const ret = fetcher(query.value);\n const val = ret instanceof Promise ? await ret : ret;\n const { data, next } = val;\n if (data !== undefined)\n ctrl.enqueue(data);\n if (next == null)\n return ctrl.close();\n query.value = next;\n }\n }, { highWaterMark: 0 });\n}\n\n// src/pageFlow.ts\nfunction pageFlow(initialCursor, fetcher) {\n return sflow(pageStream(initialCursor, fetcher));\n}\n// src/rangeStream.ts\nfunction rangeStream(...args) {\n const [min, max] = args[1] != null ? [args[0], args[1]] : [0, args[0]];\n let i = min;\n return new ReadableStream({\n pull: (ctrl) => {\n ctrl.enqueue(i);\n if (++i >= max)\n ctrl.close();\n }\n }, { highWaterMark: 0 });\n}\nfunction rangeFlow(...args) {\n return sflow(rangeStream(...args));\n}\n// src/svector.ts\nvar svector = (...src) => sflow(src);\n// src/index.ts\nvar src_default = sflow;\nexport {\n unwinds,\n unpromises,\n uniqs,\n uniqBys,\n throughs,\n throttles,\n tees,\n tails,\n svector,\n svector as sv,\n streamAsyncIterator,\n sflow as snoflow,\n slices,\n skips,\n sflow,\n sfTemplate,\n sfT,\n sflow as sf,\n replaces,\n replaceAlls,\n reduces,\n rangeStream,\n rangeFlow,\n portals,\n peeks,\n pageStream,\n pageFlow,\n pMaps,\n nils,\n nil,\n merges,\n mergeStreamsByDescend,\n mergeStreamsByAscend,\n mergeStreamsBy,\n mergeStream,\n mergeDescends,\n mergeAscends,\n matchs,\n matchAlls,\n maps,\n mapAddFields,\n logs,\n lines,\n merges as joins,\n chunkIntervals as intervals,\n forEachs,\n flats,\n flatMaps,\n filters,\n distributeBys as distributesBy,\n src_default as default,\n debounces,\n confluences,\n concats,\n concatStream,\n chunks,\n chunkTransforms,\n chunkOverlaps,\n chunkIntervals,\n chunkIfs,\n chunkBys,\n cacheTails,\n cacheSkips,\n cacheLists,\n bys,\n chunks as buffers,\n andIgnoreError,\n terminates as aborts,\n default3 as TextEncoderStream,\n default2 as TextDecoderStream\n};\n\n//# debugId=9604DD319586FBBF64756E2164756E21\n",
304
- "// index.ts\nfunction createTerminalLogManager() {\n return new TerminalTextRender;\n}\n\nclass TerminalTextRender {\n lines = [\"\"];\n scrollback = [];\n cursorRow = 0;\n cursorCol = 0;\n savedCursorRow = 0;\n savedCursorCol = 0;\n isAtRestoredPosition = false;\n scrollTop = 0;\n scrollBottom = null;\n endedWithNewline = false;\n getCursorPosition() {\n return { row: this.cursorRow, col: this.cursorCol };\n }\n getScrollRegion() {\n return { top: this.scrollTop, bottom: this.scrollBottom };\n }\n write(data) {\n for (let i = 0;i < data.length; i++) {\n const char = data[i];\n switch (char) {\n case \"\\r\":\n this.cursorCol = 0;\n break;\n case `\n`: {\n this.endedWithNewline = true;\n if (this.scrollBottom !== null && this.cursorRow === this.getScrollBottomIndex()) {\n this.scrollUp(1);\n this.cursorCol = 0;\n this.ensureLine(this.cursorRow);\n } else {\n this.cursorRow++;\n this.cursorCol = 0;\n this.ensureLine(this.cursorRow);\n }\n break;\n }\n case \"\\b\":\n if (this.cursorCol > 0) {\n this.cursorCol--;\n }\n break;\n case \"\\t\":\n this.cursorCol = Math.floor((this.cursorCol + 8) / 8) * 8;\n break;\n default:\n if (char === \"\\x1B\") {\n if (this.isEraseSequence(data, i)) {\n i = this.handleEraseSequence(data, i) - 1;\n } else if (i + 1 < data.length && data[i + 1] === \"M\") {\n if (this.cursorRow > this.scrollTop) {\n this.cursorRow = Math.max(this.scrollTop, this.cursorRow - 1);\n } else {\n this.scrollDown(1);\n this.cursorRow = this.scrollTop;\n }\n i++;\n } else if (i + 1 < data.length && data[i + 1] === \"]\") {\n i = this.handleOscSequence(data, i) - 1;\n } else if (i + 1 < data.length && data[i + 1] === \"[\") {\n const escapeStart = i;\n i += 2;\n let escapeEnd = i;\n while (escapeEnd < data.length && !/[a-zA-Z]/.test(data[escapeEnd])) {\n escapeEnd++;\n }\n if (escapeEnd < data.length) {\n const escapeCode = data.slice(escapeStart + 2, escapeEnd);\n const command = data[escapeEnd];\n this.handleAnsiEscape(escapeCode, command);\n i = escapeEnd;\n } else {\n const escapeCode = data.slice(escapeStart + 2);\n this.handleAnsiEscape(escapeCode, \"\");\n i = data.length - 1;\n }\n } else if (i + 1 < data.length && data[i + 1] === \"c\" && i + 2 >= data.length) {\n this.lines = [\"\"];\n this.scrollback = [];\n this.cursorRow = 0;\n this.cursorCol = 0;\n this.savedCursorRow = 0;\n this.savedCursorCol = 0;\n this.scrollTop = 0;\n this.scrollBottom = null;\n i++;\n } else if (i + 1 < data.length && data[i + 1] === \"?\") {\n const escapeStart = i;\n i += 2;\n let escapeEnd = i;\n while (escapeEnd < data.length && !/[a-zA-Z]/.test(data[escapeEnd])) {\n escapeEnd++;\n }\n if (escapeEnd < data.length) {\n const escapeCode = data.slice(escapeStart + 2, escapeEnd);\n const command = data[escapeEnd];\n this.handleCsiQuestionSequence(escapeCode, command);\n i = escapeEnd;\n }\n } else if (i + 1 < data.length && data[i + 1] === \">\") {\n const escapeStart = i;\n i += 2;\n let escapeEnd = i;\n while (escapeEnd < data.length && !/[a-zA-Z]/.test(data[escapeEnd])) {\n escapeEnd++;\n }\n if (escapeEnd < data.length) {\n const escapeCode = data.slice(escapeStart + 2, escapeEnd);\n const command = data[escapeEnd];\n this.handleCsiGreaterSequence(escapeCode, command);\n i = escapeEnd;\n }\n }\n } else {\n this.endedWithNewline = false;\n this.ensureLine(this.cursorRow);\n const line = this.lines[this.cursorRow];\n if (this.isAtRestoredPosition && this.cursorCol < line.length) {\n this.lines[this.cursorRow] = line.substring(0, this.cursorCol) + char + line.substring(this.cursorCol);\n this.isAtRestoredPosition = false;\n } else if (this.cursorCol >= line.length) {\n this.lines[this.cursorRow] = line + \" \".repeat(this.cursorCol - line.length) + char;\n } else {\n this.lines[this.cursorRow] = line.substring(0, this.cursorCol) + char + line.substring(this.cursorCol + 1);\n }\n this.cursorCol++;\n }\n break;\n }\n }\n return this;\n }\n ensureLine(row) {\n while (this.lines.length <= row) {\n this.lines.push(\"\");\n }\n }\n handleAnsiEscape(escapeCode, command) {\n switch (command) {\n case \"\": {\n if (escapeCode === \"6n\") {} else if (escapeCode === \"c\") {}\n break;\n }\n case \"A\": {\n const upLines = parseInt(escapeCode) || 1;\n this.cursorRow = Math.max(0, this.cursorRow - upLines);\n break;\n }\n case \"B\": {\n const downLines = parseInt(escapeCode) || 1;\n const originalRow = this.cursorRow;\n this.cursorRow += downLines;\n if (this.cursorRow > originalRow + 1) {\n this.cursorCol = 0;\n }\n this.ensureLine(this.cursorRow);\n break;\n }\n case \"C\": {\n const forwardCols = parseInt(escapeCode) || 1;\n this.cursorCol += forwardCols;\n break;\n }\n case \"D\": {\n const backwardCols = parseInt(escapeCode) || 1;\n this.cursorCol = Math.max(0, this.cursorCol - backwardCols);\n break;\n }\n case \"E\": {\n const nextLines = parseInt(escapeCode) || 1;\n this.cursorRow += nextLines;\n this.cursorCol = 0;\n this.ensureLine(this.cursorRow);\n break;\n }\n case \"F\": {\n const prevLines = parseInt(escapeCode) || 1;\n this.cursorRow = Math.max(0, this.cursorRow - prevLines);\n this.cursorCol = 0;\n break;\n }\n case \"G\": {\n if (escapeCode === \"\") {\n const currentLine = this.lines[this.cursorRow] || \"\";\n if (this.cursorRow === 0 && this.lines.length === 1 && this.cursorCol === currentLine.length && currentLine.length > 0) {\n this.cursorCol = Math.max(0, this.cursorCol - 1);\n } else {\n this.cursorCol = 0;\n }\n } else {\n const col = parseInt(escapeCode) || 1;\n this.cursorCol = Math.max(0, col - 1);\n }\n break;\n }\n case \"H\":\n case \"f\": {\n const parts = escapeCode.split(\";\");\n this.cursorRow = Math.max(0, (parseInt(parts[0]) || 1) - 1);\n this.cursorCol = Math.max(0, (parseInt(parts[1]) || 1) - 1);\n this.isAtRestoredPosition = false;\n this.ensureLine(this.cursorRow);\n break;\n }\n case \"J\":\n this.ensureLine(this.cursorRow);\n if (escapeCode === \"2\") {\n this.lines = [\"\"];\n this.scrollback = [];\n this.cursorRow = 0;\n this.cursorCol = 0;\n this.scrollTop = 0;\n this.scrollBottom = null;\n } else if (escapeCode === \"\" || escapeCode === \"0\") {\n this.lines[this.cursorRow] = this.lines[this.cursorRow].substring(0, this.cursorCol);\n for (let row = this.cursorRow + 1;row < this.lines.length; row++) {\n this.lines[row] = \"\";\n }\n } else if (escapeCode === \"1\") {\n for (let row = 0;row < this.cursorRow; row++) {\n this.lines[row] = \"\";\n }\n this.lines[this.cursorRow] = this.lines[this.cursorRow].substring(this.cursorCol);\n }\n break;\n case \"K\":\n if (escapeCode === \"\" || escapeCode === \"0\") {\n this.ensureLine(this.cursorRow);\n this.lines[this.cursorRow] = this.lines[this.cursorRow].substring(0, this.cursorCol);\n } else if (escapeCode === \"1\") {\n this.ensureLine(this.cursorRow);\n this.lines[this.cursorRow] = \" \".repeat(this.cursorCol) + this.lines[this.cursorRow].substring(this.cursorCol);\n } else if (escapeCode === \"2\") {\n this.ensureLine(this.cursorRow);\n this.lines[this.cursorRow] = \"\";\n }\n break;\n case \"S\": {\n const scrollCount = parseInt(escapeCode) || 1;\n this.scrollUp(scrollCount);\n break;\n }\n case \"s\":\n if (escapeCode === \"\") {\n this.savedCursorRow = this.cursorRow;\n this.savedCursorCol = this.cursorCol;\n }\n break;\n case \"u\":\n if (escapeCode === \"\") {\n this.cursorRow = this.savedCursorRow;\n this.cursorCol = this.savedCursorCol;\n this.isAtRestoredPosition = true;\n this.ensureLine(this.cursorRow);\n }\n break;\n case \"r\": {\n if (escapeCode === \"\") {\n this.scrollTop = 0;\n this.scrollBottom = null;\n } else {\n const parts = escapeCode.split(\";\");\n const topParam = parseInt(parts[0] || \"1\", 10) || 1;\n const bottomParam = parts[1] ? parseInt(parts[1], 10) || topParam : null;\n const top = Math.max(0, topParam - 1);\n this.scrollTop = top;\n if (bottomParam === null) {\n this.scrollBottom = null;\n } else {\n const bottomInclusive = Math.max(top, bottomParam - 1);\n this.scrollBottom = bottomInclusive + 1;\n this.ensureLine(bottomInclusive);\n }\n }\n if (this.scrollBottom !== null) {\n const bottomIndex = this.getScrollBottomIndex();\n this.cursorRow = Math.min(Math.max(this.cursorRow, this.scrollTop), bottomIndex);\n }\n break;\n }\n }\n }\n handleCsiQuestionSequence(escapeCode, command) {\n switch (command) {\n case \"h\":\n break;\n case \"l\":\n break;\n case \"u\":\n break;\n default:\n break;\n }\n }\n handleCsiGreaterSequence(escapeCode, command) {\n switch (command) {\n case \"u\":\n break;\n default:\n break;\n }\n }\n render() {\n const allLines = [...this.scrollback, ...this.lines];\n const trimmedLines = [...allLines];\n while (trimmedLines.length > 1 && trimmedLines[trimmedLines.length - 1] === \"\") {\n if (this.shouldPreserveTrailingNewline(trimmedLines)) {\n if (trimmedLines.length > 2 && trimmedLines[trimmedLines.length - 2] === \"\") {\n trimmedLines.pop();\n continue;\n }\n break;\n }\n trimmedLines.pop();\n }\n return trimmedLines.join(`\n`);\n }\n shouldPreserveTrailingNewline(lines) {\n if (!this.endedWithNewline) {\n return false;\n }\n for (let i = lines.length - 2;i >= 0; i--) {\n const line = lines[i];\n if (line === \"\") {\n continue;\n }\n return line.startsWith(\"╰\") && line.endsWith(\"╯\");\n }\n return false;\n }\n clear() {\n this.lines = [\"\"];\n this.scrollback = [];\n this.cursorRow = 0;\n this.cursorCol = 0;\n this.savedCursorRow = 0;\n this.savedCursorCol = 0;\n this.scrollTop = 0;\n this.scrollBottom = null;\n this.endedWithNewline = false;\n }\n isEraseSequence(data, i) {\n const remaining = data.slice(i);\n if (!remaining.startsWith(\"\\x1B[2K\")) {\n return false;\n }\n let pos = 4;\n while (pos < remaining.length && remaining.slice(pos, pos + 8) === \"\\x1B[1A\\x1B[2K\") {\n pos += 8;\n }\n return pos < remaining.length && remaining.slice(pos, pos + 3) === \"\\x1B[G\";\n }\n handleEraseSequence(data, i) {\n const remaining = data.slice(i);\n if (!remaining.startsWith(\"\\x1B[2K\")) {\n return i;\n }\n let pos = 4;\n let linesToClear = 1;\n while (pos < remaining.length && remaining.slice(pos, pos + 8) === \"\\x1B[1A\\x1B[2K\") {\n pos += 8;\n linesToClear++;\n }\n if (pos >= remaining.length || remaining.slice(pos, pos + 3) !== \"\\x1B[G\") {\n return i;\n }\n pos += 3;\n const currentRow = this.cursorRow;\n if (linesToClear === 2 && remaining === \"\\x1B[2K\\x1B[1A\\x1B[2K\\x1B[G\") {\n for (let i2 = 0;i2 < 2 && currentRow + i2 < this.lines.length; i2++) {\n this.lines[currentRow + i2] = \"\";\n }\n this.cursorCol = 0;\n } else {\n const startRow = Math.max(0, currentRow - linesToClear + 1);\n for (let row = startRow;row <= currentRow && row < this.lines.length; row++) {\n this.lines[row] = \"\";\n }\n this.cursorRow = startRow;\n this.cursorCol = 0;\n }\n return i + pos;\n }\n handleOscSequence(data, i) {\n if (i + 1 >= data.length || data[i] !== \"\\x1B\" || data[i + 1] !== \"]\") {\n return i;\n }\n let pos = i + 2;\n let terminatorStart = data.length;\n while (pos < data.length) {\n const ch = data[pos];\n if (ch === \"\\x07\") {\n terminatorStart = pos;\n pos += 1;\n break;\n }\n if (ch === \"\\x1B\" && pos + 1 < data.length && data[pos + 1] === \"\\\\\") {\n terminatorStart = pos;\n pos += 2;\n break;\n }\n pos++;\n }\n const oscPayload = data.slice(i + 2, terminatorStart);\n if (oscPayload.startsWith(\"8;\")) {\n const secondSemicolon = oscPayload.indexOf(\";\", 2);\n if (secondSemicolon !== -1) {\n const uri = oscPayload.slice(secondSemicolon + 1);\n if (uri) {\n this.write(uri);\n }\n }\n }\n return Math.min(pos, data.length);\n }\n getScrollBottomIndex() {\n if (this.scrollBottom === null) {\n return Math.max(this.lines.length - 1, this.scrollTop);\n }\n const bottomIndex = Math.max(this.scrollTop, this.scrollBottom - 1);\n this.ensureLine(bottomIndex);\n return bottomIndex;\n }\n scrollUp(count) {\n if (count <= 0) {\n return;\n }\n const top = this.scrollTop;\n const bottomIndex = this.getScrollBottomIndex();\n if (bottomIndex < top) {\n return;\n }\n const regionHeight = bottomIndex - top + 1;\n const actualCount = Math.min(count, regionHeight);\n if (top === 0) {\n for (let i = 0;i < actualCount; i++) {\n const scrolledLine = this.lines[0];\n if (scrolledLine !== \"\" || this.scrollback.length > 0) {\n this.scrollback.push(scrolledLine);\n }\n for (let row = 0;row < bottomIndex; row++) {\n this.lines[row] = this.lines[row + 1] || \"\";\n }\n this.lines[bottomIndex] = \"\";\n }\n } else {\n for (let i = 0;i < actualCount; i++) {\n for (let row = top;row < bottomIndex; row++) {\n this.lines[row] = this.lines[row + 1] || \"\";\n }\n this.lines[bottomIndex] = \"\";\n }\n }\n }\n scrollDown(count) {\n if (count <= 0) {\n return;\n }\n const top = this.scrollTop;\n const bottomIndex = this.getScrollBottomIndex();\n if (bottomIndex < top) {\n return;\n }\n const regionHeight = bottomIndex - top + 1;\n const actualCount = Math.min(count, regionHeight);\n for (let i = 0;i < actualCount; i++) {\n for (let row = bottomIndex;row > top; row--) {\n this.lines[row] = this.lines[row - 1] || \"\";\n }\n this.lines[top] = \"\";\n }\n }\n}\nexport {\n createTerminalLogManager,\n TerminalTextRender\n};\n",
305
- "// curried overload\nexport function catcher<F extends (...args: any[]) => any, R>(\n catchFn: (error: unknown, fn: F, ...args: Parameters<F>) => R,\n): (fn: F) => (...args: Parameters<F>) => ReturnType<F> | R;\n\n// direct overload\nexport function catcher<F extends (...args: any[]) => any, R>(\n catchFn: (error: unknown, fn: F, ...args: Parameters<F>) => R,\n fn: F,\n): (...args: Parameters<F>) => ReturnType<F> | R;\n\n/**\n * A utility function to wrap another function with a try-catch block.\n * If an error occurs during the execution of the function, the provided\n * catchFn is called with the error, the original function, and its arguments.\n *\n * This function supports both direct invocation and curried usage.\n *\n * @param catchFn - The function to call when an error occurs.\n * @param fn - The function to wrap (optional for curried usage).\n * @returns A new function that wraps the original function with error handling.\n */\nexport function catcher<F extends (...args: any[]) => any, R>(\n catchFn: (error: unknown, fn: F, ...args: Parameters<F>) => R,\n fn?: F,\n) {\n if (!fn) return (fn: F) => catcher(catchFn, fn) as any;\n return (...args: Parameters<F>) => {\n try {\n return fn(...args);\n } catch (error) {\n return catchFn(error, fn, ...args);\n }\n };\n}\n",
306
- "import { mkdir, readdir, readFile, writeFile } from \"fs/promises\";\nimport { homedir } from \"os\";\nimport path from \"path\";\n\n// Allow overriding for testing\nexport const getSessionsFile = () =>\n process.env.CLI_YES_TEST_HOME\n ? path.join(process.env.CLI_YES_TEST_HOME, \".config\", \"agent-yes\", \"codex-sessions.json\")\n : path.join(homedir(), \".config\", \"agent-yes\", \"codex-sessions.json\");\n\nexport const getCodexSessionsDir = () =>\n process.env.CLI_YES_TEST_HOME\n ? path.join(process.env.CLI_YES_TEST_HOME, \".codex\", \"sessions\")\n : path.join(homedir(), \".codex\", \"sessions\");\n\nexport interface CodexSessionMap {\n [cwd: string]: {\n sessionId: string;\n lastUsed: string; // ISO timestamp\n };\n}\n\nexport interface CodexSession {\n id: string;\n timestamp: string;\n cwd: string;\n filePath: string;\n git?: {\n commit_hash: string;\n branch: string;\n repository_url: string;\n };\n}\n\n/**\n * Load the session map from the config file\n */\nexport async function loadSessionMap(): Promise<CodexSessionMap> {\n try {\n const content = await readFile(getSessionsFile(), \"utf-8\");\n return JSON.parse(content);\n } catch {\n // File doesn't exist or is invalid, return empty map\n return {};\n }\n}\n\n/**\n * Save the session map to the config file\n */\nexport async function saveSessionMap(sessionMap: CodexSessionMap): Promise<void> {\n try {\n const sessionsFile = getSessionsFile();\n // Ensure the directory exists\n await mkdir(path.dirname(sessionsFile), { recursive: true });\n await writeFile(sessionsFile, JSON.stringify(sessionMap, null, 2));\n } catch (error) {\n console.warn(\"Failed to save codex session map:\", error);\n }\n}\n\n/**\n * Store a session ID for a specific working directory\n */\nexport async function storeSessionForCwd(cwd: string, sessionId: string): Promise<void> {\n const sessionMap = await loadSessionMap();\n sessionMap[cwd] = {\n sessionId,\n lastUsed: new Date().toISOString(),\n };\n await saveSessionMap(sessionMap);\n}\n\n/**\n * Parse a codex session file to extract session metadata\n */\nasync function parseCodexSessionFile(filePath: string): Promise<CodexSession | null> {\n try {\n const content = await readFile(filePath, \"utf-8\");\n const lines = content.trim().split(\"\\n\");\n\n // Find the session_meta line\n for (const line of lines) {\n if (!line.trim()) continue;\n\n const data = JSON.parse(line);\n if (data.type === \"session_meta\" && data.payload) {\n const payload = data.payload;\n return {\n id: payload.id,\n timestamp: payload.timestamp || data.timestamp,\n cwd: payload.cwd,\n filePath,\n git: payload.git,\n };\n }\n }\n\n return null;\n } catch {\n // Ignore files that can't be parsed\n return null;\n }\n}\n\n/**\n * Get all codex sessions from the .codex/sessions directory\n */\nasync function getAllCodexSessions(): Promise<CodexSession[]> {\n const sessions: CodexSession[] = [];\n const codexSessionsDir = getCodexSessionsDir();\n\n try {\n // Walk through year/month/day structure\n const years = await readdir(codexSessionsDir);\n\n for (const year of years) {\n const yearPath = path.join(codexSessionsDir, year);\n try {\n const months = await readdir(yearPath);\n\n for (const month of months) {\n const monthPath = path.join(yearPath, month);\n try {\n const days = await readdir(monthPath);\n\n for (const day of days) {\n const dayPath = path.join(monthPath, day);\n try {\n const files = await readdir(dayPath);\n\n for (const file of files) {\n if (file.endsWith(\".jsonl\")) {\n const sessionPath = path.join(dayPath, file);\n const session = await parseCodexSessionFile(sessionPath);\n if (session) {\n sessions.push(session);\n }\n }\n }\n } catch {\n // Skip directories we can't read\n }\n }\n } catch {\n // Skip directories we can't read\n }\n }\n } catch {\n // Skip directories we can't read\n }\n }\n } catch {\n // .codex/sessions directory doesn't exist or can't be read\n return [];\n }\n\n return sessions.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());\n}\n\n/**\n * Get the most recent session for a specific working directory from actual codex files\n */\nasync function getMostRecentCodexSessionForCwd(targetCwd: string): Promise<CodexSession | null> {\n const allSessions = await getAllCodexSessions();\n const sessionsForCwd = allSessions.filter((session) => session.cwd === targetCwd);\n return sessionsForCwd[0] || null;\n}\n\n/**\n * Get the last session ID for a specific working directory\n * Now checks actual codex session files first, falls back to stored mapping\n */\nexport async function getSessionForCwd(cwd: string): Promise<string | null> {\n // First try to get the most recent session from actual codex files\n const recentSession = await getMostRecentCodexSessionForCwd(cwd);\n if (recentSession) {\n return recentSession.id;\n }\n\n // Fall back to stored mapping\n const sessionMap = await loadSessionMap();\n return sessionMap[cwd]?.sessionId || null;\n}\n\n/**\n * Extract session ID from codex output\n * Session IDs are UUIDs in the format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n */\nexport function extractSessionId(output: string): string | null {\n // Look for session ID in various contexts where it might appear\n const sessionIdRegex = /\\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\b/i;\n const match = output.match(sessionIdRegex);\n return match ? match[0] : null;\n}\n\n/**\n * Extract session ID from codex session file content\n * More reliable method that parses the session metadata\n */\nexport function extractSessionIdFromSessionMeta(sessionContent: string): string | null {\n try {\n // Parse the first line which should contain session metadata\n const firstLine = sessionContent.split(\"\\n\")[0];\n const sessionMeta = JSON.parse(firstLine);\n\n if (sessionMeta.type === \"session_meta\" && sessionMeta.payload?.id) {\n return sessionMeta.payload.id;\n }\n } catch {\n // If parsing fails, fall back to regex extraction\n }\n\n return extractSessionId(sessionContent);\n}\n\n/**\n * Get recent sessions for a specific working directory from actual codex files\n */\nexport async function getRecentSessionsForCwd(\n targetCwd: string,\n limit = 5,\n): Promise<CodexSession[]> {\n const allSessions = await getAllCodexSessions();\n const sessionsForCwd = allSessions.filter((session) => session.cwd === targetCwd);\n return sessionsForCwd.slice(0, limit);\n}\n\n/**\n * Get all working directories with session counts from actual codex files\n */\nexport async function getAllWorkingDirectories(): Promise<\n { cwd: string; count: number; lastSession: string }[]\n> {\n const allSessions = await getAllCodexSessions();\n const cwdMap = new Map<string, { count: number; lastSession: string }>();\n\n for (const session of allSessions) {\n const existing = cwdMap.get(session.cwd);\n if (existing) {\n existing.count++;\n if (new Date(session.timestamp) > new Date(existing.lastSession)) {\n existing.lastSession = session.timestamp;\n }\n } else {\n cwdMap.set(session.cwd, {\n count: 1,\n lastSession: session.timestamp,\n });\n }\n }\n\n return Array.from(cwdMap.entries())\n .map(([cwd, data]) => ({ cwd, ...data }))\n .sort((a, b) => new Date(b.lastSession).getTime() - new Date(a.lastSession).getTime());\n}\n\n/**\n * Clean up old sessions (keep only the most recent 10 per directory)\n */\nexport async function cleanupOldSessions(): Promise<void> {\n const sessionMap = await loadSessionMap();\n\n // Group sessions by directory and keep only the most recent ones\n const cleaned: CodexSessionMap = {};\n\n // Sort all sessions by lastUsed date (most recent first)\n const sortedEntries = Object.entries(sessionMap).sort(\n ([, a], [, b]) => new Date(b.lastUsed).getTime() - new Date(a.lastUsed).getTime(),\n );\n\n // Keep track of how many sessions we've kept per directory\n const dirCounts: { [dir: string]: number } = {};\n\n for (const [cwd, session] of sortedEntries) {\n const count = dirCounts[cwd] || 0;\n if (count < 5) {\n // Keep up to 5 sessions per directory\n cleaned[cwd] = session;\n dirCounts[cwd] = count + 1;\n }\n }\n\n await saveSessionMap(cleaned);\n}\n",
307
- "/**\n * A utility class to wait for idle periods based on activity pings.\n *\n * @example\n * const idleWaiter = new IdleWaiter();\n *\n * // Somewhere in your code, when activity occurs:\n * idleWaiter.ping();\n *\n * // To wait for an idle period of 5 seconds:\n * await idleWaiter.wait(5000);\n * console.log('System has been idle for 5 seconds');\n */\nexport class IdleWaiter {\n lastActivityTime = Date.now();\n checkInterval = 100; // Default check interval in milliseconds\n\n constructor() {\n this.ping();\n }\n\n ping() {\n this.lastActivityTime = Date.now();\n return this;\n }\n\n async wait(ms: number) {\n while (this.lastActivityTime >= Date.now() - ms)\n await new Promise((resolve) => setTimeout(resolve, this.checkInterval));\n }\n}\n",
308
- "'use strict';\n\n/*\n * Displays a helpful message and the source of\n * the format when it is invalid.\n */\nclass InvalidFormatError extends Error {\n constructor(formatFn) {\n super(`Format functions must be synchronous taking a two arguments: (info, opts)\nFound: ${formatFn.toString().split('\\n')[0]}\\n`);\n\n Error.captureStackTrace(this, InvalidFormatError);\n }\n}\n\n/*\n * function format (formatFn)\n * Returns a create function for the `formatFn`.\n */\nmodule.exports = formatFn => {\n if (formatFn.length > 2) {\n throw new InvalidFormatError(formatFn);\n }\n\n /*\n * function Format (options)\n * Base prototype which calls a `_format`\n * function and pushes the result.\n */\n function Format(options = {}) {\n this.options = options;\n }\n\n Format.prototype.transform = formatFn;\n\n //\n // Create a function which returns new instances of\n // FormatWrap for simple syntax like:\n //\n // require('winston').formats.json();\n //\n function createFormatWrap(opts) {\n return new Format(opts);\n }\n\n //\n // Expose the FormatWrap through the create function\n // for testability.\n //\n createFormatWrap.Format = Format;\n return createFormatWrap;\n};\n",
309
- "/*\nThe MIT License (MIT)\n\nCopyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n\nvar styles = {};\nmodule['exports'] = styles;\n\nvar codes = {\n reset: [0, 0],\n\n bold: [1, 22],\n dim: [2, 22],\n italic: [3, 23],\n underline: [4, 24],\n inverse: [7, 27],\n hidden: [8, 28],\n strikethrough: [9, 29],\n\n black: [30, 39],\n red: [31, 39],\n green: [32, 39],\n yellow: [33, 39],\n blue: [34, 39],\n magenta: [35, 39],\n cyan: [36, 39],\n white: [37, 39],\n gray: [90, 39],\n grey: [90, 39],\n\n brightRed: [91, 39],\n brightGreen: [92, 39],\n brightYellow: [93, 39],\n brightBlue: [94, 39],\n brightMagenta: [95, 39],\n brightCyan: [96, 39],\n brightWhite: [97, 39],\n\n bgBlack: [40, 49],\n bgRed: [41, 49],\n bgGreen: [42, 49],\n bgYellow: [43, 49],\n bgBlue: [44, 49],\n bgMagenta: [45, 49],\n bgCyan: [46, 49],\n bgWhite: [47, 49],\n bgGray: [100, 49],\n bgGrey: [100, 49],\n\n bgBrightRed: [101, 49],\n bgBrightGreen: [102, 49],\n bgBrightYellow: [103, 49],\n bgBrightBlue: [104, 49],\n bgBrightMagenta: [105, 49],\n bgBrightCyan: [106, 49],\n bgBrightWhite: [107, 49],\n\n // legacy styles for colors pre v1.0.0\n blackBG: [40, 49],\n redBG: [41, 49],\n greenBG: [42, 49],\n yellowBG: [43, 49],\n blueBG: [44, 49],\n magentaBG: [45, 49],\n cyanBG: [46, 49],\n whiteBG: [47, 49],\n\n};\n\nObject.keys(codes).forEach(function(key) {\n var val = codes[key];\n var style = styles[key] = [];\n style.open = '\\u001b[' + val[0] + 'm';\n style.close = '\\u001b[' + val[1] + 'm';\n});\n",
310
- "/*\nMIT License\n\nCopyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies\nof the Software, and to permit persons to whom the Software is furnished to do\nso, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n*/\n\n'use strict';\n\nmodule.exports = function(flag, argv) {\n argv = argv || process.argv || [];\n\n var terminatorPos = argv.indexOf('--');\n var prefix = /^-{1,2}/.test(flag) ? '' : '--';\n var pos = argv.indexOf(prefix + flag);\n\n return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);\n};\n",
311
- "/*\nThe MIT License (MIT)\n\nCopyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n\n'use strict';\n\nvar os = require('os');\nvar hasFlag = require('./has-flag.js');\n\nvar env = process.env;\n\nvar forceColor = void 0;\nif (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false')) {\n forceColor = false;\n} else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true')\n || hasFlag('color=always')) {\n forceColor = true;\n}\nif ('FORCE_COLOR' in env) {\n forceColor = env.FORCE_COLOR.length === 0\n || parseInt(env.FORCE_COLOR, 10) !== 0;\n}\n\nfunction translateLevel(level) {\n if (level === 0) {\n return false;\n }\n\n return {\n level: level,\n hasBasic: true,\n has256: level >= 2,\n has16m: level >= 3,\n };\n}\n\nfunction supportsColor(stream) {\n if (forceColor === false) {\n return 0;\n }\n\n if (hasFlag('color=16m') || hasFlag('color=full')\n || hasFlag('color=truecolor')) {\n return 3;\n }\n\n if (hasFlag('color=256')) {\n return 2;\n }\n\n if (stream && !stream.isTTY && forceColor !== true) {\n return 0;\n }\n\n var min = forceColor ? 1 : 0;\n\n if (process.platform === 'win32') {\n // Node.js 7.5.0 is the first version of Node.js to include a patch to\n // libuv that enables 256 color output on Windows. Anything earlier and it\n // won't work. However, here we target Node.js 8 at minimum as it is an LTS\n // release, and Node.js 7 is not. Windows 10 build 10586 is the first\n // Windows release that supports 256 colors. Windows 10 build 14931 is the\n // first release that supports 16m/TrueColor.\n var osRelease = os.release().split('.');\n if (Number(process.versions.node.split('.')[0]) >= 8\n && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {\n return Number(osRelease[2]) >= 14931 ? 3 : 2;\n }\n\n return 1;\n }\n\n if ('CI' in env) {\n if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(function(sign) {\n return sign in env;\n }) || env.CI_NAME === 'codeship') {\n return 1;\n }\n\n return min;\n }\n\n if ('TEAMCITY_VERSION' in env) {\n return (/^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0\n );\n }\n\n if ('TERM_PROGRAM' in env) {\n var version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n switch (env.TERM_PROGRAM) {\n case 'iTerm.app':\n return version >= 3 ? 3 : 2;\n case 'Hyper':\n return 3;\n case 'Apple_Terminal':\n return 2;\n // No default\n }\n }\n\n if (/-256(color)?$/i.test(env.TERM)) {\n return 2;\n }\n\n if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n return 1;\n }\n\n if ('COLORTERM' in env) {\n return 1;\n }\n\n if (env.TERM === 'dumb') {\n return min;\n }\n\n return min;\n}\n\nfunction getSupportLevel(stream) {\n var level = supportsColor(stream);\n return translateLevel(level);\n}\n\nmodule.exports = {\n supportsColor: getSupportLevel,\n stdout: getSupportLevel(process.stdout),\n stderr: getSupportLevel(process.stderr),\n};\n",
312
- "module['exports'] = function runTheTrap(text, options) {\n var result = '';\n text = text || 'Run the trap, drop the bass';\n text = text.split('');\n var trap = {\n a: ['\\u0040', '\\u0104', '\\u023a', '\\u0245', '\\u0394', '\\u039b', '\\u0414'],\n b: ['\\u00df', '\\u0181', '\\u0243', '\\u026e', '\\u03b2', '\\u0e3f'],\n c: ['\\u00a9', '\\u023b', '\\u03fe'],\n d: ['\\u00d0', '\\u018a', '\\u0500', '\\u0501', '\\u0502', '\\u0503'],\n e: ['\\u00cb', '\\u0115', '\\u018e', '\\u0258', '\\u03a3', '\\u03be', '\\u04bc',\n '\\u0a6c'],\n f: ['\\u04fa'],\n g: ['\\u0262'],\n h: ['\\u0126', '\\u0195', '\\u04a2', '\\u04ba', '\\u04c7', '\\u050a'],\n i: ['\\u0f0f'],\n j: ['\\u0134'],\n k: ['\\u0138', '\\u04a0', '\\u04c3', '\\u051e'],\n l: ['\\u0139'],\n m: ['\\u028d', '\\u04cd', '\\u04ce', '\\u0520', '\\u0521', '\\u0d69'],\n n: ['\\u00d1', '\\u014b', '\\u019d', '\\u0376', '\\u03a0', '\\u048a'],\n o: ['\\u00d8', '\\u00f5', '\\u00f8', '\\u01fe', '\\u0298', '\\u047a', '\\u05dd',\n '\\u06dd', '\\u0e4f'],\n p: ['\\u01f7', '\\u048e'],\n q: ['\\u09cd'],\n r: ['\\u00ae', '\\u01a6', '\\u0210', '\\u024c', '\\u0280', '\\u042f'],\n s: ['\\u00a7', '\\u03de', '\\u03df', '\\u03e8'],\n t: ['\\u0141', '\\u0166', '\\u0373'],\n u: ['\\u01b1', '\\u054d'],\n v: ['\\u05d8'],\n w: ['\\u0428', '\\u0460', '\\u047c', '\\u0d70'],\n x: ['\\u04b2', '\\u04fe', '\\u04fc', '\\u04fd'],\n y: ['\\u00a5', '\\u04b0', '\\u04cb'],\n z: ['\\u01b5', '\\u0240'],\n };\n text.forEach(function(c) {\n c = c.toLowerCase();\n var chars = trap[c] || [' '];\n var rand = Math.floor(Math.random() * chars.length);\n if (typeof trap[c] !== 'undefined') {\n result += trap[c][rand];\n } else {\n result += c;\n }\n });\n return result;\n};\n",
313
- "// please no\nmodule['exports'] = function zalgo(text, options) {\n text = text || ' he is here ';\n var soul = {\n 'up': [\n '̍', '̎', '̄', '̅',\n '̿', '̑', '̆', '̐',\n '͒', '͗', '͑', '̇',\n '̈', '̊', '͂', '̓',\n '̈', '͊', '͋', '͌',\n '̃', '̂', '̌', '͐',\n '̀', '́', '̋', '̏',\n '̒', '̓', '̔', '̽',\n '̉', 'ͣ', 'ͤ', 'ͥ',\n 'ͦ', 'ͧ', 'ͨ', 'ͩ',\n 'ͪ', 'ͫ', 'ͬ', 'ͭ',\n 'ͮ', 'ͯ', '̾', '͛',\n '͆', '̚',\n ],\n 'down': [\n '̖', '̗', '̘', '̙',\n '̜', '̝', '̞', '̟',\n '̠', '̤', '̥', '̦',\n '̩', '̪', '̫', '̬',\n '̭', '̮', '̯', '̰',\n '̱', '̲', '̳', '̹',\n '̺', '̻', '̼', 'ͅ',\n '͇', '͈', '͉', '͍',\n '͎', '͓', '͔', '͕',\n '͖', '͙', '͚', '̣',\n ],\n 'mid': [\n '̕', '̛', '̀', '́',\n '͘', '̡', '̢', '̧',\n '̨', '̴', '̵', '̶',\n '͜', '͝', '͞',\n '͟', '͠', '͢', '̸',\n '̷', '͡', ' ҉',\n ],\n };\n var all = [].concat(soul.up, soul.down, soul.mid);\n\n function randomNumber(range) {\n var r = Math.floor(Math.random() * range);\n return r;\n }\n\n function isChar(character) {\n var bool = false;\n all.filter(function(i) {\n bool = (i === character);\n });\n return bool;\n }\n\n\n function heComes(text, options) {\n var result = '';\n var counts;\n var l;\n options = options || {};\n options['up'] =\n typeof options['up'] !== 'undefined' ? options['up'] : true;\n options['mid'] =\n typeof options['mid'] !== 'undefined' ? options['mid'] : true;\n options['down'] =\n typeof options['down'] !== 'undefined' ? options['down'] : true;\n options['size'] =\n typeof options['size'] !== 'undefined' ? options['size'] : 'maxi';\n text = text.split('');\n for (l in text) {\n if (isChar(l)) {\n continue;\n }\n result = result + text[l];\n counts = {'up': 0, 'down': 0, 'mid': 0};\n switch (options.size) {\n case 'mini':\n counts.up = randomNumber(8);\n counts.mid = randomNumber(2);\n counts.down = randomNumber(8);\n break;\n case 'maxi':\n counts.up = randomNumber(16) + 3;\n counts.mid = randomNumber(4) + 1;\n counts.down = randomNumber(64) + 3;\n break;\n default:\n counts.up = randomNumber(8) + 1;\n counts.mid = randomNumber(6) / 2;\n counts.down = randomNumber(8) + 1;\n break;\n }\n\n var arr = ['up', 'mid', 'down'];\n for (var d in arr) {\n var index = arr[d];\n for (var i = 0; i <= counts[index]; i++) {\n if (options[index]) {\n result = result + soul[index][randomNumber(soul[index].length)];\n }\n }\n }\n }\n return result;\n }\n // don't summon him\n return heComes(text, options);\n};\n\n",
314
- "module['exports'] = function(colors) {\n return function(letter, i, exploded) {\n if (letter === ' ') return letter;\n switch (i%3) {\n case 0: return colors.red(letter);\n case 1: return colors.white(letter);\n case 2: return colors.blue(letter);\n }\n };\n};\n",
315
- "module['exports'] = function(colors) {\n return function(letter, i, exploded) {\n return i % 2 === 0 ? letter : colors.inverse(letter);\n };\n};\n",
316
- "module['exports'] = function(colors) {\n // RoY G BiV\n var rainbowColors = ['red', 'yellow', 'green', 'blue', 'magenta'];\n return function(letter, i, exploded) {\n if (letter === ' ') {\n return letter;\n } else {\n return colors[rainbowColors[i++ % rainbowColors.length]](letter);\n }\n };\n};\n\n",
317
- "module['exports'] = function(colors) {\n var available = ['underline', 'inverse', 'grey', 'yellow', 'red', 'green',\n 'blue', 'white', 'cyan', 'magenta', 'brightYellow', 'brightRed',\n 'brightGreen', 'brightBlue', 'brightWhite', 'brightCyan', 'brightMagenta'];\n return function(letter, i, exploded) {\n return letter === ' ' ? letter :\n colors[\n available[Math.round(Math.random() * (available.length - 2))]\n ](letter);\n };\n};\n",
318
- "/*\n\nThe MIT License (MIT)\n\nOriginal Library\n - Copyright (c) Marak Squires\n\nAdditional functionality\n - Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n\nvar colors = {};\nmodule['exports'] = colors;\n\ncolors.themes = {};\n\nvar util = require('util');\nvar ansiStyles = colors.styles = require('./styles');\nvar defineProps = Object.defineProperties;\nvar newLineRegex = new RegExp(/[\\r\\n]+/g);\n\ncolors.supportsColor = require('./system/supports-colors').supportsColor;\n\nif (typeof colors.enabled === 'undefined') {\n colors.enabled = colors.supportsColor() !== false;\n}\n\ncolors.enable = function() {\n colors.enabled = true;\n};\n\ncolors.disable = function() {\n colors.enabled = false;\n};\n\ncolors.stripColors = colors.strip = function(str) {\n return ('' + str).replace(/\\x1B\\[\\d+m/g, '');\n};\n\n// eslint-disable-next-line no-unused-vars\nvar stylize = colors.stylize = function stylize(str, style) {\n if (!colors.enabled) {\n return str+'';\n }\n\n var styleMap = ansiStyles[style];\n\n // Stylize should work for non-ANSI styles, too\n if (!styleMap && style in colors) {\n // Style maps like trap operate as functions on strings;\n // they don't have properties like open or close.\n return colors[style](str);\n }\n\n return styleMap.open + str + styleMap.close;\n};\n\nvar matchOperatorsRe = /[|\\\\{}()[\\]^$+*?.]/g;\nvar escapeStringRegexp = function(str) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a string');\n }\n return str.replace(matchOperatorsRe, '\\\\$&');\n};\n\nfunction build(_styles) {\n var builder = function builder() {\n return applyStyle.apply(builder, arguments);\n };\n builder._styles = _styles;\n // __proto__ is used because we must return a function, but there is\n // no way to create a function with a different prototype.\n builder.__proto__ = proto;\n return builder;\n}\n\nvar styles = (function() {\n var ret = {};\n ansiStyles.grey = ansiStyles.gray;\n Object.keys(ansiStyles).forEach(function(key) {\n ansiStyles[key].closeRe =\n new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');\n ret[key] = {\n get: function() {\n return build(this._styles.concat(key));\n },\n };\n });\n return ret;\n})();\n\nvar proto = defineProps(function colors() {}, styles);\n\nfunction applyStyle() {\n var args = Array.prototype.slice.call(arguments);\n\n var str = args.map(function(arg) {\n // Use weak equality check so we can colorize null/undefined in safe mode\n if (arg != null && arg.constructor === String) {\n return arg;\n } else {\n return util.inspect(arg);\n }\n }).join(' ');\n\n if (!colors.enabled || !str) {\n return str;\n }\n\n var newLinesPresent = str.indexOf('\\n') != -1;\n\n var nestedStyles = this._styles;\n\n var i = nestedStyles.length;\n while (i--) {\n var code = ansiStyles[nestedStyles[i]];\n str = code.open + str.replace(code.closeRe, code.open) + code.close;\n if (newLinesPresent) {\n str = str.replace(newLineRegex, function(match) {\n return code.close + match + code.open;\n });\n }\n }\n\n return str;\n}\n\ncolors.setTheme = function(theme) {\n if (typeof theme === 'string') {\n console.log('colors.setTheme now only accepts an object, not a string. ' +\n 'If you are trying to set a theme from a file, it is now your (the ' +\n 'caller\\'s) responsibility to require the file. The old syntax ' +\n 'looked like colors.setTheme(__dirname + ' +\n '\\'/../themes/generic-logging.js\\'); The new syntax looks like '+\n 'colors.setTheme(require(__dirname + ' +\n '\\'/../themes/generic-logging.js\\'));');\n return;\n }\n for (var style in theme) {\n (function(style) {\n colors[style] = function(str) {\n if (typeof theme[style] === 'object') {\n var out = str;\n for (var i in theme[style]) {\n out = colors[theme[style][i]](out);\n }\n return out;\n }\n return colors[theme[style]](str);\n };\n })(style);\n }\n};\n\nfunction init() {\n var ret = {};\n Object.keys(styles).forEach(function(name) {\n ret[name] = {\n get: function() {\n return build([name]);\n },\n };\n });\n return ret;\n}\n\nvar sequencer = function sequencer(map, str) {\n var exploded = str.split('');\n exploded = exploded.map(map);\n return exploded.join('');\n};\n\n// custom formatter methods\ncolors.trap = require('./custom/trap');\ncolors.zalgo = require('./custom/zalgo');\n\n// maps\ncolors.maps = {};\ncolors.maps.america = require('./maps/america')(colors);\ncolors.maps.zebra = require('./maps/zebra')(colors);\ncolors.maps.rainbow = require('./maps/rainbow')(colors);\ncolors.maps.random = require('./maps/random')(colors);\n\nfor (var map in colors.maps) {\n (function(map) {\n colors[map] = function(str) {\n return sequencer(colors.maps[map], str);\n };\n })(map);\n}\n\ndefineProps(colors, init());\n",
319
- "//\n// Remark: Requiring this file will use the \"safe\" colors API,\n// which will not touch String.prototype.\n//\n// var colors = require('colors/safe');\n// colors.red(\"foo\")\n//\n//\nvar colors = require('./lib/colors');\nmodule['exports'] = colors;\n",
320
- "/**\n * cli.js: Config that conform to commonly used CLI logging levels.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * Default levels for the CLI configuration.\n * @type {Object}\n */\nexports.levels = {\n error: 0,\n warn: 1,\n help: 2,\n data: 3,\n info: 4,\n debug: 5,\n prompt: 6,\n verbose: 7,\n input: 8,\n silly: 9\n};\n\n/**\n * Default colors for the CLI configuration.\n * @type {Object}\n */\nexports.colors = {\n error: 'red',\n warn: 'yellow',\n help: 'cyan',\n data: 'grey',\n info: 'green',\n debug: 'blue',\n prompt: 'grey',\n verbose: 'cyan',\n input: 'grey',\n silly: 'magenta'\n};\n",
321
- "/**\n * npm.js: Config that conform to npm logging levels.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * Default levels for the npm configuration.\n * @type {Object}\n */\nexports.levels = {\n error: 0,\n warn: 1,\n info: 2,\n http: 3,\n verbose: 4,\n debug: 5,\n silly: 6\n};\n\n/**\n * Default levels for the npm configuration.\n * @type {Object}\n */\nexports.colors = {\n error: 'red',\n warn: 'yellow',\n info: 'green',\n http: 'green',\n verbose: 'cyan',\n debug: 'blue',\n silly: 'magenta'\n};\n",
322
- "/**\n * syslog.js: Config that conform to syslog logging levels.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * Default levels for the syslog configuration.\n * @type {Object}\n */\nexports.levels = {\n emerg: 0,\n alert: 1,\n crit: 2,\n error: 3,\n warning: 4,\n notice: 5,\n info: 6,\n debug: 7\n};\n\n/**\n * Default levels for the syslog configuration.\n * @type {Object}\n */\nexports.colors = {\n emerg: 'red',\n alert: 'yellow',\n crit: 'red',\n error: 'red',\n warning: 'red',\n notice: 'yellow',\n info: 'green',\n debug: 'blue'\n};\n",
323
- "/**\n * index.js: Default settings for all levels that winston knows about.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * Export config set for the CLI.\n * @type {Object}\n */\nObject.defineProperty(exports, 'cli', {\n value: require('./cli')\n});\n\n/**\n * Export config set for npm.\n * @type {Object}\n */\nObject.defineProperty(exports, 'npm', {\n value: require('./npm')\n});\n\n/**\n * Export config set for the syslog.\n * @type {Object}\n */\nObject.defineProperty(exports, 'syslog', {\n value: require('./syslog')\n});\n",
324
- "'use strict';\n\n/**\n * A shareable symbol constant that can be used\n * as a non-enumerable / semi-hidden level identifier\n * to allow the readable level property to be mutable for\n * operations like colorization\n *\n * @type {Symbol}\n */\nObject.defineProperty(exports, 'LEVEL', {\n value: Symbol.for('level')\n});\n\n/**\n * A shareable symbol constant that can be used\n * as a non-enumerable / semi-hidden message identifier\n * to allow the final message property to not have\n * side effects on another.\n *\n * @type {Symbol}\n */\nObject.defineProperty(exports, 'MESSAGE', {\n value: Symbol.for('message')\n});\n\n/**\n * A shareable symbol constant that can be used\n * as a non-enumerable / semi-hidden message identifier\n * to allow the extracted splat property be hidden\n *\n * @type {Symbol}\n */\nObject.defineProperty(exports, 'SPLAT', {\n value: Symbol.for('splat')\n});\n\n/**\n * A shareable object constant that can be used\n * as a standard configuration for winston@3.\n *\n * @type {Object}\n */\nObject.defineProperty(exports, 'configs', {\n value: require('./config')\n});\n",
325
- "'use strict';\n\nconst colors = require('@colors/colors/safe');\nconst { LEVEL, MESSAGE } = require('triple-beam');\n\n//\n// Fix colors not appearing in non-tty environments\n//\ncolors.enabled = true;\n\n/**\n * @property {RegExp} hasSpace\n * Simple regex to check for presence of spaces.\n */\nconst hasSpace = /\\s+/;\n\n/*\n * Colorizer format. Wraps the `level` and/or `message` properties\n * of the `info` objects with ANSI color codes based on a few options.\n */\nclass Colorizer {\n constructor(opts = {}) {\n if (opts.colors) {\n this.addColors(opts.colors);\n }\n\n this.options = opts;\n }\n\n /*\n * Adds the colors Object to the set of allColors\n * known by the Colorizer\n *\n * @param {Object} colors Set of color mappings to add.\n */\n static addColors(clrs) {\n const nextColors = Object.keys(clrs).reduce((acc, level) => {\n acc[level] = hasSpace.test(clrs[level])\n ? clrs[level].split(hasSpace)\n : clrs[level];\n\n return acc;\n }, {});\n\n Colorizer.allColors = Object.assign({}, Colorizer.allColors || {}, nextColors);\n return Colorizer.allColors;\n }\n\n /*\n * Adds the colors Object to the set of allColors\n * known by the Colorizer\n *\n * @param {Object} colors Set of color mappings to add.\n */\n addColors(clrs) {\n return Colorizer.addColors(clrs);\n }\n\n /*\n * function colorize (lookup, level, message)\n * Performs multi-step colorization using @colors/colors/safe\n */\n colorize(lookup, level, message) {\n if (typeof message === 'undefined') {\n message = level;\n }\n\n //\n // If the color for the level is just a string\n // then attempt to colorize the message with it.\n //\n if (!Array.isArray(Colorizer.allColors[lookup])) {\n return colors[Colorizer.allColors[lookup]](message);\n }\n\n //\n // If it is an Array then iterate over that Array, applying\n // the colors function for each item.\n //\n for (let i = 0, len = Colorizer.allColors[lookup].length; i < len; i++) {\n message = colors[Colorizer.allColors[lookup][i]](message);\n }\n\n return message;\n }\n\n /*\n * function transform (info, opts)\n * Attempts to colorize the { level, message } of the given\n * `logform` info object.\n */\n transform(info, opts) {\n if (opts.all && typeof info[MESSAGE] === 'string') {\n info[MESSAGE] = this.colorize(info[LEVEL], info.level, info[MESSAGE]);\n }\n\n if (opts.level || opts.all || !opts.message) {\n info.level = this.colorize(info[LEVEL], info.level);\n }\n\n if (opts.all || opts.message) {\n info.message = this.colorize(info[LEVEL], info.level, info.message);\n }\n\n return info;\n }\n}\n\n/*\n * function colorize (info)\n * Returns a new instance of the colorize Format that applies\n * level colors to `info` objects. This was previously exposed\n * as { colorize: true } to transports in `winston < 3.0.0`.\n */\nmodule.exports = opts => new Colorizer(opts);\n\n//\n// Attach the Colorizer for registration purposes\n//\nmodule.exports.Colorizer\n = module.exports.Format\n = Colorizer;\n",
326
- "'use strict';\n\nconst { Colorizer } = require('./colorize');\n\n/*\n * Simple method to register colors with a simpler require\n * path within the module.\n */\nmodule.exports = config => {\n Colorizer.addColors(config.colors || config);\n return config;\n};\n",
327
- "'use strict';\n\nconst format = require('./format');\n\n/*\n * function align (info)\n * Returns a new instance of the align Format which adds a `\\t`\n * delimiter before the message to properly align it in the same place.\n * It was previously { align: true } in winston < 3.0.0\n */\nmodule.exports = format(info => {\n info.message = `\\t${info.message}`;\n return info;\n});\n",
328
- "/* eslint no-undefined: 0 */\n'use strict';\n\nconst format = require('./format');\nconst { LEVEL, MESSAGE } = require('triple-beam');\n\n/*\n * function errors (info)\n * If the `message` property of the `info` object is an instance of `Error`,\n * replace the `Error` object its own `message` property.\n *\n * Optionally, the Error's `stack` and/or `cause` properties can also be appended to the `info` object.\n */\nmodule.exports = format((einfo, { stack, cause }) => {\n if (einfo instanceof Error) {\n const info = Object.assign({}, einfo, {\n level: einfo.level,\n [LEVEL]: einfo[LEVEL] || einfo.level,\n message: einfo.message,\n [MESSAGE]: einfo[MESSAGE] || einfo.message\n });\n\n if (stack) info.stack = einfo.stack;\n if (cause) info.cause = einfo.cause;\n return info;\n }\n\n if (!(einfo.message instanceof Error)) return einfo;\n\n // Assign all enumerable properties and the\n // message property from the error provided.\n const err = einfo.message;\n Object.assign(einfo, err);\n einfo.message = err.message;\n einfo[MESSAGE] = err.message;\n\n // Assign the stack and/or cause if requested.\n if (stack) einfo.stack = err.stack;\n if (cause) einfo.cause = err.cause;\n return einfo;\n});\n",
329
- "/* eslint no-unused-vars: 0 */\n'use strict';\n\nconst { configs, LEVEL, MESSAGE } = require('triple-beam');\n\nclass Padder {\n constructor(opts = { levels: configs.npm.levels }) {\n this.paddings = Padder.paddingForLevels(opts.levels, opts.filler);\n this.options = opts;\n }\n\n /**\n * Returns the maximum length of keys in the specified `levels` Object.\n * @param {Object} levels Set of all levels to calculate longest level against.\n * @returns {Number} Maximum length of the longest level string.\n */\n static getLongestLevel(levels) {\n const lvls = Object.keys(levels).map(level => level.length);\n return Math.max(...lvls);\n }\n\n /**\n * Returns the padding for the specified `level` assuming that the\n * maximum length of all levels it's associated with is `maxLength`.\n * @param {String} level Level to calculate padding for.\n * @param {String} filler Repeatable text to use for padding.\n * @param {Number} maxLength Length of the longest level\n * @returns {String} Padding string for the `level`\n */\n static paddingForLevel(level, filler, maxLength) {\n const targetLen = maxLength + 1 - level.length;\n const rep = Math.floor(targetLen / filler.length);\n const padding = `${filler}${filler.repeat(rep)}`;\n return padding.slice(0, targetLen);\n }\n\n /**\n * Returns an object with the string paddings for the given `levels`\n * using the specified `filler`.\n * @param {Object} levels Set of all levels to calculate padding for.\n * @param {String} filler Repeatable text to use for padding.\n * @returns {Object} Mapping of level to desired padding.\n */\n static paddingForLevels(levels, filler = ' ') {\n const maxLength = Padder.getLongestLevel(levels);\n return Object.keys(levels).reduce((acc, level) => {\n acc[level] = Padder.paddingForLevel(level, filler, maxLength);\n return acc;\n }, {});\n }\n\n /**\n * Prepends the padding onto the `message` based on the `LEVEL` of\n * the `info`. This is based on the behavior of `winston@2` which also\n * prepended the level onto the message.\n *\n * See: https://github.com/winstonjs/winston/blob/2.x/lib/winston/logger.js#L198-L201\n *\n * @param {Info} info Logform info object\n * @param {Object} opts Options passed along to this instance.\n * @returns {Info} Modified logform info object.\n */\n transform(info, opts) {\n info.message = `${this.paddings[info[LEVEL]]}${info.message}`;\n if (info[MESSAGE]) {\n info[MESSAGE] = `${this.paddings[info[LEVEL]]}${info[MESSAGE]}`;\n }\n\n return info;\n }\n}\n\n/*\n * function padLevels (info)\n * Returns a new instance of the padLevels Format which pads\n * levels to be the same length. This was previously exposed as\n * { padLevels: true } to transports in `winston < 3.0.0`.\n */\nmodule.exports = opts => new Padder(opts);\n\nmodule.exports.Padder\n = module.exports.Format\n = Padder;\n",
330
- "'use strict';\n\nconst { Colorizer } = require('./colorize');\nconst { Padder } = require('./pad-levels');\nconst { configs, MESSAGE } = require('triple-beam');\n\n\n/**\n * Cli format class that handles initial state for a a separate\n * Colorizer and Padder instance.\n */\nclass CliFormat {\n constructor(opts = {}) {\n if (!opts.levels) {\n opts.levels = configs.cli.levels;\n }\n\n this.colorizer = new Colorizer(opts);\n this.padder = new Padder(opts);\n this.options = opts;\n }\n\n /*\n * function transform (info, opts)\n * Attempts to both:\n * 1. Pad the { level }\n * 2. Colorize the { level, message }\n * of the given `logform` info object depending on the `opts`.\n */\n transform(info, opts) {\n this.colorizer.transform(\n this.padder.transform(info, opts),\n opts\n );\n\n info[MESSAGE] = `${info.level}:${info.message}`;\n return info;\n }\n}\n\n/*\n * function cli (opts)\n * Returns a new instance of the CLI format that turns a log\n * `info` object into the same format previously available\n * in `winston.cli()` in `winston < 3.0.0`.\n */\nmodule.exports = opts => new CliFormat(opts);\n\n//\n// Attach the CliFormat for registration purposes\n//\nmodule.exports.Format = CliFormat;\n",
331
- "'use strict';\n\nconst format = require('./format');\n\n/*\n * function cascade(formats)\n * Returns a function that invokes the `._format` function in-order\n * for the specified set of `formats`. In this manner we say that Formats\n * are \"pipe-like\", but not a pure pumpify implementation. Since there is no back\n * pressure we can remove all of the \"readable\" plumbing in Node streams.\n */\nfunction cascade(formats) {\n if (!formats.every(isValidFormat)) {\n return;\n }\n\n return info => {\n let obj = info;\n for (let i = 0; i < formats.length; i++) {\n obj = formats[i].transform(obj, formats[i].options);\n if (!obj) {\n return false;\n }\n }\n\n return obj;\n };\n}\n\n/*\n * function isValidFormat(format)\n * If the format does not define a `transform` function throw an error\n * with more detailed usage.\n */\nfunction isValidFormat(fmt) {\n if (typeof fmt.transform !== 'function') {\n throw new Error([\n 'No transform function found on format. Did you create a format instance?',\n 'const myFormat = format(formatFn);',\n 'const instance = myFormat();'\n ].join('\\n'));\n }\n\n return true;\n}\n\n/*\n * function combine (info)\n * Returns a new instance of the combine Format which combines the specified\n * formats into a new format. This is similar to a pipe-chain in transform streams.\n * We choose to combine the prototypes this way because there is no back pressure in\n * an in-memory transform chain.\n */\nmodule.exports = (...formats) => {\n const combinedFormat = format(cascade(formats));\n const instance = combinedFormat();\n instance.Format = combinedFormat.Format;\n return instance;\n};\n\n//\n// Export the cascade method for use in cli and other\n// combined formats that should not be assumed to be\n// singletons.\n//\nmodule.exports.cascade = cascade;\n",
332
- "'use strict'\n\nconst { hasOwnProperty } = Object.prototype\n\nconst stringify = configure()\n\n// @ts-expect-error\nstringify.configure = configure\n// @ts-expect-error\nstringify.stringify = stringify\n\n// @ts-expect-error\nstringify.default = stringify\n\n// @ts-expect-error used for named export\nexports.stringify = stringify\n// @ts-expect-error used for named export\nexports.configure = configure\n\nmodule.exports = stringify\n\n// eslint-disable-next-line no-control-regex\nconst strEscapeSequencesRegExp = /[\\u0000-\\u001f\\u0022\\u005c\\ud800-\\udfff]/\n\n// Escape C0 control characters, double quotes, the backslash and every code\n// unit with a numeric value in the inclusive range 0xD800 to 0xDFFF.\nfunction strEscape (str) {\n // Some magic numbers that worked out fine while benchmarking with v8 8.0\n if (str.length < 5000 && !strEscapeSequencesRegExp.test(str)) {\n return `\"${str}\"`\n }\n return JSON.stringify(str)\n}\n\nfunction sort (array, comparator) {\n // Insertion sort is very efficient for small input sizes, but it has a bad\n // worst case complexity. Thus, use native array sort for bigger values.\n if (array.length > 2e2 || comparator) {\n return array.sort(comparator)\n }\n for (let i = 1; i < array.length; i++) {\n const currentValue = array[i]\n let position = i\n while (position !== 0 && array[position - 1] > currentValue) {\n array[position] = array[position - 1]\n position--\n }\n array[position] = currentValue\n }\n return array\n}\n\nconst typedArrayPrototypeGetSymbolToStringTag =\n Object.getOwnPropertyDescriptor(\n Object.getPrototypeOf(\n Object.getPrototypeOf(\n new Int8Array()\n )\n ),\n Symbol.toStringTag\n ).get\n\nfunction isTypedArrayWithEntries (value) {\n return typedArrayPrototypeGetSymbolToStringTag.call(value) !== undefined && value.length !== 0\n}\n\nfunction stringifyTypedArray (array, separator, maximumBreadth) {\n if (array.length < maximumBreadth) {\n maximumBreadth = array.length\n }\n const whitespace = separator === ',' ? '' : ' '\n let res = `\"0\":${whitespace}${array[0]}`\n for (let i = 1; i < maximumBreadth; i++) {\n res += `${separator}\"${i}\":${whitespace}${array[i]}`\n }\n return res\n}\n\nfunction getCircularValueOption (options) {\n if (hasOwnProperty.call(options, 'circularValue')) {\n const circularValue = options.circularValue\n if (typeof circularValue === 'string') {\n return `\"${circularValue}\"`\n }\n if (circularValue == null) {\n return circularValue\n }\n if (circularValue === Error || circularValue === TypeError) {\n return {\n toString () {\n throw new TypeError('Converting circular structure to JSON')\n }\n }\n }\n throw new TypeError('The \"circularValue\" argument must be of type string or the value null or undefined')\n }\n return '\"[Circular]\"'\n}\n\nfunction getDeterministicOption (options) {\n let value\n if (hasOwnProperty.call(options, 'deterministic')) {\n value = options.deterministic\n if (typeof value !== 'boolean' && typeof value !== 'function') {\n throw new TypeError('The \"deterministic\" argument must be of type boolean or comparator function')\n }\n }\n return value === undefined ? true : value\n}\n\nfunction getBooleanOption (options, key) {\n let value\n if (hasOwnProperty.call(options, key)) {\n value = options[key]\n if (typeof value !== 'boolean') {\n throw new TypeError(`The \"${key}\" argument must be of type boolean`)\n }\n }\n return value === undefined ? true : value\n}\n\nfunction getPositiveIntegerOption (options, key) {\n let value\n if (hasOwnProperty.call(options, key)) {\n value = options[key]\n if (typeof value !== 'number') {\n throw new TypeError(`The \"${key}\" argument must be of type number`)\n }\n if (!Number.isInteger(value)) {\n throw new TypeError(`The \"${key}\" argument must be an integer`)\n }\n if (value < 1) {\n throw new RangeError(`The \"${key}\" argument must be >= 1`)\n }\n }\n return value === undefined ? Infinity : value\n}\n\nfunction getItemCount (number) {\n if (number === 1) {\n return '1 item'\n }\n return `${number} items`\n}\n\nfunction getUniqueReplacerSet (replacerArray) {\n const replacerSet = new Set()\n for (const value of replacerArray) {\n if (typeof value === 'string' || typeof value === 'number') {\n replacerSet.add(String(value))\n }\n }\n return replacerSet\n}\n\nfunction getStrictOption (options) {\n if (hasOwnProperty.call(options, 'strict')) {\n const value = options.strict\n if (typeof value !== 'boolean') {\n throw new TypeError('The \"strict\" argument must be of type boolean')\n }\n if (value) {\n return (value) => {\n let message = `Object can not safely be stringified. Received type ${typeof value}`\n if (typeof value !== 'function') message += ` (${value.toString()})`\n throw new Error(message)\n }\n }\n }\n}\n\nfunction configure (options) {\n options = { ...options }\n const fail = getStrictOption(options)\n if (fail) {\n if (options.bigint === undefined) {\n options.bigint = false\n }\n if (!('circularValue' in options)) {\n options.circularValue = Error\n }\n }\n const circularValue = getCircularValueOption(options)\n const bigint = getBooleanOption(options, 'bigint')\n const deterministic = getDeterministicOption(options)\n const comparator = typeof deterministic === 'function' ? deterministic : undefined\n const maximumDepth = getPositiveIntegerOption(options, 'maximumDepth')\n const maximumBreadth = getPositiveIntegerOption(options, 'maximumBreadth')\n\n function stringifyFnReplacer (key, parent, stack, replacer, spacer, indentation) {\n let value = parent[key]\n\n if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n value = replacer.call(parent, key, value)\n\n switch (typeof value) {\n case 'string':\n return strEscape(value)\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n let res = ''\n let join = ','\n const originalIndentation = indentation\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n if (spacer !== '') {\n indentation += spacer\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n }\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyFnReplacer(String(i), value, stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyFnReplacer(String(i), value, stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n if (spacer !== '') {\n res += `\\n${originalIndentation}`\n }\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n let whitespace = ''\n let separator = ''\n if (spacer !== '') {\n indentation += spacer\n join = `,\\n${indentation}`\n whitespace = ' '\n }\n const maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (deterministic && !isTypedArrayWithEntries(value)) {\n keys = sort(keys, comparator)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifyFnReplacer(key, value, stack, replacer, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}${strEscape(key)}:${whitespace}${tmp}`\n separator = join\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\":${whitespace}\"${getItemCount(removedKeys)} not stringified\"`\n separator = join\n }\n if (spacer !== '' && separator.length > 1) {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifyArrayReplacer (key, value, stack, replacer, spacer, indentation) {\n if (typeof value === 'object' && value !== null && typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n }\n\n switch (typeof value) {\n case 'string':\n return strEscape(value)\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n const originalIndentation = indentation\n let res = ''\n let join = ','\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n if (spacer !== '') {\n indentation += spacer\n res += `\\n${indentation}`\n join = `,\\n${indentation}`\n }\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyArrayReplacer(String(i), value[i], stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyArrayReplacer(String(i), value[i], stack, replacer, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n if (spacer !== '') {\n res += `\\n${originalIndentation}`\n }\n stack.pop()\n return `[${res}]`\n }\n stack.push(value)\n let whitespace = ''\n if (spacer !== '') {\n indentation += spacer\n join = `,\\n${indentation}`\n whitespace = ' '\n }\n let separator = ''\n for (const key of replacer) {\n const tmp = stringifyArrayReplacer(key, value[key], stack, replacer, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}${strEscape(key)}:${whitespace}${tmp}`\n separator = join\n }\n }\n if (spacer !== '' && separator.length > 1) {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifyIndent (key, value, stack, spacer, indentation) {\n switch (typeof value) {\n case 'string':\n return strEscape(value)\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n // Prevent calling `toJSON` again.\n if (typeof value !== 'object') {\n return stringifyIndent(key, value, stack, spacer, indentation)\n }\n if (value === null) {\n return 'null'\n }\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n const originalIndentation = indentation\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n indentation += spacer\n let res = `\\n${indentation}`\n const join = `,\\n${indentation}`\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifyIndent(String(i), value[i], stack, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n res += join\n }\n const tmp = stringifyIndent(String(i), value[i], stack, spacer, indentation)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `${join}\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n res += `\\n${originalIndentation}`\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n indentation += spacer\n const join = `,\\n${indentation}`\n let res = ''\n let separator = ''\n let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (isTypedArrayWithEntries(value)) {\n res += stringifyTypedArray(value, join, maximumBreadth)\n keys = keys.slice(value.length)\n maximumPropertiesToStringify -= value.length\n separator = join\n }\n if (deterministic) {\n keys = sort(keys, comparator)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifyIndent(key, value[key], stack, spacer, indentation)\n if (tmp !== undefined) {\n res += `${separator}${strEscape(key)}: ${tmp}`\n separator = join\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\": \"${getItemCount(removedKeys)} not stringified\"`\n separator = join\n }\n if (separator !== '') {\n res = `\\n${indentation}${res}\\n${originalIndentation}`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringifySimple (key, value, stack) {\n switch (typeof value) {\n case 'string':\n return strEscape(value)\n case 'object': {\n if (value === null) {\n return 'null'\n }\n if (typeof value.toJSON === 'function') {\n value = value.toJSON(key)\n // Prevent calling `toJSON` again\n if (typeof value !== 'object') {\n return stringifySimple(key, value, stack)\n }\n if (value === null) {\n return 'null'\n }\n }\n if (stack.indexOf(value) !== -1) {\n return circularValue\n }\n\n let res = ''\n\n const hasLength = value.length !== undefined\n if (hasLength && Array.isArray(value)) {\n if (value.length === 0) {\n return '[]'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Array]\"'\n }\n stack.push(value)\n const maximumValuesToStringify = Math.min(value.length, maximumBreadth)\n let i = 0\n for (; i < maximumValuesToStringify - 1; i++) {\n const tmp = stringifySimple(String(i), value[i], stack)\n res += tmp !== undefined ? tmp : 'null'\n res += ','\n }\n const tmp = stringifySimple(String(i), value[i], stack)\n res += tmp !== undefined ? tmp : 'null'\n if (value.length - 1 > maximumBreadth) {\n const removedKeys = value.length - maximumBreadth - 1\n res += `,\"... ${getItemCount(removedKeys)} not stringified\"`\n }\n stack.pop()\n return `[${res}]`\n }\n\n let keys = Object.keys(value)\n const keyLength = keys.length\n if (keyLength === 0) {\n return '{}'\n }\n if (maximumDepth < stack.length + 1) {\n return '\"[Object]\"'\n }\n let separator = ''\n let maximumPropertiesToStringify = Math.min(keyLength, maximumBreadth)\n if (hasLength && isTypedArrayWithEntries(value)) {\n res += stringifyTypedArray(value, ',', maximumBreadth)\n keys = keys.slice(value.length)\n maximumPropertiesToStringify -= value.length\n separator = ','\n }\n if (deterministic) {\n keys = sort(keys, comparator)\n }\n stack.push(value)\n for (let i = 0; i < maximumPropertiesToStringify; i++) {\n const key = keys[i]\n const tmp = stringifySimple(key, value[key], stack)\n if (tmp !== undefined) {\n res += `${separator}${strEscape(key)}:${tmp}`\n separator = ','\n }\n }\n if (keyLength > maximumBreadth) {\n const removedKeys = keyLength - maximumBreadth\n res += `${separator}\"...\":\"${getItemCount(removedKeys)} not stringified\"`\n }\n stack.pop()\n return `{${res}}`\n }\n case 'number':\n return isFinite(value) ? String(value) : fail ? fail(value) : 'null'\n case 'boolean':\n return value === true ? 'true' : 'false'\n case 'undefined':\n return undefined\n case 'bigint':\n if (bigint) {\n return String(value)\n }\n // fallthrough\n default:\n return fail ? fail(value) : undefined\n }\n }\n\n function stringify (value, replacer, space) {\n if (arguments.length > 1) {\n let spacer = ''\n if (typeof space === 'number') {\n spacer = ' '.repeat(Math.min(space, 10))\n } else if (typeof space === 'string') {\n spacer = space.slice(0, 10)\n }\n if (replacer != null) {\n if (typeof replacer === 'function') {\n return stringifyFnReplacer('', { '': value }, [], replacer, spacer, '')\n }\n if (Array.isArray(replacer)) {\n return stringifyArrayReplacer('', value, [], getUniqueReplacerSet(replacer), spacer, '')\n }\n }\n if (spacer.length !== 0) {\n return stringifyIndent('', value, [], spacer, '')\n }\n }\n return stringifySimple('', value, [])\n }\n\n return stringify\n}\n",
333
- "'use strict';\n\nconst format = require('./format');\nconst { MESSAGE } = require('triple-beam');\nconst stringify = require('safe-stable-stringify');\n\n/*\n * function replacer (key, value)\n * Handles proper stringification of Buffer and bigint output.\n */\nfunction replacer(key, value) {\n // safe-stable-stringify does support BigInt, however, it doesn't wrap the value in quotes.\n // Leading to a loss in fidelity if the resulting string is parsed.\n // It would also be a breaking change for logform.\n if (typeof value === 'bigint')\n return value.toString();\n return value;\n}\n\n/*\n * function json (info)\n * Returns a new instance of the JSON format that turns a log `info`\n * object into pure JSON. This was previously exposed as { json: true }\n * to transports in `winston < 3.0.0`.\n */\nmodule.exports = format((info, opts) => {\n const jsonStringify = stringify.configure(opts);\n info[MESSAGE] = jsonStringify(info, opts.replacer || replacer, opts.space);\n return info;\n});\n",
334
- "'use strict';\n\nconst format = require('./format');\n\n/*\n * function label (info)\n * Returns a new instance of the label Format which adds the specified\n * `opts.label` before the message. This was previously exposed as\n * { label: 'my label' } to transports in `winston < 3.0.0`.\n */\nmodule.exports = format((info, opts) => {\n if (opts.message) {\n info.message = `[${opts.label}] ${info.message}`;\n return info;\n }\n\n info.label = opts.label;\n return info;\n});\n",
335
- "'use strict';\n\nconst format = require('./format');\nconst { MESSAGE } = require('triple-beam');\nconst jsonStringify = require('safe-stable-stringify');\n\n/*\n * function logstash (info)\n * Returns a new instance of the LogStash Format that turns a\n * log `info` object into pure JSON with the appropriate logstash\n * options. This was previously exposed as { logstash: true }\n * to transports in `winston < 3.0.0`.\n */\nmodule.exports = format(info => {\n const logstash = {};\n if (info.message) {\n logstash['@message'] = info.message;\n delete info.message;\n }\n\n if (info.timestamp) {\n logstash['@timestamp'] = info.timestamp;\n delete info.timestamp;\n }\n\n logstash['@fields'] = info;\n info[MESSAGE] = jsonStringify(logstash);\n return info;\n});\n",
336
- "'use strict';\n\nconst format = require('./format');\n\nfunction fillExcept(info, fillExceptKeys, metadataKey) {\n const savedKeys = fillExceptKeys.reduce((acc, key) => {\n acc[key] = info[key];\n delete info[key];\n return acc;\n }, {});\n const metadata = Object.keys(info).reduce((acc, key) => {\n acc[key] = info[key];\n delete info[key];\n return acc;\n }, {});\n\n Object.assign(info, savedKeys, {\n [metadataKey]: metadata\n });\n return info;\n}\n\nfunction fillWith(info, fillWithKeys, metadataKey) {\n info[metadataKey] = fillWithKeys.reduce((acc, key) => {\n acc[key] = info[key];\n delete info[key];\n return acc;\n }, {});\n return info;\n}\n\n/**\n * Adds in a \"metadata\" object to collect extraneous data, similar to the metadata\n * object in winston 2.x.\n */\nmodule.exports = format((info, opts = {}) => {\n let metadataKey = 'metadata';\n if (opts.key) {\n metadataKey = opts.key;\n }\n\n let fillExceptKeys = [];\n if (!opts.fillExcept && !opts.fillWith) {\n fillExceptKeys.push('level');\n fillExceptKeys.push('message');\n }\n\n if (opts.fillExcept) {\n fillExceptKeys = opts.fillExcept;\n }\n\n if (fillExceptKeys.length > 0) {\n return fillExcept(info, fillExceptKeys, metadataKey);\n }\n\n if (opts.fillWith) {\n return fillWith(info, opts.fillWith, metadataKey);\n }\n\n return info;\n});\n",
337
- "/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n",
338
- "'use strict';\n\nconst format = require('./format');\nconst ms = require('ms');\n\n/*\n * function ms (info)\n * Returns an `info` with a `ms` property. The `ms` property holds the Value\n * of the time difference between two calls in milliseconds.\n */\nmodule.exports = format(info => {\n const curr = +new Date();\n this.diff = curr - (this.prevTime || curr);\n this.prevTime = curr;\n info.ms = `+${ms(this.diff)}`;\n\n return info;\n});\n",
339
- "'use strict';\n\nconst inspect = require('util').inspect;\nconst format = require('./format');\nconst { LEVEL, MESSAGE, SPLAT } = require('triple-beam');\n\n/*\n * function prettyPrint (info)\n * Returns a new instance of the prettyPrint Format that \"prettyPrint\"\n * serializes `info` objects. This was previously exposed as\n * { prettyPrint: true } to transports in `winston < 3.0.0`.\n */\nmodule.exports = format((info, opts = {}) => {\n //\n // info[{LEVEL, MESSAGE, SPLAT}] are enumerable here. Since they\n // are internal, we remove them before util.inspect so they\n // are not printed.\n //\n const stripped = Object.assign({}, info);\n\n // Remark (indexzero): update this technique in April 2019\n // when node@6 is EOL\n delete stripped[LEVEL];\n delete stripped[MESSAGE];\n delete stripped[SPLAT];\n\n info[MESSAGE] = inspect(stripped, false, opts.depth || null, opts.colorize);\n return info;\n});\n",
340
- "'use strict';\n\nconst { MESSAGE } = require('triple-beam');\n\nclass Printf {\n constructor(templateFn) {\n this.template = templateFn;\n }\n\n transform(info) {\n info[MESSAGE] = this.template(info);\n return info;\n }\n}\n\n/*\n * function printf (templateFn)\n * Returns a new instance of the printf Format that creates an\n * intermediate prototype to store the template string-based formatter\n * function.\n */\nmodule.exports = opts => new Printf(opts);\n\nmodule.exports.Printf\n = module.exports.Format\n = Printf;\n",
341
- "/* eslint no-undefined: 0 */\n'use strict';\n\nconst format = require('./format');\nconst { MESSAGE } = require('triple-beam');\nconst jsonStringify = require('safe-stable-stringify');\n\n/*\n * function simple (info)\n * Returns a new instance of the simple format TransformStream\n * which writes a simple representation of logs.\n *\n * const { level, message, splat, ...rest } = info;\n *\n * ${level}: ${message} if rest is empty\n * ${level}: ${message} ${JSON.stringify(rest)} otherwise\n */\nmodule.exports = format(info => {\n const stringifiedRest = jsonStringify(Object.assign({}, info, {\n level: undefined,\n message: undefined,\n splat: undefined\n }));\n\n const padding = info.padding && info.padding[info.level] || '';\n if (stringifiedRest !== '{}') {\n info[MESSAGE] = `${info.level}:${padding} ${info.message} ${stringifiedRest}`;\n } else {\n info[MESSAGE] = `${info.level}:${padding} ${info.message}`;\n }\n\n return info;\n});\n",
342
- "'use strict';\n\nconst util = require('util');\nconst { SPLAT } = require('triple-beam');\n\n/**\n * Captures the number of format (i.e. %s strings) in a given string.\n * Based on `util.format`, see Node.js source:\n * https://github.com/nodejs/node/blob/b1c8f15c5f169e021f7c46eb7b219de95fe97603/lib/util.js#L201-L230\n * @type {RegExp}\n */\nconst formatRegExp = /%[scdjifoO%]/g;\n\n/**\n * Captures the number of escaped % signs in a format string (i.e. %s strings).\n * @type {RegExp}\n */\nconst escapedPercent = /%%/g;\n\nclass Splatter {\n constructor(opts) {\n this.options = opts;\n }\n\n /**\n * Check to see if tokens <= splat.length, assign { splat, meta } into the\n * `info` accordingly, and write to this instance.\n *\n * @param {Info} info Logform info message.\n * @param {String[]} tokens Set of string interpolation tokens.\n * @returns {Info} Modified info message\n * @private\n */\n _splat(info, tokens) {\n const msg = info.message;\n const splat = info[SPLAT] || info.splat || [];\n const percents = msg.match(escapedPercent);\n const escapes = percents && percents.length || 0;\n\n // The expected splat is the number of tokens minus the number of escapes\n // e.g.\n // - { expectedSplat: 3 } '%d %s %j'\n // - { expectedSplat: 5 } '[%s] %d%% %d%% %s %j'\n //\n // Any \"meta\" will be arugments in addition to the expected splat size\n // regardless of type. e.g.\n //\n // logger.log('info', '%d%% %s %j', 100, 'wow', { such: 'js' }, { thisIsMeta: true });\n // would result in splat of four (4), but only three (3) are expected. Therefore:\n //\n // extraSplat = 3 - 4 = -1\n // metas = [100, 'wow', { such: 'js' }, { thisIsMeta: true }].splice(-1, -1 * -1);\n // splat = [100, 'wow', { such: 'js' }]\n const expectedSplat = tokens.length - escapes;\n const extraSplat = expectedSplat - splat.length;\n const metas = extraSplat < 0\n ? splat.splice(extraSplat, -1 * extraSplat)\n : [];\n\n // Now that { splat } has been separated from any potential { meta }. we\n // can assign this to the `info` object and write it to our format stream.\n // If the additional metas are **NOT** objects or **LACK** enumerable properties\n // you are going to have a bad time.\n const metalen = metas.length;\n if (metalen) {\n for (let i = 0; i < metalen; i++) {\n Object.assign(info, metas[i]);\n }\n }\n\n info.message = util.format(msg, ...splat);\n return info;\n }\n\n /**\n * Transforms the `info` message by using `util.format` to complete\n * any `info.message` provided it has string interpolation tokens.\n * If no tokens exist then `info` is immutable.\n *\n * @param {Info} info Logform info message.\n * @param {Object} opts Options for this instance.\n * @returns {Info} Modified info message\n */\n transform(info) {\n const msg = info.message;\n const splat = info[SPLAT] || info.splat;\n\n // No need to process anything if splat is undefined\n if (!splat || !splat.length) {\n return info;\n }\n\n // Extract tokens, if none available default to empty array to\n // ensure consistancy in expected results\n const tokens = msg && msg.match && msg.match(formatRegExp);\n\n // This condition will take care of inputs with info[SPLAT]\n // but no tokens present\n if (!tokens && (splat || splat.length)) {\n const metas = splat.length > 1\n ? splat.splice(0)\n : splat;\n\n // Now that { splat } has been separated from any potential { meta }. we\n // can assign this to the `info` object and write it to our format stream.\n // If the additional metas are **NOT** objects or **LACK** enumerable properties\n // you are going to have a bad time.\n const metalen = metas.length;\n if (metalen) {\n for (let i = 0; i < metalen; i++) {\n Object.assign(info, metas[i]);\n }\n }\n\n return info;\n }\n\n if (tokens) {\n return this._splat(info, tokens);\n }\n\n return info;\n }\n}\n\n/*\n * function splat (info)\n * Returns a new instance of the splat format TransformStream\n * which performs string interpolation from `info` objects. This was\n * previously exposed implicitly in `winston < 3.0.0`.\n */\nmodule.exports = opts => new Splatter(opts);\n",
343
- "(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.fecha = {})));\n}(this, (function (exports) { 'use strict';\n\n var token = /d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\\1?|[aA]|\"[^\"]*\"|'[^']*'/g;\n var twoDigitsOptional = \"\\\\d\\\\d?\";\n var twoDigits = \"\\\\d\\\\d\";\n var threeDigits = \"\\\\d{3}\";\n var fourDigits = \"\\\\d{4}\";\n var word = \"[^\\\\s]+\";\n var literal = /\\[([^]*?)\\]/gm;\n function shorten(arr, sLen) {\n var newArr = [];\n for (var i = 0, len = arr.length; i < len; i++) {\n newArr.push(arr[i].substr(0, sLen));\n }\n return newArr;\n }\n var monthUpdate = function (arrName) { return function (v, i18n) {\n var lowerCaseArr = i18n[arrName].map(function (v) { return v.toLowerCase(); });\n var index = lowerCaseArr.indexOf(v.toLowerCase());\n if (index > -1) {\n return index;\n }\n return null;\n }; };\n function assign(origObj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var obj = args_1[_a];\n for (var key in obj) {\n // @ts-ignore ex\n origObj[key] = obj[key];\n }\n }\n return origObj;\n }\n var dayNames = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ];\n var monthNames = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ];\n var monthNamesShort = shorten(monthNames, 3);\n var dayNamesShort = shorten(dayNames, 3);\n var defaultI18n = {\n dayNamesShort: dayNamesShort,\n dayNames: dayNames,\n monthNamesShort: monthNamesShort,\n monthNames: monthNames,\n amPm: [\"am\", \"pm\"],\n DoFn: function (dayOfMonth) {\n return (dayOfMonth +\n [\"th\", \"st\", \"nd\", \"rd\"][dayOfMonth % 10 > 3\n ? 0\n : ((dayOfMonth - (dayOfMonth % 10) !== 10 ? 1 : 0) * dayOfMonth) % 10]);\n }\n };\n var globalI18n = assign({}, defaultI18n);\n var setGlobalDateI18n = function (i18n) {\n return (globalI18n = assign(globalI18n, i18n));\n };\n var regexEscape = function (str) {\n return str.replace(/[|\\\\{()[^$+*?.-]/g, \"\\\\$&\");\n };\n var pad = function (val, len) {\n if (len === void 0) { len = 2; }\n val = String(val);\n while (val.length < len) {\n val = \"0\" + val;\n }\n return val;\n };\n var formatFlags = {\n D: function (dateObj) { return String(dateObj.getDate()); },\n DD: function (dateObj) { return pad(dateObj.getDate()); },\n Do: function (dateObj, i18n) {\n return i18n.DoFn(dateObj.getDate());\n },\n d: function (dateObj) { return String(dateObj.getDay()); },\n dd: function (dateObj) { return pad(dateObj.getDay()); },\n ddd: function (dateObj, i18n) {\n return i18n.dayNamesShort[dateObj.getDay()];\n },\n dddd: function (dateObj, i18n) {\n return i18n.dayNames[dateObj.getDay()];\n },\n M: function (dateObj) { return String(dateObj.getMonth() + 1); },\n MM: function (dateObj) { return pad(dateObj.getMonth() + 1); },\n MMM: function (dateObj, i18n) {\n return i18n.monthNamesShort[dateObj.getMonth()];\n },\n MMMM: function (dateObj, i18n) {\n return i18n.monthNames[dateObj.getMonth()];\n },\n YY: function (dateObj) {\n return pad(String(dateObj.getFullYear()), 4).substr(2);\n },\n YYYY: function (dateObj) { return pad(dateObj.getFullYear(), 4); },\n h: function (dateObj) { return String(dateObj.getHours() % 12 || 12); },\n hh: function (dateObj) { return pad(dateObj.getHours() % 12 || 12); },\n H: function (dateObj) { return String(dateObj.getHours()); },\n HH: function (dateObj) { return pad(dateObj.getHours()); },\n m: function (dateObj) { return String(dateObj.getMinutes()); },\n mm: function (dateObj) { return pad(dateObj.getMinutes()); },\n s: function (dateObj) { return String(dateObj.getSeconds()); },\n ss: function (dateObj) { return pad(dateObj.getSeconds()); },\n S: function (dateObj) {\n return String(Math.round(dateObj.getMilliseconds() / 100));\n },\n SS: function (dateObj) {\n return pad(Math.round(dateObj.getMilliseconds() / 10), 2);\n },\n SSS: function (dateObj) { return pad(dateObj.getMilliseconds(), 3); },\n a: function (dateObj, i18n) {\n return dateObj.getHours() < 12 ? i18n.amPm[0] : i18n.amPm[1];\n },\n A: function (dateObj, i18n) {\n return dateObj.getHours() < 12\n ? i18n.amPm[0].toUpperCase()\n : i18n.amPm[1].toUpperCase();\n },\n ZZ: function (dateObj) {\n var offset = dateObj.getTimezoneOffset();\n return ((offset > 0 ? \"-\" : \"+\") +\n pad(Math.floor(Math.abs(offset) / 60) * 100 + (Math.abs(offset) % 60), 4));\n },\n Z: function (dateObj) {\n var offset = dateObj.getTimezoneOffset();\n return ((offset > 0 ? \"-\" : \"+\") +\n pad(Math.floor(Math.abs(offset) / 60), 2) +\n \":\" +\n pad(Math.abs(offset) % 60, 2));\n }\n };\n var monthParse = function (v) { return +v - 1; };\n var emptyDigits = [null, twoDigitsOptional];\n var emptyWord = [null, word];\n var amPm = [\n \"isPm\",\n word,\n function (v, i18n) {\n var val = v.toLowerCase();\n if (val === i18n.amPm[0]) {\n return 0;\n }\n else if (val === i18n.amPm[1]) {\n return 1;\n }\n return null;\n }\n ];\n var timezoneOffset = [\n \"timezoneOffset\",\n \"[^\\\\s]*?[\\\\+\\\\-]\\\\d\\\\d:?\\\\d\\\\d|[^\\\\s]*?Z?\",\n function (v) {\n var parts = (v + \"\").match(/([+-]|\\d\\d)/gi);\n if (parts) {\n var minutes = +parts[1] * 60 + parseInt(parts[2], 10);\n return parts[0] === \"+\" ? minutes : -minutes;\n }\n return 0;\n }\n ];\n var parseFlags = {\n D: [\"day\", twoDigitsOptional],\n DD: [\"day\", twoDigits],\n Do: [\"day\", twoDigitsOptional + word, function (v) { return parseInt(v, 10); }],\n M: [\"month\", twoDigitsOptional, monthParse],\n MM: [\"month\", twoDigits, monthParse],\n YY: [\n \"year\",\n twoDigits,\n function (v) {\n var now = new Date();\n var cent = +(\"\" + now.getFullYear()).substr(0, 2);\n return +(\"\" + (+v > 68 ? cent - 1 : cent) + v);\n }\n ],\n h: [\"hour\", twoDigitsOptional, undefined, \"isPm\"],\n hh: [\"hour\", twoDigits, undefined, \"isPm\"],\n H: [\"hour\", twoDigitsOptional],\n HH: [\"hour\", twoDigits],\n m: [\"minute\", twoDigitsOptional],\n mm: [\"minute\", twoDigits],\n s: [\"second\", twoDigitsOptional],\n ss: [\"second\", twoDigits],\n YYYY: [\"year\", fourDigits],\n S: [\"millisecond\", \"\\\\d\", function (v) { return +v * 100; }],\n SS: [\"millisecond\", twoDigits, function (v) { return +v * 10; }],\n SSS: [\"millisecond\", threeDigits],\n d: emptyDigits,\n dd: emptyDigits,\n ddd: emptyWord,\n dddd: emptyWord,\n MMM: [\"month\", word, monthUpdate(\"monthNamesShort\")],\n MMMM: [\"month\", word, monthUpdate(\"monthNames\")],\n a: amPm,\n A: amPm,\n ZZ: timezoneOffset,\n Z: timezoneOffset\n };\n // Some common format strings\n var globalMasks = {\n default: \"ddd MMM DD YYYY HH:mm:ss\",\n shortDate: \"M/D/YY\",\n mediumDate: \"MMM D, YYYY\",\n longDate: \"MMMM D, YYYY\",\n fullDate: \"dddd, MMMM D, YYYY\",\n isoDate: \"YYYY-MM-DD\",\n isoDateTime: \"YYYY-MM-DDTHH:mm:ssZ\",\n shortTime: \"HH:mm\",\n mediumTime: \"HH:mm:ss\",\n longTime: \"HH:mm:ss.SSS\"\n };\n var setGlobalDateMasks = function (masks) { return assign(globalMasks, masks); };\n /***\n * Format a date\n * @method format\n * @param {Date|number} dateObj\n * @param {string} mask Format of the date, i.e. 'mm-dd-yy' or 'shortDate'\n * @returns {string} Formatted date string\n */\n var format = function (dateObj, mask, i18n) {\n if (mask === void 0) { mask = globalMasks[\"default\"]; }\n if (i18n === void 0) { i18n = {}; }\n if (typeof dateObj === \"number\") {\n dateObj = new Date(dateObj);\n }\n if (Object.prototype.toString.call(dateObj) !== \"[object Date]\" ||\n isNaN(dateObj.getTime())) {\n throw new Error(\"Invalid Date pass to format\");\n }\n mask = globalMasks[mask] || mask;\n var literals = [];\n // Make literals inactive by replacing them with @@@\n mask = mask.replace(literal, function ($0, $1) {\n literals.push($1);\n return \"@@@\";\n });\n var combinedI18nSettings = assign(assign({}, globalI18n), i18n);\n // Apply formatting rules\n mask = mask.replace(token, function ($0) {\n return formatFlags[$0](dateObj, combinedI18nSettings);\n });\n // Inline literal values back into the formatted value\n return mask.replace(/@@@/g, function () { return literals.shift(); });\n };\n /**\n * Parse a date string into a Javascript Date object /\n * @method parse\n * @param {string} dateStr Date string\n * @param {string} format Date parse format\n * @param {i18n} I18nSettingsOptional Full or subset of I18N settings\n * @returns {Date|null} Returns Date object. Returns null what date string is invalid or doesn't match format\n */\n function parse(dateStr, format, i18n) {\n if (i18n === void 0) { i18n = {}; }\n if (typeof format !== \"string\") {\n throw new Error(\"Invalid format in fecha parse\");\n }\n // Check to see if the format is actually a mask\n format = globalMasks[format] || format;\n // Avoid regular expression denial of service, fail early for really long strings\n // https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS\n if (dateStr.length > 1000) {\n return null;\n }\n // Default to the beginning of the year.\n var today = new Date();\n var dateInfo = {\n year: today.getFullYear(),\n month: 0,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n isPm: null,\n timezoneOffset: null\n };\n var parseInfo = [];\n var literals = [];\n // Replace all the literals with @@@. Hopefully a string that won't exist in the format\n var newFormat = format.replace(literal, function ($0, $1) {\n literals.push(regexEscape($1));\n return \"@@@\";\n });\n var specifiedFields = {};\n var requiredFields = {};\n // Change every token that we find into the correct regex\n newFormat = regexEscape(newFormat).replace(token, function ($0) {\n var info = parseFlags[$0];\n var field = info[0], regex = info[1], requiredField = info[3];\n // Check if the person has specified the same field twice. This will lead to confusing results.\n if (specifiedFields[field]) {\n throw new Error(\"Invalid format. \" + field + \" specified twice in format\");\n }\n specifiedFields[field] = true;\n // Check if there are any required fields. For instance, 12 hour time requires AM/PM specified\n if (requiredField) {\n requiredFields[requiredField] = true;\n }\n parseInfo.push(info);\n return \"(\" + regex + \")\";\n });\n // Check all the required fields are present\n Object.keys(requiredFields).forEach(function (field) {\n if (!specifiedFields[field]) {\n throw new Error(\"Invalid format. \" + field + \" is required in specified format\");\n }\n });\n // Add back all the literals after\n newFormat = newFormat.replace(/@@@/g, function () { return literals.shift(); });\n // Check if the date string matches the format. If it doesn't return null\n var matches = dateStr.match(new RegExp(newFormat, \"i\"));\n if (!matches) {\n return null;\n }\n var combinedI18nSettings = assign(assign({}, globalI18n), i18n);\n // For each match, call the parser function for that date part\n for (var i = 1; i < matches.length; i++) {\n var _a = parseInfo[i - 1], field = _a[0], parser = _a[2];\n var value = parser\n ? parser(matches[i], combinedI18nSettings)\n : +matches[i];\n // If the parser can't make sense of the value, return null\n if (value == null) {\n return null;\n }\n dateInfo[field] = value;\n }\n if (dateInfo.isPm === 1 && dateInfo.hour != null && +dateInfo.hour !== 12) {\n dateInfo.hour = +dateInfo.hour + 12;\n }\n else if (dateInfo.isPm === 0 && +dateInfo.hour === 12) {\n dateInfo.hour = 0;\n }\n var dateTZ;\n if (dateInfo.timezoneOffset == null) {\n dateTZ = new Date(dateInfo.year, dateInfo.month, dateInfo.day, dateInfo.hour, dateInfo.minute, dateInfo.second, dateInfo.millisecond);\n var validateFields = [\n [\"month\", \"getMonth\"],\n [\"day\", \"getDate\"],\n [\"hour\", \"getHours\"],\n [\"minute\", \"getMinutes\"],\n [\"second\", \"getSeconds\"]\n ];\n for (var i = 0, len = validateFields.length; i < len; i++) {\n // Check to make sure the date field is within the allowed range. Javascript dates allows values\n // outside the allowed range. If the values don't match the value was invalid\n if (specifiedFields[validateFields[i][0]] &&\n dateInfo[validateFields[i][0]] !== dateTZ[validateFields[i][1]]()) {\n return null;\n }\n }\n }\n else {\n dateTZ = new Date(Date.UTC(dateInfo.year, dateInfo.month, dateInfo.day, dateInfo.hour, dateInfo.minute - dateInfo.timezoneOffset, dateInfo.second, dateInfo.millisecond));\n // We can't validate dates in another timezone unfortunately. Do a basic check instead\n if (dateInfo.month > 11 ||\n dateInfo.month < 0 ||\n dateInfo.day > 31 ||\n dateInfo.day < 1 ||\n dateInfo.hour > 23 ||\n dateInfo.hour < 0 ||\n dateInfo.minute > 59 ||\n dateInfo.minute < 0 ||\n dateInfo.second > 59 ||\n dateInfo.second < 0) {\n return null;\n }\n }\n // Don't allow invalid dates\n return dateTZ;\n }\n var fecha = {\n format: format,\n parse: parse,\n defaultI18n: defaultI18n,\n setGlobalDateI18n: setGlobalDateI18n,\n setGlobalDateMasks: setGlobalDateMasks\n };\n\n exports.assign = assign;\n exports.default = fecha;\n exports.format = format;\n exports.parse = parse;\n exports.defaultI18n = defaultI18n;\n exports.setGlobalDateI18n = setGlobalDateI18n;\n exports.setGlobalDateMasks = setGlobalDateMasks;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=fecha.umd.js.map\n",
344
- "'use strict';\n\nconst fecha = require('fecha');\nconst format = require('./format');\n\n/*\n * function timestamp (info)\n * Returns a new instance of the timestamp Format which adds a timestamp\n * to the info. It was previously available in winston < 3.0.0 as:\n *\n * - { timestamp: true } // `new Date.toISOString()`\n * - { timestamp: function:String } // Value returned by `timestamp()`\n */\nmodule.exports = format((info, opts = {}) => {\n if (opts.format) {\n info.timestamp = typeof opts.format === 'function'\n ? opts.format()\n : fecha.format(new Date(), opts.format);\n }\n\n if (!info.timestamp) {\n info.timestamp = new Date().toISOString();\n }\n\n if (opts.alias) {\n info[opts.alias] = info.timestamp;\n }\n\n return info;\n});\n",
345
- "'use strict';\n\nconst colors = require('@colors/colors/safe');\nconst format = require('./format');\nconst { MESSAGE } = require('triple-beam');\n\n/*\n * function uncolorize (info)\n * Returns a new instance of the uncolorize Format that strips colors\n * from `info` objects. This was previously exposed as { stripColors: true }\n * to transports in `winston < 3.0.0`.\n */\nmodule.exports = format((info, opts) => {\n if (opts.level !== false) {\n info.level = colors.strip(info.level);\n }\n\n if (opts.message !== false) {\n info.message = colors.strip(String(info.message));\n }\n\n if (opts.raw !== false && info[MESSAGE]) {\n info[MESSAGE] = colors.strip(String(info[MESSAGE]));\n }\n\n return info;\n});\n",
346
- "'use strict';\n\n/*\n * @api public\n * @property {function} format\n * Both the construction method and set of exposed\n * formats.\n */\nconst format = exports.format = require('./format');\n\n/*\n * @api public\n * @method {function} levels\n * Registers the specified levels with logform.\n */\nexports.levels = require('./levels');\n\n/*\n * @api private\n * method {function} exposeFormat\n * Exposes a sub-format on the main format object\n * as a lazy-loaded getter.\n */\nfunction exposeFormat(name, requireFormat) {\n Object.defineProperty(format, name, {\n get() {\n return requireFormat();\n },\n configurable: true\n });\n}\n\n//\n// Setup all transports as lazy-loaded getters.\n//\nexposeFormat('align', function () { return require('./align'); });\nexposeFormat('errors', function () { return require('./errors'); });\nexposeFormat('cli', function () { return require('./cli'); });\nexposeFormat('combine', function () { return require('./combine'); });\nexposeFormat('colorize', function () { return require('./colorize'); });\nexposeFormat('json', function () { return require('./json'); });\nexposeFormat('label', function () { return require('./label'); });\nexposeFormat('logstash', function () { return require('./logstash'); });\nexposeFormat('metadata', function () { return require('./metadata'); });\nexposeFormat('ms', function () { return require('./ms'); });\nexposeFormat('padLevels', function () { return require('./pad-levels'); });\nexposeFormat('prettyPrint', function () { return require('./pretty-print'); });\nexposeFormat('printf', function () { return require('./printf'); });\nexposeFormat('simple', function () { return require('./simple'); });\nexposeFormat('splat', function () { return require('./splat'); });\nexposeFormat('timestamp', function () { return require('./timestamp'); });\nexposeFormat('uncolorize', function () { return require('./uncolorize'); });\n",
347
- "/**\n * common.js: Internal helper and utility functions for winston.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst { format } = require('util');\n\n/**\n * Set of simple deprecation notices and a way to expose them for a set of\n * properties.\n * @type {Object}\n * @private\n */\nexports.warn = {\n deprecated(prop) {\n return () => {\n throw new Error(format('{ %s } was removed in winston@3.0.0.', prop));\n };\n },\n useFormat(prop) {\n return () => {\n throw new Error([\n format('{ %s } was removed in winston@3.0.0.', prop),\n 'Use a custom winston.format = winston.format(function) instead.'\n ].join('\\n'));\n };\n },\n forFunctions(obj, type, props) {\n props.forEach(prop => {\n obj[prop] = exports.warn[type](prop);\n });\n },\n forProperties(obj, type, props) {\n props.forEach(prop => {\n const notice = exports.warn[type](prop);\n Object.defineProperty(obj, prop, {\n get: notice,\n set: notice\n });\n });\n }\n};\n",
348
- "\n/**\n * For Node.js, simply re-export the core `util.deprecate` function.\n */\n\nmodule.exports = require('util').deprecate;\n",
349
- "'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};",
350
- "'use strict';\n\nconst codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n\n function getMessage (arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message\n } else {\n return message(arg1, arg2, arg3)\n }\n }\n\n class NodeError extends Base {\n constructor (arg1, arg2, arg3) {\n super(getMessage(arg1, arg2, arg3));\n }\n }\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n const len = expected.length;\n expected = expected.map((i) => String(i));\n if (len > 2) {\n return `one of ${thing} ${expected.slice(0, len - 1).join(', ')}, or ` +\n expected[len - 1];\n } else if (len === 2) {\n return `one of ${thing} ${expected[0]} or ${expected[1]}`;\n } else {\n return `of ${thing} ${expected[0]}`;\n }\n } else {\n return `of ${thing} ${String(expected)}`;\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n\treturn str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n\tif (this_len === undefined || this_len > str.length) {\n\t\tthis_len = str.length;\n\t}\n\treturn str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"'\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n let determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n let msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = `The ${name} ${determiner} ${oneOf(expected, 'type')}`;\n } else {\n const type = includes(name, '.') ? 'property' : 'argument';\n msg = `The \"${name}\" ${type} ${determiner} ${oneOf(expected, 'type')}`;\n }\n\n msg += `. Received type ${typeof actual}`;\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented'\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\n\nmodule.exports.codes = codes;\n",
351
- "'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};",
352
- "if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n",
353
- "try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n",
354
- "'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();",
355
- "/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n",
356
- "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\n/*</replacement>*/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}",
357
- "// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;",
358
- "'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;",
359
- "'use strict';\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar ERR_INVALID_ARG_TYPE = require('../../../errors').codes.ERR_INVALID_ARG_TYPE;\nfunction from(Readable, iterable, opts) {\n var iterator;\n if (iterable && typeof iterable.next === 'function') {\n iterator = iterable;\n } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable);\n var readable = new Readable(_objectSpread({\n objectMode: true\n }, opts));\n // Reading boolean to protect against _read\n // being called before last iteration completion.\n var reading = false;\n readable._read = function () {\n if (!reading) {\n reading = true;\n next();\n }\n };\n function next() {\n return _next2.apply(this, arguments);\n }\n function _next2() {\n _next2 = _asyncToGenerator(function* () {\n try {\n var _yield$iterator$next = yield iterator.next(),\n value = _yield$iterator$next.value,\n done = _yield$iterator$next.done;\n if (done) {\n readable.push(null);\n } else if (readable.push(yield value)) {\n next();\n } else {\n reading = false;\n }\n } catch (err) {\n readable.destroy(err);\n }\n });\n return _next2.apply(this, arguments);\n }\n return readable;\n}\nmodule.exports = from;\n",
360
- "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n\n/*<replacement>*/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*<replacement>*/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/*</replacement>*/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}",
361
- "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/*<replacement>*/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/*</replacement>*/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});",
362
- "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* <replacement> */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n\n/*<replacement>*/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};",
363
- "'use strict';\n\nconst util = require('util');\nconst Writable = require('readable-stream/lib/_stream_writable.js');\nconst { LEVEL } = require('triple-beam');\n\n/**\n * Constructor function for the TransportStream. This is the base prototype\n * that all `winston >= 3` transports should inherit from.\n * @param {Object} options - Options for this TransportStream instance\n * @param {String} options.level - Highest level according to RFC5424.\n * @param {Boolean} options.handleExceptions - If true, info with\n * { exception: true } will be written.\n * @param {Function} options.log - Custom log function for simple Transport\n * creation\n * @param {Function} options.close - Called on \"unpipe\" from parent.\n */\nconst TransportStream = module.exports = function TransportStream(options = {}) {\n Writable.call(this, { objectMode: true, highWaterMark: options.highWaterMark });\n\n this.format = options.format;\n this.level = options.level;\n this.handleExceptions = options.handleExceptions;\n this.handleRejections = options.handleRejections;\n this.silent = options.silent;\n\n if (options.log) this.log = options.log;\n if (options.logv) this.logv = options.logv;\n if (options.close) this.close = options.close;\n\n // Get the levels from the source we are piped from.\n this.once('pipe', logger => {\n // Remark (indexzero): this bookkeeping can only support multiple\n // Logger parents with the same `levels`. This comes into play in\n // the `winston.Container` code in which `container.add` takes\n // a fully realized set of options with pre-constructed TransportStreams.\n this.levels = logger.levels;\n this.parent = logger;\n });\n\n // If and/or when the transport is removed from this instance\n this.once('unpipe', src => {\n // Remark (indexzero): this bookkeeping can only support multiple\n // Logger parents with the same `levels`. This comes into play in\n // the `winston.Container` code in which `container.add` takes\n // a fully realized set of options with pre-constructed TransportStreams.\n if (src === this.parent) {\n this.parent = null;\n if (this.close) {\n this.close();\n }\n }\n });\n};\n\n/*\n * Inherit from Writeable using Node.js built-ins\n */\nutil.inherits(TransportStream, Writable);\n\n/**\n * Writes the info object to our transport instance.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n * @private\n */\nTransportStream.prototype._write = function _write(info, enc, callback) {\n if (this.silent || (info.exception === true && !this.handleExceptions)) {\n return callback(null);\n }\n\n // Remark: This has to be handled in the base transport now because we\n // cannot conditionally write to our pipe targets as stream. We always\n // prefer any explicit level set on the Transport itself falling back to\n // any level set on the parent.\n const level = this.level || (this.parent && this.parent.level);\n\n if (!level || this.levels[level] >= this.levels[info[LEVEL]]) {\n if (info && !this.format) {\n return this.log(info, callback);\n }\n\n let errState;\n let transformed;\n\n // We trap(and re-throw) any errors generated by the user-provided format, but also\n // guarantee that the streams callback is invoked so that we can continue flowing.\n try {\n transformed = this.format.transform(Object.assign({}, info), this.format.options);\n } catch (err) {\n errState = err;\n }\n\n if (errState || !transformed) {\n // eslint-disable-next-line callback-return\n callback();\n if (errState) throw errState;\n return;\n }\n\n return this.log(transformed, callback);\n }\n this._writableState.sync = false;\n return callback(null);\n};\n\n/**\n * Writes the batch of info objects (i.e. \"object chunks\") to our transport\n * instance after performing any necessary filtering.\n * @param {mixed} chunks - TODO: add params description.\n * @param {function} callback - TODO: add params description.\n * @returns {mixed} - TODO: add returns description.\n * @private\n */\nTransportStream.prototype._writev = function _writev(chunks, callback) {\n if (this.logv) {\n const infos = chunks.filter(this._accept, this);\n if (!infos.length) {\n return callback(null);\n }\n\n // Remark (indexzero): from a performance perspective if Transport\n // implementers do choose to implement logv should we make it their\n // responsibility to invoke their format?\n return this.logv(infos, callback);\n }\n\n for (let i = 0; i < chunks.length; i++) {\n if (!this._accept(chunks[i])) continue;\n\n if (chunks[i].chunk && !this.format) {\n this.log(chunks[i].chunk, chunks[i].callback);\n continue;\n }\n\n let errState;\n let transformed;\n\n // We trap(and re-throw) any errors generated by the user-provided format, but also\n // guarantee that the streams callback is invoked so that we can continue flowing.\n try {\n transformed = this.format.transform(\n Object.assign({}, chunks[i].chunk),\n this.format.options\n );\n } catch (err) {\n errState = err;\n }\n\n if (errState || !transformed) {\n // eslint-disable-next-line callback-return\n chunks[i].callback();\n if (errState) {\n // eslint-disable-next-line callback-return\n callback(null);\n throw errState;\n }\n } else {\n this.log(transformed, chunks[i].callback);\n }\n }\n\n return callback(null);\n};\n\n/**\n * Predicate function that returns true if the specfied `info` on the\n * WriteReq, `write`, should be passed down into the derived\n * TransportStream's I/O via `.log(info, callback)`.\n * @param {WriteReq} write - winston@3 Node.js WriteReq for the `info` object\n * representing the log message.\n * @returns {Boolean} - Value indicating if the `write` should be accepted &\n * logged.\n */\nTransportStream.prototype._accept = function _accept(write) {\n const info = write.chunk;\n if (this.silent) {\n return false;\n }\n\n // We always prefer any explicit level set on the Transport itself\n // falling back to any level set on the parent.\n const level = this.level || (this.parent && this.parent.level);\n\n // Immediately check the average case: log level filtering.\n if (\n info.exception === true ||\n !level ||\n this.levels[level] >= this.levels[info[LEVEL]]\n ) {\n // Ensure the info object is valid based on `{ exception }`:\n // 1. { handleExceptions: true }: all `info` objects are valid\n // 2. { exception: false }: accepted by all transports.\n if (this.handleExceptions || info.exception !== true) {\n return true;\n }\n }\n\n return false;\n};\n\n/**\n * _nop is short for \"No operation\"\n * @returns {Boolean} Intentionally false.\n */\nTransportStream.prototype._nop = function _nop() {\n // eslint-disable-next-line no-undefined\n return void undefined;\n};\n",
364
- "'use strict';\n\nconst util = require('util');\nconst { LEVEL } = require('triple-beam');\nconst TransportStream = require('./modern');\n\n/**\n * Constructor function for the LegacyTransportStream. This is an internal\n * wrapper `winston >= 3` uses to wrap older transports implementing\n * log(level, message, meta).\n * @param {Object} options - Options for this TransportStream instance.\n * @param {Transpot} options.transport - winston@2 or older Transport to wrap.\n */\n\nconst LegacyTransportStream = module.exports = function LegacyTransportStream(options = {}) {\n TransportStream.call(this, options);\n if (!options.transport || typeof options.transport.log !== 'function') {\n throw new Error('Invalid transport, must be an object with a log method.');\n }\n\n this.transport = options.transport;\n this.level = this.level || options.transport.level;\n this.handleExceptions = this.handleExceptions || options.transport.handleExceptions;\n\n // Display our deprecation notice.\n this._deprecated();\n\n // Properly bubble up errors from the transport to the\n // LegacyTransportStream instance, but only once no matter how many times\n // this transport is shared.\n function transportError(err) {\n this.emit('error', err, this.transport);\n }\n\n if (!this.transport.__winstonError) {\n this.transport.__winstonError = transportError.bind(this);\n this.transport.on('error', this.transport.__winstonError);\n }\n};\n\n/*\n * Inherit from TransportStream using Node.js built-ins\n */\nutil.inherits(LegacyTransportStream, TransportStream);\n\n/**\n * Writes the info object to our transport instance.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n * @private\n */\nLegacyTransportStream.prototype._write = function _write(info, enc, callback) {\n if (this.silent || (info.exception === true && !this.handleExceptions)) {\n return callback(null);\n }\n\n // Remark: This has to be handled in the base transport now because we\n // cannot conditionally write to our pipe targets as stream.\n if (!this.level || this.levels[this.level] >= this.levels[info[LEVEL]]) {\n this.transport.log(info[LEVEL], info.message, info, this._nop);\n }\n\n callback(null);\n};\n\n/**\n * Writes the batch of info objects (i.e. \"object chunks\") to our transport\n * instance after performing any necessary filtering.\n * @param {mixed} chunks - TODO: add params description.\n * @param {function} callback - TODO: add params description.\n * @returns {mixed} - TODO: add returns description.\n * @private\n */\nLegacyTransportStream.prototype._writev = function _writev(chunks, callback) {\n for (let i = 0; i < chunks.length; i++) {\n if (this._accept(chunks[i])) {\n this.transport.log(\n chunks[i].chunk[LEVEL],\n chunks[i].chunk.message,\n chunks[i].chunk,\n this._nop\n );\n chunks[i].callback();\n }\n }\n\n return callback(null);\n};\n\n/**\n * Displays a deprecation notice. Defined as a function so it can be\n * overriden in tests.\n * @returns {undefined}\n */\nLegacyTransportStream.prototype._deprecated = function _deprecated() {\n // eslint-disable-next-line no-console\n console.error([\n `${this.transport.name} is a legacy winston transport. Consider upgrading: `,\n '- Upgrade docs: https://github.com/winstonjs/winston/blob/master/UPGRADE-3.0.md'\n ].join('\\n'));\n};\n\n/**\n * Clean up error handling state on the legacy transport associated\n * with this instance.\n * @returns {undefined}\n */\nLegacyTransportStream.prototype.close = function close() {\n if (this.transport.close) {\n this.transport.close();\n }\n\n if (this.transport.__winstonError) {\n this.transport.removeListener('error', this.transport.__winstonError);\n this.transport.__winstonError = null;\n }\n};\n",
365
- "'use strict';\n\n// Expose modern transport directly as the export\nmodule.exports = require('./modern');\n\n// Expose legacy stream\nmodule.exports.LegacyTransportStream = require('./legacy');\n",
366
- "/* eslint-disable no-console */\n/*\n * console.js: Transport for outputting to the console.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst os = require('os');\nconst { LEVEL, MESSAGE } = require('triple-beam');\nconst TransportStream = require('winston-transport');\n\n/**\n * Transport for outputting to the console.\n * @type {Console}\n * @extends {TransportStream}\n */\nmodule.exports = class Console extends TransportStream {\n /**\n * Constructor function for the Console transport object responsible for\n * persisting log messages and metadata to a terminal or TTY.\n * @param {!Object} [options={}] - Options for this instance.\n */\n constructor(options = {}) {\n super(options);\n\n // Expose the name of this Transport on the prototype\n this.name = options.name || 'console';\n this.stderrLevels = this._stringArrayToSet(options.stderrLevels);\n this.consoleWarnLevels = this._stringArrayToSet(options.consoleWarnLevels);\n this.eol = typeof options.eol === 'string' ? options.eol : os.EOL;\n this.forceConsole = options.forceConsole || false;\n\n // Keep a reference to the log, warn, and error console methods\n // in case they get redirected to this transport after the logger is\n // instantiated. This prevents a circular reference issue.\n this._consoleLog = console.log.bind(console);\n this._consoleWarn = console.warn.bind(console);\n this._consoleError = console.error.bind(console);\n\n this.setMaxListeners(30);\n }\n\n /**\n * Core logging method exposed to Winston.\n * @param {Object} info - TODO: add param description.\n * @param {Function} callback - TODO: add param description.\n * @returns {undefined}\n */\n log(info, callback) {\n setImmediate(() => this.emit('logged', info));\n\n // Remark: what if there is no raw...?\n if (this.stderrLevels[info[LEVEL]]) {\n if (console._stderr && !this.forceConsole) {\n // Node.js maps `process.stderr` to `console._stderr`.\n console._stderr.write(`${info[MESSAGE]}${this.eol}`);\n } else {\n // console.error adds a newline\n this._consoleError(info[MESSAGE]);\n }\n\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n return;\n } else if (this.consoleWarnLevels[info[LEVEL]]) {\n if (console._stderr && !this.forceConsole) {\n // Node.js maps `process.stderr` to `console._stderr`.\n // in Node.js console.warn is an alias for console.error\n console._stderr.write(`${info[MESSAGE]}${this.eol}`);\n } else {\n // console.warn adds a newline\n this._consoleWarn(info[MESSAGE]);\n }\n\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n return;\n }\n\n if (console._stdout && !this.forceConsole) {\n // Node.js maps `process.stdout` to `console._stdout`.\n console._stdout.write(`${info[MESSAGE]}${this.eol}`);\n } else {\n // console.log adds a newline.\n this._consoleLog(info[MESSAGE]);\n }\n\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n }\n\n /**\n * Returns a Set-like object with strArray's elements as keys (each with the\n * value true).\n * @param {Array} strArray - Array of Set-elements as strings.\n * @param {?string} [errMsg] - Custom error message thrown on invalid input.\n * @returns {Object} - TODO: add return description.\n * @private\n */\n _stringArrayToSet(strArray, errMsg) {\n if (!strArray) return {};\n\n errMsg =\n errMsg || 'Cannot make set from type other than Array of string elements';\n\n if (!Array.isArray(strArray)) {\n throw new Error(errMsg);\n }\n\n return strArray.reduce((set, el) => {\n if (typeof el !== 'string') {\n throw new Error(errMsg);\n }\n set[el] = true;\n\n return set;\n }, {});\n }\n};\n",
367
- "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isArrayLike;\nfunction isArrayLike(value) {\n return value && typeof value.length === 'number' && value.length >= 0 && value.length % 1 === 0;\n}\nmodule.exports = exports.default;",
368
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (fn) {\n return function (...args /*, callback*/) {\n var callback = args.pop();\n return fn.call(this, args, callback);\n };\n};\n\nmodule.exports = exports.default;",
369
- "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fallback = fallback;\nexports.wrap = wrap;\n/* istanbul ignore file */\n\nvar hasQueueMicrotask = exports.hasQueueMicrotask = typeof queueMicrotask === 'function' && queueMicrotask;\nvar hasSetImmediate = exports.hasSetImmediate = typeof setImmediate === 'function' && setImmediate;\nvar hasNextTick = exports.hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';\n\nfunction fallback(fn) {\n setTimeout(fn, 0);\n}\n\nfunction wrap(defer) {\n return (fn, ...args) => defer(() => fn(...args));\n}\n\nvar _defer;\n\nif (hasQueueMicrotask) {\n _defer = queueMicrotask;\n} else if (hasSetImmediate) {\n _defer = setImmediate;\n} else if (hasNextTick) {\n _defer = process.nextTick;\n} else {\n _defer = fallback;\n}\n\nexports.default = wrap(_defer);",
370
- "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = asyncify;\n\nvar _initialParams = require('./internal/initialParams.js');\n\nvar _initialParams2 = _interopRequireDefault(_initialParams);\n\nvar _setImmediate = require('./internal/setImmediate.js');\n\nvar _setImmediate2 = _interopRequireDefault(_setImmediate);\n\nvar _wrapAsync = require('./internal/wrapAsync.js');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Take a sync function and make it async, passing its return value to a\n * callback. This is useful for plugging sync functions into a waterfall,\n * series, or other async functions. Any arguments passed to the generated\n * function will be passed to the wrapped function (except for the final\n * callback argument). Errors thrown will be passed to the callback.\n *\n * If the function passed to `asyncify` returns a Promise, that promises's\n * resolved/rejected state will be used to call the callback, rather than simply\n * the synchronous return value.\n *\n * This also means you can asyncify ES2017 `async` functions.\n *\n * @name asyncify\n * @static\n * @memberOf module:Utils\n * @method\n * @alias wrapSync\n * @category Util\n * @param {Function} func - The synchronous function, or Promise-returning\n * function to convert to an {@link AsyncFunction}.\n * @returns {AsyncFunction} An asynchronous wrapper of the `func`. To be\n * invoked with `(args..., callback)`.\n * @example\n *\n * // passing a regular synchronous function\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(JSON.parse),\n * function (data, next) {\n * // data is the result of parsing the text.\n * // If there was a parsing error, it would have been caught.\n * }\n * ], callback);\n *\n * // passing a function returning a promise\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(function (contents) {\n * return db.model.create(contents);\n * }),\n * function (model, next) {\n * // `model` is the instantiated model object.\n * // If there was an error, this function would be skipped.\n * }\n * ], callback);\n *\n * // es2017 example, though `asyncify` is not needed if your JS environment\n * // supports async functions out of the box\n * var q = async.queue(async.asyncify(async function(file) {\n * var intermediateStep = await processFile(file);\n * return await somePromise(intermediateStep)\n * }));\n *\n * q.push(files);\n */\nfunction asyncify(func) {\n if ((0, _wrapAsync.isAsync)(func)) {\n return function (...args /*, callback*/) {\n const callback = args.pop();\n const promise = func.apply(this, args);\n return handlePromise(promise, callback);\n };\n }\n\n return (0, _initialParams2.default)(function (args, callback) {\n var result;\n try {\n result = func.apply(this, args);\n } catch (e) {\n return callback(e);\n }\n // if result is Promise object\n if (result && typeof result.then === 'function') {\n return handlePromise(result, callback);\n } else {\n callback(null, result);\n }\n });\n}\n\nfunction handlePromise(promise, callback) {\n return promise.then(value => {\n invokeCallback(callback, null, value);\n }, err => {\n invokeCallback(callback, err && (err instanceof Error || err.message) ? err : new Error(err));\n });\n}\n\nfunction invokeCallback(callback, error, value) {\n try {\n callback(error, value);\n } catch (err) {\n (0, _setImmediate2.default)(e => {\n throw e;\n }, err);\n }\n}\nmodule.exports = exports.default;",
371
- "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isAsyncIterable = exports.isAsyncGenerator = exports.isAsync = undefined;\n\nvar _asyncify = require('../asyncify.js');\n\nvar _asyncify2 = _interopRequireDefault(_asyncify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAsync(fn) {\n return fn[Symbol.toStringTag] === 'AsyncFunction';\n}\n\nfunction isAsyncGenerator(fn) {\n return fn[Symbol.toStringTag] === 'AsyncGenerator';\n}\n\nfunction isAsyncIterable(obj) {\n return typeof obj[Symbol.asyncIterator] === 'function';\n}\n\nfunction wrapAsync(asyncFn) {\n if (typeof asyncFn !== 'function') throw new Error('expected a function');\n return isAsync(asyncFn) ? (0, _asyncify2.default)(asyncFn) : asyncFn;\n}\n\nexports.default = wrapAsync;\nexports.isAsync = isAsync;\nexports.isAsyncGenerator = isAsyncGenerator;\nexports.isAsyncIterable = isAsyncIterable;",
372
- "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = awaitify;\n// conditionally promisify a function.\n// only return a promise if a callback is omitted\nfunction awaitify(asyncFn, arity) {\n if (!arity) arity = asyncFn.length;\n if (!arity) throw new Error('arity is undefined');\n function awaitable(...args) {\n if (typeof args[arity - 1] === 'function') {\n return asyncFn.apply(this, args);\n }\n\n return new Promise((resolve, reject) => {\n args[arity - 1] = (err, ...cbArgs) => {\n if (err) return reject(err);\n resolve(cbArgs.length > 1 ? cbArgs : cbArgs[0]);\n };\n asyncFn.apply(this, args);\n });\n }\n\n return awaitable;\n}\nmodule.exports = exports.default;",
373
- "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _isArrayLike = require('./isArrayLike.js');\n\nvar _isArrayLike2 = _interopRequireDefault(_isArrayLike);\n\nvar _wrapAsync = require('./wrapAsync.js');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nvar _awaitify = require('./awaitify.js');\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = (0, _awaitify2.default)((eachfn, tasks, callback) => {\n var results = (0, _isArrayLike2.default)(tasks) ? [] : {};\n\n eachfn(tasks, (task, key, taskCb) => {\n (0, _wrapAsync2.default)(task)((err, ...result) => {\n if (result.length < 2) {\n [result] = result;\n }\n results[key] = result;\n taskCb(err);\n });\n }, err => callback(err, results));\n}, 3);\nmodule.exports = exports.default;",
374
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = once;\nfunction once(fn) {\n function wrapper(...args) {\n if (fn === null) return;\n var callFn = fn;\n fn = null;\n callFn.apply(this, args);\n }\n Object.assign(wrapper, fn);\n return wrapper;\n}\nmodule.exports = exports.default;",
375
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (coll) {\n return coll[Symbol.iterator] && coll[Symbol.iterator]();\n};\n\nmodule.exports = exports.default;",
376
- "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createIterator;\n\nvar _isArrayLike = require('./isArrayLike.js');\n\nvar _isArrayLike2 = _interopRequireDefault(_isArrayLike);\n\nvar _getIterator = require('./getIterator.js');\n\nvar _getIterator2 = _interopRequireDefault(_getIterator);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction createArrayIterator(coll) {\n var i = -1;\n var len = coll.length;\n return function next() {\n return ++i < len ? { value: coll[i], key: i } : null;\n };\n}\n\nfunction createES2015Iterator(iterator) {\n var i = -1;\n return function next() {\n var item = iterator.next();\n if (item.done) return null;\n i++;\n return { value: item.value, key: i };\n };\n}\n\nfunction createObjectIterator(obj) {\n var okeys = obj ? Object.keys(obj) : [];\n var i = -1;\n var len = okeys.length;\n return function next() {\n var key = okeys[++i];\n if (key === '__proto__') {\n return next();\n }\n return i < len ? { value: obj[key], key } : null;\n };\n}\n\nfunction createIterator(coll) {\n if ((0, _isArrayLike2.default)(coll)) {\n return createArrayIterator(coll);\n }\n\n var iterator = (0, _getIterator2.default)(coll);\n return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll);\n}\nmodule.exports = exports.default;",
377
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = onlyOnce;\nfunction onlyOnce(fn) {\n return function (...args) {\n if (fn === null) throw new Error(\"Callback was already called.\");\n var callFn = fn;\n fn = null;\n callFn.apply(this, args);\n };\n}\nmodule.exports = exports.default;",
378
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n// A temporary value used to identify if the loop should be broken.\n// See #1064, #1293\nconst breakLoop = {};\nexports.default = breakLoop;\nmodule.exports = exports.default;",
379
- "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = asyncEachOfLimit;\n\nvar _breakLoop = require('./breakLoop.js');\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// for async generators\nfunction asyncEachOfLimit(generator, limit, iteratee, callback) {\n let done = false;\n let canceled = false;\n let awaiting = false;\n let running = 0;\n let idx = 0;\n\n function replenish() {\n //console.log('replenish')\n if (running >= limit || awaiting || done) return;\n //console.log('replenish awaiting')\n awaiting = true;\n generator.next().then(({ value, done: iterDone }) => {\n //console.log('got value', value)\n if (canceled || done) return;\n awaiting = false;\n if (iterDone) {\n done = true;\n if (running <= 0) {\n //console.log('done nextCb')\n callback(null);\n }\n return;\n }\n running++;\n iteratee(value, idx, iterateeCallback);\n idx++;\n replenish();\n }).catch(handleError);\n }\n\n function iterateeCallback(err, result) {\n //console.log('iterateeCallback')\n running -= 1;\n if (canceled) return;\n if (err) return handleError(err);\n\n if (err === false) {\n done = true;\n canceled = true;\n return;\n }\n\n if (result === _breakLoop2.default || done && running <= 0) {\n done = true;\n //console.log('done iterCb')\n return callback(null);\n }\n replenish();\n }\n\n function handleError(err) {\n if (canceled) return;\n awaiting = false;\n done = true;\n callback(err);\n }\n\n replenish();\n}\nmodule.exports = exports.default;",
380
- "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _once = require('./once.js');\n\nvar _once2 = _interopRequireDefault(_once);\n\nvar _iterator = require('./iterator.js');\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _onlyOnce = require('./onlyOnce.js');\n\nvar _onlyOnce2 = _interopRequireDefault(_onlyOnce);\n\nvar _wrapAsync = require('./wrapAsync.js');\n\nvar _asyncEachOfLimit = require('./asyncEachOfLimit.js');\n\nvar _asyncEachOfLimit2 = _interopRequireDefault(_asyncEachOfLimit);\n\nvar _breakLoop = require('./breakLoop.js');\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = limit => {\n return (obj, iteratee, callback) => {\n callback = (0, _once2.default)(callback);\n if (limit <= 0) {\n throw new RangeError('concurrency limit cannot be less than 1');\n }\n if (!obj) {\n return callback(null);\n }\n if ((0, _wrapAsync.isAsyncGenerator)(obj)) {\n return (0, _asyncEachOfLimit2.default)(obj, limit, iteratee, callback);\n }\n if ((0, _wrapAsync.isAsyncIterable)(obj)) {\n return (0, _asyncEachOfLimit2.default)(obj[Symbol.asyncIterator](), limit, iteratee, callback);\n }\n var nextElem = (0, _iterator2.default)(obj);\n var done = false;\n var canceled = false;\n var running = 0;\n var looping = false;\n\n function iterateeCallback(err, value) {\n if (canceled) return;\n running -= 1;\n if (err) {\n done = true;\n callback(err);\n } else if (err === false) {\n done = true;\n canceled = true;\n } else if (value === _breakLoop2.default || done && running <= 0) {\n done = true;\n return callback(null);\n } else if (!looping) {\n replenish();\n }\n }\n\n function replenish() {\n looping = true;\n while (running < limit && !done) {\n var elem = nextElem();\n if (elem === null) {\n done = true;\n if (running <= 0) {\n callback(null);\n }\n return;\n }\n running += 1;\n iteratee(elem.value, elem.key, (0, _onlyOnce2.default)(iterateeCallback));\n }\n looping = false;\n }\n\n replenish();\n };\n};\n\nmodule.exports = exports.default;",
381
- "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _eachOfLimit2 = require('./internal/eachOfLimit.js');\n\nvar _eachOfLimit3 = _interopRequireDefault(_eachOfLimit2);\n\nvar _wrapAsync = require('./internal/wrapAsync.js');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nvar _awaitify = require('./internal/awaitify.js');\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name eachOfLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfLimit\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n */\nfunction eachOfLimit(coll, limit, iteratee, callback) {\n return (0, _eachOfLimit3.default)(limit)(coll, (0, _wrapAsync2.default)(iteratee), callback);\n}\n\nexports.default = (0, _awaitify2.default)(eachOfLimit, 4);\nmodule.exports = exports.default;",
382
- "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _eachOfLimit = require('./eachOfLimit.js');\n\nvar _eachOfLimit2 = _interopRequireDefault(_eachOfLimit);\n\nvar _awaitify = require('./internal/awaitify.js');\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs only a single async operation at a time.\n *\n * @name eachOfSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfSeries\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n */\nfunction eachOfSeries(coll, iteratee, callback) {\n return (0, _eachOfLimit2.default)(coll, 1, iteratee, callback);\n}\nexports.default = (0, _awaitify2.default)(eachOfSeries, 3);\nmodule.exports = exports.default;",
383
- "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = series;\n\nvar _parallel2 = require('./internal/parallel.js');\n\nvar _parallel3 = _interopRequireDefault(_parallel2);\n\nvar _eachOfSeries = require('./eachOfSeries.js');\n\nvar _eachOfSeries2 = _interopRequireDefault(_eachOfSeries);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Run the functions in the `tasks` collection in series, each one running once\n * the previous function has completed. If any functions in the series pass an\n * error to its callback, no more functions are run, and `callback` is\n * immediately called with the value of the error. Otherwise, `callback`\n * receives an array of results when `tasks` have completed.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function, and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.series}.\n *\n * **Note** that while many implementations preserve the order of object\n * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\n * explicitly states that\n *\n * > The mechanics and order of enumerating the properties is not specified.\n *\n * So if you rely on the order in which your series of functions are executed,\n * and want this to work on all platforms, consider using an array.\n *\n * @name series\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|AsyncIterable|Object} tasks - A collection containing\n * [async functions]{@link AsyncFunction} to run in series.\n * Each function can complete with any number of optional `result` values.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This function gets a results array (or object)\n * containing all the result arguments passed to the `task` callbacks. Invoked\n * with (err, result).\n * @return {Promise} a promise, if no callback is passed\n * @example\n *\n * //Using Callbacks\n * async.series([\n * function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 'two');\n * }, 100);\n * }\n * ], function(err, results) {\n * console.log(results);\n * // results is equal to ['one','two']\n * });\n *\n * // an example using objects instead of arrays\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * });\n *\n * //Using Promises\n * async.series([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ]).then(results => {\n * console.log(results);\n * // results is equal to ['one','two']\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * // an example using an object instead of an array\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * }).then(results => {\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * }).catch(err => {\n * console.log(err);\n * });\n *\n * //Using async/await\n * async () => {\n * try {\n * let results = await async.series([\n * function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 'two');\n * }, 100);\n * }\n * ]);\n * console.log(results);\n * // results is equal to ['one','two']\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // an example using an object instead of an array\n * async () => {\n * try {\n * let results = await async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * // do some async task\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * // then do another async task\n * callback(null, 2);\n * }, 100);\n * }\n * });\n * console.log(results);\n * // results is equal to: { one: 1, two: 2 }\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n */\nfunction series(tasks, callback) {\n return (0, _parallel3.default)(_eachOfSeries2.default, tasks, callback);\n}\nmodule.exports = exports.default;",
384
- "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}",
385
- "// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};",
386
- "// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;",
387
- "var Stream = require('stream');\nif (process.env.READABLE_STREAM === 'disable' && Stream) {\n module.exports = Stream.Readable;\n Object.assign(module.exports, Stream);\n module.exports.Stream = Stream;\n} else {\n exports = module.exports = require('./lib/_stream_readable.js');\n exports.Stream = Stream || exports;\n exports.Readable = exports;\n exports.Writable = require('./lib/_stream_writable.js');\n exports.Duplex = require('./lib/_stream_duplex.js');\n exports.Transform = require('./lib/_stream_transform.js');\n exports.PassThrough = require('./lib/_stream_passthrough.js');\n exports.finished = require('./lib/internal/streams/end-of-stream.js');\n exports.pipeline = require('./lib/internal/streams/pipeline.js');\n}\n",
388
- "/**\n * Contains all configured adapters for the given environment.\n *\n * @type {Array}\n * @public\n */\nvar adapters = [];\n\n/**\n * Contains all modifier functions.\n *\n * @typs {Array}\n * @public\n */\nvar modifiers = [];\n\n/**\n * Our default logger.\n *\n * @public\n */\nvar logger = function devnull() {};\n\n/**\n * Register a new adapter that will used to find environments.\n *\n * @param {Function} adapter A function that will return the possible env.\n * @returns {Boolean} Indication of a successful add.\n * @public\n */\nfunction use(adapter) {\n if (~adapters.indexOf(adapter)) return false;\n\n adapters.push(adapter);\n return true;\n}\n\n/**\n * Assign a new log method.\n *\n * @param {Function} custom The log method.\n * @public\n */\nfunction set(custom) {\n logger = custom;\n}\n\n/**\n * Check if the namespace is allowed by any of our adapters.\n *\n * @param {String} namespace The namespace that needs to be enabled\n * @returns {Boolean|Promise} Indication if the namespace is enabled by our adapters.\n * @public\n */\nfunction enabled(namespace) {\n var async = [];\n\n for (var i = 0; i < adapters.length; i++) {\n if (adapters[i].async) {\n async.push(adapters[i]);\n continue;\n }\n\n if (adapters[i](namespace)) return true;\n }\n\n if (!async.length) return false;\n\n //\n // Now that we know that we Async functions, we know we run in an ES6\n // environment and can use all the API's that they offer, in this case\n // we want to return a Promise so that we can `await` in React-Native\n // for an async adapter.\n //\n return new Promise(function pinky(resolve) {\n Promise.all(\n async.map(function prebind(fn) {\n return fn(namespace);\n })\n ).then(function resolved(values) {\n resolve(values.some(Boolean));\n });\n });\n}\n\n/**\n * Add a new message modifier to the debugger.\n *\n * @param {Function} fn Modification function.\n * @returns {Boolean} Indication of a successful add.\n * @public\n */\nfunction modify(fn) {\n if (~modifiers.indexOf(fn)) return false;\n\n modifiers.push(fn);\n return true;\n}\n\n/**\n * Write data to the supplied logger.\n *\n * @param {Object} meta Meta information about the log.\n * @param {Array} args Arguments for console.log.\n * @public\n */\nfunction write() {\n logger.apply(logger, arguments);\n}\n\n/**\n * Process the message with the modifiers.\n *\n * @param {Mixed} message The message to be transformed by modifers.\n * @returns {String} Transformed message.\n * @public\n */\nfunction process(message) {\n for (var i = 0; i < modifiers.length; i++) {\n message = modifiers[i].apply(modifiers[i], arguments);\n }\n\n return message;\n}\n\n/**\n * Introduce options to the logger function.\n *\n * @param {Function} fn Calback function.\n * @param {Object} options Properties to introduce on fn.\n * @returns {Function} The passed function\n * @public\n */\nfunction introduce(fn, options) {\n var has = Object.prototype.hasOwnProperty;\n\n for (var key in options) {\n if (has.call(options, key)) {\n fn[key] = options[key];\n }\n }\n\n return fn;\n}\n\n/**\n * Nope, we're not allowed to write messages.\n *\n * @returns {Boolean} false\n * @public\n */\nfunction nope(options) {\n options.enabled = false;\n options.modify = modify;\n options.set = set;\n options.use = use;\n\n return introduce(function diagnopes() {\n return false;\n }, options);\n}\n\n/**\n * Yep, we're allowed to write debug messages.\n *\n * @param {Object} options The options for the process.\n * @returns {Function} The function that does the logging.\n * @public\n */\nfunction yep(options) {\n /**\n * The function that receives the actual debug information.\n *\n * @returns {Boolean} indication that we're logging.\n * @public\n */\n function diagnostics() {\n var args = Array.prototype.slice.call(arguments, 0);\n\n write.call(write, options, process(args, options));\n return true;\n }\n\n options.enabled = true;\n options.modify = modify;\n options.set = set;\n options.use = use;\n\n return introduce(diagnostics, options);\n}\n\n/**\n * Simple helper function to introduce various of helper methods to our given\n * diagnostics function.\n *\n * @param {Function} diagnostics The diagnostics function.\n * @returns {Function} diagnostics\n * @public\n */\nmodule.exports = function create(diagnostics) {\n diagnostics.introduce = introduce;\n diagnostics.enabled = enabled;\n diagnostics.process = process;\n diagnostics.modify = modify;\n diagnostics.write = write;\n diagnostics.nope = nope;\n diagnostics.yep = yep;\n diagnostics.set = set;\n diagnostics.use = use;\n\n return diagnostics;\n}\n",
389
- "'use strict';\n\nvar cssKeywords = {\n\taliceblue: [240, 248, 255],\n\tantiquewhite: [250, 235, 215],\n\taqua: [0, 255, 255],\n\taquamarine: [127, 255, 212],\n\tazure: [240, 255, 255],\n\tbeige: [245, 245, 220],\n\tbisque: [255, 228, 196],\n\tblack: [0, 0, 0],\n\tblanchedalmond: [255, 235, 205],\n\tblue: [0, 0, 255],\n\tblueviolet: [138, 43, 226],\n\tbrown: [165, 42, 42],\n\tburlywood: [222, 184, 135],\n\tcadetblue: [95, 158, 160],\n\tchartreuse: [127, 255, 0],\n\tchocolate: [210, 105, 30],\n\tcoral: [255, 127, 80],\n\tcornflowerblue: [100, 149, 237],\n\tcornsilk: [255, 248, 220],\n\tcrimson: [220, 20, 60],\n\tcyan: [0, 255, 255],\n\tdarkblue: [0, 0, 139],\n\tdarkcyan: [0, 139, 139],\n\tdarkgoldenrod: [184, 134, 11],\n\tdarkgray: [169, 169, 169],\n\tdarkgreen: [0, 100, 0],\n\tdarkgrey: [169, 169, 169],\n\tdarkkhaki: [189, 183, 107],\n\tdarkmagenta: [139, 0, 139],\n\tdarkolivegreen: [85, 107, 47],\n\tdarkorange: [255, 140, 0],\n\tdarkorchid: [153, 50, 204],\n\tdarkred: [139, 0, 0],\n\tdarksalmon: [233, 150, 122],\n\tdarkseagreen: [143, 188, 143],\n\tdarkslateblue: [72, 61, 139],\n\tdarkslategray: [47, 79, 79],\n\tdarkslategrey: [47, 79, 79],\n\tdarkturquoise: [0, 206, 209],\n\tdarkviolet: [148, 0, 211],\n\tdeeppink: [255, 20, 147],\n\tdeepskyblue: [0, 191, 255],\n\tdimgray: [105, 105, 105],\n\tdimgrey: [105, 105, 105],\n\tdodgerblue: [30, 144, 255],\n\tfirebrick: [178, 34, 34],\n\tfloralwhite: [255, 250, 240],\n\tforestgreen: [34, 139, 34],\n\tfuchsia: [255, 0, 255],\n\tgainsboro: [220, 220, 220],\n\tghostwhite: [248, 248, 255],\n\tgold: [255, 215, 0],\n\tgoldenrod: [218, 165, 32],\n\tgray: [128, 128, 128],\n\tgreen: [0, 128, 0],\n\tgreenyellow: [173, 255, 47],\n\tgrey: [128, 128, 128],\n\thoneydew: [240, 255, 240],\n\thotpink: [255, 105, 180],\n\tindianred: [205, 92, 92],\n\tindigo: [75, 0, 130],\n\tivory: [255, 255, 240],\n\tkhaki: [240, 230, 140],\n\tlavender: [230, 230, 250],\n\tlavenderblush: [255, 240, 245],\n\tlawngreen: [124, 252, 0],\n\tlemonchiffon: [255, 250, 205],\n\tlightblue: [173, 216, 230],\n\tlightcoral: [240, 128, 128],\n\tlightcyan: [224, 255, 255],\n\tlightgoldenrodyellow: [250, 250, 210],\n\tlightgray: [211, 211, 211],\n\tlightgreen: [144, 238, 144],\n\tlightgrey: [211, 211, 211],\n\tlightpink: [255, 182, 193],\n\tlightsalmon: [255, 160, 122],\n\tlightseagreen: [32, 178, 170],\n\tlightskyblue: [135, 206, 250],\n\tlightslategray: [119, 136, 153],\n\tlightslategrey: [119, 136, 153],\n\tlightsteelblue: [176, 196, 222],\n\tlightyellow: [255, 255, 224],\n\tlime: [0, 255, 0],\n\tlimegreen: [50, 205, 50],\n\tlinen: [250, 240, 230],\n\tmagenta: [255, 0, 255],\n\tmaroon: [128, 0, 0],\n\tmediumaquamarine: [102, 205, 170],\n\tmediumblue: [0, 0, 205],\n\tmediumorchid: [186, 85, 211],\n\tmediumpurple: [147, 112, 219],\n\tmediumseagreen: [60, 179, 113],\n\tmediumslateblue: [123, 104, 238],\n\tmediumspringgreen: [0, 250, 154],\n\tmediumturquoise: [72, 209, 204],\n\tmediumvioletred: [199, 21, 133],\n\tmidnightblue: [25, 25, 112],\n\tmintcream: [245, 255, 250],\n\tmistyrose: [255, 228, 225],\n\tmoccasin: [255, 228, 181],\n\tnavajowhite: [255, 222, 173],\n\tnavy: [0, 0, 128],\n\toldlace: [253, 245, 230],\n\tolive: [128, 128, 0],\n\tolivedrab: [107, 142, 35],\n\torange: [255, 165, 0],\n\torangered: [255, 69, 0],\n\torchid: [218, 112, 214],\n\tpalegoldenrod: [238, 232, 170],\n\tpalegreen: [152, 251, 152],\n\tpaleturquoise: [175, 238, 238],\n\tpalevioletred: [219, 112, 147],\n\tpapayawhip: [255, 239, 213],\n\tpeachpuff: [255, 218, 185],\n\tperu: [205, 133, 63],\n\tpink: [255, 192, 203],\n\tplum: [221, 160, 221],\n\tpowderblue: [176, 224, 230],\n\tpurple: [128, 0, 128],\n\trebeccapurple: [102, 51, 153],\n\tred: [255, 0, 0],\n\trosybrown: [188, 143, 143],\n\troyalblue: [65, 105, 225],\n\tsaddlebrown: [139, 69, 19],\n\tsalmon: [250, 128, 114],\n\tsandybrown: [244, 164, 96],\n\tseagreen: [46, 139, 87],\n\tseashell: [255, 245, 238],\n\tsienna: [160, 82, 45],\n\tsilver: [192, 192, 192],\n\tskyblue: [135, 206, 235],\n\tslateblue: [106, 90, 205],\n\tslategray: [112, 128, 144],\n\tslategrey: [112, 128, 144],\n\tsnow: [255, 250, 250],\n\tspringgreen: [0, 255, 127],\n\tsteelblue: [70, 130, 180],\n\ttan: [210, 180, 140],\n\tteal: [0, 128, 128],\n\tthistle: [216, 191, 216],\n\ttomato: [255, 99, 71],\n\tturquoise: [64, 224, 208],\n\tviolet: [238, 130, 238],\n\twheat: [245, 222, 179],\n\twhite: [255, 255, 255],\n\twhitesmoke: [245, 245, 245],\n\tyellow: [255, 255, 0],\n\tyellowgreen: [154, 205, 50]\n};\n\nconst reverseNames = Object.create(null);\n\n// Create a list of reverse color names\nfor (const name in cssKeywords) {\n\tif (Object.hasOwn(cssKeywords, name)) {\n\t\treverseNames[cssKeywords[name]] = name;\n\t}\n}\n\nconst cs = {\n\tto: {},\n\tget: {},\n};\n\ncs.get = function (string) {\n\tconst prefix = string.slice(0, 3).toLowerCase();\n\tlet value;\n\tlet model;\n\tswitch (prefix) {\n\t\tcase 'hsl': {\n\t\t\tvalue = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'hwb': {\n\t\t\tvalue = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\t}\n\n\t\tdefault: {\n\t\t\tvalue = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (!value) {\n\t\treturn null;\n\t}\n\n\treturn {model, value};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst abbr = /^#([a-f\\d]{3,4})$/i;\n\tconst hex = /^#([a-f\\d]{6})([a-f\\d]{2})?$/i;\n\tconst rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[\\s,|/]\\s*([+-]?[\\d.]+)(%?)\\s*)?\\)$/;\n\tconst per = /^rgba?\\(\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*(?:[\\s,|/]\\s*([+-]?[\\d.]+)(%?)\\s*)?\\)$/;\n\tconst keyword = /^(\\w+)$/;\n\n\tlet rgb = [0, 0, 0, 1];\n\tlet match;\n\tlet i;\n\tlet hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tconst i2 = i * 2;\n\t\t\trgb[i] = Number.parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Number.parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Number.parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = Number.parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Number.parseInt(match[i + 1], 10);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(Number.parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\trgb[3] = match[5] ? Number.parseFloat(match[4]) * 0.01 : Number.parseFloat(match[4]);\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!Object.hasOwn(cssKeywords, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = cssKeywords[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d.]+)%\\s*,?\\s*([+-]?[\\d.]+)%\\s*(?:[,|/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tconst match = string.match(hsl);\n\n\tif (match) {\n\t\tconst alpha = Number.parseFloat(match[4]);\n\t\tconst h = ((Number.parseFloat(match[1]) % 360) + 360) % 360;\n\t\tconst s = clamp(Number.parseFloat(match[2]), 0, 100);\n\t\tconst l = clamp(Number.parseFloat(match[3]), 0, 100);\n\t\tconst a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tconst hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*[\\s,]\\s*([+-]?[\\d.]+)%\\s*[\\s,]\\s*([+-]?[\\d.]+)%\\s*(?:[\\s,]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tconst match = string.match(hwb);\n\n\tif (match) {\n\t\tconst alpha = Number.parseFloat(match[4]);\n\t\tconst h = ((Number.parseFloat(match[1]) % 360) + 360) % 360;\n\t\tconst w = clamp(Number.parseFloat(match[2]), 0, 100);\n\t\tconst b = clamp(Number.parseFloat(match[3]), 0, 100);\n\t\tconst a = clamp(Number.isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function (...rgba) {\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function (...rgba) {\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function (...rgba) {\n\tconst r = Math.round(rgba[0] / 255 * 100);\n\tconst g = Math.round(rgba[1] / 255 * 100);\n\tconst b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function (...hsla) {\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// Hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function (...hwba) {\n\tlet a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (...rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// Helpers\nfunction clamp(number_, min, max) {\n\treturn Math.min(Math.max(min, number_), max);\n}\n\nfunction hexDouble(number_) {\n\tconst string_ = Math.round(number_).toString(16).toUpperCase();\n\treturn (string_.length < 2) ? '0' + string_ : string_;\n}\n\n/* MIT license */\n/* eslint-disable no-mixed-operators */\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nconst reverseKeywords = {};\nfor (const key of Object.keys(cssKeywords)) {\n\treverseKeywords[cssKeywords[key]] = key;\n}\n\nconst convert$1 = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\toklab: {channels: 3, labels: ['okl', 'oka', 'okb']},\n\tlch: {channels: 3, labels: 'lch'},\n\toklch: {channels: 3, labels: ['okl', 'okc', 'okh']},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']},\n};\n\n// LAB f(t) constant\nconst LAB_FT = (6 / 29) ** 3;\n\n// SRGB non-linear transform functions\nfunction srgbNonlinearTransform(c) {\n\tconst cc = c > 0.003_130_8\n\t\t? ((1.055 * (c ** (1 / 2.4))) - 0.055)\n\t\t: c * 12.92;\n\treturn Math.min(Math.max(0, cc), 1);\n}\n\nfunction srgbNonlinearTransformInv(c) {\n\treturn c > 0.040_45 ? (((c + 0.055) / 1.055) ** 2.4) : (c / 12.92);\n}\n\n// Hide .channels and .labels properties\nfor (const model of Object.keys(convert$1)) {\n\tif (!('channels' in convert$1[model])) {\n\t\tthrow new Error('missing channels property: ' + model);\n\t}\n\n\tif (!('labels' in convert$1[model])) {\n\t\tthrow new Error('missing channel labels property: ' + model);\n\t}\n\n\tif (convert$1[model].labels.length !== convert$1[model].channels) {\n\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t}\n\n\tconst {channels, labels} = convert$1[model];\n\tdelete convert$1[model].channels;\n\tdelete convert$1[model].labels;\n\tObject.defineProperty(convert$1[model], 'channels', {value: channels});\n\tObject.defineProperty(convert$1[model], 'labels', {value: labels});\n}\n\nconvert$1.rgb.hsl = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst min = Math.min(r, g, b);\n\tconst max = Math.max(r, g, b);\n\tconst delta = max - min;\n\tlet h;\n\tlet s;\n\n\tswitch (max) {\n\t\tcase min: {\n\t\t\th = 0;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase r: {\n\t\t\th = (g - b) / delta;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase g: {\n\t\t\th = 2 + (b - r) / delta;\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase b: {\n\t\t\th = 4 + (r - g) / delta;\n\n\t\t\tbreak;\n\t\t}\n\t// No default\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst l = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert$1.rgb.hsv = function (rgb) {\n\tlet rdif;\n\tlet gdif;\n\tlet bdif;\n\tlet h;\n\tlet s;\n\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst v = Math.max(r, g, b);\n\tconst diff = v - Math.min(r, g, b);\n\tconst diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = 0;\n\t\ts = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tswitch (v) {\n\t\t\tcase r: {\n\t\t\t\th = bdif - gdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase g: {\n\t\t\t\th = (1 / 3) + rdif - bdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase b: {\n\t\t\t\th = (2 / 3) + gdif - rdif;\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t// No default\n\t\t}\n\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100,\n\t];\n};\n\nconvert$1.rgb.hwb = function (rgb) {\n\tconst r = rgb[0];\n\tconst g = rgb[1];\n\tlet b = rgb[2];\n\tconst h = convert$1.rgb.hsl(rgb)[0];\n\tconst w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert$1.rgb.oklab = function (rgb) {\n\t// Assume sRGB\n\tconst r = srgbNonlinearTransformInv(rgb[0] / 255);\n\tconst g = srgbNonlinearTransformInv(rgb[1] / 255);\n\tconst b = srgbNonlinearTransformInv(rgb[2] / 255);\n\n\tconst lp = Math.cbrt(0.412_221_470_8 * r + 0.536_332_536_3 * g + 0.051_445_992_9 * b);\n\tconst mp = Math.cbrt(0.211_903_498_2 * r + 0.680_699_545_1 * g + 0.107_396_956_6 * b);\n\tconst sp = Math.cbrt(0.088_302_461_9 * r + 0.281_718_837_6 * g + 0.629_978_700_5 * b);\n\n\tconst l = 0.210_454_255_3 * lp + 0.793_617_785 * mp - 0.004_072_046_8 * sp;\n\tconst aa = 1.977_998_495_1 * lp - 2.428_592_205 * mp + 0.450_593_709_9 * sp;\n\tconst bb = 0.025_904_037_1 * lp + 0.782_771_766_2 * mp - 0.808_675_766 * sp;\n\n\treturn [l * 100, aa * 100, bb * 100];\n};\n\nconvert$1.rgb.cmyk = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\n\tconst k = Math.min(1 - r, 1 - g, 1 - b);\n\tconst c = (1 - r - k) / (1 - k) || 0;\n\tconst m = (1 - g - k) / (1 - k) || 0;\n\tconst y = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\nfunction comparativeDistance(x, y) {\n\t/*\n\t\tSee https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n\t*/\n\treturn (\n\t\t((x[0] - y[0]) ** 2) +\n\t\t((x[1] - y[1]) ** 2) +\n\t\t((x[2] - y[2]) ** 2)\n\t);\n}\n\nconvert$1.rgb.keyword = function (rgb) {\n\tconst reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tlet currentClosestDistance = Number.POSITIVE_INFINITY;\n\tlet currentClosestKeyword;\n\n\tfor (const keyword of Object.keys(cssKeywords)) {\n\t\tconst value = cssKeywords[keyword];\n\n\t\t// Compute comparative distance\n\t\tconst distance = comparativeDistance(rgb, value);\n\n\t\t// Check if its less, if so set as closest\n\t\tif (distance < currentClosestDistance) {\n\t\t\tcurrentClosestDistance = distance;\n\t\t\tcurrentClosestKeyword = keyword;\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert$1.keyword.rgb = function (keyword) {\n\treturn cssKeywords[keyword];\n};\n\nconvert$1.rgb.xyz = function (rgb) {\n\t// Assume sRGB\n\tconst r = srgbNonlinearTransformInv(rgb[0] / 255);\n\tconst g = srgbNonlinearTransformInv(rgb[1] / 255);\n\tconst b = srgbNonlinearTransformInv(rgb[2] / 255);\n\n\tconst x = (r * 0.412_456_4) + (g * 0.357_576_1) + (b * 0.180_437_5);\n\tconst y = (r * 0.212_672_9) + (g * 0.715_152_2) + (b * 0.072_175);\n\tconst z = (r * 0.019_333_9) + (g * 0.119_192) + (b * 0.950_304_1);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert$1.rgb.lab = function (rgb) {\n\tconst xyz = convert$1.rgb.xyz(rgb);\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > LAB_FT ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > LAB_FT ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > LAB_FT ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert$1.hsl.rgb = function (hsl) {\n\tconst h = hsl[0] / 360;\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\tlet t3;\n\tlet value;\n\n\tif (s === 0) {\n\t\tvalue = l * 255;\n\t\treturn [value, value, value];\n\t}\n\n\tconst t2 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n\n\tconst t1 = 2 * l - t2;\n\n\tconst rgb = [0, 0, 0];\n\tfor (let i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tvalue = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tvalue = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tvalue = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tvalue = t1;\n\t\t}\n\n\t\trgb[i] = value * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert$1.hsl.hsv = function (hsl) {\n\tconst h = hsl[0];\n\tlet s = hsl[1] / 100;\n\tlet l = hsl[2] / 100;\n\tlet smin = s;\n\tconst lmin = Math.max(l, 0.01);\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tconst v = (l + s) / 2;\n\tconst sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert$1.hsv.rgb = function (hsv) {\n\tconst h = hsv[0] / 60;\n\tconst s = hsv[1] / 100;\n\tlet v = hsv[2] / 100;\n\tconst hi = Math.floor(h) % 6;\n\n\tconst f = h - Math.floor(h);\n\tconst p = 255 * v * (1 - s);\n\tconst q = 255 * v * (1 - (s * f));\n\tconst t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0: {\n\t\t\treturn [v, t, p];\n\t\t}\n\n\t\tcase 1: {\n\t\t\treturn [q, v, p];\n\t\t}\n\n\t\tcase 2: {\n\t\t\treturn [p, v, t];\n\t\t}\n\n\t\tcase 3: {\n\t\t\treturn [p, q, v];\n\t\t}\n\n\t\tcase 4: {\n\t\t\treturn [t, p, v];\n\t\t}\n\n\t\tcase 5: {\n\t\t\treturn [v, p, q];\n\t\t}\n\t}\n};\n\nconvert$1.hsv.hsl = function (hsv) {\n\tconst h = hsv[0];\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\tconst vmin = Math.max(v, 0.01);\n\tlet sl;\n\tlet l;\n\n\tl = (2 - s) * v;\n\tconst lmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert$1.hwb.rgb = function (hwb) {\n\tconst h = hwb[0] / 360;\n\tlet wh = hwb[1] / 100;\n\tlet bl = hwb[2] / 100;\n\tconst ratio = wh + bl;\n\tlet f;\n\n\t// Wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\tconst i = Math.floor(6 * h);\n\tconst v = 1 - bl;\n\tf = 6 * h - i;\n\n\t// eslint-disable-next-line no-bitwise\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tconst n = wh + f * (v - wh); // Linear interpolation\n\n\tlet r;\n\tlet g;\n\tlet b;\n\t/* eslint-disable max-statements-per-line,no-multi-spaces, default-case-last */\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: { r = v; g = n; b = wh; break;\n\t\t}\n\n\t\tcase 1: { r = n; g = v; b = wh; break;\n\t\t}\n\n\t\tcase 2: { r = wh; g = v; b = n; break;\n\t\t}\n\n\t\tcase 3: { r = wh; g = n; b = v; break;\n\t\t}\n\n\t\tcase 4: { r = n; g = wh; b = v; break;\n\t\t}\n\n\t\tcase 5: { r = v; g = wh; b = n; break;\n\t\t}\n\t}\n\t/* eslint-enable max-statements-per-line,no-multi-spaces, default-case-last */\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert$1.cmyk.rgb = function (cmyk) {\n\tconst c = cmyk[0] / 100;\n\tconst m = cmyk[1] / 100;\n\tconst y = cmyk[2] / 100;\n\tconst k = cmyk[3] / 100;\n\n\tconst r = 1 - Math.min(1, c * (1 - k) + k);\n\tconst g = 1 - Math.min(1, m * (1 - k) + k);\n\tconst b = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert$1.xyz.rgb = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\tlet r;\n\tlet g;\n\tlet b;\n\n\tr = (x * 3.240_454_2) + (y * -1.537_138_5) + (z * -0.498_531_4);\n\tg = (x * -0.969_266) + (y * 1.876_010_8) + (z * 0.041_556);\n\tb = (x * 0.055_643_4) + (y * -0.204_025_9) + (z * 1.057_225_2);\n\n\t// Assume sRGB\n\tr = srgbNonlinearTransform(r);\n\tg = srgbNonlinearTransform(g);\n\tb = srgbNonlinearTransform(b);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert$1.xyz.lab = function (xyz) {\n\tlet x = xyz[0];\n\tlet y = xyz[1];\n\tlet z = xyz[2];\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > LAB_FT ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116);\n\ty = y > LAB_FT ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116);\n\tz = z > LAB_FT ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116);\n\n\tconst l = (116 * y) - 16;\n\tconst a = 500 * (x - y);\n\tconst b = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert$1.xyz.oklab = function (xyz) {\n\tconst x = xyz[0] / 100;\n\tconst y = xyz[1] / 100;\n\tconst z = xyz[2] / 100;\n\n\tconst lp = Math.cbrt(0.818_933_010_1 * x + 0.361_866_742_4 * y - 0.128_859_713_7 * z);\n\tconst mp = Math.cbrt(0.032_984_543_6 * x + 0.929_311_871_5 * y + 0.036_145_638_7 * z);\n\tconst sp = Math.cbrt(0.048_200_301_8 * x + 0.264_366_269_1 * y + 0.633_851_707 * z);\n\n\tconst l = 0.210_454_255_3 * lp + 0.793_617_785 * mp - 0.004_072_046_8 * sp;\n\tconst a = 1.977_998_495_1 * lp - 2.428_592_205 * mp + 0.450_593_709_9 * sp;\n\tconst b = 0.025_904_037_1 * lp + 0.782_771_766_2 * mp - 0.808_675_766 * sp;\n\n\treturn [l * 100, a * 100, b * 100];\n};\n\nconvert$1.oklab.oklch = function (oklab) {\n\treturn convert$1.lab.lch(oklab);\n};\n\nconvert$1.oklab.xyz = function (oklab) {\n\tconst ll = oklab[0] / 100;\n\tconst a = oklab[1] / 100;\n\tconst b = oklab[2] / 100;\n\n\tconst l = (0.999_999_998 * ll + 0.396_337_792 * a + 0.215_803_758 * b) ** 3;\n\tconst m = (1.000_000_008 * ll - 0.105_561_342 * a - 0.063_854_175 * b) ** 3;\n\tconst s = (1.000_000_055 * ll - 0.089_484_182 * a - 1.291_485_538 * b) ** 3;\n\n\tconst x = 1.227_013_851 * l - 0.557_799_98 * m + 0.281_256_149 * s;\n\tconst y = -0.040_580_178 * l + 1.112_256_87 * m - 0.071_676_679 * s;\n\tconst z = -0.076_381_285 * l - 0.421_481_978 * m + 1.586_163_22 * s;\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert$1.oklab.rgb = function (oklab) {\n\tconst ll = oklab[0] / 100;\n\tconst aa = oklab[1] / 100;\n\tconst bb = oklab[2] / 100;\n\n\tconst l = (ll + 0.396_337_777_4 * aa + 0.215_803_757_3 * bb) ** 3;\n\tconst m = (ll - 0.105_561_345_8 * aa - 0.063_854_172_8 * bb) ** 3;\n\tconst s = (ll - 0.089_484_177_5 * aa - 1.291_485_548 * bb) ** 3;\n\n\t// Assume sRGB\n\tconst r = srgbNonlinearTransform(4.076_741_662_1 * l - 3.307_711_591_3 * m + 0.230_969_929_2 * s);\n\tconst g = srgbNonlinearTransform(-1.268_438_004_6 * l + 2.609_757_401_1 * m - 0.341_319_396_5 * s);\n\tconst b = srgbNonlinearTransform(-0.004_196_086_3 * l - 0.703_418_614_7 * m + 1.707_614_701 * s);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert$1.oklch.oklab = function (oklch) {\n\treturn convert$1.lch.lab(oklch);\n};\n\nconvert$1.lab.xyz = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet x;\n\tlet y;\n\tlet z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tconst y2 = y ** 3;\n\tconst x2 = x ** 3;\n\tconst z2 = z ** 3;\n\ty = y2 > LAB_FT ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > LAB_FT ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > LAB_FT ? z2 : (z - 16 / 116) / 7.787;\n\n\t// Illuminant D65 XYZ Tristrimulus Values\n\t// https://en.wikipedia.org/wiki/CIE_1931_color_space\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert$1.lab.lch = function (lab) {\n\tconst l = lab[0];\n\tconst a = lab[1];\n\tconst b = lab[2];\n\tlet h;\n\n\tconst hr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tconst c = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert$1.lch.lab = function (lch) {\n\tconst l = lch[0];\n\tconst c = lch[1];\n\tconst h = lch[2];\n\n\tconst hr = h / 360 * 2 * Math.PI;\n\tconst a = c * Math.cos(hr);\n\tconst b = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert$1.rgb.ansi16 = function (args, saturation = null) {\n\tconst [r, g, b] = args;\n\tlet value = saturation === null ? convert$1.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tlet ansi = 30\n\t\t/* eslint-disable no-bitwise */\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\t\t/* eslint-enable no-bitwise */\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert$1.hsv.ansi16 = function (args) {\n\t// Optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert$1.rgb.ansi16(convert$1.hsv.rgb(args), args[2]);\n};\n\nconvert$1.rgb.ansi256 = function (args) {\n\tconst r = args[0];\n\tconst g = args[1];\n\tconst b = args[2];\n\n\t// We use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\t// eslint-disable-next-line no-bitwise\n\tif (r >> 4 === g >> 4 && g >> 4 === b >> 4) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tconst ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert$1.ansi16.rgb = function (args) {\n\targs = args[0];\n\n\tlet color = args % 10;\n\n\t// Handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tconst mult = (Math.trunc(args > 50) + 1) * 0.5;\n\t/* eslint-disable no-bitwise */\n\tconst r = ((color & 1) * mult) * 255;\n\tconst g = (((color >> 1) & 1) * mult) * 255;\n\tconst b = (((color >> 2) & 1) * mult) * 255;\n\t/* eslint-enable no-bitwise */\n\n\treturn [r, g, b];\n};\n\nconvert$1.ansi256.rgb = function (args) {\n\targs = args[0];\n\n\t// Handle greyscale\n\tif (args >= 232) {\n\t\tconst c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tlet rem;\n\tconst r = Math.floor(args / 36) / 5 * 255;\n\tconst g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tconst b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert$1.rgb.hex = function (args) {\n\t/* eslint-disable no-bitwise */\n\tconst integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\t/* eslint-enable no-bitwise */\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.slice(string.length) + string;\n};\n\nconvert$1.hex.rgb = function (args) {\n\tconst match = args.toString(16).match(/[a-f\\d]{6}|[a-f\\d]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tlet colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = [...colorString].map(char => char + char).join('');\n\t}\n\n\tconst integer = Number.parseInt(colorString, 16);\n\t/* eslint-disable no-bitwise */\n\tconst r = (integer >> 16) & 0xFF;\n\tconst g = (integer >> 8) & 0xFF;\n\tconst b = integer & 0xFF;\n\t/* eslint-enable no-bitwise */\n\n\treturn [r, g, b];\n};\n\nconvert$1.rgb.hcg = function (rgb) {\n\tconst r = rgb[0] / 255;\n\tconst g = rgb[1] / 255;\n\tconst b = rgb[2] / 255;\n\tconst max = Math.max(Math.max(r, g), b);\n\tconst min = Math.min(Math.min(r, g), b);\n\tconst chroma = (max - min);\n\tlet hue;\n\n\tconst grayscale = chroma < 1 ? min / (1 - chroma) : 0;\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else if (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else if (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert$1.hsl.hcg = function (hsl) {\n\tconst s = hsl[1] / 100;\n\tconst l = hsl[2] / 100;\n\n\tconst c = l < 0.5 ? (2 * s * l) : (2 * s * (1 - l));\n\n\tlet f = 0;\n\tif (c < 1) {\n\t\tf = (l - 0.5 * c) / (1 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert$1.hsv.hcg = function (hsv) {\n\tconst s = hsv[1] / 100;\n\tconst v = hsv[2] / 100;\n\n\tconst c = s * v;\n\tlet f = 0;\n\n\tif (c < 1) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert$1.hcg.rgb = function (hcg) {\n\tconst h = hcg[0] / 360;\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tif (c === 0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tconst pure = [0, 0, 0];\n\tconst hi = (h % 1) * 6;\n\tconst v = hi % 1;\n\tconst w = 1 - v;\n\tlet mg = 0;\n\n\t/* eslint-disable max-statements-per-line */\n\tswitch (Math.floor(hi)) {\n\t\tcase 0: {\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\t}\n\n\t\tcase 1: {\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\t}\n\n\t\tcase 2: {\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\t}\n\n\t\tcase 3: {\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\t}\n\n\t\tcase 4: {\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\t}\n\n\t\tdefault: {\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t\t}\n\t}\n\t/* eslint-enable max-statements-per-line */\n\n\tmg = (1 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255,\n\t];\n};\n\nconvert$1.hcg.hsv = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst v = c + g * (1 - c);\n\tlet f = 0;\n\n\tif (v > 0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert$1.hcg.hsl = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\n\tconst l = g * (1 - c) + 0.5 * c;\n\tlet s = 0;\n\n\tif (l > 0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else if (l >= 0.5 && l < 1) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert$1.hcg.hwb = function (hcg) {\n\tconst c = hcg[1] / 100;\n\tconst g = hcg[2] / 100;\n\tconst v = c + g * (1 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert$1.hwb.hcg = function (hwb) {\n\tconst w = hwb[1] / 100;\n\tconst b = hwb[2] / 100;\n\tconst v = 1 - b;\n\tconst c = v - w;\n\tlet g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert$1.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65_535) * 255, (apple[1] / 65_535) * 255, (apple[2] / 65_535) * 255];\n};\n\nconvert$1.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65_535, (rgb[1] / 255) * 65_535, (rgb[2] / 255) * 65_535];\n};\n\nconvert$1.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert$1.gray.hsl = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert$1.gray.hsv = convert$1.gray.hsl;\n\nconvert$1.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert$1.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert$1.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert$1.gray.hex = function (gray) {\n\t/* eslint-disable no-bitwise */\n\tconst value = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tconst integer = (value << 16) + (value << 8) + value;\n\t/* eslint-enable no-bitwise */\n\n\tconst string = integer.toString(16).toUpperCase();\n\treturn '000000'.slice(string.length) + string;\n};\n\nconvert$1.rgb.gray = function (rgb) {\n\tconst value = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [value / 255 * 100];\n};\n\n/*\n\tThis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tconst graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst models = Object.keys(convert$1);\n\n\tfor (let {length} = models, i = 0; i < length; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null,\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tconst graph = buildGraph();\n\tconst queue = [fromModel]; // Unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length > 0) {\n\t\tconst current = queue.pop();\n\t\tconst adjacents = Object.keys(convert$1[current]);\n\n\t\tfor (let {length} = adjacents, i = 0; i < length; i++) {\n\t\t\tconst adjacent = adjacents[i];\n\t\t\tconst node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tconst path = [graph[toModel].parent, toModel];\n\tlet fn = convert$1[graph[toModel].parent][toModel];\n\n\tlet cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(convert$1[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nfunction route(fromModel) {\n\tconst graph = deriveBFS(fromModel);\n\tconst conversion = {};\n\n\tconst models = Object.keys(graph);\n\tfor (let {length} = models, i = 0; i < length; i++) {\n\t\tconst toModel = models[i];\n\t\tconst node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// No possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n}\n\nconst convert = {};\n\nconst models = Object.keys(convert$1);\n\nfunction wrapRaw(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tconst wrappedFn = function (...args) {\n\t\tconst arg0 = args[0];\n\n\t\tif (arg0 === undefined || arg0 === null) {\n\t\t\treturn arg0;\n\t\t}\n\n\t\tif (arg0.length > 1) {\n\t\t\targs = arg0;\n\t\t}\n\n\t\tconst result = fn(args);\n\n\t\t// We're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (let {length} = result, i = 0; i < length; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// Preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfor (const fromModel of models) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: convert$1[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: convert$1[fromModel].labels});\n\n\tconst routes = route(fromModel);\n\tconst routeModels = Object.keys(routes);\n\n\tfor (const toModel of routeModels) {\n\t\tconst fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t}\n}\n\nconst skippedModels = [\n\t// To be honest, I don't really feel like keyword belongs in color convert, but eh.\n\t'keyword',\n\n\t// Gray conflicts with some method names, and has its own method defined.\n\t'gray',\n\n\t// Shouldn't really be in color-convert either...\n\t'hex',\n];\n\nconst hashedModelKeys = {};\nfor (const model of Object.keys(convert)) {\n\thashedModelKeys[[...convert[model].labels].sort().join('')] = model;\n}\n\nconst limiters = {};\n\nfunction Color(object, model) {\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(object, model);\n\t}\n\n\tif (model && model in skippedModels) {\n\t\tmodel = null;\n\t}\n\n\tif (model && !(model in convert)) {\n\t\tthrow new Error('Unknown model: ' + model);\n\t}\n\n\tlet i;\n\tlet channels;\n\n\tif (object == null) { // eslint-disable-line no-eq-null,eqeqeq\n\t\tthis.model = 'rgb';\n\t\tthis.color = [0, 0, 0];\n\t\tthis.valpha = 1;\n\t} else if (object instanceof Color) {\n\t\tthis.model = object.model;\n\t\tthis.color = [...object.color];\n\t\tthis.valpha = object.valpha;\n\t} else if (typeof object === 'string') {\n\t\tconst result = cs.get(object);\n\t\tif (result === null) {\n\t\t\tthrow new Error('Unable to parse color from string: ' + object);\n\t\t}\n\n\t\tthis.model = result.model;\n\t\tchannels = convert[this.model].channels;\n\t\tthis.color = result.value.slice(0, channels);\n\t\tthis.valpha = typeof result.value[channels] === 'number' ? result.value[channels] : 1;\n\t} else if (object.length > 0) {\n\t\tthis.model = model || 'rgb';\n\t\tchannels = convert[this.model].channels;\n\t\tconst newArray = Array.prototype.slice.call(object, 0, channels);\n\t\tthis.color = zeroArray(newArray, channels);\n\t\tthis.valpha = typeof object[channels] === 'number' ? object[channels] : 1;\n\t} else if (typeof object === 'number') {\n\t\t// This is always RGB - can be converted later on.\n\t\tthis.model = 'rgb';\n\t\tthis.color = [\n\t\t\t(object >> 16) & 0xFF,\n\t\t\t(object >> 8) & 0xFF,\n\t\t\tobject & 0xFF,\n\t\t];\n\t\tthis.valpha = 1;\n\t} else {\n\t\tthis.valpha = 1;\n\n\t\tconst keys = Object.keys(object);\n\t\tif ('alpha' in object) {\n\t\t\tkeys.splice(keys.indexOf('alpha'), 1);\n\t\t\tthis.valpha = typeof object.alpha === 'number' ? object.alpha : 0;\n\t\t}\n\n\t\tconst hashedKeys = keys.sort().join('');\n\t\tif (!(hashedKeys in hashedModelKeys)) {\n\t\t\tthrow new Error('Unable to parse color from object: ' + JSON.stringify(object));\n\t\t}\n\n\t\tthis.model = hashedModelKeys[hashedKeys];\n\n\t\tconst {labels} = convert[this.model];\n\t\tconst color = [];\n\t\tfor (i = 0; i < labels.length; i++) {\n\t\t\tcolor.push(object[labels[i]]);\n\t\t}\n\n\t\tthis.color = zeroArray(color);\n\t}\n\n\t// Perform limitations (clamping, etc.)\n\tif (limiters[this.model]) {\n\t\tchannels = convert[this.model].channels;\n\t\tfor (i = 0; i < channels; i++) {\n\t\t\tconst limit = limiters[this.model][i];\n\t\t\tif (limit) {\n\t\t\t\tthis.color[i] = limit(this.color[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.valpha = Math.max(0, Math.min(1, this.valpha));\n\n\tif (Object.freeze) {\n\t\tObject.freeze(this);\n\t}\n}\n\nColor.prototype = {\n\ttoString() {\n\t\treturn this.string();\n\t},\n\n\ttoJSON() {\n\t\treturn this[this.model]();\n\t},\n\n\tstring(places) {\n\t\tlet self = this.model in cs.to ? this : this.rgb();\n\t\tself = self.round(typeof places === 'number' ? places : 1);\n\t\tconst arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn cs.to[self.model](...arguments_);\n\t},\n\n\tpercentString(places) {\n\t\tconst self = this.rgb().round(typeof places === 'number' ? places : 1);\n\t\tconst arguments_ = self.valpha === 1 ? self.color : [...self.color, this.valpha];\n\t\treturn cs.to.rgb.percent(...arguments_);\n\t},\n\n\tarray() {\n\t\treturn this.valpha === 1 ? [...this.color] : [...this.color, this.valpha];\n\t},\n\n\tobject() {\n\t\tconst result = {};\n\t\tconst {channels} = convert[this.model];\n\t\tconst {labels} = convert[this.model];\n\n\t\tfor (let i = 0; i < channels; i++) {\n\t\t\tresult[labels[i]] = this.color[i];\n\t\t}\n\n\t\tif (this.valpha !== 1) {\n\t\t\tresult.alpha = this.valpha;\n\t\t}\n\n\t\treturn result;\n\t},\n\n\tunitArray() {\n\t\tconst rgb = this.rgb().color;\n\t\trgb[0] /= 255;\n\t\trgb[1] /= 255;\n\t\trgb[2] /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.push(this.valpha);\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tunitObject() {\n\t\tconst rgb = this.rgb().object();\n\t\trgb.r /= 255;\n\t\trgb.g /= 255;\n\t\trgb.b /= 255;\n\n\t\tif (this.valpha !== 1) {\n\t\t\trgb.alpha = this.valpha;\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tround(places) {\n\t\tplaces = Math.max(places || 0, 0);\n\t\treturn new Color([...this.color.map(roundToPlace(places)), this.valpha], this.model);\n\t},\n\n\talpha(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color([...this.color, Math.max(0, Math.min(1, value))], this.model);\n\t\t}\n\n\t\treturn this.valpha;\n\t},\n\n\t// Rgb\n\tred: getset('rgb', 0, maxfn(255)),\n\tgreen: getset('rgb', 1, maxfn(255)),\n\tblue: getset('rgb', 2, maxfn(255)),\n\n\thue: getset(['hsl', 'hsv', 'hsl', 'hwb', 'hcg'], 0, value => ((value % 360) + 360) % 360),\n\n\tsaturationl: getset('hsl', 1, maxfn(100)),\n\tlightness: getset('hsl', 2, maxfn(100)),\n\n\tsaturationv: getset('hsv', 1, maxfn(100)),\n\tvalue: getset('hsv', 2, maxfn(100)),\n\n\tchroma: getset('hcg', 1, maxfn(100)),\n\tgray: getset('hcg', 2, maxfn(100)),\n\n\twhite: getset('hwb', 1, maxfn(100)),\n\twblack: getset('hwb', 2, maxfn(100)),\n\n\tcyan: getset('cmyk', 0, maxfn(100)),\n\tmagenta: getset('cmyk', 1, maxfn(100)),\n\tyellow: getset('cmyk', 2, maxfn(100)),\n\tblack: getset('cmyk', 3, maxfn(100)),\n\n\tx: getset('xyz', 0, maxfn(95.047)),\n\ty: getset('xyz', 1, maxfn(100)),\n\tz: getset('xyz', 2, maxfn(108.833)),\n\n\tl: getset('lab', 0, maxfn(100)),\n\ta: getset('lab', 1),\n\tb: getset('lab', 2),\n\n\tkeyword(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn convert[this.model].keyword(this.color);\n\t},\n\n\thex(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\treturn cs.to.hex(...this.rgb().round().color);\n\t},\n\n\thexa(value) {\n\t\tif (value !== undefined) {\n\t\t\treturn new Color(value);\n\t\t}\n\n\t\tconst rgbArray = this.rgb().round().color;\n\n\t\tlet alphaHex = Math.round(this.valpha * 255).toString(16).toUpperCase();\n\t\tif (alphaHex.length === 1) {\n\t\t\talphaHex = '0' + alphaHex;\n\t\t}\n\n\t\treturn cs.to.hex(...rgbArray) + alphaHex;\n\t},\n\n\trgbNumber() {\n\t\tconst rgb = this.rgb().color;\n\t\treturn ((rgb[0] & 0xFF) << 16) | ((rgb[1] & 0xFF) << 8) | (rgb[2] & 0xFF);\n\t},\n\n\tluminosity() {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tconst rgb = this.rgb().color;\n\n\t\tconst lum = [];\n\t\tfor (const [i, element] of rgb.entries()) {\n\t\t\tconst chan = element / 255;\n\t\t\tlum[i] = (chan <= 0.04045) ? chan / 12.92 : ((chan + 0.055) / 1.055) ** 2.4;\n\t\t}\n\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast(color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tconst lum1 = this.luminosity();\n\t\tconst lum2 = color2.luminosity();\n\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel(color2) {\n\t\t// https://www.w3.org/TR/WCAG/#contrast-enhanced\n\t\tconst contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tisDark() {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tconst rgb = this.rgb().color;\n\t\tconst yiq = (rgb[0] * 2126 + rgb[1] * 7152 + rgb[2] * 722) / 10000;\n\t\treturn yiq < 128;\n\t},\n\n\tisLight() {\n\t\treturn !this.isDark();\n\t},\n\n\tnegate() {\n\t\tconst rgb = this.rgb();\n\t\tfor (let i = 0; i < 3; i++) {\n\t\t\trgb.color[i] = 255 - rgb.color[i];\n\t\t}\n\n\t\treturn rgb;\n\t},\n\n\tlighten(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] += hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdarken(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[2] -= hsl.color[2] * ratio;\n\t\treturn hsl;\n\t},\n\n\tsaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] += hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\tdesaturate(ratio) {\n\t\tconst hsl = this.hsl();\n\t\thsl.color[1] -= hsl.color[1] * ratio;\n\t\treturn hsl;\n\t},\n\n\twhiten(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[1] += hwb.color[1] * ratio;\n\t\treturn hwb;\n\t},\n\n\tblacken(ratio) {\n\t\tconst hwb = this.hwb();\n\t\thwb.color[2] += hwb.color[2] * ratio;\n\t\treturn hwb;\n\t},\n\n\tgrayscale() {\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_colour_to_grayscale\n\t\tconst rgb = this.rgb().color;\n\t\tconst value = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\treturn Color.rgb(value, value, value);\n\t},\n\n\tfade(ratio) {\n\t\treturn this.alpha(this.valpha - (this.valpha * ratio));\n\t},\n\n\topaquer(ratio) {\n\t\treturn this.alpha(this.valpha + (this.valpha * ratio));\n\t},\n\n\trotate(degrees) {\n\t\tconst hsl = this.hsl();\n\t\tlet hue = hsl.color[0];\n\t\thue = (hue + degrees) % 360;\n\t\thue = hue < 0 ? 360 + hue : hue;\n\t\thsl.color[0] = hue;\n\t\treturn hsl;\n\t},\n\n\tmix(mixinColor, weight) {\n\t\t// Ported from sass implementation in C\n\t\t// https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t\tif (!mixinColor || !mixinColor.rgb) {\n\t\t\tthrow new Error('Argument to \"mix\" was not a Color instance, but rather an instance of ' + typeof mixinColor);\n\t\t}\n\n\t\tconst color1 = mixinColor.rgb();\n\t\tconst color2 = this.rgb();\n\t\tconst p = weight === undefined ? 0.5 : weight;\n\n\t\tconst w = 2 * p - 1;\n\t\tconst a = color1.alpha() - color2.alpha();\n\n\t\tconst w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2;\n\t\tconst w2 = 1 - w1;\n\n\t\treturn Color.rgb(\n\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\tw1 * color1.blue() + w2 * color2.blue(),\n\t\t\tcolor1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n};\n\n// Model conversion methods and static constructors\nfor (const model of Object.keys(convert)) {\n\tif (skippedModels.includes(model)) {\n\t\tcontinue;\n\t}\n\n\tconst {channels} = convert[model];\n\n\t// Conversion methods\n\tColor.prototype[model] = function (...arguments_) {\n\t\tif (this.model === model) {\n\t\t\treturn new Color(this);\n\t\t}\n\n\t\tif (arguments_.length > 0) {\n\t\t\treturn new Color(arguments_, model);\n\t\t}\n\n\t\treturn new Color([...assertArray(convert[this.model][model].raw(this.color)), this.valpha], model);\n\t};\n\n\t// 'static' construction methods\n\tColor[model] = function (...arguments_) {\n\t\tlet color = arguments_[0];\n\t\tif (typeof color === 'number') {\n\t\t\tcolor = zeroArray(arguments_, channels);\n\t\t}\n\n\t\treturn new Color(color, model);\n\t};\n}\n\nfunction roundTo(number, places) {\n\treturn Number(number.toFixed(places));\n}\n\nfunction roundToPlace(places) {\n\treturn function (number) {\n\t\treturn roundTo(number, places);\n\t};\n}\n\nfunction getset(model, channel, modifier) {\n\tmodel = Array.isArray(model) ? model : [model];\n\n\tfor (const m of model) {\n\t\t(limiters[m] ||= [])[channel] = modifier;\n\t}\n\n\tmodel = model[0];\n\n\treturn function (value) {\n\t\tlet result;\n\n\t\tif (value !== undefined) {\n\t\t\tif (modifier) {\n\t\t\t\tvalue = modifier(value);\n\t\t\t}\n\n\t\t\tresult = this[model]();\n\t\t\tresult.color[channel] = value;\n\t\t\treturn result;\n\t\t}\n\n\t\tresult = this[model]().color[channel];\n\t\tif (modifier) {\n\t\t\tresult = modifier(result);\n\t\t}\n\n\t\treturn result;\n\t};\n}\n\nfunction maxfn(max) {\n\treturn function (v) {\n\t\treturn Math.max(0, Math.min(max, v));\n\t};\n}\n\nfunction assertArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\nfunction zeroArray(array, length) {\n\tfor (let i = 0; i < length; i++) {\n\t\tif (typeof array[i] !== 'number') {\n\t\t\tarray[i] = 0;\n\t\t}\n\t}\n\n\treturn array;\n}\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\n/***\n * Convert string to hex color.\n *\n * @param {String} str Text to hash and convert to hex.\n * @returns {String}\n * @api public\n */\nvar textHex = function hex(str) {\n for (\n var i = 0, hash = 0;\n i < str.length;\n hash = str.charCodeAt(i++) + ((hash << 5) - hash)\n );\n\n var color = Math.floor(\n Math.abs(\n (Math.sin(hash) * 10000) % 1 * 16777216\n )\n ).toString(16);\n\n return '#' + Array(6 - color.length + 1).join('0') + color;\n};\n\nvar hex = /*@__PURE__*/getDefaultExportFromCjs(textHex);\n\n/**\r\n * Generate a color for a given name. But be reasonably smart about it by\r\n * understanding name spaces and coloring each namespace a bit lighter so they\r\n * still have the same base color as the root.\r\n *\r\n * @param {string} namespace The namespace\r\n * @param {string} [delimiter] The delimiter\r\n * @returns {string} color\r\n */\nfunction colorspace(namespace, delimiter) {\n const split = namespace.split(delimiter || ':');\n let base = hex(split[0]);\n if (!split.length) return base;\n for (let i = 0, l = split.length - 1; i < l; i++) {\n base = Color(base).mix(Color(hex(split[i + 1]))).saturate(1).hex();\n }\n return base;\n}\n\nmodule.exports = colorspace;\n",
390
- "'use strict';\n\n/**\n * Kuler: Color text using CSS colors\n *\n * @constructor\n * @param {String} text The text that needs to be styled\n * @param {String} color Optional color for alternate API.\n * @api public\n */\nfunction Kuler(text, color) {\n if (color) return (new Kuler(text)).style(color);\n if (!(this instanceof Kuler)) return new Kuler(text);\n\n this.text = text;\n}\n\n/**\n * ANSI color codes.\n *\n * @type {String}\n * @private\n */\nKuler.prototype.prefix = '\\x1b[';\nKuler.prototype.suffix = 'm';\n\n/**\n * Parse a hex color string and parse it to it's RGB equiv.\n *\n * @param {String} color\n * @returns {Array}\n * @api private\n */\nKuler.prototype.hex = function hex(color) {\n color = color[0] === '#' ? color.substring(1) : color;\n\n //\n // Pre-parse for shorthand hex colors.\n //\n if (color.length === 3) {\n color = color.split('');\n\n color[5] = color[2]; // F60##0\n color[4] = color[2]; // F60#00\n color[3] = color[1]; // F60600\n color[2] = color[1]; // F66600\n color[1] = color[0]; // FF6600\n\n color = color.join('');\n }\n\n var r = color.substring(0, 2)\n , g = color.substring(2, 4)\n , b = color.substring(4, 6);\n\n return [ parseInt(r, 16), parseInt(g, 16), parseInt(b, 16) ];\n};\n\n/**\n * Transform a 255 RGB value to an RGV code.\n *\n * @param {Number} r Red color channel.\n * @param {Number} g Green color channel.\n * @param {Number} b Blue color channel.\n * @returns {String}\n * @api public\n */\nKuler.prototype.rgb = function rgb(r, g, b) {\n var red = r / 255 * 5\n , green = g / 255 * 5\n , blue = b / 255 * 5;\n\n return this.ansi(red, green, blue);\n};\n\n/**\n * Turns RGB 0-5 values into a single ANSI code.\n *\n * @param {Number} r Red color channel.\n * @param {Number} g Green color channel.\n * @param {Number} b Blue color channel.\n * @returns {String}\n * @api public\n */\nKuler.prototype.ansi = function ansi(r, g, b) {\n var red = Math.round(r)\n , green = Math.round(g)\n , blue = Math.round(b);\n\n return 16 + (red * 36) + (green * 6) + blue;\n};\n\n/**\n * Marks an end of color sequence.\n *\n * @returns {String} Reset sequence.\n * @api public\n */\nKuler.prototype.reset = function reset() {\n return this.prefix +'39;49'+ this.suffix;\n};\n\n/**\n * Colour the terminal using CSS.\n *\n * @param {String} color The HEX color code.\n * @returns {String} the escape code.\n * @api public\n */\nKuler.prototype.style = function style(color) {\n return this.prefix +'38;5;'+ this.rgb.apply(this, this.hex(color)) + this.suffix + this.text + this.reset();\n};\n\n\n//\n// Expose the actual interface.\n//\nmodule.exports = Kuler;\n",
391
- "var colorspace = require('@so-ric/colorspace');\nvar kuler = require('kuler');\n\n/**\n * Prefix the messages with a colored namespace.\n *\n * @param {Array} args The messages array that is getting written.\n * @param {Object} options Options for diagnostics.\n * @returns {Array} Altered messages array.\n * @public\n */\nmodule.exports = function ansiModifier(args, options) {\n var namespace = options.namespace;\n var ansi = options.colors !== false\n ? kuler(namespace +':', colorspace(namespace))\n : namespace +':';\n\n args[0] = ansi +' '+ args[0];\n return args;\n};\n",
392
- "'use strict';\n\n/**\n * Checks if a given namespace is allowed by the given variable.\n *\n * @param {String} name namespace that should be included.\n * @param {String} variable Value that needs to be tested.\n * @returns {Boolean} Indication if namespace is enabled.\n * @public\n */\nmodule.exports = function enabled(name, variable) {\n if (!variable) return false;\n\n var variables = variable.split(/[\\s,]+/)\n , i = 0;\n\n for (; i < variables.length; i++) {\n variable = variables[i].replace('*', '.*?');\n\n if ('-' === variable.charAt(0)) {\n if ((new RegExp('^'+ variable.substr(1) +'$')).test(name)) {\n return false;\n }\n\n continue;\n }\n\n if ((new RegExp('^'+ variable +'$')).test(name)) {\n return true;\n }\n }\n\n return false;\n};\n",
393
- "var enabled = require('enabled');\n\n/**\n * Creates a new Adapter.\n *\n * @param {Function} fn Function that returns the value.\n * @returns {Function} The adapter logic.\n * @public\n */\nmodule.exports = function create(fn) {\n return function adapter(namespace) {\n try {\n return enabled(namespace, fn());\n } catch (e) { /* Any failure means that we found nothing */ }\n\n return false;\n };\n}\n",
394
- "var adapter = require('./');\n\n/**\n * Extracts the values from process.env.\n *\n * @type {Function}\n * @public\n */\nmodule.exports = adapter(function processenv() {\n return process.env.DEBUG || process.env.DIAGNOSTICS;\n});\n",
395
- "/**\n * An idiot proof logger to be used as default. We've wrapped it in a try/catch\n * statement to ensure the environments without the `console` API do not crash\n * as well as an additional fix for ancient browsers like IE8 where the\n * `console.log` API doesn't have an `apply`, so we need to use the Function's\n * apply functionality to apply the arguments.\n *\n * @param {Object} meta Options of the logger.\n * @param {Array} messages The actuall message that needs to be logged.\n * @public\n */\nmodule.exports = function (meta, messages) {\n //\n // So yea. IE8 doesn't have an apply so we need a work around to puke the\n // arguments in place.\n //\n try { Function.prototype.apply.call(console.log, console, messages); }\n catch (e) {}\n}\n",
396
- "var create = require('../diagnostics');\nvar tty = require('tty').isatty(1);\n\n/**\n * Create a new diagnostics logger.\n *\n * @param {String} namespace The namespace it should enable.\n * @param {Object} options Additional options.\n * @returns {Function} The logger.\n * @public\n */\nvar diagnostics = create(function dev(namespace, options) {\n options = options || {};\n options.colors = 'colors' in options ? options.colors : tty;\n options.namespace = namespace;\n options.prod = false;\n options.dev = true;\n\n if (!dev.enabled(namespace) && !(options.force || dev.force)) {\n return dev.nope(options);\n }\n \n return dev.yep(options);\n});\n\n//\n// Configure the logger for the given environment.\n//\ndiagnostics.modify(require('../modifiers/namespace-ansi'));\ndiagnostics.use(require('../adapters/process.env'));\ndiagnostics.set(require('../logger/console'));\n\n//\n// Expose the diagnostics logger.\n//\nmodule.exports = diagnostics;\n",
397
- "//\n// Select the correct build version depending on the environment.\n//\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./production.js');\n} else {\n module.exports = require('./development.js');\n}\n",
398
- "/**\n * tail-file.js: TODO: add file header description.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst fs = require('fs');\nconst { StringDecoder } = require('string_decoder');\nconst { Stream } = require('readable-stream');\n\n/**\n * Simple no-op function.\n * @returns {undefined}\n */\nfunction noop() {}\n\n/**\n * TODO: add function description.\n * @param {Object} options - Options for tail.\n * @param {function} iter - Iterator function to execute on every line.\n* `tail -f` a file. Options must include file.\n * @returns {mixed} - TODO: add return description.\n */\nmodule.exports = (options, iter) => {\n const buffer = Buffer.alloc(64 * 1024);\n const decode = new StringDecoder('utf8');\n const stream = new Stream();\n let buff = '';\n let pos = 0;\n let row = 0;\n\n if (options.start === -1) {\n delete options.start;\n }\n\n stream.readable = true;\n stream.destroy = () => {\n stream.destroyed = true;\n stream.emit('end');\n stream.emit('close');\n };\n\n fs.open(options.file, 'a+', '0644', (err, fd) => {\n if (err) {\n if (!iter) {\n stream.emit('error', err);\n } else {\n iter(err);\n }\n stream.destroy();\n return;\n }\n\n (function read() {\n if (stream.destroyed) {\n fs.close(fd, noop);\n return;\n }\n\n return fs.read(fd, buffer, 0, buffer.length, pos, (error, bytes) => {\n if (error) {\n if (!iter) {\n stream.emit('error', error);\n } else {\n iter(error);\n }\n stream.destroy();\n return;\n }\n\n if (!bytes) {\n if (buff) {\n // eslint-disable-next-line eqeqeq\n if (options.start == null || row > options.start) {\n if (!iter) {\n stream.emit('line', buff);\n } else {\n iter(null, buff);\n }\n }\n row++;\n buff = '';\n }\n return setTimeout(read, 1000);\n }\n\n let data = decode.write(buffer.slice(0, bytes));\n if (!iter) {\n stream.emit('data', data);\n }\n\n data = (buff + data).split(/\\n+/);\n\n const l = data.length - 1;\n let i = 0;\n\n for (; i < l; i++) {\n // eslint-disable-next-line eqeqeq\n if (options.start == null || row > options.start) {\n if (!iter) {\n stream.emit('line', data[i]);\n } else {\n iter(null, data[i]);\n }\n }\n row++;\n }\n\n buff = data[l];\n pos += bytes;\n return read();\n });\n }());\n });\n\n if (!iter) {\n return stream;\n }\n\n return stream.destroy;\n};\n",
399
- "/* eslint-disable complexity,max-statements */\n/**\n * file.js: Transport for outputting to a local log file.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst fs = require('fs');\nconst path = require('path');\nconst asyncSeries = require('async/series');\nconst zlib = require('zlib');\nconst { MESSAGE } = require('triple-beam');\nconst { Stream, PassThrough } = require('readable-stream');\nconst TransportStream = require('winston-transport');\nconst debug = require('@dabh/diagnostics')('winston:file');\nconst os = require('os');\nconst tailFile = require('../tail-file');\n\n/**\n * Transport for outputting to a local log file.\n * @type {File}\n * @extends {TransportStream}\n */\nmodule.exports = class File extends TransportStream {\n /**\n * Constructor function for the File transport object responsible for\n * persisting log messages and metadata to one or more files.\n * @param {Object} options - Options for this instance.\n */\n constructor(options = {}) {\n super(options);\n\n // Expose the name of this Transport on the prototype.\n this.name = options.name || 'file';\n\n // Helper function which throws an `Error` in the event that any of the\n // rest of the arguments is present in `options`.\n function throwIf(target, ...args) {\n args.slice(1).forEach(name => {\n if (options[name]) {\n throw new Error(`Cannot set ${name} and ${target} together`);\n }\n });\n }\n\n // Setup the base stream that always gets piped to to handle buffering.\n this._stream = new PassThrough();\n this._stream.setMaxListeners(30);\n\n // Bind this context for listener methods.\n this._onError = this._onError.bind(this);\n\n if (options.filename || options.dirname) {\n throwIf('filename or dirname', 'stream');\n this._basename = this.filename = options.filename\n ? path.basename(options.filename)\n : 'winston.log';\n\n this.dirname = options.dirname || path.dirname(options.filename);\n this.options = options.options || { flags: 'a' };\n } else if (options.stream) {\n // eslint-disable-next-line no-console\n console.warn('options.stream will be removed in winston@4. Use winston.transports.Stream');\n throwIf('stream', 'filename', 'maxsize');\n this._dest = this._stream.pipe(this._setupStream(options.stream));\n this.dirname = path.dirname(this._dest.path);\n // We need to listen for drain events when write() returns false. This\n // can make node mad at times.\n } else {\n throw new Error('Cannot log to file without filename or stream.');\n }\n\n this.maxsize = options.maxsize || null;\n this.rotationFormat = options.rotationFormat || false;\n this.zippedArchive = options.zippedArchive || false;\n this.maxFiles = options.maxFiles || null;\n this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL;\n this.tailable = options.tailable || false;\n this.lazy = options.lazy || false;\n\n // Internal state variables representing the number of files this instance\n // has created and the current size (in bytes) of the current logfile.\n this._size = 0;\n this._pendingSize = 0;\n this._created = 0;\n this._drain = false;\n this._opening = false;\n this._ending = false;\n this._fileExist = false;\n\n if (this.dirname) this._createLogDirIfNotExist(this.dirname);\n if (!this.lazy) this.open();\n }\n\n finishIfEnding() {\n if (this._ending) {\n if (this._opening) {\n this.once('open', () => {\n this._stream.once('finish', () => this.emit('finish'));\n setImmediate(() => this._stream.end());\n });\n } else {\n this._stream.once('finish', () => this.emit('finish'));\n setImmediate(() => this._stream.end());\n }\n }\n }\n\n /**\n * Called by Node.js Writable stream before emitting 'finish'.\n * Ensures all buffered data is flushed to the underlying file stream\n * before the transport signals completion.\n * @param {Function} callback - Callback to signal completion.\n * @private\n */\n _final(callback) {\n // If still opening, wait for the file to be opened first\n if (this._opening) {\n this.once('open', () => this._final(callback));\n return;\n }\n\n // End the PassThrough stream\n this._stream.end();\n\n // No destination stream, call callback immediately\n if (!this._dest) {\n return callback();\n }\n\n // Destination is already finished\n if (this._dest.writableFinished) {\n return callback();\n }\n\n // Wait for destination stream to finish writing\n this._dest.once('finish', callback);\n this._dest.once('error', callback);\n }\n\n /**\n * Core logging method exposed to Winston. Metadata is optional.\n * @param {Object} info - TODO: add param description.\n * @param {Function} callback - TODO: add param description.\n * @returns {undefined}\n */\n log(info, callback = () => { }) {\n // Remark: (jcrugzz) What is necessary about this callback(null, true) now\n // when thinking about 3.x? Should silent be handled in the base\n // TransportStream _write method?\n if (this.silent) {\n callback();\n return true;\n }\n\n\n // Output stream buffer is full and has asked us to wait for the drain event\n if (this._drain) {\n this._stream.once('drain', () => {\n this._drain = false;\n this.log(info, callback);\n });\n return;\n }\n if (this._rotate) {\n this._stream.once('rotate', () => {\n this._rotate = false;\n this.log(info, callback);\n });\n return;\n }\n if (this.lazy) {\n if (!this._fileExist) {\n if (!this._opening) {\n this.open();\n }\n this.once('open', () => {\n this._fileExist = true;\n this.log(info, callback);\n return;\n });\n return;\n }\n if (this._needsNewFile(this._pendingSize)) {\n this._dest.once('close', () => {\n if (!this._opening) {\n this.open();\n }\n this.once('open', () => {\n this.log(info, callback);\n return;\n });\n return;\n });\n return;\n }\n }\n\n // Grab the raw string and append the expected EOL.\n const output = `${info[MESSAGE]}${this.eol}`;\n const bytes = Buffer.byteLength(output);\n\n // After we have written to the PassThrough check to see if we need\n // to rotate to the next file.\n //\n // Remark: This gets called too early and does not depict when data\n // has been actually flushed to disk.\n function logged() {\n this._size += bytes;\n this._pendingSize -= bytes;\n\n debug('logged %s %s', this._size, output);\n this.emit('logged', info);\n\n // Do not attempt to rotate files while rotating\n if (this._rotate) {\n return;\n }\n\n // Do not attempt to rotate files while opening\n if (this._opening) {\n return;\n }\n\n // Check to see if we need to end the stream and create a new one.\n if (!this._needsNewFile()) {\n return;\n }\n if (this.lazy) {\n this._endStream(() => {this.emit('fileclosed');});\n return;\n }\n\n // End the current stream, ensure it flushes and create a new one.\n // This could potentially be optimized to not run a stat call but its\n // the safest way since we are supporting `maxFiles`.\n this._rotate = true;\n this._endStream(() => this._rotateFile());\n }\n\n // Keep track of the pending bytes being written while files are opening\n // in order to properly rotate the PassThrough this._stream when the file\n // eventually does open.\n this._pendingSize += bytes;\n if (this._opening\n && !this.rotatedWhileOpening\n && this._needsNewFile(this._size + this._pendingSize)) {\n this.rotatedWhileOpening = true;\n }\n\n const written = this._stream.write(output, logged.bind(this));\n if (!written) {\n this._drain = true;\n this._stream.once('drain', () => {\n this._drain = false;\n callback();\n });\n } else {\n callback(); // eslint-disable-line callback-return\n }\n\n debug('written', written, this._drain);\n\n this.finishIfEnding();\n\n return written;\n }\n\n /**\n * Query the transport. Options object is optional.\n * @param {Object} options - Loggly-like query options for this instance.\n * @param {function} callback - Continuation to respond to when complete.\n * TODO: Refactor me.\n */\n query(options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n options = normalizeQuery(options);\n const file = path.join(this.dirname, this.filename);\n let buff = '';\n let results = [];\n let row = 0;\n\n const stream = fs.createReadStream(file, {\n encoding: 'utf8'\n });\n\n stream.on('error', err => {\n if (stream.readable) {\n stream.destroy();\n }\n if (!callback) {\n return;\n }\n\n return err.code !== 'ENOENT' ? callback(err) : callback(null, results);\n });\n\n stream.on('data', data => {\n data = (buff + data).split(/\\n+/);\n const l = data.length - 1;\n let i = 0;\n\n for (; i < l; i++) {\n if (!options.start || row >= options.start) {\n add(data[i]);\n }\n row++;\n }\n\n buff = data[l];\n });\n\n stream.on('close', () => {\n if (buff) {\n add(buff, true);\n }\n if (options.order === 'desc') {\n results = results.reverse();\n }\n\n // eslint-disable-next-line callback-return\n if (callback) callback(null, results);\n });\n\n function add(buff, attempt) {\n try {\n const log = JSON.parse(buff);\n if (check(log)) {\n push(log);\n }\n } catch (e) {\n if (!attempt) {\n stream.emit('error', e);\n }\n }\n }\n\n function push(log) {\n if (\n options.rows &&\n results.length >= options.rows &&\n options.order !== 'desc'\n ) {\n if (stream.readable) {\n stream.destroy();\n }\n return;\n }\n\n if (options.fields) {\n log = options.fields.reduce((obj, key) => {\n obj[key] = log[key];\n return obj;\n }, {});\n }\n\n if (options.order === 'desc') {\n if (results.length >= options.rows) {\n results.shift();\n }\n }\n results.push(log);\n }\n\n function check(log) {\n if (!log) {\n return;\n }\n\n if (typeof log !== 'object') {\n return;\n }\n\n const time = new Date(log.timestamp);\n if (\n (options.from && time < options.from) ||\n (options.until && time > options.until) ||\n (options.level && options.level !== log.level)\n ) {\n return;\n }\n\n return true;\n }\n\n function normalizeQuery(options) {\n options = options || {};\n\n // limit\n options.rows = options.rows || options.limit || 10;\n\n // starting row offset\n options.start = options.start || 0;\n\n // now\n options.until = options.until || new Date();\n if (typeof options.until !== 'object') {\n options.until = new Date(options.until);\n }\n\n // now - 24\n options.from = options.from || (options.until - (24 * 60 * 60 * 1000));\n if (typeof options.from !== 'object') {\n options.from = new Date(options.from);\n }\n\n // 'asc' or 'desc'\n options.order = options.order || 'desc';\n\n return options;\n }\n }\n\n /**\n * Returns a log stream for this transport. Options object is optional.\n * @param {Object} options - Stream options for this instance.\n * @returns {Stream} - TODO: add return description.\n * TODO: Refactor me.\n */\n stream(options = {}) {\n const file = path.join(this.dirname, this.filename);\n const stream = new Stream();\n const tail = {\n file,\n start: options.start\n };\n\n stream.destroy = tailFile(tail, (err, line) => {\n if (err) {\n return stream.emit('error', err);\n }\n\n try {\n stream.emit('data', line);\n line = JSON.parse(line);\n stream.emit('log', line);\n } catch (e) {\n stream.emit('error', e);\n }\n });\n\n return stream;\n }\n\n /**\n * Checks to see the filesize of.\n * @returns {undefined}\n */\n open() {\n // If we do not have a filename then we were passed a stream and\n // don't need to keep track of size.\n if (!this.filename) return;\n if (this._opening) return;\n\n this._opening = true;\n\n // Stat the target file to get the size and create the stream.\n this.stat((err, size) => {\n if (err) {\n return this.emit('error', err);\n }\n debug('stat done: %s { size: %s }', this.filename, size);\n this._size = size;\n this._dest = this._createStream(this._stream);\n this._opening = false;\n this.once('open', () => {\n if (!this._stream.emit('rotate')) {\n this._rotate = false;\n }\n });\n });\n }\n\n /**\n * Stat the file and assess information in order to create the proper stream.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n */\n stat(callback) {\n const target = this._getFile();\n const fullpath = path.join(this.dirname, target);\n\n fs.stat(fullpath, (err, stat) => {\n if (err && err.code === 'ENOENT') {\n debug('ENOENT ok', fullpath);\n // Update internally tracked filename with the new target name.\n this.filename = target;\n return callback(null, 0);\n }\n\n if (err) {\n debug(`err ${err.code} ${fullpath}`);\n return callback(err);\n }\n\n if (!stat || this._needsNewFile(stat.size)) {\n // If `stats.size` is greater than the `maxsize` for this\n // instance then try again.\n return this._incFile(() => this.stat(callback));\n }\n\n // Once we have figured out what the filename is, set it\n // and return the size.\n this.filename = target;\n callback(null, stat.size);\n });\n }\n\n /**\n * Closes the stream associated with this instance.\n * @param {function} cb - TODO: add param description.\n * @returns {undefined}\n */\n close(cb) {\n if (!this._stream) {\n return;\n }\n\n this._stream.end(() => {\n if (cb) {\n cb(); // eslint-disable-line callback-return\n }\n this.emit('flush');\n this.emit('closed');\n });\n }\n\n /**\n * TODO: add method description.\n * @param {number} size - TODO: add param description.\n * @returns {undefined}\n */\n _needsNewFile(size) {\n size = size || this._size;\n return this.maxsize && size >= this.maxsize;\n }\n\n /**\n * TODO: add method description.\n * @param {Error} err - TODO: add param description.\n * @returns {undefined}\n */\n _onError(err) {\n this.emit('error', err);\n }\n\n /**\n * TODO: add method description.\n * @param {Stream} stream - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n */\n _setupStream(stream) {\n stream.on('error', this._onError);\n\n return stream;\n }\n\n /**\n * TODO: add method description.\n * @param {Stream} stream - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n */\n _cleanupStream(stream) {\n stream.removeListener('error', this._onError);\n stream.destroy();\n return stream;\n }\n\n /**\n * TODO: add method description.\n */\n _rotateFile() {\n this._incFile(() => this.open());\n }\n\n /**\n * Unpipe from the stream that has been marked as full and end it so it\n * flushes to disk.\n *\n * @param {function} callback - Callback for when the current file has closed.\n * @private\n */\n _endStream(callback = () => { }) {\n if (this._dest) {\n this._stream.unpipe(this._dest);\n this._dest.end(() => {\n this._cleanupStream(this._dest);\n callback();\n });\n } else {\n callback(); // eslint-disable-line callback-return\n }\n }\n\n /**\n * Returns the WritableStream for the active file on this instance. If we\n * should gzip the file then a zlib stream is returned.\n *\n * @param {ReadableStream} source –PassThrough to pipe to the file when open.\n * @returns {WritableStream} Stream that writes to disk for the active file.\n */\n _createStream(source) {\n const fullpath = path.join(this.dirname, this.filename);\n\n debug('create stream start', fullpath, this.options);\n const dest = fs.createWriteStream(fullpath, this.options)\n // TODO: What should we do with errors here?\n .on('error', err => debug(err))\n .on('close', () => debug('close', dest.path, dest.bytesWritten))\n .on('open', () => {\n debug('file open ok', fullpath);\n this.emit('open', fullpath);\n source.pipe(dest);\n\n // If rotation occured during the open operation then we immediately\n // start writing to a new PassThrough, begin opening the next file\n // and cleanup the previous source and dest once the source has drained.\n if (this.rotatedWhileOpening) {\n this._stream = new PassThrough();\n this._stream.setMaxListeners(30);\n this._rotateFile();\n this.rotatedWhileOpening = false;\n this._cleanupStream(dest);\n source.end();\n }\n });\n\n debug('create stream ok', fullpath);\n return dest;\n }\n\n /**\n * TODO: add method description.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n */\n _incFile(callback) {\n debug('_incFile', this.filename);\n const ext = path.extname(this._basename);\n const basename = path.basename(this._basename, ext);\n const tasks = [];\n\n if (this.zippedArchive) {\n tasks.push(\n function (cb) {\n const num = this._created > 0 && !this.tailable ? this._created : '';\n this._compressFile(\n path.join(this.dirname, `${basename}${num}${ext}`),\n path.join(this.dirname, `${basename}${num}${ext}.gz`),\n cb\n );\n }.bind(this)\n );\n }\n\n tasks.push(\n function (cb) {\n if (!this.tailable) {\n this._created += 1;\n this._checkMaxFilesIncrementing(ext, basename, cb);\n } else {\n this._checkMaxFilesTailable(ext, basename, cb);\n }\n }.bind(this)\n );\n\n asyncSeries(tasks, callback);\n }\n\n /**\n * Gets the next filename to use for this instance in the case that log\n * filesizes are being capped.\n * @returns {string} - TODO: add return description.\n * @private\n */\n _getFile() {\n const ext = path.extname(this._basename);\n const basename = path.basename(this._basename, ext);\n const isRotation = this.rotationFormat\n ? this.rotationFormat()\n : this._created;\n\n // Caveat emptor (indexzero): rotationFormat() was broken by design When\n // combined with max files because the set of files to unlink is never\n // stored.\n return !this.tailable && this._created\n ? `${basename}${isRotation}${ext}`\n : `${basename}${ext}`;\n }\n\n /**\n * Increment the number of files created or checked by this instance.\n * @param {mixed} ext - TODO: add param description.\n * @param {mixed} basename - TODO: add param description.\n * @param {mixed} callback - TODO: add param description.\n * @returns {undefined}\n * @private\n */\n _checkMaxFilesIncrementing(ext, basename, callback) {\n // Check for maxFiles option and delete file.\n if (!this.maxFiles || this._created < this.maxFiles) {\n return setImmediate(callback);\n }\n\n const oldest = this._created - this.maxFiles;\n const isOldest = oldest !== 0 ? oldest : '';\n const isZipped = this.zippedArchive ? '.gz' : '';\n const filePath = `${basename}${isOldest}${ext}${isZipped}`;\n const target = path.join(this.dirname, filePath);\n\n fs.unlink(target, callback);\n }\n\n /**\n * Roll files forward based on integer, up to maxFiles. e.g. if base if\n * file.log and it becomes oversized, roll to file1.log, and allow file.log\n * to be re-used. If file is oversized again, roll file1.log to file2.log,\n * roll file.log to file1.log, and so on.\n * @param {mixed} ext - TODO: add param description.\n * @param {mixed} basename - TODO: add param description.\n * @param {mixed} callback - TODO: add param description.\n * @returns {undefined}\n * @private\n */\n _checkMaxFilesTailable(ext, basename, callback) {\n const tasks = [];\n if (!this.maxFiles) {\n return;\n }\n\n // const isZipped = this.zippedArchive ? '.gz' : '';\n const isZipped = this.zippedArchive ? '.gz' : '';\n for (let x = this.maxFiles - 1; x > 1; x--) {\n tasks.push(function (i, cb) {\n let fileName = `${basename}${(i - 1)}${ext}${isZipped}`;\n const tmppath = path.join(this.dirname, fileName);\n\n fs.exists(tmppath, exists => {\n if (!exists) {\n return cb(null);\n }\n\n fileName = `${basename}${i}${ext}${isZipped}`;\n fs.rename(tmppath, path.join(this.dirname, fileName), cb);\n });\n }.bind(this, x));\n }\n\n asyncSeries(tasks, () => {\n fs.rename(\n path.join(this.dirname, `${basename}${ext}${isZipped}`),\n path.join(this.dirname, `${basename}1${ext}${isZipped}`),\n callback\n );\n });\n }\n\n /**\n * Compresses src to dest with gzip and unlinks src\n * @param {string} src - path to source file.\n * @param {string} dest - path to zipped destination file.\n * @param {Function} callback - callback called after file has been compressed.\n * @returns {undefined}\n * @private\n */\n _compressFile(src, dest, callback) {\n fs.access(src, fs.F_OK, (err) => {\n if (err) {\n return callback();\n }\n var gzip = zlib.createGzip();\n var inp = fs.createReadStream(src);\n var out = fs.createWriteStream(dest);\n out.on('finish', () => {\n fs.unlink(src, callback);\n });\n inp.pipe(gzip).pipe(out);\n });\n }\n\n _createLogDirIfNotExist(dirPath) {\n /* eslint-disable no-sync */\n if (!fs.existsSync(dirPath)) {\n fs.mkdirSync(dirPath, { recursive: true });\n }\n /* eslint-enable no-sync */\n }\n};\n",
400
- "/**\n * http.js: Transport for outputting to a json-rpcserver.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst http = require('http');\nconst https = require('https');\nconst { Stream } = require('readable-stream');\nconst TransportStream = require('winston-transport');\nconst { configure } = require('safe-stable-stringify');\n\n/**\n * Transport for outputting to a json-rpc server.\n * @type {Stream}\n * @extends {TransportStream}\n */\nmodule.exports = class Http extends TransportStream {\n /**\n * Constructor function for the Http transport object responsible for\n * persisting log messages and metadata to a terminal or TTY.\n * @param {!Object} [options={}] - Options for this instance.\n */\n // eslint-disable-next-line max-statements\n constructor(options = {}) {\n super(options);\n\n this.options = options;\n this.name = options.name || 'http';\n this.ssl = !!options.ssl;\n this.host = options.host || 'localhost';\n this.port = options.port;\n this.auth = options.auth;\n this.path = options.path || '';\n this.maximumDepth = options.maximumDepth;\n this.agent = options.agent;\n this.headers = options.headers || {};\n this.headers['content-type'] = 'application/json';\n this.batch = options.batch || false;\n this.batchInterval = options.batchInterval || 5000;\n this.batchCount = options.batchCount || 10;\n this.batchOptions = [];\n this.batchTimeoutID = -1;\n this.batchCallback = {};\n\n if (!this.port) {\n this.port = this.ssl ? 443 : 80;\n }\n }\n\n /**\n * Core logging method exposed to Winston.\n * @param {Object} info - TODO: add param description.\n * @param {function} callback - TODO: add param description.\n * @returns {undefined}\n */\n log(info, callback) {\n this._request(info, null, null, (err, res) => {\n if (res && res.statusCode !== 200) {\n err = new Error(`Invalid HTTP Status Code: ${res.statusCode}`);\n }\n\n if (err) {\n this.emit('warn', err);\n } else {\n this.emit('logged', info);\n }\n });\n\n // Remark: (jcrugzz) Fire and forget here so requests dont cause buffering\n // and block more requests from happening?\n if (callback) {\n setImmediate(callback);\n }\n }\n\n /**\n * Query the transport. Options object is optional.\n * @param {Object} options - Loggly-like query options for this instance.\n * @param {function} callback - Continuation to respond to when complete.\n * @returns {undefined}\n */\n query(options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n options = {\n method: 'query',\n params: this.normalizeQuery(options)\n };\n\n const auth = options.params.auth || null;\n delete options.params.auth;\n\n const path = options.params.path || null;\n delete options.params.path;\n\n this._request(options, auth, path, (err, res, body) => {\n if (res && res.statusCode !== 200) {\n err = new Error(`Invalid HTTP Status Code: ${res.statusCode}`);\n }\n\n if (err) {\n return callback(err);\n }\n\n if (typeof body === 'string') {\n try {\n body = JSON.parse(body);\n } catch (e) {\n return callback(e);\n }\n }\n\n callback(null, body);\n });\n }\n\n /**\n * Returns a log stream for this transport. Options object is optional.\n * @param {Object} options - Stream options for this instance.\n * @returns {Stream} - TODO: add return description\n */\n stream(options = {}) {\n const stream = new Stream();\n options = {\n method: 'stream',\n params: options\n };\n\n const path = options.params.path || null;\n delete options.params.path;\n\n const auth = options.params.auth || null;\n delete options.params.auth;\n\n let buff = '';\n const req = this._request(options, auth, path);\n\n stream.destroy = () => req.destroy();\n req.on('data', data => {\n data = (buff + data).split(/\\n+/);\n const l = data.length - 1;\n\n let i = 0;\n for (; i < l; i++) {\n try {\n stream.emit('log', JSON.parse(data[i]));\n } catch (e) {\n stream.emit('error', e);\n }\n }\n\n buff = data[l];\n });\n req.on('error', err => stream.emit('error', err));\n\n return stream;\n }\n\n /**\n * Make a request to a winstond server or any http server which can\n * handle json-rpc.\n * @param {function} options - Options to sent the request.\n * @param {Object?} auth - authentication options\n * @param {string} path - request path\n * @param {function} callback - Continuation to respond to when complete.\n */\n _request(options, auth, path, callback) {\n options = options || {};\n\n auth = auth || this.auth;\n path = path || this.path || '';\n\n if (this.batch) {\n this._doBatch(options, callback, auth, path);\n } else {\n this._doRequest(options, callback, auth, path);\n }\n }\n\n /**\n * Send or memorize the options according to batch configuration\n * @param {function} options - Options to sent the request.\n * @param {function} callback - Continuation to respond to when complete.\n * @param {Object?} auth - authentication options\n * @param {string} path - request path\n */\n _doBatch(options, callback, auth, path) {\n this.batchOptions.push(options);\n if (this.batchOptions.length === 1) {\n // First message stored, it's time to start the timeout!\n const me = this;\n this.batchCallback = callback;\n this.batchTimeoutID = setTimeout(function () {\n // timeout is reached, send all messages to endpoint\n me.batchTimeoutID = -1;\n me._doBatchRequest(me.batchCallback, auth, path);\n }, this.batchInterval);\n }\n if (this.batchOptions.length === this.batchCount) {\n // max batch count is reached, send all messages to endpoint\n this._doBatchRequest(this.batchCallback, auth, path);\n }\n }\n\n /**\n * Initiate a request with the memorized batch options, stop the batch timeout\n * @param {function} callback - Continuation to respond to when complete.\n * @param {Object?} auth - authentication options\n * @param {string} path - request path\n */\n _doBatchRequest(callback, auth, path) {\n if (this.batchTimeoutID > 0) {\n clearTimeout(this.batchTimeoutID);\n this.batchTimeoutID = -1;\n }\n const batchOptionsCopy = this.batchOptions.slice();\n this.batchOptions = [];\n this._doRequest(batchOptionsCopy, callback, auth, path);\n }\n\n /**\n * Make a request to a winstond server or any http server which can\n * handle json-rpc.\n * @param {function} options - Options to sent the request.\n * @param {function} callback - Continuation to respond to when complete.\n * @param {Object?} auth - authentication options\n * @param {string} path - request path\n */\n _doRequest(options, callback, auth, path) {\n // Prepare options for outgoing HTTP request\n const headers = Object.assign({}, this.headers);\n if (auth && auth.bearer) {\n headers.Authorization = `Bearer ${auth.bearer}`;\n }\n const req = (this.ssl ? https : http).request({\n ...this.options,\n method: 'POST',\n host: this.host,\n port: this.port,\n path: `/${path.replace(/^\\//, '')}`,\n headers: headers,\n auth: (auth && auth.username && auth.password) ? (`${auth.username}:${auth.password}`) : '',\n agent: this.agent\n });\n\n req.on('error', callback);\n req.on('response', res => (\n res.on('end', () => callback(null, res)).resume()\n ));\n const jsonStringify = configure({\n ...(this.maximumDepth && { maximumDepth: this.maximumDepth })\n });\n req.end(Buffer.from(jsonStringify(options, this.options.replacer), 'utf8'));\n }\n};\n",
401
- "'use strict';\n\nconst isStream = stream =>\n\tstream !== null &&\n\ttypeof stream === 'object' &&\n\ttypeof stream.pipe === 'function';\n\nisStream.writable = stream =>\n\tisStream(stream) &&\n\tstream.writable !== false &&\n\ttypeof stream._write === 'function' &&\n\ttypeof stream._writableState === 'object';\n\nisStream.readable = stream =>\n\tisStream(stream) &&\n\tstream.readable !== false &&\n\ttypeof stream._read === 'function' &&\n\ttypeof stream._readableState === 'object';\n\nisStream.duplex = stream =>\n\tisStream.writable(stream) &&\n\tisStream.readable(stream);\n\nisStream.transform = stream =>\n\tisStream.duplex(stream) &&\n\ttypeof stream._transform === 'function';\n\nmodule.exports = isStream;\n",
402
- "/**\n * stream.js: Transport for outputting to any arbitrary stream.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst isStream = require('is-stream');\nconst { MESSAGE } = require('triple-beam');\nconst os = require('os');\nconst TransportStream = require('winston-transport');\n\n/**\n * Transport for outputting to any arbitrary stream.\n * @type {Stream}\n * @extends {TransportStream}\n */\nmodule.exports = class Stream extends TransportStream {\n /**\n * Constructor function for the Console transport object responsible for\n * persisting log messages and metadata to a terminal or TTY.\n * @param {!Object} [options={}] - Options for this instance.\n */\n constructor(options = {}) {\n super(options);\n\n if (!options.stream || !isStream(options.stream)) {\n throw new Error('options.stream is required.');\n }\n\n // We need to listen for drain events when write() returns false. This can\n // make node mad at times.\n this._stream = options.stream;\n this._stream.setMaxListeners(Infinity);\n this.isObjectMode = options.stream._writableState.objectMode;\n this.eol = (typeof options.eol === 'string') ? options.eol : os.EOL;\n }\n\n /**\n * Core logging method exposed to Winston.\n * @param {Object} info - TODO: add param description.\n * @param {Function} callback - TODO: add param description.\n * @returns {undefined}\n */\n log(info, callback) {\n setImmediate(() => this.emit('logged', info));\n if (this.isObjectMode) {\n this._stream.write(info);\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n return;\n }\n\n this._stream.write(`${info[MESSAGE]}${this.eol}`);\n if (callback) {\n callback(); // eslint-disable-line callback-return\n }\n return;\n }\n};\n",
403
- "/**\n * transports.js: Set of all transports Winston knows about.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\n/**\n * TODO: add property description.\n * @type {Console}\n */\nObject.defineProperty(exports, 'Console', {\n configurable: true,\n enumerable: true,\n get() {\n return require('./console');\n }\n});\n\n/**\n * TODO: add property description.\n * @type {File}\n */\nObject.defineProperty(exports, 'File', {\n configurable: true,\n enumerable: true,\n get() {\n return require('./file');\n }\n});\n\n/**\n * TODO: add property description.\n * @type {Http}\n */\nObject.defineProperty(exports, 'Http', {\n configurable: true,\n enumerable: true,\n get() {\n return require('./http');\n }\n});\n\n/**\n * TODO: add property description.\n * @type {Stream}\n */\nObject.defineProperty(exports, 'Stream', {\n configurable: true,\n enumerable: true,\n get() {\n return require('./stream');\n }\n});\n",
404
- "/**\n * index.js: Default settings for all levels that winston knows about.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst logform = require('logform');\nconst { configs } = require('triple-beam');\n\n/**\n * Export config set for the CLI.\n * @type {Object}\n */\nexports.cli = logform.levels(configs.cli);\n\n/**\n * Export config set for npm.\n * @type {Object}\n */\nexports.npm = logform.levels(configs.npm);\n\n/**\n * Export config set for the syslog.\n * @type {Object}\n */\nexports.syslog = logform.levels(configs.syslog);\n\n/**\n * Hoist addColors from logform where it was refactored into in winston@3.\n * @type {Object}\n */\nexports.addColors = logform.levels;\n",
405
- "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _isArrayLike = require('./internal/isArrayLike.js');\n\nvar _isArrayLike2 = _interopRequireDefault(_isArrayLike);\n\nvar _breakLoop = require('./internal/breakLoop.js');\n\nvar _breakLoop2 = _interopRequireDefault(_breakLoop);\n\nvar _eachOfLimit = require('./eachOfLimit.js');\n\nvar _eachOfLimit2 = _interopRequireDefault(_eachOfLimit);\n\nvar _once = require('./internal/once.js');\n\nvar _once2 = _interopRequireDefault(_once);\n\nvar _onlyOnce = require('./internal/onlyOnce.js');\n\nvar _onlyOnce2 = _interopRequireDefault(_onlyOnce);\n\nvar _wrapAsync = require('./internal/wrapAsync.js');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nvar _awaitify = require('./internal/awaitify.js');\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// eachOf implementation optimized for array-likes\nfunction eachOfArrayLike(coll, iteratee, callback) {\n callback = (0, _once2.default)(callback);\n var index = 0,\n completed = 0,\n { length } = coll,\n canceled = false;\n if (length === 0) {\n callback(null);\n }\n\n function iteratorCallback(err, value) {\n if (err === false) {\n canceled = true;\n }\n if (canceled === true) return;\n if (err) {\n callback(err);\n } else if (++completed === length || value === _breakLoop2.default) {\n callback(null);\n }\n }\n\n for (; index < length; index++) {\n iteratee(coll[index], index, (0, _onlyOnce2.default)(iteratorCallback));\n }\n}\n\n// a generic version of eachOf which can handle array, object, and iterator cases.\nfunction eachOfGeneric(coll, iteratee, callback) {\n return (0, _eachOfLimit2.default)(coll, Infinity, iteratee, callback);\n}\n\n/**\n * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument\n * to the iteratee.\n *\n * @name eachOf\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEachOf\n * @category Collection\n * @see [async.each]{@link module:Collections.each}\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each\n * item in `coll`.\n * The `key` is the item's key, or index in the case of an array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * // dev.json is a file containing a valid json object config for dev environment\n * // dev.json is a file containing a valid json object config for test environment\n * // prod.json is a file containing a valid json object config for prod environment\n * // invalid.json is a file with a malformed json object\n *\n * let configs = {}; //global variable\n * let validConfigFileMap = {dev: 'dev.json', test: 'test.json', prod: 'prod.json'};\n * let invalidConfigFileMap = {dev: 'dev.json', test: 'test.json', invalid: 'invalid.json'};\n *\n * // asynchronous function that reads a json file and parses the contents as json object\n * function parseFile(file, key, callback) {\n * fs.readFile(file, \"utf8\", function(err, data) {\n * if (err) return calback(err);\n * try {\n * configs[key] = JSON.parse(data);\n * } catch (e) {\n * return callback(e);\n * }\n * callback();\n * });\n * }\n *\n * // Using callbacks\n * async.forEachOf(validConfigFileMap, parseFile, function (err) {\n * if (err) {\n * console.error(err);\n * } else {\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }\n * });\n *\n * //Error handing\n * async.forEachOf(invalidConfigFileMap, parseFile, function (err) {\n * if (err) {\n * console.error(err);\n * // JSON parse error exception\n * } else {\n * console.log(configs);\n * }\n * });\n *\n * // Using Promises\n * async.forEachOf(validConfigFileMap, parseFile)\n * .then( () => {\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }).catch( err => {\n * console.error(err);\n * });\n *\n * //Error handing\n * async.forEachOf(invalidConfigFileMap, parseFile)\n * .then( () => {\n * console.log(configs);\n * }).catch( err => {\n * console.error(err);\n * // JSON parse error exception\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * let result = await async.forEachOf(validConfigFileMap, parseFile);\n * console.log(configs);\n * // configs is now a map of JSON data, e.g.\n * // { dev: //parsed dev.json, test: //parsed test.json, prod: //parsed prod.json}\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * //Error handing\n * async () => {\n * try {\n * let result = await async.forEachOf(invalidConfigFileMap, parseFile);\n * console.log(configs);\n * }\n * catch (err) {\n * console.log(err);\n * // JSON parse error exception\n * }\n * }\n *\n */\nfunction eachOf(coll, iteratee, callback) {\n var eachOfImplementation = (0, _isArrayLike2.default)(coll) ? eachOfArrayLike : eachOfGeneric;\n return eachOfImplementation(coll, (0, _wrapAsync2.default)(iteratee), callback);\n}\n\nexports.default = (0, _awaitify2.default)(eachOf, 3);\nmodule.exports = exports.default;",
406
- "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _withoutIndex;\nfunction _withoutIndex(iteratee) {\n return (value, index, callback) => iteratee(value, callback);\n}\nmodule.exports = exports.default;",
407
- "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _eachOf = require('./eachOf.js');\n\nvar _eachOf2 = _interopRequireDefault(_eachOf);\n\nvar _withoutIndex = require('./internal/withoutIndex.js');\n\nvar _withoutIndex2 = _interopRequireDefault(_withoutIndex);\n\nvar _wrapAsync = require('./internal/wrapAsync.js');\n\nvar _wrapAsync2 = _interopRequireDefault(_wrapAsync);\n\nvar _awaitify = require('./internal/awaitify.js');\n\nvar _awaitify2 = _interopRequireDefault(_awaitify);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Applies the function `iteratee` to each item in `coll`, in parallel.\n * The `iteratee` is called with an item from the list, and a callback for when\n * it has finished. If the `iteratee` passes an error to its `callback`, the\n * main `callback` (for the `each` function) is immediately called with the\n * error.\n *\n * Note, that since this function applies `iteratee` to each item in parallel,\n * there is no guarantee that the iteratee functions will complete in order.\n *\n * @name each\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEach\n * @category Collection\n * @param {Array|Iterable|AsyncIterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to\n * each item in `coll`. Invoked with (item, callback).\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOf`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @returns {Promise} a promise, if a callback is omitted\n * @example\n *\n * // dir1 is a directory that contains file1.txt, file2.txt\n * // dir2 is a directory that contains file3.txt, file4.txt\n * // dir3 is a directory that contains file5.txt\n * // dir4 does not exist\n *\n * const fileList = [ 'dir1/file2.txt', 'dir2/file3.txt', 'dir/file5.txt'];\n * const withMissingFileList = ['dir1/file1.txt', 'dir4/file2.txt'];\n *\n * // asynchronous function that deletes a file\n * const deleteFile = function(file, callback) {\n * fs.unlink(file, callback);\n * };\n *\n * // Using callbacks\n * async.each(fileList, deleteFile, function(err) {\n * if( err ) {\n * console.log(err);\n * } else {\n * console.log('All files have been deleted successfully');\n * }\n * });\n *\n * // Error Handling\n * async.each(withMissingFileList, deleteFile, function(err){\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * });\n *\n * // Using Promises\n * async.each(fileList, deleteFile)\n * .then( () => {\n * console.log('All files have been deleted successfully');\n * }).catch( err => {\n * console.log(err);\n * });\n *\n * // Error Handling\n * async.each(fileList, deleteFile)\n * .then( () => {\n * console.log('All files have been deleted successfully');\n * }).catch( err => {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * });\n *\n * // Using async/await\n * async () => {\n * try {\n * await async.each(files, deleteFile);\n * }\n * catch (err) {\n * console.log(err);\n * }\n * }\n *\n * // Error Handling\n * async () => {\n * try {\n * await async.each(withMissingFileList, deleteFile);\n * }\n * catch (err) {\n * console.log(err);\n * // [ Error: ENOENT: no such file or directory ]\n * // since dir4/file2.txt does not exist\n * // dir1/file1.txt could have been deleted\n * }\n * }\n *\n */\nfunction eachLimit(coll, iteratee, callback) {\n return (0, _eachOf2.default)(coll, (0, _withoutIndex2.default)((0, _wrapAsync2.default)(iteratee)), callback);\n}\n\nexports.default = (0, _awaitify2.default)(eachLimit, 3);\nmodule.exports = exports.default;",
408
- "'use strict';\n\nvar toString = Object.prototype.toString;\n\n/**\n * Extract names from functions.\n *\n * @param {Function} fn The function who's name we need to extract.\n * @returns {String} The name of the function.\n * @public\n */\nmodule.exports = function name(fn) {\n if ('string' === typeof fn.displayName && fn.constructor.name) {\n return fn.displayName;\n } else if ('string' === typeof fn.name && fn.name) {\n return fn.name;\n }\n\n //\n // Check to see if the constructor has a name.\n //\n if (\n 'object' === typeof fn\n && fn.constructor\n && 'string' === typeof fn.constructor.name\n ) return fn.constructor.name;\n\n //\n // toString the given function and attempt to parse it out of it, or determine\n // the class.\n //\n var named = fn.toString()\n , type = toString.call(fn).slice(8, -1);\n\n if ('Function' === type) {\n named = named.substring(named.indexOf('(') + 1, named.indexOf(')'));\n } else {\n named = type;\n }\n\n return named || 'anonymous';\n};\n",
409
- "'use strict';\n\nvar name = require('fn.name');\n\n/**\n * Wrap callbacks to prevent double execution.\n *\n * @param {Function} fn Function that should only be called once.\n * @returns {Function} A wrapped callback which prevents multiple executions.\n * @public\n */\nmodule.exports = function one(fn) {\n var called = 0\n , value;\n\n /**\n * The function that prevents double execution.\n *\n * @private\n */\n function onetime() {\n if (called) return value;\n\n called = 1;\n value = fn.apply(this, arguments);\n fn = null;\n\n return value;\n }\n\n //\n // To make debugging more easy we want to use the name of the supplied\n // function. So when you look at the functions that are assigned to event\n // listeners you don't see a load of `onetime` functions but actually the\n // names of the functions that this module will call.\n //\n // NOTE: We cannot override the `name` property, as that is `readOnly`\n // property, so displayName will have to do.\n //\n onetime.displayName = name(fn);\n return onetime;\n};\n",
410
- "exports.get = function(belowFn) {\n var oldLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = Infinity;\n\n var dummyObject = {};\n\n var v8Handler = Error.prepareStackTrace;\n Error.prepareStackTrace = function(dummyObject, v8StackTrace) {\n return v8StackTrace;\n };\n Error.captureStackTrace(dummyObject, belowFn || exports.get);\n\n var v8StackTrace = dummyObject.stack;\n Error.prepareStackTrace = v8Handler;\n Error.stackTraceLimit = oldLimit;\n\n return v8StackTrace;\n};\n\nexports.parse = function(err) {\n if (!err.stack) {\n return [];\n }\n\n var self = this;\n var lines = err.stack.split('\\n').slice(1);\n\n return lines\n .map(function(line) {\n if (line.match(/^\\s*[-]{4,}$/)) {\n return self._createParsedCallSite({\n fileName: line,\n lineNumber: null,\n functionName: null,\n typeName: null,\n methodName: null,\n columnNumber: null,\n 'native': null,\n });\n }\n\n var lineMatch = line.match(/at (?:(.+)\\s+\\()?(?:(.+?):(\\d+)(?::(\\d+))?|([^)]+))\\)?/);\n if (!lineMatch) {\n return;\n }\n\n var object = null;\n var method = null;\n var functionName = null;\n var typeName = null;\n var methodName = null;\n var isNative = (lineMatch[5] === 'native');\n\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n var methodStart = functionName.lastIndexOf('.');\n if (functionName[methodStart-1] == '.')\n methodStart--;\n if (methodStart > 0) {\n object = functionName.substr(0, methodStart);\n method = functionName.substr(methodStart + 1);\n var objectEnd = object.indexOf('.Module');\n if (objectEnd > 0) {\n functionName = functionName.substr(objectEnd + 1);\n object = object.substr(0, objectEnd);\n }\n }\n typeName = null;\n }\n\n if (method) {\n typeName = object;\n methodName = method;\n }\n\n if (method === '<anonymous>') {\n methodName = null;\n functionName = null;\n }\n\n var properties = {\n fileName: lineMatch[2] || null,\n lineNumber: parseInt(lineMatch[3], 10) || null,\n functionName: functionName,\n typeName: typeName,\n methodName: methodName,\n columnNumber: parseInt(lineMatch[4], 10) || null,\n 'native': isNative,\n };\n\n return self._createParsedCallSite(properties);\n })\n .filter(function(callSite) {\n return !!callSite;\n });\n};\n\nfunction CallSite(properties) {\n for (var property in properties) {\n this[property] = properties[property];\n }\n}\n\nvar strProperties = [\n 'this',\n 'typeName',\n 'functionName',\n 'methodName',\n 'fileName',\n 'lineNumber',\n 'columnNumber',\n 'function',\n 'evalOrigin'\n];\nvar boolProperties = [\n 'topLevel',\n 'eval',\n 'native',\n 'constructor'\n];\nstrProperties.forEach(function (property) {\n CallSite.prototype[property] = null;\n CallSite.prototype['get' + property[0].toUpperCase() + property.substr(1)] = function () {\n return this[property];\n }\n});\nboolProperties.forEach(function (property) {\n CallSite.prototype[property] = false;\n CallSite.prototype['is' + property[0].toUpperCase() + property.substr(1)] = function () {\n return this[property];\n }\n});\n\nexports._createParsedCallSite = function(properties) {\n return new CallSite(properties);\n};\n",
411
- "/**\n * exception-stream.js: TODO: add file header handler.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst { Writable } = require('readable-stream');\n\n/**\n * TODO: add class description.\n * @type {ExceptionStream}\n * @extends {Writable}\n */\nmodule.exports = class ExceptionStream extends Writable {\n /**\n * Constructor function for the ExceptionStream responsible for wrapping a\n * TransportStream; only allowing writes of `info` objects with\n * `info.exception` set to true.\n * @param {!TransportStream} transport - Stream to filter to exceptions\n */\n constructor(transport) {\n super({ objectMode: true });\n\n if (!transport) {\n throw new Error('ExceptionStream requires a TransportStream instance.');\n }\n\n // Remark (indexzero): we set `handleExceptions` here because it's the\n // predicate checked in ExceptionHandler.prototype.__getExceptionHandlers\n this.handleExceptions = true;\n this.transport = transport;\n }\n\n /**\n * Writes the info object to our transport instance if (and only if) the\n * `exception` property is set on the info.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {mixed} callback - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n _write(info, enc, callback) {\n if (info.exception) {\n return this.transport.log(info, callback);\n }\n\n callback();\n return true;\n }\n};\n",
412
- "/**\n * exception-handler.js: Object for handling uncaughtException events.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst os = require('os');\nconst asyncForEach = require('async/forEach');\nconst debug = require('@dabh/diagnostics')('winston:exception');\nconst once = require('one-time');\nconst stackTrace = require('stack-trace');\nconst ExceptionStream = require('./exception-stream');\n\n/**\n * Object for handling uncaughtException events.\n * @type {ExceptionHandler}\n */\nmodule.exports = class ExceptionHandler {\n /**\n * TODO: add contructor description\n * @param {!Logger} logger - TODO: add param description\n */\n constructor(logger) {\n if (!logger) {\n throw new Error('Logger is required to handle exceptions');\n }\n\n this.logger = logger;\n this.handlers = new Map();\n }\n\n /**\n * Handles `uncaughtException` events for the current process by adding any\n * handlers passed in.\n * @returns {undefined}\n */\n handle(...args) {\n args.forEach(arg => {\n if (Array.isArray(arg)) {\n return arg.forEach(handler => this._addHandler(handler));\n }\n\n this._addHandler(arg);\n });\n\n if (!this.catcher) {\n this.catcher = this._uncaughtException.bind(this);\n process.on('uncaughtException', this.catcher);\n }\n }\n\n /**\n * Removes any handlers to `uncaughtException` events for the current\n * process. This does not modify the state of the `this.handlers` set.\n * @returns {undefined}\n */\n unhandle() {\n if (this.catcher) {\n process.removeListener('uncaughtException', this.catcher);\n this.catcher = false;\n\n Array.from(this.handlers.values())\n .forEach(wrapper => this.logger.unpipe(wrapper));\n }\n }\n\n /**\n * TODO: add method description\n * @param {Error} err - Error to get information about.\n * @returns {mixed} - TODO: add return description.\n */\n getAllInfo(err) {\n let message = null;\n if (err) {\n message = typeof err === 'string' ? err : err.message;\n }\n\n return {\n error: err,\n // TODO (indexzero): how do we configure this?\n level: 'error',\n message: [\n `uncaughtException: ${(message || '(no error message)')}`,\n err && err.stack || ' No stack trace'\n ].join('\\n'),\n stack: err && err.stack,\n exception: true,\n date: new Date().toString(),\n process: this.getProcessInfo(),\n os: this.getOsInfo(),\n trace: this.getTrace(err)\n };\n }\n\n /**\n * Gets all relevant process information for the currently running process.\n * @returns {mixed} - TODO: add return description.\n */\n getProcessInfo() {\n return {\n pid: process.pid,\n uid: process.getuid ? process.getuid() : null,\n gid: process.getgid ? process.getgid() : null,\n cwd: process.cwd(),\n execPath: process.execPath,\n version: process.version,\n argv: process.argv,\n memoryUsage: process.memoryUsage()\n };\n }\n\n /**\n * Gets all relevant OS information for the currently running process.\n * @returns {mixed} - TODO: add return description.\n */\n getOsInfo() {\n return {\n loadavg: os.loadavg(),\n uptime: os.uptime()\n };\n }\n\n /**\n * Gets a stack trace for the specified error.\n * @param {mixed} err - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n */\n getTrace(err) {\n const trace = err ? stackTrace.parse(err) : stackTrace.get();\n return trace.map(site => {\n return {\n column: site.getColumnNumber(),\n file: site.getFileName(),\n function: site.getFunctionName(),\n line: site.getLineNumber(),\n method: site.getMethodName(),\n native: site.isNative()\n };\n });\n }\n\n /**\n * Helper method to add a transport as an exception handler.\n * @param {Transport} handler - The transport to add as an exception handler.\n * @returns {void}\n */\n _addHandler(handler) {\n if (!this.handlers.has(handler)) {\n handler.handleExceptions = true;\n const wrapper = new ExceptionStream(handler);\n this.handlers.set(handler, wrapper);\n this.logger.pipe(wrapper);\n }\n }\n\n /**\n * Logs all relevant information around the `err` and exits the current\n * process.\n * @param {Error} err - Error to handle\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n _uncaughtException(err) {\n const info = this.getAllInfo(err);\n const handlers = this._getExceptionHandlers();\n // Calculate if we should exit on this error\n let doExit = typeof this.logger.exitOnError === 'function'\n ? this.logger.exitOnError(err)\n : this.logger.exitOnError;\n let timeout;\n\n if (!handlers.length && doExit) {\n // eslint-disable-next-line no-console\n console.warn('winston: exitOnError cannot be true with no exception handlers.');\n // eslint-disable-next-line no-console\n console.warn('winston: not exiting process.');\n doExit = false;\n }\n\n function gracefulExit() {\n debug('doExit', doExit);\n debug('process._exiting', process._exiting);\n\n if (doExit && !process._exiting) {\n // Remark: Currently ignoring any exceptions from transports when\n // catching uncaught exceptions.\n if (timeout) {\n clearTimeout(timeout);\n }\n // eslint-disable-next-line no-process-exit\n process.exit(1);\n }\n }\n\n if (!handlers || handlers.length === 0) {\n return process.nextTick(gracefulExit);\n }\n\n // Log to all transports attempting to listen for when they are completed.\n asyncForEach(handlers, (handler, next) => {\n const done = once(next);\n const transport = handler.transport || handler;\n\n // Debug wrapping so that we can inspect what's going on under the covers.\n function onDone(event) {\n return () => {\n debug(event);\n done();\n };\n }\n\n transport._ending = true;\n transport.once('finish', onDone('finished'));\n transport.once('error', onDone('error'));\n }, () => doExit && gracefulExit());\n\n this.logger.log(info);\n\n // If exitOnError is true, then only allow the logging of exceptions to\n // take up to `3000ms`.\n if (doExit) {\n timeout = setTimeout(gracefulExit, 3000);\n }\n }\n\n /**\n * Returns the list of transports and exceptionHandlers for this instance.\n * @returns {Array} - List of transports and exceptionHandlers for this\n * instance.\n * @private\n */\n _getExceptionHandlers() {\n // Remark (indexzero): since `logger.transports` returns all of the pipes\n // from the _readableState of the stream we actually get the join of the\n // explicit handlers and the implicit transports with\n // `handleExceptions: true`\n return this.logger.transports.filter(wrap => {\n const transport = wrap.transport || wrap;\n return transport.handleExceptions;\n });\n }\n};\n",
413
- "/**\n * rejection-stream.js: TODO: add file header handler.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst { Writable } = require('readable-stream');\n\n/**\n * TODO: add class description.\n * @type {RejectionStream}\n * @extends {Writable}\n */\nmodule.exports = class RejectionStream extends Writable {\n /**\n * Constructor function for the RejectionStream responsible for wrapping a\n * TransportStream; only allowing writes of `info` objects with\n * `info.rejection` set to true.\n * @param {!TransportStream} transport - Stream to filter to rejections\n */\n constructor(transport) {\n super({ objectMode: true });\n\n if (!transport) {\n throw new Error('RejectionStream requires a TransportStream instance.');\n }\n\n this.handleRejections = true;\n this.transport = transport;\n }\n\n /**\n * Writes the info object to our transport instance if (and only if) the\n * `rejection` property is set on the info.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {mixed} callback - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n _write(info, enc, callback) {\n if (info.rejection) {\n return this.transport.log(info, callback);\n }\n\n callback();\n return true;\n }\n};\n",
414
- "/**\n * exception-handler.js: Object for handling uncaughtException events.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst os = require('os');\nconst asyncForEach = require('async/forEach');\nconst debug = require('@dabh/diagnostics')('winston:rejection');\nconst once = require('one-time');\nconst stackTrace = require('stack-trace');\nconst RejectionStream = require('./rejection-stream');\n\n/**\n * Object for handling unhandledRejection events.\n * @type {RejectionHandler}\n */\nmodule.exports = class RejectionHandler {\n /**\n * TODO: add contructor description\n * @param {!Logger} logger - TODO: add param description\n */\n constructor(logger) {\n if (!logger) {\n throw new Error('Logger is required to handle rejections');\n }\n\n this.logger = logger;\n this.handlers = new Map();\n }\n\n /**\n * Handles `unhandledRejection` events for the current process by adding any\n * handlers passed in.\n * @returns {undefined}\n */\n handle(...args) {\n args.forEach(arg => {\n if (Array.isArray(arg)) {\n return arg.forEach(handler => this._addHandler(handler));\n }\n\n this._addHandler(arg);\n });\n\n if (!this.catcher) {\n this.catcher = this._unhandledRejection.bind(this);\n process.on('unhandledRejection', this.catcher);\n }\n }\n\n /**\n * Removes any handlers to `unhandledRejection` events for the current\n * process. This does not modify the state of the `this.handlers` set.\n * @returns {undefined}\n */\n unhandle() {\n if (this.catcher) {\n process.removeListener('unhandledRejection', this.catcher);\n this.catcher = false;\n\n Array.from(this.handlers.values()).forEach(wrapper =>\n this.logger.unpipe(wrapper)\n );\n }\n }\n\n /**\n * TODO: add method description\n * @param {Error} err - Error to get information about.\n * @returns {mixed} - TODO: add return description.\n */\n getAllInfo(err) {\n let message = null;\n if (err) {\n message = typeof err === 'string' ? err : err.message;\n }\n\n return {\n error: err,\n // TODO (indexzero): how do we configure this?\n level: 'error',\n message: [\n `unhandledRejection: ${message || '(no error message)'}`,\n err && err.stack || ' No stack trace'\n ].join('\\n'),\n stack: err && err.stack,\n rejection: true,\n date: new Date().toString(),\n process: this.getProcessInfo(),\n os: this.getOsInfo(),\n trace: this.getTrace(err)\n };\n }\n\n /**\n * Gets all relevant process information for the currently running process.\n * @returns {mixed} - TODO: add return description.\n */\n getProcessInfo() {\n return {\n pid: process.pid,\n uid: process.getuid ? process.getuid() : null,\n gid: process.getgid ? process.getgid() : null,\n cwd: process.cwd(),\n execPath: process.execPath,\n version: process.version,\n argv: process.argv,\n memoryUsage: process.memoryUsage()\n };\n }\n\n /**\n * Gets all relevant OS information for the currently running process.\n * @returns {mixed} - TODO: add return description.\n */\n getOsInfo() {\n return {\n loadavg: os.loadavg(),\n uptime: os.uptime()\n };\n }\n\n /**\n * Gets a stack trace for the specified error.\n * @param {mixed} err - TODO: add param description.\n * @returns {mixed} - TODO: add return description.\n */\n getTrace(err) {\n const trace = err ? stackTrace.parse(err) : stackTrace.get();\n return trace.map(site => {\n return {\n column: site.getColumnNumber(),\n file: site.getFileName(),\n function: site.getFunctionName(),\n line: site.getLineNumber(),\n method: site.getMethodName(),\n native: site.isNative()\n };\n });\n }\n\n /**\n * Helper method to add a transport as an exception handler.\n * @param {Transport} handler - The transport to add as an exception handler.\n * @returns {void}\n */\n _addHandler(handler) {\n if (!this.handlers.has(handler)) {\n handler.handleRejections = true;\n const wrapper = new RejectionStream(handler);\n this.handlers.set(handler, wrapper);\n this.logger.pipe(wrapper);\n }\n }\n\n /**\n * Logs all relevant information around the `err` and exits the current\n * process.\n * @param {Error} err - Error to handle\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n _unhandledRejection(err) {\n const info = this.getAllInfo(err);\n const handlers = this._getRejectionHandlers();\n // Calculate if we should exit on this error\n let doExit =\n typeof this.logger.exitOnError === 'function'\n ? this.logger.exitOnError(err)\n : this.logger.exitOnError;\n let timeout;\n\n if (!handlers.length && doExit) {\n // eslint-disable-next-line no-console\n console.warn('winston: exitOnError cannot be true with no rejection handlers.');\n // eslint-disable-next-line no-console\n console.warn('winston: not exiting process.');\n doExit = false;\n }\n\n function gracefulExit() {\n debug('doExit', doExit);\n debug('process._exiting', process._exiting);\n\n if (doExit && !process._exiting) {\n // Remark: Currently ignoring any rejections from transports when\n // catching unhandled rejections.\n if (timeout) {\n clearTimeout(timeout);\n }\n // eslint-disable-next-line no-process-exit\n process.exit(1);\n }\n }\n\n if (!handlers || handlers.length === 0) {\n return process.nextTick(gracefulExit);\n }\n\n // Log to all transports attempting to listen for when they are completed.\n asyncForEach(\n handlers,\n (handler, next) => {\n const done = once(next);\n const transport = handler.transport || handler;\n\n // Debug wrapping so that we can inspect what's going on under the covers.\n function onDone(event) {\n return () => {\n debug(event);\n done();\n };\n }\n\n transport._ending = true;\n transport.once('finish', onDone('finished'));\n transport.once('error', onDone('error'));\n },\n () => doExit && gracefulExit()\n );\n\n this.logger.log(info);\n\n // If exitOnError is true, then only allow the logging of exceptions to\n // take up to `3000ms`.\n if (doExit) {\n timeout = setTimeout(gracefulExit, 3000);\n }\n }\n\n /**\n * Returns the list of transports and exceptionHandlers for this instance.\n * @returns {Array} - List of transports and exceptionHandlers for this\n * instance.\n * @private\n */\n _getRejectionHandlers() {\n // Remark (indexzero): since `logger.transports` returns all of the pipes\n // from the _readableState of the stream we actually get the join of the\n // explicit handlers and the implicit transports with\n // `handleRejections: true`\n return this.logger.transports.filter(wrap => {\n const transport = wrap.transport || wrap;\n return transport.handleRejections;\n });\n }\n};\n",
415
- "/**\n * profiler.js: TODO: add file header description.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n/**\n * TODO: add class description.\n * @type {Profiler}\n * @private\n */\nclass Profiler {\n /**\n * Constructor function for the Profiler instance used by\n * `Logger.prototype.startTimer`. When done is called the timer will finish\n * and log the duration.\n * @param {!Logger} logger - TODO: add param description.\n * @private\n */\n constructor(logger) {\n const Logger = require('./logger');\n if (typeof logger !== 'object' || Array.isArray(logger) || !(logger instanceof Logger)) {\n throw new Error('Logger is required for profiling');\n } else {\n this.logger = logger;\n this.start = Date.now();\n }\n }\n\n /**\n * Ends the current timer (i.e. Profiler) instance and logs the `msg` along\n * with the duration since creation.\n * @returns {mixed} - TODO: add return description.\n * @private\n */\n done(...args) {\n if (typeof args[args.length - 1] === 'function') {\n // eslint-disable-next-line no-console\n console.warn('Callback function no longer supported as of winston@3.0.0');\n args.pop();\n }\n\n const info = typeof args[args.length - 1] === 'object' ? args.pop() : {};\n info.level = info.level || 'info';\n info.durationMs = (Date.now()) - this.start;\n\n return this.logger.write(info);\n }\n}\n\nmodule.exports = Profiler;\n",
416
- "/**\n * logger.js: TODO: add file header description.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst { Stream, Transform } = require('readable-stream');\nconst asyncForEach = require('async/forEach');\nconst { LEVEL, SPLAT } = require('triple-beam');\nconst isStream = require('is-stream');\nconst ExceptionHandler = require('./exception-handler');\nconst RejectionHandler = require('./rejection-handler');\nconst LegacyTransportStream = require('winston-transport/legacy');\nconst Profiler = require('./profiler');\nconst { warn } = require('./common');\nconst config = require('./config');\n\n/**\n * Captures the number of format (i.e. %s strings) in a given string.\n * Based on `util.format`, see Node.js source:\n * https://github.com/nodejs/node/blob/b1c8f15c5f169e021f7c46eb7b219de95fe97603/lib/util.js#L201-L230\n * @type {RegExp}\n */\nconst formatRegExp = /%[scdjifoO%]/g;\n\n/**\n * TODO: add class description.\n * @type {Logger}\n * @extends {Transform}\n */\nclass Logger extends Transform {\n /**\n * Constructor function for the Logger object responsible for persisting log\n * messages and metadata to one or more transports.\n * @param {!Object} options - foo\n */\n constructor(options) {\n super({ objectMode: true });\n this.configure(options);\n }\n\n child(defaultRequestMetadata) {\n const logger = this;\n return Object.create(logger, {\n write: {\n value: function (info) {\n const infoClone = Object.assign(\n {},\n defaultRequestMetadata,\n info\n );\n\n // Object.assign doesn't copy inherited Error\n // properties so we have to do that explicitly\n //\n // Remark (indexzero): we should remove this\n // since the errors format will handle this case.\n //\n if (info instanceof Error) {\n infoClone.stack = info.stack;\n infoClone.message = info.message;\n infoClone.cause = info.cause;\n }\n\n logger.write(infoClone);\n }\n }\n });\n }\n\n /**\n * This will wholesale reconfigure this instance by:\n * 1. Resetting all transports. Older transports will be removed implicitly.\n * 2. Set all other options including levels, colors, rewriters, filters,\n * exceptionHandlers, etc.\n * @param {!Object} options - TODO: add param description.\n * @returns {undefined}\n */\n configure({\n silent,\n format,\n defaultMeta,\n levels,\n level = 'info',\n exitOnError = true,\n transports,\n colors,\n emitErrs,\n formatters,\n padLevels,\n rewriters,\n stripColors,\n exceptionHandlers,\n rejectionHandlers\n } = {}) {\n // Reset transports if we already have them\n if (this.transports.length) {\n this.clear();\n }\n\n this.silent = silent;\n this.format = format || this.format || require('logform/json')();\n\n this.defaultMeta = defaultMeta || null;\n // Hoist other options onto this instance.\n this.levels = levels || this.levels || config.npm.levels;\n this.level = level;\n if (this.exceptions) {\n this.exceptions.unhandle();\n }\n if (this.rejections) {\n this.rejections.unhandle();\n }\n this.exceptions = new ExceptionHandler(this);\n this.rejections = new RejectionHandler(this);\n this.profilers = {};\n this.exitOnError = exitOnError;\n\n // Add all transports we have been provided.\n if (transports) {\n transports = Array.isArray(transports) ? transports : [transports];\n transports.forEach(transport => this.add(transport));\n }\n\n if (\n colors ||\n emitErrs ||\n formatters ||\n padLevels ||\n rewriters ||\n stripColors\n ) {\n throw new Error(\n [\n '{ colors, emitErrs, formatters, padLevels, rewriters, stripColors } were removed in winston@3.0.0.',\n 'Use a custom winston.format(function) instead.',\n 'See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md'\n ].join('\\n')\n );\n }\n\n if (exceptionHandlers) {\n this.exceptions.handle(exceptionHandlers);\n }\n if (rejectionHandlers) {\n this.rejections.handle(rejectionHandlers);\n }\n }\n\n /* eslint-disable valid-jsdoc */\n /**\n * Helper method to get the highest logging level associated with a logger\n *\n * @returns { number | null } - The highest configured logging level, null\n * for invalid configuration\n */\n getHighestLogLevel() {\n // This can be null, if this.level has an invalid value\n const configuredLevelValue = getLevelValue(this.levels, this.level);\n\n // If there are no transports, return the level configured at the logger level\n if (!this.transports || this.transports.length === 0) {\n return configuredLevelValue;\n }\n\n return this.transports.reduce((max, transport) => {\n const levelValue = getLevelValue(this.levels, transport.level);\n return levelValue !== null && levelValue > max ? levelValue : max;\n }, configuredLevelValue);\n }\n\n isLevelEnabled(level) {\n const givenLevelValue = getLevelValue(this.levels, level);\n if (givenLevelValue === null) {\n return false;\n }\n\n const configuredLevelValue = getLevelValue(this.levels, this.level);\n if (configuredLevelValue === null) {\n return false;\n }\n\n if (!this.transports || this.transports.length === 0) {\n return configuredLevelValue >= givenLevelValue;\n }\n\n const index = this.transports.findIndex(transport => {\n let transportLevelValue = getLevelValue(this.levels, transport.level);\n if (transportLevelValue === null) {\n transportLevelValue = configuredLevelValue;\n }\n return transportLevelValue >= givenLevelValue;\n });\n return index !== -1;\n }\n\n /* eslint-disable valid-jsdoc */\n /**\n * Ensure backwards compatibility with a `log` method\n * @param {mixed} level - Level the log message is written at.\n * @param {mixed} msg - TODO: add param description.\n * @param {mixed} meta - TODO: add param description.\n * @returns {Logger} - TODO: add return description.\n *\n * @example\n * // Supports the existing API:\n * logger.log('info', 'Hello world', { custom: true });\n * logger.log('info', new Error('Yo, it\\'s on fire'));\n *\n * // Requires winston.format.splat()\n * logger.log('info', '%s %d%%', 'A string', 50, { thisIsMeta: true });\n *\n * // And the new API with a single JSON literal:\n * logger.log({ level: 'info', message: 'Hello world', custom: true });\n * logger.log({ level: 'info', message: new Error('Yo, it\\'s on fire') });\n *\n * // Also requires winston.format.splat()\n * logger.log({\n * level: 'info',\n * message: '%s %d%%',\n * [SPLAT]: ['A string', 50],\n * meta: { thisIsMeta: true }\n * });\n *\n */\n /* eslint-enable valid-jsdoc */\n log(level, msg, ...splat) {\n // eslint-disable-line max-params\n // Optimize for the hotpath of logging JSON literals\n if (arguments.length === 1) {\n // Yo dawg, I heard you like levels ... seriously ...\n // In this context the LHS `level` here is actually the `info` so read\n // this as: info[LEVEL] = info.level;\n level[LEVEL] = level.level;\n this._addDefaultMeta(level);\n this.write(level);\n return this;\n }\n\n // Slightly less hotpath, but worth optimizing for.\n if (arguments.length === 2) {\n if (msg && typeof msg === 'object') {\n msg[LEVEL] = msg.level = level;\n this._addDefaultMeta(msg);\n this.write(msg);\n return this;\n }\n\n msg = { [LEVEL]: level, level, message: msg };\n this._addDefaultMeta(msg);\n this.write(msg);\n return this;\n }\n\n const [meta] = splat;\n if (typeof meta === 'object' && meta !== null) {\n // Extract tokens, if none available default to empty array to\n // ensure consistancy in expected results\n const tokens = msg && msg.match && msg.match(formatRegExp);\n\n if (!tokens) {\n const info = Object.assign({}, this.defaultMeta, meta, {\n [LEVEL]: level,\n [SPLAT]: splat,\n level,\n message: msg\n });\n\n if (meta.message) info.message = `${info.message} ${meta.message}`;\n if (meta.stack) info.stack = meta.stack;\n if (meta.cause) info.cause = meta.cause;\n\n this.write(info);\n return this;\n }\n }\n\n this.write(Object.assign({}, this.defaultMeta, {\n [LEVEL]: level,\n [SPLAT]: splat,\n level,\n message: msg\n }));\n\n return this;\n }\n\n /**\n * Pushes data so that it can be picked up by all of our pipe targets.\n * @param {mixed} info - TODO: add param description.\n * @param {mixed} enc - TODO: add param description.\n * @param {mixed} callback - Continues stream processing.\n * @returns {undefined}\n * @private\n */\n _transform(info, enc, callback) {\n if (this.silent) {\n return callback();\n }\n\n // [LEVEL] is only soft guaranteed to be set here since we are a proper\n // stream. It is likely that `info` came in through `.log(info)` or\n // `.info(info)`. If it is not defined, however, define it.\n // This LEVEL symbol is provided by `triple-beam` and also used in:\n // - logform\n // - winston-transport\n // - abstract-winston-transport\n if (!info[LEVEL]) {\n info[LEVEL] = info.level;\n }\n\n // Remark: really not sure what to do here, but this has been reported as\n // very confusing by pre winston@2.0.0 users as quite confusing when using\n // custom levels.\n if (!this.levels[info[LEVEL]] && this.levels[info[LEVEL]] !== 0) {\n // eslint-disable-next-line no-console\n console.error('[winston] Unknown logger level: %s', info[LEVEL]);\n }\n\n // Remark: not sure if we should simply error here.\n if (!this._readableState.pipes) {\n // eslint-disable-next-line no-console\n console.error(\n '[winston] Attempt to write logs with no transports, which can increase memory usage: %j',\n info\n );\n }\n\n // Here we write to the `format` pipe-chain, which on `readable` above will\n // push the formatted `info` Object onto the buffer for this instance. We trap\n // (and re-throw) any errors generated by the user-provided format, but also\n // guarantee that the streams callback is invoked so that we can continue flowing.\n try {\n this.push(this.format.transform(info, this.format.options));\n } finally {\n this._writableState.sync = false;\n // eslint-disable-next-line callback-return\n callback();\n }\n }\n\n /**\n * Delays the 'finish' event until all transport pipe targets have\n * also emitted 'finish' or are already finished.\n * @param {mixed} callback - Continues stream processing.\n */\n _final(callback) {\n const transports = this.transports.slice();\n asyncForEach(\n transports,\n (transport, next) => {\n if (!transport || transport.finished) return setImmediate(next);\n transport.once('finish', next);\n transport.end();\n },\n callback\n );\n }\n\n /**\n * Adds the transport to this logger instance by piping to it.\n * @param {mixed} transport - TODO: add param description.\n * @returns {Logger} - TODO: add return description.\n */\n add(transport) {\n // Support backwards compatibility with all existing `winston < 3.x.x`\n // transports which meet one of two criteria:\n // 1. They inherit from winston.Transport in < 3.x.x which is NOT a stream.\n // 2. They expose a log method which has a length greater than 2 (i.e. more then\n // just `log(info, callback)`.\n const target =\n !isStream(transport) || transport.log.length > 2\n ? new LegacyTransportStream({ transport })\n : transport;\n\n if (!target._writableState || !target._writableState.objectMode) {\n throw new Error(\n 'Transports must WritableStreams in objectMode. Set { objectMode: true }.'\n );\n }\n\n // Listen for the `error` event and the `warn` event on the new Transport.\n this._onEvent('error', target);\n this._onEvent('warn', target);\n this.pipe(target);\n\n if (transport.handleExceptions) {\n this.exceptions.handle();\n }\n\n if (transport.handleRejections) {\n this.rejections.handle();\n }\n\n return this;\n }\n\n /**\n * Removes the transport from this logger instance by unpiping from it.\n * @param {mixed} transport - TODO: add param description.\n * @returns {Logger} - TODO: add return description.\n */\n remove(transport) {\n if (!transport) return this;\n let target = transport;\n if (!isStream(transport) || transport.log.length > 2) {\n target = this.transports.filter(\n match => match.transport === transport\n )[0];\n }\n\n if (target) {\n this.unpipe(target);\n }\n return this;\n }\n\n /**\n * Removes all transports from this logger instance.\n * @returns {Logger} - TODO: add return description.\n */\n clear() {\n this.unpipe();\n return this;\n }\n\n /**\n * Cleans up resources (streams, event listeners) for all transports\n * associated with this instance (if necessary).\n * @returns {Logger} - TODO: add return description.\n */\n close() {\n this.exceptions.unhandle();\n this.rejections.unhandle();\n this.clear();\n this.emit('close');\n return this;\n }\n\n /**\n * Sets the `target` levels specified on this instance.\n * @param {Object} Target levels to use on this instance.\n */\n setLevels() {\n warn.deprecated('setLevels');\n }\n\n /**\n * Queries the all transports for this instance with the specified `options`.\n * This will aggregate each transport's results into one object containing\n * a property per transport.\n * @param {Object} options - Query options for this instance.\n * @param {function} callback - Continuation to respond to when complete.\n */\n query(options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n options = options || {};\n const results = {};\n const queryObject = Object.assign({}, options.query || {});\n\n // Helper function to query a single transport\n function queryTransport(transport, next) {\n if (options.query && typeof transport.formatQuery === 'function') {\n options.query = transport.formatQuery(queryObject);\n }\n\n transport.query(options, (err, res) => {\n if (err) {\n return next(err);\n }\n\n if (typeof transport.formatResults === 'function') {\n res = transport.formatResults(res, options.format);\n }\n\n next(null, res);\n });\n }\n\n // Helper function to accumulate the results from `queryTransport` into\n // the `results`.\n function addResults(transport, next) {\n queryTransport(transport, (err, result) => {\n // queryTransport could potentially invoke the callback multiple times\n // since Transport code can be unpredictable.\n if (next) {\n result = err || result;\n if (result) {\n results[transport.name] = result;\n }\n\n // eslint-disable-next-line callback-return\n next();\n }\n\n next = null;\n });\n }\n\n // Iterate over the transports in parallel setting the appropriate key in\n // the `results`.\n asyncForEach(\n this.transports.filter(transport => !!transport.query),\n addResults,\n () => callback(null, results)\n );\n }\n\n /**\n * Returns a log stream for all transports. Options object is optional.\n * @param{Object} options={} - Stream options for this instance.\n * @returns {Stream} - TODO: add return description.\n */\n stream(options = {}) {\n const out = new Stream();\n const streams = [];\n\n out._streams = streams;\n out.destroy = () => {\n let i = streams.length;\n while (i--) {\n streams[i].destroy();\n }\n };\n\n // Create a list of all transports for this instance.\n this.transports\n .filter(transport => !!transport.stream)\n .forEach(transport => {\n const str = transport.stream(options);\n if (!str) {\n return;\n }\n\n streams.push(str);\n\n str.on('log', log => {\n log.transport = log.transport || [];\n log.transport.push(transport.name);\n out.emit('log', log);\n });\n\n str.on('error', err => {\n err.transport = err.transport || [];\n err.transport.push(transport.name);\n out.emit('error', err);\n });\n });\n\n return out;\n }\n\n /**\n * Returns an object corresponding to a specific timing. When done is called\n * the timer will finish and log the duration. e.g.:\n * @returns {Profile} - TODO: add return description.\n * @example\n * const timer = winston.startTimer()\n * setTimeout(() => {\n * timer.done({\n * message: 'Logging message'\n * });\n * }, 1000);\n */\n startTimer() {\n return new Profiler(this);\n }\n\n /**\n * Tracks the time inbetween subsequent calls to this method with the same\n * `id` parameter. The second call to this method will log the difference in\n * milliseconds along with the message.\n * @param {string} id Unique id of the profiler\n * @returns {Logger} - TODO: add return description.\n */\n profile(id, ...args) {\n const time = Date.now();\n if (this.profilers[id]) {\n const timeEnd = this.profilers[id];\n delete this.profilers[id];\n\n // Attempt to be kind to users if they are still using older APIs.\n if (typeof args[args.length - 2] === 'function') {\n // eslint-disable-next-line no-console\n console.warn(\n 'Callback function no longer supported as of winston@3.0.0'\n );\n args.pop();\n }\n\n // Set the duration property of the metadata\n const info = typeof args[args.length - 1] === 'object' ? args.pop() : {};\n info.level = info.level || 'info';\n info.durationMs = time - timeEnd;\n info.message = info.message || id;\n return this.write(info);\n }\n\n this.profilers[id] = time;\n return this;\n }\n\n /**\n * Backwards compatibility to `exceptions.handle` in winston < 3.0.0.\n * @returns {undefined}\n * @deprecated\n */\n handleExceptions(...args) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Deprecated: .handleExceptions() will be removed in winston@4. Use .exceptions.handle()'\n );\n this.exceptions.handle(...args);\n }\n\n /**\n * Backwards compatibility to `exceptions.handle` in winston < 3.0.0.\n * @returns {undefined}\n * @deprecated\n */\n unhandleExceptions(...args) {\n // eslint-disable-next-line no-console\n console.warn(\n 'Deprecated: .unhandleExceptions() will be removed in winston@4. Use .exceptions.unhandle()'\n );\n this.exceptions.unhandle(...args);\n }\n\n /**\n * Throw a more meaningful deprecation notice\n * @throws {Error} - TODO: add throws description.\n */\n cli() {\n throw new Error(\n [\n 'Logger.cli() was removed in winston@3.0.0',\n 'Use a custom winston.formats.cli() instead.',\n 'See: https://github.com/winstonjs/winston/tree/master/UPGRADE-3.0.md'\n ].join('\\n')\n );\n }\n\n /**\n * Bubbles the `event` that occured on the specified `transport` up\n * from this instance.\n * @param {string} event - The event that occured\n * @param {Object} transport - Transport on which the event occured\n * @private\n */\n _onEvent(event, transport) {\n function transportEvent(err) {\n // https://github.com/winstonjs/winston/issues/1364\n if (event === 'error' && !this.transports.includes(transport)) {\n this.add(transport);\n }\n this.emit(event, err, transport);\n }\n\n if (!transport['__winston' + event]) {\n transport['__winston' + event] = transportEvent.bind(this);\n transport.on(event, transport['__winston' + event]);\n }\n }\n\n _addDefaultMeta(msg) {\n if (this.defaultMeta) {\n Object.assign(msg, this.defaultMeta);\n }\n }\n}\n\nfunction getLevelValue(levels, level) {\n const value = levels[level];\n if (!value && value !== 0) {\n return null;\n }\n return value;\n}\n\n/**\n * Represents the current readableState pipe targets for this Logger instance.\n * @type {Array|Object}\n */\nObject.defineProperty(Logger.prototype, 'transports', {\n configurable: false,\n enumerable: true,\n get() {\n const { pipes } = this._readableState;\n return !Array.isArray(pipes) ? [pipes].filter(Boolean) : pipes;\n }\n});\n\nmodule.exports = Logger;\n",
417
- "/**\n * create-logger.js: Logger factory for winston logger instances.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst { LEVEL } = require('triple-beam');\nconst config = require('./config');\nconst Logger = require('./logger');\nconst debug = require('@dabh/diagnostics')('winston:create-logger');\n\nfunction isLevelEnabledFunctionName(level) {\n return 'is' + level.charAt(0).toUpperCase() + level.slice(1) + 'Enabled';\n}\n\n/**\n * Create a new instance of a winston Logger. Creates a new\n * prototype for each instance.\n * @param {!Object} opts - Options for the created logger.\n * @returns {Logger} - A newly created logger instance.\n */\nmodule.exports = function (opts = {}) {\n //\n // Default levels: npm\n //\n opts.levels = opts.levels || config.npm.levels;\n\n /**\n * DerivedLogger to attach the logs level methods.\n * @type {DerivedLogger}\n * @extends {Logger}\n */\n class DerivedLogger extends Logger {\n /**\n * Create a new class derived logger for which the levels can be attached to\n * the prototype of. This is a V8 optimization that is well know to increase\n * performance of prototype functions.\n * @param {!Object} options - Options for the created logger.\n */\n constructor(options) {\n super(options);\n }\n }\n\n const logger = new DerivedLogger(opts);\n\n //\n // Create the log level methods for the derived logger.\n //\n Object.keys(opts.levels).forEach(function (level) {\n debug('Define prototype method for \"%s\"', level);\n if (level === 'log') {\n // eslint-disable-next-line no-console\n console.warn('Level \"log\" not defined: conflicts with the method \"log\". Use a different level name.');\n return;\n }\n\n //\n // Define prototype methods for each log level e.g.:\n // logger.log('info', msg) implies these methods are defined:\n // - logger.info(msg)\n // - logger.isInfoEnabled()\n //\n // Remark: to support logger.child this **MUST** be a function\n // so it'll always be called on the instance instead of a fixed\n // place in the prototype chain.\n //\n DerivedLogger.prototype[level] = function (...args) {\n // Prefer any instance scope, but default to \"root\" logger\n const self = this || logger;\n\n // Optimize the hot-path which is the single object.\n if (args.length === 1) {\n const [msg] = args;\n const info = msg && msg.message && msg || { message: msg };\n info.level = info[LEVEL] = level;\n self._addDefaultMeta(info);\n self.write(info);\n return (this || logger);\n }\n\n // When provided nothing assume the empty string\n if (args.length === 0) {\n self.log(level, '');\n return self;\n }\n\n // Otherwise build argument list which could potentially conform to\n // either:\n // . v3 API: log(obj)\n // 2. v1/v2 API: log(level, msg, ... [string interpolate], [{metadata}], [callback])\n return self.log(level, ...args);\n };\n\n DerivedLogger.prototype[isLevelEnabledFunctionName(level)] = function () {\n return (this || logger).isLevelEnabled(level);\n };\n });\n\n return logger;\n};\n",
418
- "/**\n * container.js: Inversion of control container for winston logger instances.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst createLogger = require('./create-logger');\n\n/**\n * Inversion of control container for winston logger instances.\n * @type {Container}\n */\nmodule.exports = class Container {\n /**\n * Constructor function for the Container object responsible for managing a\n * set of `winston.Logger` instances based on string ids.\n * @param {!Object} [options={}] - Default pass-thru options for Loggers.\n */\n constructor(options = {}) {\n this.loggers = new Map();\n this.options = options;\n }\n\n /**\n * Retrieves a `winston.Logger` instance for the specified `id`. If an\n * instance does not exist, one is created.\n * @param {!string} id - The id of the Logger to get.\n * @param {?Object} [options] - Options for the Logger instance.\n * @returns {Logger} - A configured Logger instance with a specified id.\n */\n add(id, options) {\n if (!this.loggers.has(id)) {\n // Remark: Simple shallow clone for configuration options in case we pass\n // in instantiated protoypal objects\n options = Object.assign({}, options || this.options);\n const existing = options.transports || this.options.transports;\n\n // Remark: Make sure if we have an array of transports we slice it to\n // make copies of those references.\n if (existing) {\n options.transports = Array.isArray(existing) ? existing.slice() : [existing];\n } else {\n options.transports = [];\n }\n\n const logger = createLogger(options);\n logger.on('close', () => this._delete(id));\n this.loggers.set(id, logger);\n }\n\n return this.loggers.get(id);\n }\n\n /**\n * Retreives a `winston.Logger` instance for the specified `id`. If\n * an instance does not exist, one is created.\n * @param {!string} id - The id of the Logger to get.\n * @param {?Object} [options] - Options for the Logger instance.\n * @returns {Logger} - A configured Logger instance with a specified id.\n */\n get(id, options) {\n return this.add(id, options);\n }\n\n /**\n * Check if the container has a logger with the id.\n * @param {?string} id - The id of the Logger instance to find.\n * @returns {boolean} - Boolean value indicating if this instance has a\n * logger with the specified `id`.\n */\n has(id) {\n return !!this.loggers.has(id);\n }\n\n /**\n * Closes a `Logger` instance with the specified `id` if it exists.\n * If no `id` is supplied then all Loggers are closed.\n * @param {?string} id - The id of the Logger instance to close.\n * @returns {undefined}\n */\n close(id) {\n if (id) {\n return this._removeLogger(id);\n }\n\n this.loggers.forEach((val, key) => this._removeLogger(key));\n }\n\n /**\n * Remove a logger based on the id.\n * @param {!string} id - The id of the logger to remove.\n * @returns {undefined}\n * @private\n */\n _removeLogger(id) {\n if (!this.loggers.has(id)) {\n return;\n }\n\n const logger = this.loggers.get(id);\n logger.close();\n this._delete(id);\n }\n\n /**\n * Deletes a `Logger` instance with the specified `id`.\n * @param {!string} id - The id of the Logger instance to delete from\n * container.\n * @returns {undefined}\n * @private\n */\n _delete(id) {\n this.loggers.delete(id);\n }\n};\n",
419
- "/**\n * winston.js: Top-level include defining Winston.\n *\n * (C) 2010 Charlie Robbins\n * MIT LICENCE\n */\n\n'use strict';\n\nconst logform = require('logform');\nconst { warn } = require('./winston/common');\n\n/**\n * Expose version. Use `require` method for `webpack` support.\n * @type {string}\n */\nexports.version = require('../package.json').version;\n/**\n * Include transports defined by default by winston\n * @type {Array}\n */\nexports.transports = require('./winston/transports');\n/**\n * Expose utility methods\n * @type {Object}\n */\nexports.config = require('./winston/config');\n/**\n * Hoist format-related functionality from logform.\n * @type {Object}\n */\nexports.addColors = logform.levels;\n/**\n * Hoist format-related functionality from logform.\n * @type {Object}\n */\nexports.format = logform.format;\n/**\n * Expose core Logging-related prototypes.\n * @type {function}\n */\nexports.createLogger = require('./winston/create-logger');\n/**\n * Expose core Logging-related prototypes.\n * @type {function}\n */\nexports.Logger = require('./winston/logger');\n/**\n * Expose core Logging-related prototypes.\n * @type {Object}\n */\nexports.ExceptionHandler = require('./winston/exception-handler');\n/**\n * Expose core Logging-related prototypes.\n * @type {Object}\n */\nexports.RejectionHandler = require('./winston/rejection-handler');\n/**\n * Expose core Logging-related prototypes.\n * @type {Container}\n */\nexports.Container = require('./winston/container');\n/**\n * Expose core Logging-related prototypes.\n * @type {Object}\n */\nexports.Transport = require('winston-transport');\n/**\n * We create and expose a default `Container` to `winston.loggers` so that the\n * programmer may manage multiple `winston.Logger` instances without any\n * additional overhead.\n * @example\n * // some-file1.js\n * const logger = require('winston').loggers.get('something');\n *\n * // some-file2.js\n * const logger = require('winston').loggers.get('something');\n */\nexports.loggers = new exports.Container();\n\n/**\n * We create and expose a 'defaultLogger' so that the programmer may do the\n * following without the need to create an instance of winston.Logger directly:\n * @example\n * const winston = require('winston');\n * winston.log('info', 'some message');\n * winston.error('some error');\n */\nconst defaultLogger = exports.createLogger();\n\n// Pass through the target methods onto `winston.\nObject.keys(exports.config.npm.levels)\n .concat([\n 'log',\n 'query',\n 'stream',\n 'add',\n 'remove',\n 'clear',\n 'profile',\n 'startTimer',\n 'handleExceptions',\n 'unhandleExceptions',\n 'handleRejections',\n 'unhandleRejections',\n 'configure',\n 'child'\n ])\n .forEach(\n method => (exports[method] = (...args) => defaultLogger[method](...args))\n );\n\n/**\n * Define getter / setter for the default logger level which need to be exposed\n * by winston.\n * @type {string}\n */\nObject.defineProperty(exports, 'level', {\n get() {\n return defaultLogger.level;\n },\n set(val) {\n defaultLogger.level = val;\n }\n});\n\n/**\n * Define getter for `exceptions` which replaces `handleExceptions` and\n * `unhandleExceptions`.\n * @type {Object}\n */\nObject.defineProperty(exports, 'exceptions', {\n get() {\n return defaultLogger.exceptions;\n }\n});\n\n/**\n * Define getter for `rejections` which replaces `handleRejections` and\n * `unhandleRejections`.\n * @type {Object}\n */\nObject.defineProperty(exports, 'rejections', {\n get() {\n return defaultLogger.rejections;\n }\n});\n\n/**\n * Define getters / setters for appropriate properties of the default logger\n * which need to be exposed by winston.\n * @type {Logger}\n */\n['exitOnError'].forEach(prop => {\n Object.defineProperty(exports, prop, {\n get() {\n return defaultLogger[prop];\n },\n set(val) {\n defaultLogger[prop] = val;\n }\n });\n});\n\n/**\n * The default transports and exceptionHandlers for the default winston logger.\n * @type {Object}\n */\nObject.defineProperty(exports, 'default', {\n get() {\n return {\n exceptionHandlers: defaultLogger.exceptionHandlers,\n rejectionHandlers: defaultLogger.rejectionHandlers,\n transports: defaultLogger.transports\n };\n }\n});\n\n// Have friendlier breakage notices for properties that were exposed by default\n// on winston < 3.0.\nwarn.deprecated(exports, 'setLevels');\nwarn.forFunctions(exports, 'useFormat', ['cli']);\nwarn.forProperties(exports, 'useFormat', ['padLevels', 'stripColors']);\nwarn.forFunctions(exports, 'deprecated', [\n 'addRewriter',\n 'addFilter',\n 'clone',\n 'extend'\n]);\nwarn.forProperties(exports, 'deprecated', ['emitErrs', 'levelLength']);\n\n",
420
- "import winston from \"winston\";\n\n// Configure Winston logger\nconst logFormat = winston.format.combine(\n winston.format.timestamp({ format: \"YYYY-MM-DD HH:mm:ss\" }),\n winston.format.printf(({ timestamp, level, message, ...meta }) => {\n const metaStr = Object.keys(meta).length ? ` ${JSON.stringify(meta)}` : \"\";\n return `${timestamp} [${level}]: ${message}${metaStr}`;\n }),\n);\n\nexport const logger = winston.createLogger({\n level: process.env.VERBOSE ? \"debug\" : \"info\",\n format: logFormat,\n transports: [new winston.transports.Console({ format: winston.format.combine(winston.format.colorize(), logFormat), }),],\n silent: false,\n});\n",
421
- "import { logger } from \"./logger.ts\";\n\n// its recommened to use bun-pty in windows, since node-pty is super complex to install there, requires a 10G M$ build tools\n\nasync function getPty() {\n return globalThis.Bun ? await import(\"bun-pty\").catch((error) => {\n logger.error(\"Failed to load bun-pty:\", error);\n throw error;\n }) : await import(\"node-pty\")\n .catch((error) => {\n logger.error(\"Failed to load node-pty:\", error);\n throw error;\n });\n};\n\nconst pty = await getPty();\nexport const ptyPackage = globalThis.Bun ? \"bun-pty\" : \"node-pty\";\nexport default pty;\n",
422
- "export class ReadyManager {\n isReady = false;\n private readyQueue: (() => void)[] = [];\n wait() {\n if (this.isReady) return;\n return new Promise<void>((resolve) => this.readyQueue.push(resolve));\n }\n unready() {\n this.isReady = false;\n }\n ready() {\n this.isReady = true;\n if (!this.readyQueue.length) return; // check len for performance\n this.readyQueue.splice(0).map((resolve) => resolve());\n }\n}\n",
423
- "export function removeControlCharacters(str: string): string {\n // Matches control characters in the C0 and C1 ranges, including Delete (U+007F)\n return str.replace(\n // eslint-disable-next-line no-control-regex This is a control regex\n /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,\n \"\",\n );\n}\n",
424
- "import { execSync } from \"child_process\";\nimport { existsSync } from \"fs\";\nimport { mkdir, readFile, rename, writeFile } from \"fs/promises\";\nimport { homedir } from \"os\";\nimport path from \"path\";\n\nexport interface Task {\n cwd: string;\n gitRoot?: string;\n task: string;\n pid: number;\n status: \"running\" | \"queued\" | \"completed\" | \"failed\";\n startedAt: number;\n lockedAt: number;\n}\n\nexport interface LockFile {\n tasks: Task[];\n}\n\ninterface LockCheckResult {\n isLocked: boolean;\n blockingTasks: Task[];\n lockKey: string;\n}\n\nconst getLockDir = () => path.join(process.env.CLAUDE_YES_HOME || homedir(), \".claude-yes\");\nconst getLockFile = () => path.join(getLockDir(), \"running.lock.json\");\nconst MAX_RETRIES = 5;\nconst RETRY_DELAYS = [50, 100, 200, 400, 800]; // exponential backoff in ms\nconst POLL_INTERVAL = 2000; // 2 seconds\n\n/**\n * Check if a process is running\n */\nfunction isProcessRunning(pid: number): boolean {\n try {\n // Sending signal 0 checks if process exists without killing it\n process.kill(pid, 0);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Get git repository root for a directory\n */\nfunction getGitRoot(cwd: string): string | null {\n try {\n const result = execSync(\"git rev-parse --show-toplevel\", {\n cwd,\n encoding: \"utf8\",\n stdio: [\"pipe\", \"pipe\", \"ignore\"],\n });\n return result.trim();\n } catch {\n return null;\n }\n}\n\n/**\n * Check if directory is in a git repository\n */\nfunction isGitRepo(cwd: string): boolean {\n try {\n const gitRoot = getGitRoot(cwd);\n return gitRoot !== null;\n } catch {\n return false;\n }\n}\n\n/**\n * Resolve path to real path (handling symlinks)\n */\nfunction resolveRealPath(p: string): string {\n try {\n return path.resolve(p);\n } catch {\n return p;\n }\n}\n\n/**\n * Sleep for a given number of milliseconds\n */\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n/**\n * Read lock file with retry logic and stale lock cleanup\n */\nasync function readLockFile(): Promise<LockFile> {\n try {\n const lockDir = getLockDir();\n const lockFilePath = getLockFile();\n await mkdir(lockDir, { recursive: true });\n\n if (!existsSync(lockFilePath)) {\n return { tasks: [] };\n }\n\n const content = await readFile(lockFilePath, \"utf8\");\n const lockFile = JSON.parse(content) as LockFile;\n\n // Clean stale locks while reading\n lockFile.tasks = lockFile.tasks.filter((task) => {\n if (isProcessRunning(task.pid)) return true;\n return false;\n });\n\n return lockFile;\n } catch {\n // If file is corrupted or doesn't exist, return empty lock file\n return { tasks: [] };\n }\n}\n\n/**\n * Write lock file atomically with retry logic\n */\nasync function writeLockFile(lockFile: LockFile, retryCount = 0): Promise<void> {\n try {\n const lockDir = getLockDir();\n const lockFilePath = getLockFile();\n await mkdir(lockDir, { recursive: true });\n\n const tempFile = `${lockFilePath}.tmp.${process.pid}`;\n await writeFile(tempFile, JSON.stringify(lockFile, null, 2), \"utf8\");\n\n // Atomic rename\n await rename(tempFile, lockFilePath);\n } catch (error) {\n if (retryCount < MAX_RETRIES) {\n // Exponential backoff retry\n await sleep(RETRY_DELAYS[retryCount] || 800);\n return writeLockFile(lockFile, retryCount + 1);\n }\n throw error;\n }\n}\n\n/**\n * Check if lock exists for the current working directory\n */\nasync function checkLock(cwd: string, _prompt: string): Promise<LockCheckResult> {\n const resolvedCwd = resolveRealPath(cwd);\n const gitRoot = isGitRepo(resolvedCwd) ? getGitRoot(resolvedCwd) : null;\n const lockKey = gitRoot || resolvedCwd;\n\n const lockFile = await readLockFile();\n\n // Find running tasks for this location\n const blockingTasks = lockFile.tasks.filter((task) => {\n if (!isProcessRunning(task.pid)) return false; // Skip stale locks\n if (task.status !== \"running\") return false; // Only check running tasks\n\n if (gitRoot && task.gitRoot) {\n // In git repo: check by git root\n return task.gitRoot === gitRoot;\n } else {\n // Not in git repo: exact cwd match\n return task.cwd === lockKey;\n }\n });\n\n return {\n isLocked: blockingTasks.length > 0,\n blockingTasks,\n lockKey,\n };\n}\n\n/**\n * Add a task to the lock file\n */\nasync function addTask(task: Task): Promise<void> {\n const lockFile = await readLockFile();\n\n // Remove any existing task with same PID (shouldn't happen, but be safe)\n lockFile.tasks = lockFile.tasks.filter((t) => t.pid !== task.pid);\n\n lockFile.tasks.push(task);\n await writeLockFile(lockFile);\n}\n\n/**\n * Update task status\n */\nasync function updateTaskStatus(pid: number, status: Task[\"status\"]): Promise<void> {\n const lockFile = await readLockFile();\n const task = lockFile.tasks.find((t) => t.pid === pid);\n\n if (task) {\n task.status = status;\n await writeLockFile(lockFile);\n }\n}\n\n/**\n * Remove a task from the lock file\n */\nasync function removeTask(pid: number): Promise<void> {\n const lockFile = await readLockFile();\n lockFile.tasks = lockFile.tasks.filter((t) => t.pid !== pid);\n await writeLockFile(lockFile);\n}\n\n/**\n * Wait for lock to be released\n */\nasync function waitForUnlock(blockingTasks: Task[], currentTask: Task): Promise<void> {\n const blockingTask = blockingTasks[0];\n if (!blockingTask) return;\n console.log(`⏳ Queueing for unlock of: ${blockingTask.task}`);\n console.log(` Press 'b' to bypass queue, 'k' to kill previous instance`);\n\n // Add current task as 'queued'\n await addTask({ ...currentTask, status: \"queued\" });\n\n // Set up keyboard input handling\n const stdin = process.stdin;\n const wasRaw = stdin.isRaw;\n stdin.setRawMode?.(true);\n stdin.resume();\n\n let bypassed = false;\n let killed = false;\n\n const keyHandler = (key: Buffer) => {\n const char = key.toString();\n if (char === \"b\" || char === \"B\") {\n console.log(\"\\n⚡ Bypassing queue...\");\n bypassed = true;\n } else if (char === \"k\" || char === \"K\") {\n console.log(\"\\n🔪 Killing previous instance...\");\n killed = true;\n }\n };\n\n stdin.on(\"data\", keyHandler);\n\n let dots = 0;\n while (true) {\n if (bypassed) {\n // Force bypass - update status to running immediately\n await updateTaskStatus(currentTask.pid, \"running\");\n console.log(\"✓ Queue bypassed, starting task...\");\n break;\n }\n\n if (killed && blockingTask) {\n // Kill the blocking task's process\n try {\n process.kill(blockingTask.pid, \"SIGTERM\");\n console.log(`✓ Killed process ${blockingTask.pid}`);\n // Wait a bit for the process to be killed\n await sleep(1000);\n } catch (err) {\n console.log(`⚠️ Could not kill process ${blockingTask.pid}: ${err}`);\n }\n killed = false; // Reset flag after attempting kill\n }\n\n await sleep(POLL_INTERVAL);\n\n const lockCheck = await checkLock(currentTask.cwd, currentTask.task);\n\n if (!lockCheck.isLocked) {\n // Lock released, update status to running\n await updateTaskStatus(currentTask.pid, \"running\");\n console.log(`\\n✓ Lock released, starting task...`);\n break;\n }\n\n // Show progress indicator\n dots = (dots + 1) % 4;\n process.stdout.write(`\\r⏳ Queueing${\".\".repeat(dots)}${\" \".repeat(3 - dots)}`);\n }\n\n // Clean up keyboard handler\n stdin.off(\"data\", keyHandler);\n stdin.setRawMode?.(wasRaw);\n if (!wasRaw) stdin.pause();\n}\n\n/**\n * Clean stale locks from the lock file\n */\nexport async function cleanStaleLocks(): Promise<void> {\n const lockFile = await readLockFile();\n\n const before = lockFile.tasks.length;\n lockFile.tasks = lockFile.tasks.filter((task) => {\n if (isProcessRunning(task.pid)) return true;\n\n console.log(`🧹 Cleaned stale lock for PID ${task.pid}`);\n return false;\n });\n\n if (lockFile.tasks.length !== before) {\n await writeLockFile(lockFile);\n }\n}\n\n/**\n * Acquire lock or wait if locked\n */\nexport async function acquireLock(\n cwd: string,\n prompt: string = \"no prompt provided\",\n): Promise<void> {\n const resolvedCwd = resolveRealPath(cwd);\n const gitRoot = isGitRepo(resolvedCwd) ? getGitRoot(resolvedCwd) : null;\n\n const task: Task = {\n cwd: resolvedCwd,\n gitRoot: gitRoot || undefined,\n task: prompt.substring(0, 100), // Limit task description length\n pid: process.pid,\n status: \"running\",\n startedAt: Date.now(),\n lockedAt: Date.now(),\n };\n\n const lockCheck = await checkLock(resolvedCwd, prompt);\n\n if (lockCheck.isLocked) {\n await waitForUnlock(lockCheck.blockingTasks, task);\n } else {\n await addTask(task);\n }\n}\n\n/**\n * Release lock for current process\n */\nexport async function releaseLock(pid: number = process.pid): Promise<void> {\n await removeTask(pid);\n}\n\n/**\n * Update status of current task\n */\nexport async function updateCurrentTaskStatus(\n status: Task[\"status\"],\n pid: number = process.pid,\n): Promise<void> {\n await updateTaskStatus(pid, status);\n}\n\n/**\n * Check if we should use locking for this directory\n * Only use locking if we're in a git repository\n */\nexport function shouldUseLock(_cwd: string): boolean {\n // Only use lock if in git repo OR if explicitly requested\n // For now, use lock for all cases to handle same-dir conflicts\n return true;\n}\n",
425
- "import { execaCommand, execaCommandSync } from \"execa\";\nimport { fromReadable } from \"from-node-stream\";\nimport { createReadStream, mkdirSync } from \"fs\";\nimport { unlink } from \"fs/promises\";\nimport { dirname } from \"path\";\nimport sflow from \"sflow\";\nimport { logger } from \"../logger.ts\";\n\n/**\n * Creates a FIFO (named pipe) stream on Linux for additional stdin input\n * @param cli - The CLI name for logging purposes\n * @returns An object with stream and cleanup function, or null if failed\n */\nexport function createFifoStream(\n cli: string,\n): { stream: ReadableStream<string>; cleanup: () => Promise<void> } | null {\n // Only create FIFO on Linux\n if (process.platform !== \"linux\") {\n return null;\n }\n\n let fifoPath: string | null = null;\n let fifoStream: ReturnType<typeof createReadStream> | null = null;\n\n try {\n const timestamp = new Date().toISOString().replace(/\\D/g, \"\").slice(0, 17);\n const randomSuffix = Math.random().toString(36).substring(2, 5);\n\n fifoPath = `/tmp/agent-yes-${timestamp}${randomSuffix}.stdin`;\n mkdirSync(dirname(fifoPath), { recursive: true });\n\n // Create the named pipe using mkfifo\n const mkfifoResult = execaCommandSync(`mkfifo ${fifoPath}`, {\n reject: false,\n });\n\n if (mkfifoResult.exitCode !== 0) {\n logger.warn(`[${cli}-yes] mkfifo command failed with exit code ${mkfifoResult.exitCode}`);\n if (mkfifoResult.stderr) {\n logger.warn(`[${cli}-yes] mkfifo stderr: ${mkfifoResult.stderr}`);\n }\n if (mkfifoResult.stdout) {\n logger.warn(`[${cli}-yes] mkfifo stdout: ${mkfifoResult.stdout}`);\n }\n return null;\n }\n\n logger.info(`[${cli}-yes] Created FIFO at ${fifoPath}`);\n\n // Open the FIFO for reading\n // Note: This will block until a writer opens the FIFO, so we use a dummy writer to unblock it\n try {\n // Open a dummy writer in background to prevent blocking\n execaCommand(`exec 3>\"${fifoPath}\"`).catch(() => null);\n\n fifoStream = createReadStream(fifoPath, {\n flags: \"r\",\n autoClose: true,\n });\n\n logger.info(`[${cli}-yes] FIFO opened for reading`);\n\n // Cleanup FIFO function\n const cleanupFifo = async () => {\n if (fifoStream) {\n try {\n fifoStream.close();\n logger.debug(`[${cli}-yes] Closed FIFO stream`);\n } catch (error) {\n logger.debug(`[${cli}-yes] Error closing FIFO stream:`, { error });\n }\n }\n if (fifoPath) {\n try {\n await unlink(fifoPath).catch(() => null);\n logger.info(`[${cli}-yes] Cleaned up FIFO at ${fifoPath}`);\n } catch {}\n }\n };\n\n process.on(\"exit\", () => {\n if (fifoPath) unlink(fifoPath).catch(() => null);\n });\n process.on(\"SIGINT\", async () => {\n await cleanupFifo();\n });\n process.on(\"SIGTERM\", async () => {\n await cleanupFifo();\n });\n\n return {\n stream: sflow(fromReadable(fifoStream)).map((buffer) => buffer.toString()),\n cleanup: cleanupFifo,\n };\n } catch (error) {\n logger.warn(`[${cli}-yes] Failed to open FIFO at ${fifoPath}:`, {\n error,\n });\n if (error instanceof Error) {\n logger.warn(`[${cli}-yes] Error details: ${error.message}`);\n if (error.stack) {\n logger.debug(`[${cli}-yes] Stack trace: ${error.stack}`);\n }\n }\n // Clean up the FIFO if we failed to open it\n if (fifoPath) {\n unlink(fifoPath).catch(() => null);\n }\n return null;\n }\n } catch (error) {\n logger.warn(`[${cli}-yes] Failed to create FIFO:`, { error });\n if (error instanceof Error) {\n logger.warn(`[${cli}-yes] Error details: ${error.message}`);\n }\n if (fifoPath) {\n unlink(fifoPath).catch(() => null);\n }\n return null;\n }\n}\n",
426
- "import type { AgentCliConfig, AgentYesConfig } from \"./index.ts\";\n\ntype Awaitable<T> = T | Promise<T>;\nexport async function defineCliYesConfig<T extends AgentYesConfig>(\n cfg: Awaitable<T> | ((original: T) => Awaitable<T>),\n) {\n if (typeof cfg === \"function\") cfg = await cfg({ clis: {} } as T);\n\n return cfg as unknown as Omit<AgentYesConfig, \"clis\"> & {\n clis: Record<string, AgentCliConfig>;\n };\n}\n",
427
- "export function sleepms(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\nexport function deepMixin<T>(target: T, source: DeepPartial<T>, ...more: DeepPartial<T>[]): T {\n for (const key in source) {\n if (source[key] && typeof source[key] === \"object\" && !Array.isArray(source[key])) {\n if (!target[key] || typeof target[key] !== \"object\") {\n (target as any)[key] = {};\n }\n deepMixin(target[key], source[key] as any);\n } else if (source[key] !== undefined) {\n (target as any)[key] = source[key];\n }\n }\n\n for (const moreSource of more) {\n deepMixin(target, moreSource);\n }\n return target;\n}\nexport type DeepPartial<T> = {\n [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n",
428
- "import { mkdir } from \"node:fs/promises\";\nimport os from \"node:os\";\nimport path from \"node:path\";\nimport { defineCliYesConfig } from \"./ts/defineConfig.ts\";\nimport { deepMixin } from \"./ts/utils.ts\";\nimport { logger } from \"./ts/logger.ts\";\n\nlogger.debug(\"loading cli-yes.config.ts from \" + import.meta.url);\n\n// For config path,\n// 0. default value is defined here, auto imported\n// 2. can override by ~/.agent-yes config, try to mkdir logs to that to find out if we have permission to write it\n// 3. can override by workspace-local temporary ./node_modules/.agent-yes config directory so it works in sandboxed envs\n// 3. can override by workspace-local ./.agent-yes project-specific config\n\n// Helper function to test if we can write to a directory\n\n// Determine config directory with 3-tier fallback\nconst configDir = await (async () => {\n // 1. If running in dev mode (ts file), use current directory\n // const isDevMode = import.meta.url.endsWith(\".ts\");\n // if (isDevMode) {\n // const devConfigDir = path.resolve(process.cwd(), \".agent-yes\");\n // if (process.env.VERBOSE) console.log(\"[config] Dev mode detected, using:\", devConfigDir);\n // return devConfigDir;\n // }\n\n // 2. Try ~/.agent-yes as default\n const homeConfigDir = path.resolve(os.homedir(), \".agent-yes\");\n const isHomeWritable = await mkdir(homeConfigDir, { recursive: true })\n .then(() => true)\n .catch(() => false);\n if (isHomeWritable) {\n logger.debug(\"[config] Using home directory:\", homeConfigDir);\n return homeConfigDir;\n }\n\n // 3. Fallback to tmp dir\n const tmpConfigDir = path.resolve(\"/tmp/.agent-yes\");\n const isWritable = await mkdir(tmpConfigDir, { recursive: true });\n if (isWritable) {\n logger.debug(\"[config] Using workspace directory:\", tmpConfigDir);\n return tmpConfigDir;\n }\n\n return undefined;\n})();\n\n// For logs, use configDir/logs\n\nexport default deepMixin(\n await getDefaultConfig(),\n await import(path.resolve(os.homedir(), \".agent-yes/config.ts\"))\n .catch(() => ({ default: {} }))\n .then((mod) => mod.default),\n await import(path.resolve(process.cwd(), \"node_modules/.agent-yes/config.ts\"))\n .catch(() => ({ default: {} }))\n .then((mod) => mod.default),\n await import(path.resolve(process.cwd(), \".agent-yes/config.ts\"))\n .catch(() => ({ default: {} }))\n .then((mod) => mod.default),\n);\n\nfunction getDefaultConfig() {\n return defineCliYesConfig({\n configDir,\n logsDir: configDir && path.resolve(configDir, \"logs\"),\n clis: {\n qwen: {\n install: \"npm install -g @qwen-code/qwen-code@latest\",\n version: \"qwen --version\",\n },\n grok: {\n install: \"npm install -g @vibe-kit/grok-cli@latest\",\n ready: [/^ │ ❯ +/],\n enter: [/^ 1. Yes/],\n },\n claude: {\n promptArg: \"last-arg\",\n install: \"npm install -g @anthropic-ai/claude-code@latest\",\n // ready: [/^> /], // regex matcher for stdin ready\n ready: [/\\? for shortcuts/], // regex matcher for stdin ready\n typingRespond: {\n \"1\\n\": [/│ Do you want to use this API key\\?/],\n },\n enter: [\n /^.{0,3} 1\\. Yes/m,\n /^.{0,3} 1\\. Yes, continue/m,\n /^.{0,3} 1\\. Dark mode ?✔/m,\n /❯ 1\\. Yes/m,\n /❯ 1\\. Yes, continue/m,\n /❯ 1\\. Dark mode ?✔/m,\n /Press Enter to continue…/m,\n ],\n fatal: [/⎿ Claude usage limit reached\\./, /^error: unknown option/],\n restoreArgs: [\"--continue\"], // restart with --continue when crashed\n restartWithoutContinueArg: [/No conversation found to continue/],\n exitCommand: [\"/exit\"],\n bunx: true, // use bunx to run the binary, start time is 5s faster than node\n defaultArgs: [\"--model=sonnet\"], // default to sonnet, to prevent opus model overload\n },\n gemini: {\n install: \"npm install -g @google/gemini-cli@latest\",\n // match the agent prompt after initial lines; handled by index logic using line index\n ready: [/Type your message/], // used with line index check\n enter: [/│ ● 1. Yes, allow once/, /│ ● 1. Allow once/],\n fatal: [/Error resuming session/, /No previous sessions found for this project./],\n restoreArgs: [\"--resume\"], // restart with --resume when crashed\n restartWithoutContinueArg: [\n /No previous sessions found for this project\\./,\n /Error resuming session/,\n ],\n exitCommand: [\"/chat save ${PWD}\", \"/quit\"],\n },\n codex: {\n promptArg: \"first-arg\",\n install: \"npm install -g @openai/codex@latest\",\n updateAvailable: [/^✨⬆️ Update available!/],\n ready: [\n /⏎ send/, // legacy\n /\\? for shortcuts/, // 2026-01-05 update\n ],\n enter: [\n /> 1. Yes,/,\n /> 1. Yes, allow Codex to work in this folder/,\n /> 1. Approve and run now/,\n ],\n fatal: [/Error: The cursor position could not be read within/],\n // add to codex --search by default when not provided by the user\n defaultArgs: [\"--search\"],\n noEOL: true, // codex use cursor moving instead of EOL when rendering output\n },\n copilot: {\n // promptArg: '--prompt', // use stdin to prompt or it will reject all bash commands\n install: \"npm install -g @github/copilot\",\n ready: [/^ +> /, /Ctrl\\+c Exit/],\n enter: [/ │ ❯ +1. Yes, proceed/, /❯ +1. Yes/],\n fatal: [],\n },\n cursor: {\n install: \"open https://cursor.com/ja/docs/cli/installation\",\n // map logical \"cursor\" cli name to actual binary name\n binary: \"cursor-agent\",\n bunx: true,\n ready: [/\\/ commands/],\n enter: [/→ Run \\(once\\) \\(y\\) \\(enter\\)/, /▶ \\[a\\] Trust this workspace/],\n fatal: [/^ Error: You've hit your usage limit/],\n },\n auggie: {\n help: \"https://docs.augmentcode.com/cli/overview\",\n install: \"npm install -g @augmentcode/auggie\",\n promptArg: \"first-arg\",\n ready: [/ > /, /\\? to show shortcuts/],\n enter: [], // auggie seems not to ask for permission currently, which is super nice\n fatal: [], // no fatal patterns known yet\n },\n amp: {\n help: '',\n install: 'npm i -g @sourcegraph/amp',\n }\n },\n });\n}\n",
429
- "#!/usr/bin/env node\n\nimport { execSync } from \"child_process\";\nimport { existsSync } from \"fs\";\nimport { dirname, join } from \"path\";\nimport { arch, platform } from \"process\";\nimport { fileURLToPath } from \"url\";\n\n// Determine the platform-specific library name\nfunction getLibraryName() {\n switch (platform) {\n case \"win32\":\n return \"rust_pty.dll\";\n case \"darwin\":\n return arch === \"arm64\" ? \"librust_pty_arm64.dylib\" : \"librust_pty.dylib\";\n case \"linux\":\n return arch === \"arm64\" ? \"librust_pty_arm64.so\" : \"librust_pty.so\";\n default:\n return \"librust_pty.so\";\n }\n}\n\n// Check if we need to rebuild bun-pty\nconst bunPtyPath = dirname(fileURLToPath(import.meta.resolve(\"@snomiao/bun-pty\"))) + \"/..\";\nconst libName = getLibraryName();\nconst libPath = join(bunPtyPath, \"rust-pty\", \"target\", \"release\", libName);\n\nif (!existsSync(bunPtyPath)) {\n console.log({ bunPtyPath });\n console.log(\"bun-pty not found, skipping pty-fix in \");\n process.exit(0);\n}\n\n// Platform-specific compatibility check\nif (platform === \"linux\") {\n // Check if the binary exists and if it has GLIBC compatibility issues\n try {\n const lddOutput = execSync(`ldd \"${libPath}\" 2>&1`, { encoding: \"utf8\" });\n if (lddOutput.includes(\"GLIBC\") && lddOutput.includes(\"not found\")) {\n console.log(\"GLIBC compatibility issue detected, rebuilding bun-pty...\");\n rebuildBunPty();\n } else {\n console.log(\"bun-pty binary is compatible\");\n }\n } catch {\n // If ldd fails or file doesn't exist, try to rebuild\n console.log(\"Checking bun-pty compatibility...\");\n rebuildBunPty();\n }\n} else if (platform === \"win32\") {\n // Windows: Check if DLL exists\n if (!existsSync(libPath)) {\n console.log(\"Windows DLL not found, attempting to rebuild...\");\n rebuildBunPty();\n } else {\n console.log(\"bun-pty Windows DLL found\");\n }\n} else if (platform === \"darwin\") {\n // macOS: Check if dylib exists\n if (!existsSync(libPath)) {\n console.log(\"macOS dylib not found, attempting to rebuild...\");\n rebuildBunPty();\n } else {\n console.log(\"bun-pty macOS dylib found\");\n }\n} else {\n console.log(`Platform ${platform} may require manual configuration`);\n}\n\nfunction rebuildBunPty() {\n try {\n // Check if cargo is available\n const cargoCmd = platform === \"win32\" ? \"cargo.exe\" : \"cargo\";\n try {\n execSync(`${cargoCmd} --version`, { stdio: \"ignore\" });\n } catch {\n console.warn(\"Warning: Rust/Cargo not found. bun-pty native module may not work.\");\n console.warn(\"To fix this, install Rust: https://rustup.rs/\");\n return;\n }\n\n const rustPtyDir = join(bunPtyPath, \"rust-pty\");\n const isWindows = platform === \"win32\";\n const tempBase = isWindows ? process.env.TEMP || \"C:\\\\Temp\" : \"/tmp\";\n\n // Check if source code exists\n if (!existsSync(join(rustPtyDir, \"Cargo.toml\"))) {\n // Try to clone and build from source\n console.log(\"Source code not found in npm package, cloning from repository...\");\n const tmpDir = join(tempBase, `bun-pty-build-${Date.now()}`);\n\n try {\n execSync(`git clone https://github.com/snomiao/bun-pty.git \"${tmpDir}\"`, {\n stdio: \"inherit\",\n });\n\n // Build command varies by platform\n if (isWindows) {\n execSync(\n `cd /d \"${tmpDir}\" && cargo build --release --manifest-path rust-pty\\\\Cargo.toml`,\n { stdio: \"inherit\" },\n );\n } else {\n execSync(`cd \"${tmpDir}\" && cargo build --release --manifest-path rust-pty/Cargo.toml`, {\n stdio: \"inherit\",\n });\n }\n\n // Copy the built library\n const builtLib = join(tmpDir, \"rust-pty\", \"target\", \"release\", libName);\n if (existsSync(builtLib)) {\n // Ensure target directory exists\n const targetDir = join(rustPtyDir, \"target\", \"release\");\n if (isWindows) {\n execSync(`if not exist \"${targetDir}\" mkdir \"${targetDir}\"`, {});\n execSync(`copy /Y \"${builtLib}\" \"${libPath}\"`, {});\n } else {\n execSync(`mkdir -p \"${targetDir}\"`, { stdio: \"inherit\" });\n execSync(`cp \"${builtLib}\" \"${libPath}\"`, { stdio: \"inherit\" });\n }\n console.log(\"Successfully rebuilt bun-pty native module\");\n }\n\n // Cleanup\n if (isWindows) {\n execSync(`rmdir /s /q \"${tmpDir}\"`, { stdio: \"ignore\" });\n } else {\n execSync(`rm -rf \"${tmpDir}\"`, { stdio: \"ignore\" });\n }\n } catch (buildError) {\n console.error(\n \"Failed to build bun-pty:\",\n buildError instanceof Error ? buildError.message : buildError,\n );\n console.warn(\"The application may not work correctly without bun-pty\");\n }\n } else {\n // Build from included source\n console.log(\"Building bun-pty from source...\");\n if (isWindows) {\n execSync(`cd /d \"${rustPtyDir}\" && cargo build --release`, {\n stdio: \"inherit\",\n });\n } else {\n execSync(`cd \"${rustPtyDir}\" && cargo build --release`, {\n stdio: \"inherit\",\n });\n }\n console.log(\"Successfully rebuilt bun-pty native module\");\n }\n } catch (error) {\n console.error(\"Failed to rebuild bun-pty:\", error instanceof Error ? error.message : error);\n console.warn(\"The application may not work correctly without bun-pty\");\n }\n}\n",
430
- "import { execaCommandSync, parseCommandString } from \"execa\";\nimport { fromReadable, fromWritable } from \"from-node-stream\";\nimport { mkdir, readFile, writeFile } from \"fs/promises\";\nimport path from \"path\";\nimport DIE from \"phpdie\";\nimport sflow from \"sflow\";\nimport { TerminalTextRender } from \"terminal-render\";\nimport { catcher } from \"./catcher.ts\";\nimport {\n extractSessionId,\n getSessionForCwd,\n storeSessionForCwd,\n} from \"./resume/codexSessionManager.ts\";\nimport { IdleWaiter } from \"./idleWaiter.ts\";\nimport pty, { ptyPackage } from \"./pty.ts\";\nimport { ReadyManager } from \"./ReadyManager.ts\";\nimport { removeControlCharacters } from \"./removeControlCharacters.ts\";\nimport { acquireLock, releaseLock, shouldUseLock } from \"./runningLock.ts\";\nimport { logger } from \"./logger.ts\";\nimport { createFifoStream } from \"./beta/fifo.ts\";\nimport { SUPPORTED_CLIS } from \"./SUPPORTED_CLIS.ts\";\nimport winston from \"winston\";\nimport { mapObject, pipe } from \"rambda\";\n\nexport { removeControlCharacters };\n\nexport type AgentCliConfig = {\n // cli\n install?: string; // hint user for install command if not installed\n version?: string; // hint user for version command to check if installed\n binary?: string; // actual binary name if different from cli, e.g. cursor -> cursor-agent\n defaultArgs?: string[]; // function to ensure certain args are present\n\n // status detect, and actions\n ready?: RegExp[]; // regex matcher for stdin ready, or line index for gemini\n fatal?: RegExp[]; // array of regex to match for fatal errors\n exitCommands?: string[]; // commands to exit the cli gracefully\n promptArg?: (string & {}) | \"first-arg\" | \"last-arg\"; // argument name to pass the prompt, e.g. --prompt, or first-arg for positional arg\n\n // handle special format\n noEOL?: boolean; // if true, do not split lines by \\n when handling inputs, e.g. for codex, which uses cursor-move csi code instead of \\n to move lines\n\n // auto responds\n enter?: RegExp[]; // array of regex to match for sending Enter\n typingRespond?: { [message: string]: RegExp[] }; // type specified message to a specified pattern\n\n // crash/resuming-session behaviour\n restoreArgs?: string[]; // arguments to continue the session when crashed\n restartWithoutContinueArg?: RegExp[]; // array of regex to match for errors that require restart without continue args\n};\nexport type AgentYesConfig = {\n configDir?: string; // directory to store agent-yes config files, e.g. session store\n logsDir?: string; // directory to store agent-yes log files\n clis: { [key: string]: AgentCliConfig };\n};\n\n// load user config from agent-yes.config.ts if exists\nexport const config = await import(\"../agent-yes.config.ts\").then((mod) => mod.default || mod);\nexport const CLIS_CONFIG = config.clis as Record<\n keyof Awaited<typeof config>[\"clis\"],\n AgentCliConfig\n>;\n\n/**\n * Main function to run agent-cli with automatic yes/no responses\n * @param options Configuration options\n * @param options.continueOnCrash - If true, automatically restart agent-cli when it crashes:\n * 1. Shows message 'agent-cli crashed, restarting..'\n * 2. Spawns a new 'agent-cli --continue' process\n * 3. Re-attaches the new process to the shell stdio (pipes new process stdin/stdout)\n * 4. If it crashes with \"No conversation found to continue\", exits the process\n * @param options.exitOnIdle - Exit when agent-cli is idle. Boolean or timeout in milliseconds, recommended 5000 - 60000, default is false\n * @param options.cliArgs - Additional arguments to pass to the agent-cli CLI\n * @param options.removeControlCharactersFromStdout - Remove ANSI control characters from stdout. Defaults to !process.stdout.isTTY\n * @param options.disableLock - Disable the running lock feature that prevents concurrent agents in the same directory/repo\n *\n * @example\n * ```typescript\n * import agentYes from 'agent-yes';\n * await agentYes({\n * prompt: 'help me solve all todos in my codebase',\n *\n * // optional\n * cliArgs: ['--verbose'], // additional args to pass to agent-cli\n * exitOnIdle: 30000, // exit after 30 seconds of idle\n * robust: true, // auto restart with --continue if claude crashes, default is true\n * logFile: 'claude-output.log', // save logs to file\n * disableLock: false, // disable running lock (default is false)\n * });\n * ```\n */\nexport default async function agentYes({\n cli,\n cliArgs = [],\n prompt,\n robust = true,\n cwd,\n env,\n exitOnIdle,\n logFile,\n removeControlCharactersFromStdout = false, // = !process.stdout.isTTY,\n verbose = false,\n queue = false,\n install = false,\n resume = false,\n useSkills = false,\n useFifo = false,\n}: {\n cli: SUPPORTED_CLIS;\n cliArgs?: string[];\n prompt?: string;\n robust?: boolean;\n cwd?: string;\n env?: Record<string, string>;\n exitOnIdle?: number;\n logFile?: string;\n removeControlCharactersFromStdout?: boolean;\n verbose?: boolean;\n queue?: boolean;\n install?: boolean; // if true, install the cli tool if not installed, e.g. will run `npm install -g cursor-agent`\n resume?: boolean; // if true, resume previous session in current cwd if any\n useSkills?: boolean; // if true, prepend SKILL.md header to the prompt for non-Claude agents\n useFifo?: boolean; // if true, enable FIFO input stream on Linux for additional stdin input\n}) {\n // those overrides seems only works in bun\n // await Promise.allSettled([\n // import(path.join(process.cwd(), \"agent-yes.config\")),\n // ])\n // .then((e) => e.flatMap((e) => (e.status === \"fulfilled\" ? [e.value] : [])))\n // .then(e=>e.at(0))\n // .then((e) => e.default as ReturnType<typeof defineAgentYesConfig>)\n // .then(async (override) => deepMixin(config, override || {}))\n // .catch((error) => {\n // if (process.env.VERBOSE)\n // console.warn(\"Fail to load agent-yes.config.ts\", error);\n // });\n\n if (!cli) throw new Error(`cli is required`);\n const conf =\n CLIS_CONFIG[cli] ||\n DIE(`Unsupported cli tool: ${cli}, current process.argv: ${process.argv.join(\" \")}`);\n\n // Acquire lock before starting agent (if in git repo or same cwd and lock is not disabled)\n const workingDir = cwd ?? process.cwd();\n if (queue) {\n if (queue && shouldUseLock(workingDir)) {\n await acquireLock(workingDir, prompt ?? \"Interactive session\");\n }\n\n // Register cleanup handlers for lock release\n const cleanupLock = async () => {\n if (queue && shouldUseLock(workingDir)) {\n await releaseLock().catch(() => null); // Ignore errors during cleanup\n }\n };\n\n process.on(\"exit\", () => {\n if (queue) releaseLock().catch(() => null);\n });\n process.on(\"SIGINT\", async (code) => {\n await cleanupLock();\n process.exit(code);\n });\n process.on(\"SIGTERM\", async (code) => {\n await cleanupLock();\n process.exit(code);\n });\n }\n\n process.stdin.setRawMode?.(true); // must be called any stdout/stdin usage\n\n let isFatal = false; // when true, do not restart on crash, and exit agent\n let shouldRestartWithoutContinue = false; // when true, restart without continue args\n\n const stdinReady = new ReadyManager();\n const stdinFirstReady = new ReadyManager(); // if user send ctrl+c before\n\n // force ready after 10s to avoid stuck forever if the ready-word mismatched\n sleep(10e3).then(() => {\n if (!stdinReady.isReady) stdinReady.ready();\n if (!stdinFirstReady.isReady) stdinFirstReady.ready();\n });\n const nextStdout = new ReadyManager();\n\n const shellOutputStream = new TransformStream<string, string>();\n const outputWriter = shellOutputStream.writable.getWriter();\n\n logger.debug(`Using ${ptyPackage} for pseudo terminal management.`);\n\n const datetime = new Date().toISOString().replace(/\\D/g, \"\").slice(0, 17);\n const logPath = config.logsDir && path.resolve(config.logsDir, `${cli}-yes-${datetime}.log`);\n const rawLogPath =\n config.logsDir && path.resolve(config.logsDir, `${cli}-yes-${datetime}.raw.log`);\n const rawLinesLogPath =\n config.logsDir && path.resolve(config.logsDir, `${cli}-yes-${datetime}.lines.log`);\n const debuggingLogsPath =\n config.logsDir && path.resolve(config.logsDir, `${cli}-yes-${datetime}.debug.log`);\n\n // add \n if (debuggingLogsPath) logger.add(new winston.transports.File({\n filename: debuggingLogsPath,\n level: \"debug\",\n }))\n\n // Detect if running as sub-agent\n const isSubAgent = !!process.env.CLAUDE_PPID;\n if (isSubAgent)\n logger.info(`[${cli}-yes] Running as sub-agent (CLAUDE_PPID=${process.env.CLAUDE_PPID})`);\n\n\n const getPtyOptions = () => {\n const ptyEnv = { ...(env ?? (process.env as Record<string, string>)) };\n return {\n name: \"xterm-color\",\n ...getTerminalDimensions(),\n cwd: cwd ?? process.cwd(),\n env: ptyEnv,\n };\n };\n\n // Apply CLI specific configurations (moved to CLI_CONFIGURES)\n const cliConf = (CLIS_CONFIG as Record<string, AgentCliConfig>)[cli] || {};\n cliArgs = cliConf.defaultArgs ? [...cliConf.defaultArgs, ...cliArgs] : cliArgs;\n\n // If enabled, read SKILL.md header and prepend to the prompt for non-Claude agents\n try {\n const workingDir = cwd ?? process.cwd();\n if (useSkills && cli !== \"claude\") {\n // Find git root to determine search boundary\n let gitRoot: string | null = null;\n try {\n const result = execaCommandSync(\"git rev-parse --show-toplevel\", {\n cwd: workingDir,\n reject: false,\n });\n if (result.exitCode === 0) {\n gitRoot = result.stdout.trim();\n }\n } catch {\n // Not a git repo, will only check cwd\n }\n\n // Walk up from cwd to git root (or stop at filesystem root) collecting SKILL.md files\n const skillHeaders: string[] = [];\n let currentDir = workingDir;\n const searchLimit = gitRoot || path.parse(currentDir).root;\n\n while (true) {\n const skillPath = path.resolve(currentDir, \"SKILL.md\");\n const md = await readFile(skillPath, \"utf8\").catch(() => null);\n if (md) {\n // Extract header (content before first level-2 heading `## `)\n const headerMatch = md.match(/^[\\s\\S]*?(?=\\n##\\s)/);\n const headerRaw = (headerMatch ? headerMatch[0] : md).trim();\n if (headerRaw) {\n skillHeaders.push(headerRaw);\n if (verbose)\n logger.info(`[skills] Found SKILL.md in ${currentDir} (${headerRaw.length} chars)`);\n }\n }\n\n // Stop if we've reached git root or filesystem root\n if (currentDir === searchLimit) break;\n\n const parentDir = path.dirname(currentDir);\n if (parentDir === currentDir) break; // Reached filesystem root\n currentDir = parentDir;\n }\n\n if (skillHeaders.length > 0) {\n // Combine all headers (most specific first)\n const combined = skillHeaders.join(\"\\n\\n---\\n\\n\");\n const MAX = 2000; // increased limit for multiple skills\n const header = combined.length > MAX ? combined.slice(0, MAX) + \"…\" : combined;\n const prefix = `Use this repository skill as context:\\n\\n${header}`;\n prompt = prompt ? `${prefix}\\n\\n${prompt}` : prefix;\n if (verbose)\n logger.info(\n `[skills] Injected ${skillHeaders.length} SKILL.md header(s) (${header.length} chars total)`,\n );\n } else {\n if (verbose) logger.info(\"[skills] No SKILL.md found in directory hierarchy\");\n }\n }\n } catch (error) {\n // Non-fatal; continue without skills\n if (verbose) logger.warn(\"[skills] Failed to inject SKILL.md header:\", { error });\n }\n\n // Handle --continue flag for codex session restoration\n if (resume) {\n if (cli === \"codex\" && resume) {\n // Try to get stored session for this directory\n const storedSessionId = await getSessionForCwd(workingDir);\n if (storedSessionId) {\n // Replace or add resume args\n cliArgs = [\"resume\", storedSessionId, ...cliArgs];\n await logger.debug(`resume|using stored session ID: ${storedSessionId}`);\n } else {\n throw new Error(\n `No stored session found for codex in directory: ${workingDir}, please try without resume option.`,\n );\n }\n } else if (cli === \"claude\") {\n // just add --continue flag for claude\n cliArgs = [\"--continue\", ...cliArgs];\n await logger.debug(`resume|adding --continue flag for claude`);\n } else if (cli === \"gemini\") {\n // Gemini supports session resume natively via --resume flag\n // Sessions are project/directory-specific by default (stored in ~/.gemini/tmp/<project_hash>/chats/)\n cliArgs = [\"--resume\", ...cliArgs];\n await logger.debug(`resume|adding --resume flag for gemini`);\n } else {\n throw new Error(\n `Resume option is not supported for cli: ${cli}, make a feature request if you want it. https://github.com/snomiao/agent-yes/issues`,\n );\n }\n }\n\n // If possible pass prompt via cli args, its usually faster than stdin\n if (prompt && cliConf.promptArg) {\n if (cliConf.promptArg === \"first-arg\") {\n cliArgs = [prompt, ...cliArgs];\n prompt = undefined; // clear prompt to avoid sending later\n } else if (cliConf.promptArg === \"last-arg\") {\n cliArgs = [...cliArgs, prompt];\n prompt = undefined; // clear prompt to avoid sending later\n } else if (cliConf.promptArg.startsWith(\"--\")) {\n cliArgs = [cliConf.promptArg, prompt, ...cliArgs];\n prompt = undefined; // clear prompt to avoid sending later\n } else {\n logger.warn(`Unknown promptArg format: ${cliConf.promptArg}`);\n }\n }\n // Determine the actual cli command to run\n\n const spawn = () => {\n const cliCommand = cliConf?.binary || cli;\n let [bin, ...args] = [...parseCommandString(cliCommand), ...cliArgs];\n if (verbose) logger.info(`Spawning ${bin} with args: ${JSON.stringify(args)}`);\n logger.info(`Spawning ${bin} with args: ${JSON.stringify(args)}`);\n // throw new Error(JSON.stringify([bin!, args, getPtyOptions()]))\n const spawned = pty.spawn(bin!, args, getPtyOptions());\n logger.info(`[${cli}-yes] Spawned ${bin} with PID ${spawned.pid}`);\n // if (globalThis.Bun)\n // args = args.map((arg) => `'${arg.replace(/'/g, \"\\\\'\")}'`);\n return spawned;\n };\n\n let shell = catcher(\n // error handler\n (error: unknown, _fn, ..._args) => {\n logger.error(`Fatal: Failed to start ${cli}.`);\n\n const isNotFound = isCommandNotFoundError(error);\n if (cliConf?.install && isNotFound) {\n logger.info(`Please install the cli by run ${cliConf.install}`);\n\n if (install) {\n logger.info(`Attempting to install ${cli}...`);\n execaCommandSync(cliConf.install, { stdio: \"inherit\" });\n logger.info(`${cli} installed successfully. Please rerun the command.`);\n return spawn();\n } else {\n logger.error(\n `If you did not installed it yet, Please install it first: ${cliConf.install}`,\n );\n throw error;\n }\n }\n\n if (globalThis.Bun && error instanceof Error && error.stack?.includes(\"bun-pty\")) {\n // try to fix bun-pty issues\n logger.error(`Detected bun-pty issue, attempted to fix it. Please try again.`);\n require(\"./pty-fix\");\n // unable to retry with same process, so exit here.\n }\n throw error;\n\n function isCommandNotFoundError(e: unknown) {\n if (e instanceof Error) {\n return (\n e.message.includes(\"command not found\") || // unix\n e.message.includes(\"ENOENT\") || // unix\n e.message.includes(\"spawn\") // windows\n );\n }\n return false;\n }\n },\n spawn,\n )();\n const pendingExitCode = Promise.withResolvers<number | null>();\n\n async function onData(data: string) {\n // append data to the buffer, so we can process it later\n await outputWriter.write(data);\n }\n\n shell.onData(onData);\n shell.onExit(async function onExit({ exitCode }) {\n stdinReady.unready(); // start buffer stdin\n const agentCrashed = exitCode !== 0;\n\n // Handle restart without continue args (e.g., \"No conversation found to continue\")\n // logger.debug(``, { shouldRestartWithoutContinue, robust })\n if (shouldRestartWithoutContinue) {\n shouldRestartWithoutContinue = false; // reset flag\n isFatal = false; // reset fatal flag to allow restart\n\n // Restart without continue args - use original cliArgs without restoreArgs\n const cliCommand = cliConf?.binary || cli;\n let [bin, ...args] = [\n ...parseCommandString(cliCommand),\n ...cliArgs.filter((arg) => ![\"--continue\", \"--resume\"].includes(arg)),\n ];\n logger.info(`Restarting ${cli} ${JSON.stringify([bin, ...args])}`);\n\n shell = pty.spawn(bin!, args, getPtyOptions());\n shell.onData(onData);\n shell.onExit(onExit);\n return;\n }\n\n if (agentCrashed && robust && conf?.restoreArgs) {\n if (!conf.restoreArgs) {\n logger.warn(\n `robust is only supported for ${Object.entries(CLIS_CONFIG)\n .filter(([_, v]) => v.restoreArgs)\n .map(([k]) => k)\n .join(\", \")} currently, not ${cli}`,\n );\n return;\n }\n if (isFatal) return pendingExitCode.resolve(exitCode);\n\n logger.info(`${cli} crashed, restarting...`);\n\n // For codex, try to use stored session ID for this directory\n let restoreArgs = conf.restoreArgs;\n if (cli === \"codex\") {\n const storedSessionId = await getSessionForCwd(workingDir);\n if (storedSessionId) {\n // Use specific session ID instead of --last\n restoreArgs = [\"resume\", storedSessionId];\n logger.debug(`restore|using stored session ID: ${storedSessionId}`);\n } else {\n logger.debug(`restore|no stored session, using default restore args`);\n }\n }\n\n shell = pty.spawn(cli, restoreArgs, getPtyOptions());\n shell.onData(onData);\n shell.onExit(onExit);\n return;\n }\n return pendingExitCode.resolve(exitCode);\n });\n\n // when current tty resized, resize the pty too\n process.stdout.on(\"resize\", () => {\n const { cols, rows } = getTerminalDimensions(); // minimum 80 columns to avoid layout issues\n shell.resize(cols, rows); // minimum 80 columns to avoid layout issues\n });\n\n const terminalRender = new TerminalTextRender();\n const isStillWorkingQ = () =>\n terminalRender\n .render()\n .replace(/\\s+/g, \" \")\n .match(/esc to interrupt|to run in background/);\n\n const idleWaiter = new IdleWaiter();\n if (exitOnIdle)\n idleWaiter.wait(exitOnIdle).then(async () => {\n if (isStillWorkingQ()) {\n logger.warn(\"[${cli}-yes] ${cli} is idle, but seems still working, not exiting yet\");\n return;\n }\n\n logger.info(\"[${cli}-yes] ${cli} is idle, exiting...\");\n await exitAgent();\n });\n\n // Message streaming\n\n // Message streaming with stdin and optional FIFO (Linux only)\n\n await sflow(fromReadable<Buffer>(process.stdin))\n .map((buffer) => buffer.toString())\n\n .by(function handleTerminateSignals(s) {\n let aborted = false;\n return s.map((chunk) => {\n // handle CTRL+Z and filter it out, as I dont know how to support it yet\n if (!aborted && chunk === \"\\u001A\") {\n return \"\";\n }\n // handle CTRL+C, when stdin is not ready (no response from agent yet, usually this is when agent loading)\n if (!aborted && !stdinReady.isReady && chunk === \"\\u0003\") {\n logger.error(\"User aborted: SIGINT\");\n shell.kill(\"SIGINT\");\n pendingExitCode.resolve(130); // SIGINT\n aborted = true;\n return chunk; // still pass into agent, but they prob be killed XD\n }\n return chunk; // normal inputs\n });\n })\n\n // read from FIFO if available, e.g. /tmp/agent-yes-*.stdin, which can be used to send additional input from other processes\n .by((s) => {\n if (!useFifo) return s;\n const fifoResult = createFifoStream(cli);\n if (!fifoResult) return s;\n pendingExitCode.promise.finally(() => fifoResult.cleanup());\n return s.merge(fifoResult.stream);\n })\n\n // .map((e) => e.replaceAll('\\x1a', '')) // remove ctrl+z from user's input, to prevent bug (but this seems bug)\n // .forEach(e => appendFile('.cache/io.log', \"input |\" + JSON.stringify(e) + '\\n')) // for debugging\n\n .onStart(async function promptOnStart() {\n // send prompt when start\n logger.debug(\"Sending prompt message: \" + JSON.stringify(prompt));\n if (prompt) await sendMessage(prompt);\n })\n\n // pipe content by shell\n .by({\n writable: new WritableStream<string>({\n write: async (data) => {\n await stdinReady.wait();\n shell.write(data);\n },\n }),\n readable: shellOutputStream.readable,\n })\n\n .forEach(() => idleWaiter.ping())\n .forEach(() => nextStdout.ready())\n\n .forkTo(async function rawLogger(f) {\n if (!rawLogPath) return f.run(); // no stream\n\n // try stream the raw log for realtime debugging, including control chars, note: it will be a huge file\n return await mkdir(path.dirname(rawLogPath), { recursive: true })\n .then(() => {\n logger.debug(`[${cli}-yes] raw logs streaming to ${rawLogPath}`);\n return f\n .forEach(async (chars) => {\n await writeFile(rawLogPath, chars, { flag: \"a\" }).catch(() => null);\n })\n .run();\n })\n .catch(() => f.run());\n })\n\n // handle cursor position requests and render terminal output\n .by(function consoleResponder(e) {\n // wait for cli ready and send prompt if provided\n if (cli === \"codex\") shell.write(`\\u001b[1;1R`); // send cursor position response when stdin is not tty\n return e.forEach((text) => {\n // render terminal output for log file\n terminalRender.write(text);\n\n // Handle Device Attributes query (DA) - ESC[c or ESC[0c\n // This must be handled regardless of TTY status\n if (text.includes(\"\\u001b[c\") || text.includes(\"\\u001b[0c\")) {\n // Respond shell with VT100 with Advanced Video Option\n shell.write(\"\\u001b[?1;2c\");\n if (verbose) {\n logger.debug(\"device|respond DA: VT100 with Advanced Video Option\");\n }\n return;\n }\n\n // todo: .onStatus((msg)=> shell.write(msg))\n if (process.stdin.isTTY) return; // only handle it when stdin is not tty, because tty already handled this\n\n if (!text.includes(\"\\u001b[6n\")) return; // only asked for cursor position\n // todo: use terminalRender API to get cursor position when new version is available\n // xterm replies CSI row; column R if asked cursor position\n // https://en.wikipedia.org/wiki/ANSI_escape_code#:~:text=citation%20needed%5D-,xterm%20replies,-CSI%20row%C2%A0%3B\n // when agent asking position, respond with row; col\n // const rendered = terminalRender.render();\n const { col, row } = terminalRender.getCursorPosition();\n shell.write(`\\u001b[${row};${col}R`); // reply cli when getting cursor position\n logger.debug(`cursor|respond position: row=${String(row)}, col=${String(col)}`);\n // const row = rendered.split('\\n').length + 1;\n // const col = (rendered.split('\\n').slice(-1)[0]?.length || 0) + 1;\n });\n })\n\n // auto-response\n .forkTo(function autoResponse(e) {\n return (\n e\n .map((e) => removeControlCharacters(e))\n // .map((e) => e.replaceAll(\"\\r\", \"\")) // remove carriage return\n .by((s) => {\n if (conf.noEOL) return s; // codex use cursor-move csi code insteadof \\n to move lines, so the output have no \\n at all, this hack prevents stuck on unended line\n return s.lines({ EOL: \"NONE\" }); // other clis use ink, which is rerendering the block based on \\n lines\n })\n \n // .forkTo(async function rawLinesLogger(f) {\n // if (!rawLinesLogPath) return f.run(); // no stream\n // // try stream the raw log for realtime debugging, including control chars, note: it will be a huge file\n // return await mkdir(path.dirname(rawLinesLogPath), { recursive: true })\n // .then(() => {\n // logger.debug(`[${cli}-yes] raw lines logs streaming to ${rawLinesLogPath}`);\n // return f\n // .forEach(async (chars, i) => {\n // await writeFile(rawLinesLogPath, `L${i}|` + chars, { flag: \"a\" }).catch(() => null);\n // })\n // .run();\n // })\n // .catch(() => f.run());\n // })\n\n // Generic auto-response handler driven by CLI_CONFIGURES\n .forEach(async function autoResponseOnChunk(e, i) {\n logger.debug(`stdout|${e}`);\n // ready matcher: if matched, mark stdin ready\n if (conf.ready?.some((rx: RegExp) => e.match(rx))) {\n logger.debug(`ready |${e}`);\n if (cli === \"gemini\" && i <= 80) return; // gemini initial noise, only after many lines\n stdinReady.ready();\n stdinFirstReady.ready();\n }\n // enter matchers: send Enter when any enter regex matches\n\n if (conf.enter?.some((rx: RegExp) => e.match(rx))) {\n logger.debug(`enter |${e}`);\n return await sendEnter(400); // wait for idle for a short while and then send Enter\n }\n\n // typingRespond matcher: if matched, send the specified message\n const typingResponded = await sflow(Object.entries(conf.typingRespond ?? {}))\n .filter(([_sendString, onThePatterns]) => onThePatterns.some((rx) => e.match(rx)))\n .map(async ([sendString]) => await sendMessage(sendString, { waitForReady: false }))\n .toCount();\n if (typingResponded) return;\n\n // fatal matchers: set isFatal flag when matched\n if (conf.fatal?.some((rx: RegExp) => e.match(rx))) {\n logger.debug(`fatal |${e}`);\n isFatal = true;\n await exitAgent();\n }\n\n // restartWithoutContinueArg matchers: set flag to restart without continue args\n if (conf.restartWithoutContinueArg?.some((rx: RegExp) => e.match(rx))) {\n await logger.debug(`restart-without-continue|${e}`);\n shouldRestartWithoutContinue = true;\n isFatal = true; // also set fatal to trigger exit\n await exitAgent();\n }\n\n // session ID capture for codex\n if (cli === \"codex\") {\n const sessionId = extractSessionId(e);\n if (sessionId) {\n await logger.debug(`session|captured session ID: ${sessionId}`);\n await storeSessionForCwd(workingDir, sessionId);\n }\n }\n })\n .run()\n );\n })\n .by((s) => (removeControlCharactersFromStdout ? s.map((e) => removeControlCharacters(e)) : s))\n\n // terminate whole stream when shell did exited (already crash-handled)\n .by(\n new TransformStream({\n start: function terminator(ctrl) {\n pendingExitCode.promise.then(() => ctrl.terminate());\n },\n transform: (e, ctrl) => ctrl.enqueue(e),\n flush: (ctrl) => ctrl.terminate(),\n }),\n )\n .to(fromWritable(process.stdout));\n\n if (logPath) {\n await mkdir(path.dirname(logPath), { recursive: true }).catch(() => null);\n await writeFile(logPath, terminalRender.render()).catch(() => null);\n logger.info(`[${cli}-yes] Full logs saved to ${logPath}`);\n }\n\n // and then get its exitcode\n const exitCode = await pendingExitCode.promise;\n logger.info(`[${cli}-yes] ${cli} exited with code ${exitCode}`);\n\n // Update task status.writable release lock\n await outputWriter.close();\n\n // deprecated logFile option, we have logPath now, but keep for backward compatibility\n if (logFile) {\n if (verbose) logger.info(`[${cli}-yes] Writing rendered logs to ${logFile}`);\n const logFilePath = path.resolve(logFile);\n await mkdir(path.dirname(logFilePath), { recursive: true }).catch(() => null);\n await writeFile(logFilePath, terminalRender.render());\n }\n\n return { exitCode, logs: terminalRender.render() };\n\n async function sendEnter(waitms = 1000) {\n // wait for idle for a bit to let agent cli finish rendering\n const st = Date.now();\n await idleWaiter.wait(waitms); // wait for idle a while\n const et = Date.now();\n // process.stdout.write(`\\ridleWaiter.wait(${waitms}) took ${et - st}ms\\r`);\n logger.debug(`sendEn| idleWaiter.wait(${String(waitms)}) took ${String(et - st)}ms`);\n nextStdout.unready();\n // send the enter key\n shell.write(\"\\r\");\n\n // retry once if not received any output in 1 second after sending Enter\n await Promise.race([\n nextStdout.wait(),\n new Promise<void>((resolve) =>\n setTimeout(() => {\n if (!nextStdout.ready) {\n shell.write(\"\\r\");\n }\n resolve();\n }, 1000),\n ),\n ]);\n }\n\n async function sendMessage(message: string, { waitForReady = true } = {}) {\n if (waitForReady) await stdinReady.wait();\n // show in-place message: write msg and move cursor back start\n logger.debug(`send |${message}`);\n nextStdout.unready();\n shell.write(message);\n idleWaiter.ping(); // just sent a message, wait for echo\n logger.debug(`waiting next stdout|${message}`);\n await nextStdout.wait();\n logger.debug(`sending enter`);\n await sendEnter(1000);\n logger.debug(`sent enter`);\n }\n\n async function exitAgent() {\n robust = false; // disable robust to avoid auto restart\n\n // send exit command to the shell, must sleep a bit to avoid claude treat it as pasted input\n for (const cmd of cliConf.exitCommands ?? [\"/exit\"]) await sendMessage(cmd);\n\n // wait for shell to exit or kill it with a timeout\n let exited = false;\n await Promise.race([\n pendingExitCode.promise.then(() => (exited = true)), // resolve when shell exits\n\n // if shell doesn't exit in 5 seconds, kill it\n new Promise<void>((resolve) =>\n setTimeout(() => {\n if (exited) return; // if shell already exited, do nothing\n shell.kill(); // kill the shell process if it doesn't exit in time\n resolve();\n }, 5000),\n ), // 5 seconds timeout\n ]);\n }\n\n function getTerminalDimensions() {\n if (!process.stdout.isTTY) return { cols: 80, rows: 30 }; // default size when not tty\n return {\n // TODO: enforce minimum cols/rows to avoid layout issues\n // cols: Math.max(process.stdout.columns, 80),\n cols: Math.min(Math.max(20, process.stdout.columns), 80),\n rows: process.stdout.rows,\n };\n }\n}\n\nfunction sleep(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n"
431
- ],
432
- "mappings": "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",
433
- "debugId": "CE4E010D81F9E0D064756E2164756E21",
434
- "names": []
435
- }