From b5c619f0d1fb82706f97a124caee6e93f052c7f1 Mon Sep 17 00:00:00 2001 From: Sven Slootweg Date: Tue, 18 Jun 2024 23:22:48 +0200 Subject: [PATCH] Initial version --- .gitignore | 1 + example.js | 38 +++ index.js | 36 +++ package.json | 27 +++ pnpm-lock.yaml | 641 +++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 743 insertions(+) create mode 100644 .gitignore create mode 100644 example.js create mode 100644 index.js create mode 100644 package.json create mode 100644 pnpm-lock.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/example.js b/example.js new file mode 100644 index 0000000..c5d456e --- /dev/null +++ b/example.js @@ -0,0 +1,38 @@ +"use strict"; + +const pipe = require("@promistream/pipe"); +const fromIterable = require("@promistream/from-iterable"); +const collect = require("@promistream/collect"); +const debug = require("./"); + +(async function () { + let result = await pipe([ + fromIterable([ 1, 2, 3, 4, 5 ]), + debug("example pipeline"), + collect() + ]).read(); + + console.log(result); +})(); + +/* Output: + +[@promistream/debug][example pipeline] read was requested +[@promistream/debug][example pipeline] seen value: 1 +[@promistream/debug][example pipeline] read was requested +[@promistream/debug][example pipeline] seen value: 2 +[@promistream/debug][example pipeline] read was requested +[@promistream/debug][example pipeline] seen value: 3 +[@promistream/debug][example pipeline] read was requested +[@promistream/debug][example pipeline] seen value: 4 +[@promistream/debug][example pipeline] read was requested +[@promistream/debug][example pipeline] seen value: 5 +[@promistream/debug][example pipeline] read was requested +[@promistream/debug][example pipeline] error thrown in read: EndOfStream: End of iterable reached + at + _help: 'https://www.npmjs.com/package/error-chain', + _promistreamIsEndOfStreamMarker: true, + _promistreamVersion: 1 +} +[ 1, 2, 3, 4, 5 ] +*/ diff --git a/index.js b/index.js new file mode 100644 index 0000000..6bd11f6 --- /dev/null +++ b/index.js @@ -0,0 +1,36 @@ +"use strict"; + +const c = require("colorette"); + +module.exports = function createDebugStream(label) { + function debugPrint(... values) { + console.debug(`[@promistream/debug][${c.bold(c.cyan(label))}] ${values[0]}`, ... values.slice(1)); + } + + return { + _promistreamVersion: 0, + description: `map stream`, + abort: function (reason, source) { + debugPrint(`${c.bgRed("abort was requested")}; reason:`, reason); + return source.abort(reason); + }, + peek: async function (source) { + debugPrint("read was requested"); + let result = source.peek(); + debugPrint(`${c.bgBlue("peek result:")}`, result); + return result; + }, + read: async function produceValue_debug(source) { + debugPrint("read was requested"); + + try { + let value = await source.read(); + debugPrint(`${c.bgGreen(c.black("seen value:"))}`, value); + return value; + } catch (error) { + debugPrint(`${c.bgRed(c.white("error thrown in read:"))}`, error); + throw error; + } + } + }; +}; diff --git a/package.json b/package.json new file mode 100644 index 0000000..c27777a --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "@promistream/debug", + "version": "0.1.0", + "description": "A stream for debugging purposes, that logs everything that goes through it", + "repository": { + "url": "https://git.cryto.net/promistream/debug.git" + }, + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [ + "promistream", + "debug", + "development" + ], + "author": "Sven Slootweg ", + "license": "WTFPL OR CC0-1.0", + "dependencies": { + "colorette": "^2.0.20" + }, + "devDependencies": { + "@promistream/collect": "^0.1.1", + "@promistream/from-iterable": "^0.1.0", + "@promistream/pipe": "^0.1.6" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..14d3413 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,641 @@ +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +dependencies: + colorette: + specifier: ^2.0.20 + version: 2.0.20 + +devDependencies: + '@promistream/collect': + specifier: ^0.1.1 + version: 0.1.1 + '@promistream/from-iterable': + specifier: ^0.1.0 + version: 0.1.0 + '@promistream/pipe': + specifier: ^0.1.6 + version: 0.1.6 + +packages: + + /@joepie91/unreachable@1.0.0: + resolution: {integrity: sha512-vZRJ5UDq4mqP1vgSrcOLD3aIfS/nzwsvGFOOHv5sj5fa1Ss0dT1xnIzrXKLD9pu5EcUvF3K6n6jdaMW8uXpNEQ==} + dev: true + + /@promistream/aborted@0.1.2: + resolution: {integrity: sha512-rLQgZTFr0r7yWtDbqA8zT5F4TKDiOiyowlAxSKiSY4XM+XVYeNq7k9SXIxVhLczjKh1Cv0nlvvZ7cZ41UjZPwQ==} + dependencies: + default-value: 1.0.0 + error-chain: 0.1.3 + dev: true + + /@promistream/collect@0.1.1: + resolution: {integrity: sha512-zXnp8SFm2dFsvJBASLfYMUxfaNkvzyhU56WT1iAXxlN5w2Rb0vArP2pIXvpbiSVrWkUObNeZ8t715nGxqsWEow==} + dependencies: + '@promistream/simple-sink': 0.1.1 + dev: true + + /@promistream/end-of-stream@0.1.2: + resolution: {integrity: sha512-rOeAIkcVZW6oYox2Jc1z/00iLVx0w0cIlcD/TbR798Qg5M5/nhErtjSG08QAtuaPSxAFKNl5ipAD8HHGV5esJw==} + dependencies: + default-value: 1.0.0 + error-chain: 0.1.3 + dev: true + + /@promistream/from-iterable@0.1.0: + resolution: {integrity: sha512-P4wehrvRZu/QTkN0fBNvItZD1jwchv1p76q4yirXIDQclA08mN2QMR6heFLMSBYD2NPRoX+3smZCsRfJgfcmcA==} + dependencies: + '@promistream/end-of-stream': 0.1.2 + '@promistream/simple-source': 0.1.4 + '@validatem/core': 0.3.17 + '@validatem/error': 1.1.0 + '@validatem/required': 0.1.1 + dev: true + + /@promistream/is-aborted@0.1.1: + resolution: {integrity: sha512-2AYo+MFu0wNKXCEDHexaFWoESiUzHfGZgWpazbdA6OyU/AJsHRfMwKzE7awmgi1u0T43k5nLwwJXIiTypajSiw==} + dev: true + + /@promistream/is-end-of-stream@0.1.1: + resolution: {integrity: sha512-GZn7W0wrUen7kkgWCcwFFgr0g/ftfuddnuK/Tp0MLWCCJA4hyAboglCZP0JzEJdi34gClEP8lCfDwGekw18LHg==} + dev: true + + /@promistream/pipe@0.1.6: + resolution: {integrity: sha512-B/n4WPJ/goXALCWJYgZV0M/lLMIF5OuaqvxezJq/lcSCo9RuV82wmdJBZd+IEmc6Ykn/EYTFtUHCnRjkl56+3w==} + dependencies: + '@validatem/allow-extra-properties': 0.1.0 + '@validatem/anything': 0.1.0 + '@validatem/array-of': 0.1.3 + '@validatem/core': 0.3.17 + '@validatem/error': 1.1.0 + '@validatem/remove-nullish-items': 0.1.0 + '@validatem/required': 0.1.1 + '@validatem/wrap-error': 0.3.0 + dev: true + + /@promistream/propagate-abort@0.1.7: + resolution: {integrity: sha512-BR0XZMirAjO1IRpyTtOG4n0fGuuvRGJsO8Hmn4HOJXhi10onX3GlfCNZN2tqe4Mq/5fEDgRNGNUHjCY7naDYUA==} + dev: true + + /@promistream/propagate-peek@0.1.1: + resolution: {integrity: sha512-4xfkSmtPQzlvL4+KCquPHX7sPXiAACGJac/y7fB3Sv6ZKXAT/cjTfms1nEjlDGn1nroN0MzReBza2HnpF59deg==} + dev: true + + /@promistream/simple-sink@0.1.1: + resolution: {integrity: sha512-M6dQMUIPjFTRB+xIwBMqIrPghWORoreGoNAl2F/5oshBlX6+X2F+RAeUuz6plDymwq2eoVL5pvSUR4zYdMdRjQ==} + dependencies: + '@promistream/is-aborted': 0.1.1 + '@promistream/is-end-of-stream': 0.1.1 + '@promistream/propagate-abort': 0.1.7 + '@promistream/propagate-peek': 0.1.1 + '@validatem/core': 0.3.17 + '@validatem/default-to': 0.1.0 + '@validatem/is-function': 0.1.0 + '@validatem/required': 0.1.1 + '@validatem/wrap-value-as-option': 0.1.0 + bluebird: 3.7.2 + dev: true + + /@promistream/simple-source@0.1.4: + resolution: {integrity: sha512-dMAVpcX2WC40IVMA6zvSAcgwxXjDVj4QIQzOyDdXgOnKjCRnGPhtUvK2ST5Jiw8/lVpEYx0bviqgezttU3IaFg==} + dependencies: + '@joepie91/unreachable': 1.0.0 + '@promistream/aborted': 0.1.2 + '@promistream/end-of-stream': 0.1.2 + '@promistream/is-end-of-stream': 0.1.1 + '@validatem/core': 0.3.17 + '@validatem/is-function': 0.1.0 + '@validatem/required': 0.1.1 + '@validatem/wrap-value-as-option': 0.1.0 + bluebird: 3.7.2 + error-chain: 0.1.3 + dev: true + + /@validatem/allow-extra-properties@0.1.0: + resolution: {integrity: sha512-9jihpYxw1vp4FdjnbN0bTVZMLYv//9OjFNTsVLG5OV4xHESwtgkgQEF5/N5rY1iBwoH/pcKuRl44MBZ8eMdrKw==} + dependencies: + '@validatem/with-context': 0.1.2 + dev: true + + /@validatem/annotate-errors@0.1.2: + resolution: {integrity: sha512-EuX7pzdYI/YpTmZcgdPG481Oi3elAg8JWh/LYXuE1h6MaZk3A8eP5DD33/l7EoKzrysn6y8nCsqNa1ngei562w==} + dependencies: + '@validatem/match-validation-error': 0.1.0 + dev: true + + /@validatem/any-property@0.1.3: + resolution: {integrity: sha512-jYWxif5ff9pccu7566LIQ/4+snlApXEJUimBywzAriBgS3r4eDBbz3oZFHuiPmhxNK/NNof5YUS+L6Sk3zaMfg==} + dependencies: + '@validatem/annotate-errors': 0.1.2 + '@validatem/combinator': 0.1.2 + '@validatem/error': 1.1.0 + '@validatem/validation-result': 0.1.2 + '@validatem/virtual-property': 0.1.0 + default-value: 1.0.0 + dev: true + + /@validatem/anything@0.1.0: + resolution: {integrity: sha512-VJcygPpLw2fAhh29m2qL1AybHY7Ewl7xpvVgNIZpqUwMsSZXWSmzmbZhqE4Sr6Wy2n6FbZVzVoUFREO589SPcQ==} + dev: true + + /@validatem/array-of@0.1.3: + resolution: {integrity: sha512-awaNPfmhv91tI3916WTwGaUq4mFpqJbNXiBFdeTzVp4S2KmczelVwIpZ6gyzvfXFOlQTVtq65RjD7C/G8u4n0Q==} + dependencies: + '@validatem/annotate-errors': 0.1.2 + '@validatem/combinator': 0.1.2 + '@validatem/is-array': 0.1.1 + '@validatem/validation-result': 0.1.2 + '@validatem/with-context': 0.1.2 + dev: true + + /@validatem/combinator@0.1.2: + resolution: {integrity: sha512-vE8t1tNXknmN62FlN6LxQmA2c6TwVKZ+fl/Wit3H2unFdOhu7SZj2kRPGjAXdK/ARh/3svYfUBeD75pea0j1Sw==} + dev: true + + /@validatem/core@0.3.17: + resolution: {integrity: sha512-VahE9TAKpaU13BcVQI/Dc9j/xsm/BgloRM0v1HjOMpoJ16tOkKQkUdOgiDCG4zmEek1bG3v9Zu4lS1lubgjLMw==} + dependencies: + '@validatem/annotate-errors': 0.1.2 + '@validatem/any-property': 0.1.3 + '@validatem/error': 1.1.0 + '@validatem/match-validation-error': 0.1.0 + '@validatem/match-versioned-special': 0.1.1 + '@validatem/match-virtual-property': 0.1.0 + '@validatem/normalize-rules': 0.1.3 + '@validatem/required': 0.1.1 + '@validatem/validation-result': 0.1.2 + '@validatem/virtual-property': 0.1.0 + as-expression: 1.0.0 + assure-array: 1.0.0 + create-error: 0.3.1 + default-value: 1.0.0 + execall: 2.0.0 + flatten: 1.0.3 + indent-string: 4.0.0 + is-arguments: 1.1.1 + supports-color: 7.2.0 + syncpipe: 1.0.0 + dev: true + + /@validatem/default-to@0.1.0: + resolution: {integrity: sha512-UE/mJ6ZcHFlBLUhX75PQHDRYf80GFFhB+vZfIcsEWduh7Nm6lTMDnCPj4MI+jd9E/A7HV5D1yCZhaRSwoWo4vg==} + dependencies: + is-callable: 1.2.7 + dev: true + + /@validatem/dynamic@0.1.2: + resolution: {integrity: sha512-TNZMUO9McL2kFYdLWTYSD+zxxZ9fbK9Si+3X5u/JngOWAq7PFxbU7o2oxREkwiSIZi5cjBCK/hvrZMWyl+FWEA==} + dependencies: + '@validatem/combinator': 0.1.2 + dev: true + + /@validatem/either@0.1.9: + resolution: {integrity: sha512-cUqlRjy02qDcZ166/D6duk8lrtqrHynHuSakU0TvMGMBiLzjWpMJ+3beAWHe+kILB5/dlXVyc68ZIjSNhBi8Kw==} + dependencies: + '@validatem/combinator': 0.1.2 + '@validatem/error': 1.1.0 + '@validatem/match-validation-error': 0.1.0 + '@validatem/validation-result': 0.1.2 + flatten: 1.0.3 + dev: true + + /@validatem/error@1.1.0: + resolution: {integrity: sha512-gZJEoZq1COi/8/5v0fVKQ9uX54x5lb5HbV7mzIOhY6dqjmLNfxdQmpECZPQrCAOpcRkRMJ7zaFhq4UTslpY9yA==} + dev: true + + /@validatem/forbidden@0.1.0: + resolution: {integrity: sha512-5GpgXt33z15oXZJwd+BKzEcX56YrU1Ysqe3NM20L9OzuSCJYbWU6xR6mMHkYVfF3TDLfkC8csOiKG2UnduCLhw==} + dependencies: + '@validatem/error': 1.1.0 + dev: true + + /@validatem/has-shape@0.1.8: + resolution: {integrity: sha512-x2i8toW1uraFF2Vl6WBl4CScbBeg5alrtoCKMyXbJkHf2B5QxL/ftUh2RQRcBzx6U0i7KUb8vdShcWAa+fehRQ==} + dependencies: + '@validatem/annotate-errors': 0.1.2 + '@validatem/combinator': 0.1.2 + '@validatem/error': 1.1.0 + '@validatem/validation-result': 0.1.2 + array-union: 2.1.0 + as-expression: 1.0.0 + assure-array: 1.0.0 + default-value: 1.0.0 + flatten: 1.0.3 + dev: true + + /@validatem/is-array@0.1.1: + resolution: {integrity: sha512-XD3C+Nqfpnbb4oO//Ufodzvui7SsCIW/stxZ39dP/fyRsBHrdERinkFATH5HepegtDlWMQswm5m1XFRbQiP2oQ==} + dependencies: + '@validatem/error': 1.1.0 + dev: true + + /@validatem/is-boolean@0.1.1: + resolution: {integrity: sha512-eIFq+mCBEDgAp4ezaPn1mbVZd2H+IkQG3CcEFnLSlqfg1XKY5uv8AOI08+UqeWS+C7AIFk3rEqRg63+OuPCpsg==} + dependencies: + '@validatem/error': 1.1.0 + is-boolean-object: 1.1.2 + dev: true + + /@validatem/is-function@0.1.0: + resolution: {integrity: sha512-UtVrwTGhaIdIJ0mPG5XkAmYZUeWgRoMP1G9ZEHbKvAZJ4+SXf/prC0jPgE0pw+sPjdQG4hblsXSfo/9Bf3PGdQ==} + dependencies: + '@validatem/error': 1.1.0 + is-callable: 1.2.7 + dev: true + + /@validatem/is-plain-object@0.1.1: + resolution: {integrity: sha512-aNGbNIbKRpYI0lRBczlTBbiA+nqN52ADAASdySKg2/QeSCVtYS4uOIeCNIJRAgXe/5sUnLTuL4pgq628uAl7Kw==} + dependencies: + '@validatem/error': 1.1.0 + is-plain-obj: 2.1.0 + dev: true + + /@validatem/is-string@0.1.1: + resolution: {integrity: sha512-iyRVYRPgRt2ZlWyc7pzN1WkO6apzE8at39XQa4WUr8qRPfJn12V4khS9MumWbZs8N2qqajrxMigB2LJUCKOCRg==} + dependencies: + '@validatem/error': 1.1.0 + is-string: 1.0.7 + dev: true + + /@validatem/match-special@0.1.0: + resolution: {integrity: sha512-TFiq9Wk/1Hoja4PK85WwNYnwBXk3+Lgoj59ZIMxm2an1qmNYp8j+BnSvkKBflba451yIn6V1laU9NJf+/NYZgw==} + dev: true + + /@validatem/match-validation-error@0.1.0: + resolution: {integrity: sha512-6akGTk7DdulOreyqDiGdikwRSixQz/AlvARSX18dcWaTFc79KxCLouL2hyoFcor9IIUhu5RTY4/i756y4T1yxA==} + dependencies: + '@validatem/match-versioned-special': 0.1.1 + dev: true + + /@validatem/match-versioned-special@0.1.1: + resolution: {integrity: sha512-RRNeFSgzqSo0sKck/92a+yC9zKdt+DD6y4TK70+VDKVppdWsb8YzC/FBTucseN1OYrr1KcBPKNVZePg1NTROYw==} + dev: true + + /@validatem/match-virtual-property@0.1.0: + resolution: {integrity: sha512-ssd3coFgwbLuqvZftLZTy3eHN0TFST8oTS2XTViQdXJPXVoJmwEKBpFhXgwnb5Ly1CE037R/KWpjhd1TP/56kQ==} + dev: true + + /@validatem/normalize-rules@0.1.3: + resolution: {integrity: sha512-HHPceAP2ce9NWymIZrgLCTzpdwXNRBCCB5H6ZPc5ggOrbmh4STpT83fLazleHtvYNlqgXZ4GjQOvCwrjaM+qEA==} + dependencies: + '@validatem/has-shape': 0.1.8 + '@validatem/is-plain-object': 0.1.1 + '@validatem/match-special': 0.1.0 + assure-array: 1.0.0 + default-value: 1.0.0 + flatten: 1.0.3 + is-plain-obj: 2.1.0 + dev: true + + /@validatem/one-of@0.1.1: + resolution: {integrity: sha512-lIgxnkNRouPx5Ydddi8OaAxmzp1ox44OJnrJPRrJkU4ccz9Yb7GSJ+wQJNVkAZCar+DGTDMoXoy51NwDnsf4sw==} + dependencies: + '@validatem/error': 1.1.0 + dev: true + + /@validatem/remove-nullish-items@0.1.0: + resolution: {integrity: sha512-cs4YSF47TA/gHnV5muSUUqGi5PwybP5ztu5SYnPKxQVTyubvcbrFat51nOvJ2PmUasyrIccoYMmATiviXkTi6g==} + dev: true + + /@validatem/required@0.1.1: + resolution: {integrity: sha512-vI4NzLfay4RFAzp7xyU34PHb8sAo6w/3frrNh1EY9Xjnw2zxjY5oaxwmbFP1jVevBE6QQEnKogtzUHz/Zuvh6g==} + dev: true + + /@validatem/validation-result@0.1.2: + resolution: {integrity: sha512-okmP8JarIwIgfpaVcvZGuQ1yOsLKT3Egt49Ynz6h1MAeGsP/bGHXkkXtbiWOVsk5Tzku5vDVFSrFnF+5IEHKxw==} + dependencies: + default-value: 1.0.0 + dev: true + + /@validatem/virtual-property@0.1.0: + resolution: {integrity: sha512-JUUvWtdqoSkOwlsl20oB3qFHYIL05a/TAfdY4AJcs55QeVTiX5iI1b8IoQW644sIWWooBuLv+XwoxjRsQFczlQ==} + dev: true + + /@validatem/with-context@0.1.2: + resolution: {integrity: sha512-noAWf4CsmU+BCz+KOg3GPq9+R9BQLWOQnOgWVfkYHFdLnnbLhl8w/ONdzvFzUYGHIZGKZwsWVCp+Kwz/tAfMnA==} + dependencies: + '@validatem/combinator': 0.1.2 + dev: true + + /@validatem/wrap-error@0.1.3: + resolution: {integrity: sha512-86ANJACPGbH8jD/C/tUTZNgQh9xCePUKq4wf5ZRcwOvtIDaZO98FI9cdoT2/zS1CzQCp3VWlwz16YT6FNjJJJA==} + dependencies: + '@validatem/combinator': 0.1.2 + '@validatem/error': 1.1.0 + '@validatem/match-validation-error': 0.1.0 + '@validatem/validation-result': 0.1.2 + as-expression: 1.0.0 + default-value: 1.0.0 + split-filter-n: 1.1.3 + dev: true + + /@validatem/wrap-error@0.3.0: + resolution: {integrity: sha512-km5v6F/Xm7j8W/tmCmht2BTzxMLSpBUJ5MdhJD7ABEut/fdO0tNca1u1imTnWCULCJcdDHbNtpSmDMvXFg3E7Q==} + dependencies: + '@validatem/combinator': 0.1.2 + '@validatem/error': 1.1.0 + '@validatem/match-validation-error': 0.1.0 + '@validatem/validation-result': 0.1.2 + as-expression: 1.0.0 + default-value: 1.0.0 + split-filter-n: 1.1.3 + dev: true + + /@validatem/wrap-value-as-option@0.1.0: + resolution: {integrity: sha512-gWDkfyU0DOsbinE9iqvRSJ+NxuynChyueJsC+AFm3EYbe8+s7V2gRs3qkJ4mq7hOlUbEh8tgCWQfZZvr+IdVFw==} + dependencies: + '@validatem/either': 0.1.9 + '@validatem/is-plain-object': 0.1.1 + dev: true + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: true + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /as-expression@1.0.0: + resolution: {integrity: sha512-Iqh4GxNUfxbJdGn6b7/XMzc8m1Dz2ZHouBQ9DDTzyMRO3VPPIAXeoY/sucRxxxXKbUtzwzWZSN6jPR3zfpYHHA==} + dev: true + + /assure-array@1.0.0: + resolution: {integrity: sha512-igvOvGYidAcJKr6YQIHzLivUpAdqUfi7MN0QfrEnFtifQvuw6D0W4oInrIVgTaefJ+QBVWAj8ZYuUGNnwq6Ydw==} + dev: true + + /bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + dev: true + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /clone-regexp@2.2.0: + resolution: {integrity: sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==} + engines: {node: '>=6'} + dependencies: + is-regexp: 2.1.0 + dev: true + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: true + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: true + + /colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + dev: false + + /create-error@0.3.1: + resolution: {integrity: sha512-n/Q4aSCtYuuDneEW5Q+nd0IIZwbwmX/oF6wKcDUhXGJNwhmp2WHEoWKz7X+/H7rBtjimInW7f0ceouxU0SmuzQ==} + dev: true + + /default-value@1.0.0: + resolution: {integrity: sha512-y6j7G55tgWG7nfjXUNy/WkTLGExiPEUlhGv0zqgqKdlOwJnDDy/dbk7yCozn4biAGIRnMI+9fyZ1V2fZ7tjp6Q==} + dependencies: + es6-promise-try: 0.0.1 + dev: true + + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + dev: true + + /error-chain@0.1.3: + resolution: {integrity: sha512-Hx/Yd7w6ku+bTIGzPxdgKAoZSADCf4EnM9CEcIyr75vw/FH/wbZ23YnKKv7ZQB80F4s7ZSVJ/9UPXk03SQsACQ==} + dependencies: + '@validatem/allow-extra-properties': 0.1.0 + '@validatem/core': 0.3.17 + '@validatem/default-to': 0.1.0 + '@validatem/dynamic': 0.1.2 + '@validatem/error': 1.1.0 + '@validatem/forbidden': 0.1.0 + '@validatem/is-boolean': 0.1.1 + '@validatem/is-function': 0.1.0 + '@validatem/is-plain-object': 0.1.1 + '@validatem/is-string': 0.1.1 + '@validatem/one-of': 0.1.1 + '@validatem/required': 0.1.1 + '@validatem/wrap-error': 0.1.3 + chalk: 2.4.2 + fromentries: 1.3.2 + is.object: 1.0.0 + syncpipe: 1.0.0 + dev: true + + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: true + + /es6-promise-try@0.0.1: + resolution: {integrity: sha512-T6f3cNyF8y+3uua2IDGpGmeoDe2w7PXGfPGS94TyLfQLPzYVvZUfM8dQuN4DuVXpelK4tg9F7zKzZHzNS2f2IQ==} + dev: true + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: true + + /execall@2.0.0: + resolution: {integrity: sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==} + engines: {node: '>=8'} + dependencies: + clone-regexp: 2.2.0 + dev: true + + /flatten@1.0.3: + resolution: {integrity: sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==} + deprecated: flatten is deprecated in favor of utility frameworks such as lodash. + dev: true + + /fromentries@1.3.2: + resolution: {integrity: sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==} + dev: true + + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: true + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + dev: true + + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: true + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + + /is-plain-obj@2.1.0: + resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} + engines: {node: '>=8'} + dev: true + + /is-regexp@2.1.0: + resolution: {integrity: sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==} + engines: {node: '>=6'} + dev: true + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.2 + dev: true + + /is.object@1.0.0: + resolution: {integrity: sha512-BdDP6tLXkf0nrCnksLobALJxkt2hmrVL6ge1oRuzGU4Lb9NpreEbhhuCcY6HMzx/qo3Dff9DJ3jf0x9+U0bNMQ==} + engines: {node: '>=6.1'} + dev: true + + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + dev: true + + /split-filter-n@1.1.3: + resolution: {integrity: sha512-EU0EjvBI/mYBQMSAHq+ua/YNCuThuDjbU5h036k01+xieFW1aNvLNKb90xLihXIz5xJQX4VkEKan4LjSIyv7lg==} + dev: true + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /syncpipe@1.0.0: + resolution: {integrity: sha512-cdiAFTnFJRvUaNPDc2n9CqoFvtIL3+JUMJZrC3kA3FzpugHOqu0TvkgNwmnxPZ5/WjAzMcfMS3xm+AO7rg/j/w==} + dependencies: + assure-array: 1.0.0 + dev: true