@libp2p/daemon 6.0.10 → 6.0.11-7fff925bf

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../node_modules/emoji-regex/index.js", "../../../node_modules/get-caller-file/index.ts", "../../../node_modules/yargs-promise/index.js", "../../../node_modules/uint8arrays/src/equals.ts", "../../../node_modules/uint8arrays/src/alloc.node.ts", "../../../node_modules/uint8arrays/src/util/as-uint8array.node.ts", "../../../node_modules/uint8-varint/src/index.ts", "../../../node_modules/uint8arrays/src/concat.node.ts", "../../../node_modules/uint8arrays/src/from-string.node.ts", "../../../node_modules/multiformats/src/bases/base10.ts", "../../../node_modules/multiformats/src/bytes.ts", "../../../node_modules/multiformats/src/vendor/base-x.js", "../../../node_modules/multiformats/src/bases/base.ts", "../../../node_modules/multiformats/src/bases/base16.ts", "../../../node_modules/multiformats/src/bases/base2.ts", "../../../node_modules/multiformats/src/bases/base256emoji.ts", "../../../node_modules/multiformats/src/bases/base32.ts", "../../../node_modules/multiformats/src/bases/base36.ts", "../../../node_modules/multiformats/src/bases/base58.ts", "../../../node_modules/multiformats/src/bases/base64.ts", "../../../node_modules/multiformats/src/bases/base8.ts", "../../../node_modules/multiformats/src/bases/identity.ts", "../../../node_modules/multiformats/src/codecs/json.ts", "../../../node_modules/multiformats/src/hashes/identity.ts", "../../../node_modules/multiformats/src/vendor/varint.js", "../../../node_modules/multiformats/src/varint.ts", "../../../node_modules/multiformats/src/hashes/digest.ts", "../../../node_modules/multiformats/src/hashes/sha2.ts", "../../../node_modules/multiformats/src/hashes/hasher.ts", "../../../node_modules/multiformats/src/cid.ts", "../../../node_modules/multiformats/src/basics.ts", "../../../node_modules/uint8arrays/src/util/bases.ts", "../../../node_modules/uint8arrays/src/to-string.node.ts", "../../../node_modules/@multiformats/multiaddr/src/errors.ts", "../../../node_modules/@chainsafe/is-ip/src/is-ip.node.ts", "../../../node_modules/@multiformats/multiaddr/src/utils.ts", "../../../node_modules/@multiformats/multiaddr/src/validation.ts", "../../../node_modules/@multiformats/multiaddr/src/registry.ts", "../../../node_modules/@multiformats/multiaddr/src/components.ts", "../../../node_modules/@multiformats/multiaddr/src/multiaddr.ts", "../../../node_modules/@multiformats/multiaddr/src/index.ts", "../../../node_modules/es-main/main.js", "../node_modules/yargs/lib/platform-shims/esm.mjs", "../node_modules/cliui/build/lib/index.js", "../node_modules/ansi-regex/index.js", "../node_modules/strip-ansi/index.js", "../../../node_modules/get-east-asian-width/lookup.js", "../../../node_modules/get-east-asian-width/index.js", "../node_modules/string-width/index.js", "../node_modules/ansi-styles/index.js", "../node_modules/wrap-ansi/index.js", "../node_modules/cliui/index.mjs", "../../../node_modules/escalade/sync/index.mjs", "../node_modules/yargs-parser/build/lib/index.js", "../node_modules/yargs-parser/build/lib/string-utils.js", "../node_modules/yargs-parser/build/lib/tokenize-arg-string.js", "../node_modules/yargs-parser/build/lib/yargs-parser-types.js", "../node_modules/yargs-parser/build/lib/yargs-parser.js", "../node_modules/yargs/build/lib/utils/process-argv.js", "../../../node_modules/y18n/build/lib/platform-shims/node.js", "../../../node_modules/y18n/build/lib/index.js", "../../../node_modules/y18n/index.mjs", "../node_modules/yargs/build/lib/typings/common-types.js", "../node_modules/yargs/build/lib/utils/is-promise.js", "../node_modules/yargs/build/lib/yerror.js", "../node_modules/yargs/build/lib/parse-command.js", "../node_modules/yargs/build/lib/argsert.js", "../node_modules/yargs/build/lib/middleware.js", "../node_modules/yargs/build/lib/utils/maybe-async-result.js", "../node_modules/yargs/build/lib/command.js", "../node_modules/yargs/build/lib/utils/obj-filter.js", "../node_modules/yargs/build/lib/utils/set-blocking.js", "../node_modules/yargs/build/lib/usage.js", "../node_modules/yargs/build/lib/completion-templates.js", "../node_modules/yargs/build/lib/completion.js", "../node_modules/yargs/build/lib/utils/levenshtein.js", "../node_modules/yargs/build/lib/validation.js", "../node_modules/yargs/build/lib/utils/apply-extends.js", "../node_modules/yargs/build/lib/yargs-factory.js", "../node_modules/yargs/index.mjs", "../src/index.ts"],
3
+ "sources": ["../node_modules/emoji-regex/index.js", "../../../node_modules/get-caller-file/index.ts", "../../../node_modules/yargs-promise/index.js", "../../../node_modules/uint8arrays/src/equals.ts", "../../../node_modules/uint8arrays/src/alloc.node.ts", "../../../node_modules/uint8arrays/src/util/as-uint8array.node.ts", "../../../node_modules/uint8-varint/src/index.ts", "../../../node_modules/uint8arrays/src/concat.node.ts", "../../../node_modules/uint8arrays/src/from-string.node.ts", "../../../node_modules/multiformats/src/bases/base10.ts", "../../../node_modules/multiformats/src/bytes.ts", "../../../node_modules/multiformats/src/vendor/base-x.js", "../../../node_modules/multiformats/src/bases/base.ts", "../../../node_modules/multiformats/src/bases/base16.ts", "../../../node_modules/multiformats/src/bases/base2.ts", "../../../node_modules/multiformats/src/bases/base256emoji.ts", "../../../node_modules/multiformats/src/bases/base32.ts", "../../../node_modules/multiformats/src/bases/base36.ts", "../../../node_modules/multiformats/src/bases/base58.ts", "../../../node_modules/multiformats/src/bases/base64.ts", "../../../node_modules/multiformats/src/bases/base8.ts", "../../../node_modules/multiformats/src/bases/identity.ts", "../../../node_modules/multiformats/src/codecs/json.ts", "../../../node_modules/multiformats/src/hashes/identity.ts", "../../../node_modules/multiformats/src/vendor/varint.js", "../../../node_modules/multiformats/src/varint.ts", "../../../node_modules/multiformats/src/hashes/digest.ts", "../../../node_modules/multiformats/src/hashes/sha2.ts", "../../../node_modules/multiformats/src/hashes/hasher.ts", "../../../node_modules/multiformats/src/cid.ts", "../../../node_modules/multiformats/src/basics.ts", "../../../node_modules/uint8arrays/src/util/bases.ts", "../../../node_modules/uint8arrays/src/to-string.node.ts", "../../../node_modules/@multiformats/multiaddr/src/errors.ts", "../../../node_modules/@chainsafe/is-ip/src/is-ip.node.ts", "../../../node_modules/@multiformats/multiaddr/src/utils.ts", "../../../node_modules/@multiformats/multiaddr/src/validation.ts", "../../../node_modules/@multiformats/multiaddr/src/registry.ts", "../../../node_modules/@multiformats/multiaddr/src/components.ts", "../../../node_modules/@multiformats/multiaddr/src/multiaddr.ts", "../../../node_modules/@multiformats/multiaddr/src/index.ts", "../../../node_modules/es-main/main.js", "../node_modules/yargs/lib/platform-shims/esm.mjs", "../node_modules/cliui/build/lib/index.js", "../../../node_modules/ansi-regex/index.js", "../node_modules/strip-ansi/index.js", "../../../node_modules/get-east-asian-width/lookup.js", "../../../node_modules/get-east-asian-width/index.js", "../node_modules/string-width/index.js", "../node_modules/ansi-styles/index.js", "../node_modules/wrap-ansi/index.js", "../node_modules/cliui/index.mjs", "../../../node_modules/escalade/sync/index.mjs", "../node_modules/yargs-parser/build/lib/index.js", "../node_modules/yargs-parser/build/lib/string-utils.js", "../node_modules/yargs-parser/build/lib/tokenize-arg-string.js", "../node_modules/yargs-parser/build/lib/yargs-parser-types.js", "../node_modules/yargs-parser/build/lib/yargs-parser.js", "../node_modules/yargs/build/lib/utils/process-argv.js", "../../../node_modules/y18n/build/lib/platform-shims/node.js", "../../../node_modules/y18n/build/lib/index.js", "../../../node_modules/y18n/index.mjs", "../node_modules/yargs/build/lib/typings/common-types.js", "../node_modules/yargs/build/lib/utils/is-promise.js", "../node_modules/yargs/build/lib/yerror.js", "../node_modules/yargs/build/lib/parse-command.js", "../node_modules/yargs/build/lib/argsert.js", "../node_modules/yargs/build/lib/middleware.js", "../node_modules/yargs/build/lib/utils/maybe-async-result.js", "../node_modules/yargs/build/lib/command.js", "../node_modules/yargs/build/lib/utils/obj-filter.js", "../node_modules/yargs/build/lib/utils/set-blocking.js", "../node_modules/yargs/build/lib/usage.js", "../node_modules/yargs/build/lib/completion-templates.js", "../node_modules/yargs/build/lib/completion.js", "../node_modules/yargs/build/lib/utils/levenshtein.js", "../node_modules/yargs/build/lib/validation.js", "../node_modules/yargs/build/lib/utils/apply-extends.js", "../node_modules/yargs/build/lib/yargs-factory.js", "../node_modules/yargs/index.mjs", "../src/index.ts"],
4
4
  "sourcesContent": ["module.exports = () => {\n\t// https://mths.be/emoji\n\treturn /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E-\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED8\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDD1D\\uDEEF]\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE]|[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE]|\\uDEEF\\u200D\\uD83D\\uDC69\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3C-\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE8A\\uDE8E-\\uDEC2\\uDEC6\\uDEC8\\uDECD-\\uDEDC\\uDEDF-\\uDEEA\\uDEEF]|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC30\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE])|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3\\uDE70]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|\\uDEEF\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n", null, "class YargsPromise {\n constructor(yargs, ctx) {\n this.ctx = ctx || {};\n this.yargs = yargs;\n this.parse = this.parse.bind(this);\n this.command = this.yargs.command;\n this.commandDir = this.yargs.commandDir;\n }\n\n parse(msg) {\n const yargs = this.yargs;\n let returnArgs;\n return new Promise((resolve, reject) => {\n let context = Object.assign({}, this.ctx, {resolve, reject});\n\n yargs.parse(msg, context, function(error, argv, output) {\n returnArgs = argv;\n // the reject/resolve calls below are from\n // internal yarg behavior.\n if (error) {\n // reject built in validation error\n return argv.reject(error);\n }\n // resolve built in output\n return argv.resolve(output);\n });\n })\n .then(p => Promise.resolve(p)) // resolve possible promise\n .then(data => {\n if (data && data.argv) {\n return data;\n }\n\n return {data, argv: returnArgs};\n })\n .catch((p) => // resolve possible promise\n Promise.resolve(p).then(error => {\n if (error && error.argv) {\n return Promise.reject(error);\n }\n\n return Promise.reject({error, argv: returnArgs});\n })\n );\n }\n}\n\nmodule.exports = YargsPromise;\n", "/**\n * Returns true if the two passed Uint8Arrays have the same content\n */\nexport function equals (a: Uint8Array, b: Uint8Array): boolean {\n if (a === b) {\n return true\n }\n\n if (a.byteLength !== b.byteLength) {\n return false\n }\n\n for (let i = 0; i < a.byteLength; i++) {\n if (a[i] !== b[i]) {\n return false\n }\n }\n\n return true\n}\n", "import { Buffer } from 'node:buffer'\nimport { asUint8Array } from '#util/as-uint8array'\n\n/**\n * Returns a `Uint8Array` of the requested size. Referenced memory will\n * be initialized to 0.\n */\nexport function alloc (size: number = 0): Uint8Array {\n return asUint8Array(Buffer.alloc(size))\n}\n\n/**\n * Where possible returns a Uint8Array of the requested size that references\n * uninitialized memory. Only use if you are certain you will immediately\n * overwrite every value in the returned `Uint8Array`.\n */\nexport function allocUnsafe (size: number = 0): Uint8Array {\n return asUint8Array(Buffer.allocUnsafe(size))\n}\n", "/**\n * To guarantee Uint8Array semantics, convert nodejs Buffers\n * into vanilla Uint8Arrays\n */\nexport function asUint8Array (buf: Uint8Array): Uint8Array {\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)\n}\n", "/* eslint-disable no-fallthrough */\nimport { allocUnsafe } from 'uint8arrays/alloc'\nimport type { Uint8ArrayList } from 'uint8arraylist'\n\nconst N1 = Math.pow(2, 7)\nconst N2 = Math.pow(2, 14)\nconst N3 = Math.pow(2, 21)\nconst N4 = Math.pow(2, 28)\nconst N5 = Math.pow(2, 35)\nconst N6 = Math.pow(2, 42)\nconst N7 = Math.pow(2, 49)\n\n/** Most significant bit of a byte */\nconst MSB = 0x80\n/** Rest of the bits in a byte */\nconst REST = 0x7f\n\nexport function encodingLength (value: number): number {\n if (value < N1) {\n return 1\n }\n\n if (value < N2) {\n return 2\n }\n\n if (value < N3) {\n return 3\n }\n\n if (value < N4) {\n return 4\n }\n\n if (value < N5) {\n return 5\n }\n\n if (value < N6) {\n return 6\n }\n\n if (value < N7) {\n return 7\n }\n\n if (Number.MAX_SAFE_INTEGER != null && value > Number.MAX_SAFE_INTEGER) {\n throw new RangeError('Could not encode varint')\n }\n\n return 8\n}\n\nexport function encodeUint8Array (value: number, buf: Uint8Array, offset: number = 0): Uint8Array {\n switch (encodingLength(value)) {\n case 8: {\n buf[offset++] = (value & 0xFF) | MSB\n value /= 128\n }\n case 7: {\n buf[offset++] = (value & 0xFF) | MSB\n value /= 128\n }\n case 6: {\n buf[offset++] = (value & 0xFF) | MSB\n value /= 128\n }\n case 5: {\n buf[offset++] = (value & 0xFF) | MSB\n value /= 128\n }\n case 4: {\n buf[offset++] = (value & 0xFF) | MSB\n value >>>= 7\n }\n case 3: {\n buf[offset++] = (value & 0xFF) | MSB\n value >>>= 7\n }\n case 2: {\n buf[offset++] = (value & 0xFF) | MSB\n value >>>= 7\n }\n case 1: {\n buf[offset++] = (value & 0xFF)\n value >>>= 7\n break\n }\n default: throw new Error('unreachable')\n }\n return buf\n}\n\nexport function encodeUint8ArrayList (value: number, buf: Uint8ArrayList, offset: number = 0): Uint8ArrayList {\n switch (encodingLength(value)) {\n case 8: {\n buf.set(offset++, (value & 0xFF) | MSB)\n value /= 128\n }\n case 7: {\n buf.set(offset++, (value & 0xFF) | MSB)\n value /= 128\n }\n case 6: {\n buf.set(offset++, (value & 0xFF) | MSB)\n value /= 128\n }\n case 5: {\n buf.set(offset++, (value & 0xFF) | MSB)\n value /= 128\n }\n case 4: {\n buf.set(offset++, (value & 0xFF) | MSB)\n value >>>= 7\n }\n case 3: {\n buf.set(offset++, (value & 0xFF) | MSB)\n value >>>= 7\n }\n case 2: {\n buf.set(offset++, (value & 0xFF) | MSB)\n value >>>= 7\n }\n case 1: {\n buf.set(offset++, (value & 0xFF))\n value >>>= 7\n break\n }\n default: throw new Error('unreachable')\n }\n return buf\n}\n\nexport function decodeUint8Array (buf: Uint8Array, offset: number): number {\n let b = buf[offset]\n let res = 0\n\n res += b & REST\n if (b < MSB) {\n return res\n }\n\n b = buf[offset + 1]\n res += (b & REST) << 7\n if (b < MSB) {\n return res\n }\n\n b = buf[offset + 2]\n res += (b & REST) << 14\n if (b < MSB) {\n return res\n }\n\n b = buf[offset + 3]\n res += (b & REST) << 21\n if (b < MSB) {\n return res\n }\n\n b = buf[offset + 4]\n res += (b & REST) * N4\n if (b < MSB) {\n return res\n }\n\n b = buf[offset + 5]\n res += (b & REST) * N5\n if (b < MSB) {\n return res\n }\n\n b = buf[offset + 6]\n res += (b & REST) * N6\n if (b < MSB) {\n return res\n }\n\n b = buf[offset + 7]\n res += (b & REST) * N7\n if (b < MSB) {\n return res\n }\n\n throw new RangeError('Could not decode varint')\n}\n\nexport function decodeUint8ArrayList (buf: Uint8ArrayList, offset: number): number {\n let b = buf.get(offset)\n let res = 0\n\n res += b & REST\n if (b < MSB) {\n return res\n }\n\n b = buf.get(offset + 1)\n res += (b & REST) << 7\n if (b < MSB) {\n return res\n }\n\n b = buf.get(offset + 2)\n res += (b & REST) << 14\n if (b < MSB) {\n return res\n }\n\n b = buf.get(offset + 3)\n res += (b & REST) << 21\n if (b < MSB) {\n return res\n }\n\n b = buf.get(offset + 4)\n res += (b & REST) * N4\n if (b < MSB) {\n return res\n }\n\n b = buf.get(offset + 5)\n res += (b & REST) * N5\n if (b < MSB) {\n return res\n }\n\n b = buf.get(offset + 6)\n res += (b & REST) * N6\n if (b < MSB) {\n return res\n }\n\n b = buf.get(offset + 7)\n res += (b & REST) * N7\n if (b < MSB) {\n return res\n }\n\n throw new RangeError('Could not decode varint')\n}\n\nexport function encode (value: number): Uint8Array\nexport function encode (value: number, buf: Uint8Array, offset?: number): Uint8Array\nexport function encode (value: number, buf: Uint8ArrayList, offset?: number): Uint8ArrayList\nexport function encode <T extends Uint8Array | Uint8ArrayList = Uint8Array> (value: number, buf?: T, offset: number = 0): T {\n if (buf == null) {\n buf = allocUnsafe(encodingLength(value)) as T\n }\n if (buf instanceof Uint8Array) {\n return encodeUint8Array(value, buf, offset) as T\n } else {\n return encodeUint8ArrayList(value, buf, offset) as T\n }\n}\n\nexport function decode (buf: Uint8ArrayList | Uint8Array, offset: number = 0): number {\n if (buf instanceof Uint8Array) {\n return decodeUint8Array(buf, offset)\n } else {\n return decodeUint8ArrayList(buf, offset)\n }\n}\n", "import { Buffer } from 'node:buffer'\nimport { asUint8Array } from '#util/as-uint8array'\n\n/**\n * Returns a new Uint8Array created by concatenating the passed Uint8Arrays\n */\nexport function concat (arrays: Uint8Array[], length?: number): Uint8Array {\n return asUint8Array(Buffer.concat(arrays, length))\n}\n", "import { Buffer } from 'node:buffer'\nimport bases, { type SupportedEncodings } from './util/bases.js'\nimport { asUint8Array } from '#util/as-uint8array'\n\nexport type { SupportedEncodings }\n\n/**\n * Create a `Uint8Array` from the passed string\n *\n * Supports `utf8`, `utf-8`, `hex`, and any encoding supported by the multiformats module.\n *\n * Also `ascii` which is similar to node's 'binary' encoding.\n */\nexport function fromString (string: string, encoding: SupportedEncodings = 'utf8'): Uint8Array {\n const base = bases[encoding]\n\n if (base == null) {\n throw new Error(`Unsupported encoding \"${encoding}\"`)\n }\n\n if (encoding === 'utf8' || encoding === 'utf-8') {\n return asUint8Array(Buffer.from(string, 'utf-8'))\n }\n\n // add multibase prefix\n return base.decoder.decode(`${base.prefix}${string}`) // eslint-disable-line @typescript-eslint/restrict-template-expressions\n}\n", "import { baseX } from './base.js'\n\nexport const base10 = baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n})\n", "export const empty = new Uint8Array(0)\n\nexport function toHex (d: Uint8Array): string {\n return d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '')\n}\n\nexport function fromHex (hex: string): Uint8Array {\n const hexes = hex.match(/../g)\n return hexes != null ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty\n}\n\nexport function equals (aa: Uint8Array, bb: Uint8Array): boolean {\n if (aa === bb) { return true }\n if (aa.byteLength !== bb.byteLength) {\n return false\n }\n\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false\n }\n }\n\n return true\n}\n\nexport function coerce (o: ArrayBufferView | ArrayBuffer | Uint8Array): Uint8Array {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array') { return o }\n if (o instanceof ArrayBuffer) { return new Uint8Array(o) }\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength)\n }\n throw new Error('Unknown type, must be binary type')\n}\n\nexport function isBinary (o: unknown): o is ArrayBuffer | ArrayBufferView {\n return o instanceof ArrayBuffer || ArrayBuffer.isView(o)\n}\n\nexport function fromString (str: string): Uint8Array {\n return new TextEncoder().encode(str)\n}\n\nexport function toString (b: Uint8Array): string {\n return new TextDecoder().decode(b)\n}\n", "/* eslint-disable */\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n/**\n * @param {string} ALPHABET\n * @param {any} name\n */\nfunction base (ALPHABET, name) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256); // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE); // log(256) / log(BASE), rounded up\n /**\n * @param {any[] | Iterable<number>} source\n */\n function encode (source) {\n // @ts-ignore\n if (source instanceof Uint8Array) ; else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) { throw new TypeError('Expected Uint8Array') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0;\n var b58 = new Uint8Array(size);\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin];\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0;\n b58[it1] = (carry % BASE) >>> 0;\n carry = (carry / BASE) >>> 0;\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i;\n pbegin++;\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]); }\n return str\n }\n /**\n * @param {string | string[]} source\n */\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return new Uint8Array() }\n var psz = 0;\n // Skip leading spaces.\n if (source[psz] === ' ') { return }\n // Skip and count leading '1's.\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0; // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size);\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)];\n // Invalid character\n if (carry === 255) { return }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0;\n b256[it3] = (carry % 256) >>> 0;\n carry = (carry / 256) >>> 0;\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i;\n psz++;\n }\n // Skip trailing spaces.\n if (source[psz] === ' ') { return }\n // Skip leading zeroes in b256.\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch\n }\n /**\n * @param {string | string[]} string\n */\n function decode (string) {\n var buffer = decodeUnsafe(string);\n if (buffer) { return buffer }\n throw new Error(`Non-${name} character`)\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nvar src = base;\n\nvar _brrp__multiformats_scope_baseX = src;\n\nexport default _brrp__multiformats_scope_baseX;\n", "import { coerce } from '../bytes.js'\nimport basex from '../vendor/base-x.js'\nimport type { BaseCodec, BaseDecoder, BaseEncoder, CombobaseDecoder, Multibase, MultibaseCodec, MultibaseDecoder, MultibaseEncoder, UnibaseDecoder } from './interface.js'\n\ninterface EncodeFn { (bytes: Uint8Array): string }\ninterface DecodeFn { (text: string): Uint8Array }\n\n/**\n * Class represents both BaseEncoder and MultibaseEncoder meaning it\n * can be used to encode to multibase or base encode without multibase\n * prefix.\n */\nclass Encoder<Base extends string, Prefix extends string> implements MultibaseEncoder<Prefix>, BaseEncoder {\n readonly name: Base\n readonly prefix: Prefix\n readonly baseEncode: EncodeFn\n\n constructor (name: Base, prefix: Prefix, baseEncode: EncodeFn) {\n this.name = name\n this.prefix = prefix\n this.baseEncode = baseEncode\n }\n\n encode (bytes: Uint8Array): Multibase<Prefix> {\n if (bytes instanceof Uint8Array) {\n return `${this.prefix}${this.baseEncode(bytes)}`\n } else {\n throw Error('Unknown type, must be binary type')\n }\n }\n}\n\n/**\n * Class represents both BaseDecoder and MultibaseDecoder so it could be used\n * to decode multibases (with matching prefix) or just base decode strings\n * with corresponding base encoding.\n */\nclass Decoder<Base extends string, Prefix extends string> implements MultibaseDecoder<Prefix>, UnibaseDecoder<Prefix>, BaseDecoder {\n readonly name: Base\n readonly prefix: Prefix\n readonly baseDecode: DecodeFn\n private readonly prefixCodePoint: number\n\n constructor (name: Base, prefix: Prefix, baseDecode: DecodeFn) {\n this.name = name\n this.prefix = prefix\n const prefixCodePoint = prefix.codePointAt(0)\n /* c8 ignore next 3 */\n if (prefixCodePoint === undefined) {\n throw new Error('Invalid prefix character')\n }\n this.prefixCodePoint = prefixCodePoint\n this.baseDecode = baseDecode\n }\n\n decode (text: string): Uint8Array {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${JSON.stringify(text)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`)\n }\n return this.baseDecode(text.slice(this.prefix.length))\n } else {\n throw Error('Can only multibase decode strings')\n }\n }\n\n or<OtherPrefix extends string> (decoder: UnibaseDecoder<OtherPrefix> | ComposedDecoder<OtherPrefix>): ComposedDecoder<Prefix | OtherPrefix> {\n return or(this, decoder)\n }\n}\n\ntype Decoders<Prefix extends string> = Record<Prefix, UnibaseDecoder<Prefix>>\n\nclass ComposedDecoder<Prefix extends string> implements MultibaseDecoder<Prefix>, CombobaseDecoder<Prefix> {\n readonly decoders: Decoders<Prefix>\n\n constructor (decoders: Decoders<Prefix>) {\n this.decoders = decoders\n }\n\n or <OtherPrefix extends string> (decoder: UnibaseDecoder<OtherPrefix> | ComposedDecoder<OtherPrefix>): ComposedDecoder<Prefix | OtherPrefix> {\n return or(this, decoder)\n }\n\n decode (input: string): Uint8Array {\n const prefix = input[0] as Prefix\n const decoder = this.decoders[prefix]\n if (decoder != null) {\n return decoder.decode(input)\n } else {\n throw RangeError(`Unable to decode multibase string ${JSON.stringify(input)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)\n }\n }\n}\n\nexport function or <L extends string, R extends string> (left: UnibaseDecoder<L> | CombobaseDecoder<L>, right: UnibaseDecoder<R> | CombobaseDecoder<R>): ComposedDecoder<L | R> {\n return new ComposedDecoder({\n ...(left.decoders ?? { [(left as UnibaseDecoder<L>).prefix]: left }),\n ...(right.decoders ?? { [(right as UnibaseDecoder<R>).prefix]: right })\n } as Decoders<L | R>)\n}\n\nexport class Codec<Base extends string, Prefix extends string> implements MultibaseCodec<Prefix>, MultibaseEncoder<Prefix>, MultibaseDecoder<Prefix>, BaseCodec, BaseEncoder, BaseDecoder {\n readonly name: Base\n readonly prefix: Prefix\n readonly baseEncode: EncodeFn\n readonly baseDecode: DecodeFn\n readonly encoder: Encoder<Base, Prefix>\n readonly decoder: Decoder<Base, Prefix>\n\n constructor (name: Base, prefix: Prefix, baseEncode: EncodeFn, baseDecode: DecodeFn) {\n this.name = name\n this.prefix = prefix\n this.baseEncode = baseEncode\n this.baseDecode = baseDecode\n this.encoder = new Encoder(name, prefix, baseEncode)\n this.decoder = new Decoder(name, prefix, baseDecode)\n }\n\n encode (input: Uint8Array): string {\n return this.encoder.encode(input)\n }\n\n decode (input: string): Uint8Array {\n return this.decoder.decode(input)\n }\n}\n\nexport function from <Base extends string, Prefix extends string> ({ name, prefix, encode, decode }: { name: Base, prefix: Prefix, encode: EncodeFn, decode: DecodeFn }): Codec<Base, Prefix> {\n return new Codec(name, prefix, encode, decode)\n}\n\nexport function baseX <Base extends string, Prefix extends string> ({ name, prefix, alphabet }: { name: Base, prefix: Prefix, alphabet: string }): Codec<Base, Prefix> {\n const { encode, decode } = basex(alphabet, name)\n return from({\n prefix,\n name,\n encode,\n decode: (text: string): Uint8Array => coerce(decode(text))\n })\n}\n\nfunction decode (string: string, alphabetIdx: Record<string, number>, bitsPerChar: number, name: string): Uint8Array {\n // Count the padding bytes:\n let end = string.length\n while (string[end - 1] === '=') {\n --end\n }\n\n // Allocate the output:\n const out = new Uint8Array((end * bitsPerChar / 8) | 0)\n\n // Parse the data:\n let bits = 0 // Number of bits currently in the buffer\n let buffer = 0 // Bits waiting to be written out, MSB first\n let written = 0 // Next byte to write\n for (let i = 0; i < end; ++i) {\n // Read one character from the string:\n const value = alphabetIdx[string[i]]\n if (value === undefined) {\n throw new SyntaxError(`Non-${name} character`)\n }\n\n // Append the bits to the buffer:\n buffer = (buffer << bitsPerChar) | value\n bits += bitsPerChar\n\n // Write out some bits if the buffer has a byte's worth:\n if (bits >= 8) {\n bits -= 8\n out[written++] = 0xff & (buffer >> bits)\n }\n }\n\n // Verify that we have received just enough bits:\n if (bits >= bitsPerChar || (0xff & (buffer << (8 - bits))) !== 0) {\n throw new SyntaxError('Unexpected end of data')\n }\n\n return out\n}\n\nfunction encode (data: Uint8Array, alphabet: string, bitsPerChar: number): string {\n const pad = alphabet[alphabet.length - 1] === '='\n const mask = (1 << bitsPerChar) - 1\n let out = ''\n\n let bits = 0 // Number of bits currently in the buffer\n let buffer = 0 // Bits waiting to be written out, MSB first\n for (let i = 0; i < data.length; ++i) {\n // Slurp data into the buffer:\n buffer = (buffer << 8) | data[i]\n bits += 8\n\n // Write out as much as we can:\n while (bits > bitsPerChar) {\n bits -= bitsPerChar\n out += alphabet[mask & (buffer >> bits)]\n }\n }\n\n // Partial character:\n if (bits !== 0) {\n out += alphabet[mask & (buffer << (bitsPerChar - bits))]\n }\n\n // Add padding characters until we hit a byte boundary:\n if (pad) {\n while (((out.length * bitsPerChar) & 7) !== 0) {\n out += '='\n }\n }\n\n return out\n}\n\nfunction createAlphabetIdx (alphabet: string): Record<string, number> {\n // Build the character lookup table:\n const alphabetIdx: Record<string, number> = {}\n for (let i = 0; i < alphabet.length; ++i) {\n alphabetIdx[alphabet[i]] = i\n }\n return alphabetIdx\n}\n\n/**\n * RFC4648 Factory\n */\nexport function rfc4648 <Base extends string, Prefix extends string> ({ name, prefix, bitsPerChar, alphabet }: { name: Base, prefix: Prefix, bitsPerChar: number, alphabet: string }): Codec<Base, Prefix> {\n const alphabetIdx = createAlphabetIdx(alphabet)\n return from({\n prefix,\n name,\n encode (input: Uint8Array): string {\n return encode(input, alphabet, bitsPerChar)\n },\n decode (input: string): Uint8Array {\n return decode(input, alphabetIdx, bitsPerChar, name)\n }\n })\n}\n", "import { rfc4648 } from './base.js'\n\nexport const base16 = rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n})\n\nexport const base16upper = rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n})\n", "import { rfc4648 } from './base.js'\n\nexport const base2 = rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n})\n", "import { from } from './base.js'\n\nconst alphabet = Array.from('\uD83D\uDE80\uD83E\uDE90\u2604\uD83D\uDEF0\uD83C\uDF0C\uD83C\uDF11\uD83C\uDF12\uD83C\uDF13\uD83C\uDF14\uD83C\uDF15\uD83C\uDF16\uD83C\uDF17\uD83C\uDF18\uD83C\uDF0D\uD83C\uDF0F\uD83C\uDF0E\uD83D\uDC09\u2600\uD83D\uDCBB\uD83D\uDDA5\uD83D\uDCBE\uD83D\uDCBF\uD83D\uDE02\u2764\uD83D\uDE0D\uD83E\uDD23\uD83D\uDE0A\uD83D\uDE4F\uD83D\uDC95\uD83D\uDE2D\uD83D\uDE18\uD83D\uDC4D\uD83D\uDE05\uD83D\uDC4F\uD83D\uDE01\uD83D\uDD25\uD83E\uDD70\uD83D\uDC94\uD83D\uDC96\uD83D\uDC99\uD83D\uDE22\uD83E\uDD14\uD83D\uDE06\uD83D\uDE44\uD83D\uDCAA\uD83D\uDE09\u263A\uD83D\uDC4C\uD83E\uDD17\uD83D\uDC9C\uD83D\uDE14\uD83D\uDE0E\uD83D\uDE07\uD83C\uDF39\uD83E\uDD26\uD83C\uDF89\uD83D\uDC9E\u270C\u2728\uD83E\uDD37\uD83D\uDE31\uD83D\uDE0C\uD83C\uDF38\uD83D\uDE4C\uD83D\uDE0B\uD83D\uDC97\uD83D\uDC9A\uD83D\uDE0F\uD83D\uDC9B\uD83D\uDE42\uD83D\uDC93\uD83E\uDD29\uD83D\uDE04\uD83D\uDE00\uD83D\uDDA4\uD83D\uDE03\uD83D\uDCAF\uD83D\uDE48\uD83D\uDC47\uD83C\uDFB6\uD83D\uDE12\uD83E\uDD2D\u2763\uD83D\uDE1C\uD83D\uDC8B\uD83D\uDC40\uD83D\uDE2A\uD83D\uDE11\uD83D\uDCA5\uD83D\uDE4B\uD83D\uDE1E\uD83D\uDE29\uD83D\uDE21\uD83E\uDD2A\uD83D\uDC4A\uD83E\uDD73\uD83D\uDE25\uD83E\uDD24\uD83D\uDC49\uD83D\uDC83\uD83D\uDE33\u270B\uD83D\uDE1A\uD83D\uDE1D\uD83D\uDE34\uD83C\uDF1F\uD83D\uDE2C\uD83D\uDE43\uD83C\uDF40\uD83C\uDF37\uD83D\uDE3B\uD83D\uDE13\u2B50\u2705\uD83E\uDD7A\uD83C\uDF08\uD83D\uDE08\uD83E\uDD18\uD83D\uDCA6\u2714\uD83D\uDE23\uD83C\uDFC3\uD83D\uDC90\u2639\uD83C\uDF8A\uD83D\uDC98\uD83D\uDE20\u261D\uD83D\uDE15\uD83C\uDF3A\uD83C\uDF82\uD83C\uDF3B\uD83D\uDE10\uD83D\uDD95\uD83D\uDC9D\uD83D\uDE4A\uD83D\uDE39\uD83D\uDDE3\uD83D\uDCAB\uD83D\uDC80\uD83D\uDC51\uD83C\uDFB5\uD83E\uDD1E\uD83D\uDE1B\uD83D\uDD34\uD83D\uDE24\uD83C\uDF3C\uD83D\uDE2B\u26BD\uD83E\uDD19\u2615\uD83C\uDFC6\uD83E\uDD2B\uD83D\uDC48\uD83D\uDE2E\uD83D\uDE46\uD83C\uDF7B\uD83C\uDF43\uD83D\uDC36\uD83D\uDC81\uD83D\uDE32\uD83C\uDF3F\uD83E\uDDE1\uD83C\uDF81\u26A1\uD83C\uDF1E\uD83C\uDF88\u274C\u270A\uD83D\uDC4B\uD83D\uDE30\uD83E\uDD28\uD83D\uDE36\uD83E\uDD1D\uD83D\uDEB6\uD83D\uDCB0\uD83C\uDF53\uD83D\uDCA2\uD83E\uDD1F\uD83D\uDE41\uD83D\uDEA8\uD83D\uDCA8\uD83E\uDD2C\u2708\uD83C\uDF80\uD83C\uDF7A\uD83E\uDD13\uD83D\uDE19\uD83D\uDC9F\uD83C\uDF31\uD83D\uDE16\uD83D\uDC76\uD83E\uDD74\u25B6\u27A1\u2753\uD83D\uDC8E\uD83D\uDCB8\u2B07\uD83D\uDE28\uD83C\uDF1A\uD83E\uDD8B\uD83D\uDE37\uD83D\uDD7A\u26A0\uD83D\uDE45\uD83D\uDE1F\uD83D\uDE35\uD83D\uDC4E\uD83E\uDD32\uD83E\uDD20\uD83E\uDD27\uD83D\uDCCC\uD83D\uDD35\uD83D\uDC85\uD83E\uDDD0\uD83D\uDC3E\uD83C\uDF52\uD83D\uDE17\uD83E\uDD11\uD83C\uDF0A\uD83E\uDD2F\uD83D\uDC37\u260E\uD83D\uDCA7\uD83D\uDE2F\uD83D\uDC86\uD83D\uDC46\uD83C\uDFA4\uD83D\uDE47\uD83C\uDF51\u2744\uD83C\uDF34\uD83D\uDCA3\uD83D\uDC38\uD83D\uDC8C\uD83D\uDCCD\uD83E\uDD40\uD83E\uDD22\uD83D\uDC45\uD83D\uDCA1\uD83D\uDCA9\uD83D\uDC50\uD83D\uDCF8\uD83D\uDC7B\uD83E\uDD10\uD83E\uDD2E\uD83C\uDFBC\uD83E\uDD75\uD83D\uDEA9\uD83C\uDF4E\uD83C\uDF4A\uD83D\uDC7C\uD83D\uDC8D\uD83D\uDCE3\uD83E\uDD42')\nconst alphabetBytesToChars: string[] = (alphabet.reduce<string[]>((p, c, i) => { p[i] = c; return p }, ([])))\nconst alphabetCharsToBytes: number[] = (alphabet.reduce<number[]>((p, c, i) => {\n const codePoint = c.codePointAt(0)\n if (codePoint == null) {\n throw new Error(`Invalid character: ${c}`)\n }\n p[codePoint] = i\n return p\n}, ([])))\n\nfunction encode (data: Uint8Array): string {\n return data.reduce((p, c) => {\n p += alphabetBytesToChars[c]\n return p\n }, '')\n}\n\nfunction decode (str: string): Uint8Array {\n const byts = []\n for (const char of str) {\n const codePoint = char.codePointAt(0)\n if (codePoint == null) {\n throw new Error(`Invalid character: ${char}`)\n }\n const byt = alphabetCharsToBytes[codePoint]\n if (byt == null) {\n throw new Error(`Non-base256emoji character: ${char}`)\n }\n byts.push(byt)\n }\n return new Uint8Array(byts)\n}\n\nexport const base256emoji = from({\n prefix: '\uD83D\uDE80',\n name: 'base256emoji',\n encode,\n decode\n})\n", "import { rfc4648 } from './base.js'\n\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n})\n\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n})\n\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n})\n\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n})\n\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n})\n\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n})\n\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n})\n\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n})\n\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n})\n", "import { baseX } from './base.js'\n\nexport const base36 = baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n})\n\nexport const base36upper = baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n})\n", "import { baseX } from './base.js'\n\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n})\n\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n})\n", "import { rfc4648 } from './base.js'\n\nexport const base64 = rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n})\n\nexport const base64pad = rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n})\n\nexport const base64url = rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n})\n\nexport const base64urlpad = rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n})\n", "import { rfc4648 } from './base.js'\n\nexport const base8 = rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n})\n", "import { fromString, toString } from '../bytes.js'\nimport { from } from './base.js'\n\nexport const identity = from({\n prefix: '\\x00',\n name: 'identity',\n encode: (buf) => toString(buf),\n decode: (str) => fromString(str)\n})\n", "import type { ArrayBufferView, ByteView } from './interface.js'\n\nconst textEncoder = new TextEncoder()\nconst textDecoder = new TextDecoder()\n\nexport const name = 'json'\nexport const code = 0x0200\n\nexport function encode <T> (node: T): ByteView<T> {\n return textEncoder.encode(JSON.stringify(node))\n}\n\nexport function decode <T> (data: ByteView<T> | ArrayBufferView<T>): T {\n return JSON.parse(textDecoder.decode(data))\n}\n", "import { coerce } from '../bytes.js'\nimport * as Digest from './digest.js'\nimport type { DigestOptions } from './hasher.js'\n\nconst code: 0x0 = 0x0\nconst name = 'identity'\n\nconst encode: (input: Uint8Array) => Uint8Array = coerce\n\nfunction digest (input: Uint8Array, options?: DigestOptions): Digest.Digest<typeof code, number> {\n if (options?.truncate != null && options.truncate !== input.byteLength) {\n if (options.truncate < 0 || options.truncate > input.byteLength) {\n throw new Error(`Invalid truncate option, must be less than or equal to ${input.byteLength}`)\n }\n\n input = input.subarray(0, options.truncate)\n }\n\n return Digest.create(code, encode(input))\n}\n\nexport const identity = { code, name, encode, digest }\n", "/* eslint-disable */\nvar encode_1 = encode;\n\nvar MSB = 0x80\n , REST = 0x7F\n , MSBALL = ~REST\n , INT = Math.pow(2, 31);\n\n/**\n * @param {number} num\n * @param {number[]} out\n * @param {number} offset\n */\nfunction encode(num, out, offset) {\n out = out || [];\n offset = offset || 0;\n var oldOffset = offset;\n\n while(num >= INT) {\n out[offset++] = (num & 0xFF) | MSB;\n num /= 128;\n }\n while(num & MSBALL) {\n out[offset++] = (num & 0xFF) | MSB;\n num >>>= 7;\n }\n out[offset] = num | 0;\n \n // @ts-ignore\n encode.bytes = offset - oldOffset + 1;\n \n return out\n}\n\nvar decode = read;\n\nvar MSB$1 = 0x80\n , REST$1 = 0x7F;\n\n/**\n * @param {string | any[]} buf\n * @param {number} offset\n */\nfunction read(buf, offset) {\n var res = 0\n , offset = offset || 0\n , shift = 0\n , counter = offset\n , b\n , l = buf.length;\n\n do {\n if (counter >= l) {\n // @ts-ignore\n read.bytes = 0;\n throw new RangeError('Could not decode varint')\n }\n b = buf[counter++];\n res += shift < 28\n ? (b & REST$1) << shift\n : (b & REST$1) * Math.pow(2, shift);\n shift += 7;\n } while (b >= MSB$1)\n\n // @ts-ignore\n read.bytes = counter - offset;\n\n return res\n}\n\nvar N1 = Math.pow(2, 7);\nvar N2 = Math.pow(2, 14);\nvar N3 = Math.pow(2, 21);\nvar N4 = Math.pow(2, 28);\nvar N5 = Math.pow(2, 35);\nvar N6 = Math.pow(2, 42);\nvar N7 = Math.pow(2, 49);\nvar N8 = Math.pow(2, 56);\nvar N9 = Math.pow(2, 63);\n\nvar length = function (/** @type {number} */ value) {\n return (\n value < N1 ? 1\n : value < N2 ? 2\n : value < N3 ? 3\n : value < N4 ? 4\n : value < N5 ? 5\n : value < N6 ? 6\n : value < N7 ? 7\n : value < N8 ? 8\n : value < N9 ? 9\n : 10\n )\n};\n\nvar varint = {\n encode: encode_1\n , decode: decode\n , encodingLength: length\n};\n\nvar _brrp_varint = varint;\n\nexport default _brrp_varint;\n", "import varint from './vendor/varint.js'\n\nexport function decode (data: Uint8Array, offset = 0): [number, number] {\n const code = varint.decode(data, offset)\n return [code, varint.decode.bytes]\n}\n\nexport function encodeTo (int: number, target: Uint8Array, offset = 0): Uint8Array {\n varint.encode(int, target, offset)\n return target\n}\n\nexport function encodingLength (int: number): number {\n return varint.encodingLength(int)\n}\n", "import { coerce, equals as equalBytes } from '../bytes.js'\nimport * as varint from '../varint.js'\nimport type { MultihashDigest } from './interface.js'\n\n/**\n * Creates a multihash digest.\n */\nexport function create <Code extends number> (code: Code, digest: Uint8Array): Digest<Code, number> {\n const size = digest.byteLength\n const sizeOffset = varint.encodingLength(code)\n const digestOffset = sizeOffset + varint.encodingLength(size)\n\n const bytes = new Uint8Array(digestOffset + size)\n varint.encodeTo(code, bytes, 0)\n varint.encodeTo(size, bytes, sizeOffset)\n bytes.set(digest, digestOffset)\n\n return new Digest(code, size, digest, bytes)\n}\n\n/**\n * Turns bytes representation of multihash digest into an instance.\n */\nexport function decode (multihash: Uint8Array): MultihashDigest {\n const bytes = coerce(multihash)\n const [code, sizeOffset] = varint.decode(bytes)\n const [size, digestOffset] = varint.decode(bytes.subarray(sizeOffset))\n const digest = bytes.subarray(sizeOffset + digestOffset)\n\n if (digest.byteLength !== size) {\n throw new Error('Incorrect length')\n }\n\n return new Digest(code, size, digest, bytes)\n}\n\nexport function equals (a: MultihashDigest, b: unknown): b is MultihashDigest {\n if (a === b) {\n return true\n } else {\n const data = b as { code?: unknown, size?: unknown, bytes?: unknown }\n\n return (\n a.code === data.code &&\n a.size === data.size &&\n data.bytes instanceof Uint8Array &&\n equalBytes(a.bytes, data.bytes)\n )\n }\n}\n\n/**\n * Represents a multihash digest which carries information about the\n * hashing algorithm and an actual hash digest.\n */\nexport class Digest<Code extends number, Size extends number> implements MultihashDigest {\n readonly code: Code\n readonly size: Size\n readonly digest: Uint8Array\n readonly bytes: Uint8Array\n\n /**\n * Creates a multihash digest.\n */\n constructor (code: Code, size: Size, digest: Uint8Array, bytes: Uint8Array) {\n this.code = code\n this.size = size\n this.digest = digest\n this.bytes = bytes\n }\n}\n\n/**\n * Used to check that the passed multihash has the passed code\n */\nexport function hasCode <T extends number> (digest: MultihashDigest, code: T): digest is MultihashDigest<T> {\n return digest.code === code\n}\n", "import crypto from 'crypto'\nimport { coerce } from '../bytes.js'\nimport { from } from './hasher.js'\n\nexport const sha256 = from({\n name: 'sha2-256',\n code: 0x12,\n encode: (input) => coerce(crypto.createHash('sha256').update(input).digest())\n})\n\nexport const sha512 = from({\n name: 'sha2-512',\n code: 0x13,\n encode: input => coerce(crypto.createHash('sha512').update(input).digest())\n})\n", "import * as Digest from './digest.js'\nimport type { MultihashHasher } from './interface.js'\n\ntype Await<T> = Promise<T> | T\n\nconst DEFAULT_MIN_DIGEST_LENGTH = 20\n\nexport interface HasherInit <Name extends string, Code extends number> {\n name: Name\n code: Code\n encode(input: Uint8Array): Await<Uint8Array>\n\n /**\n * The minimum length a hash is allowed to be truncated to in bytes\n *\n * @default 20\n */\n minDigestLength?: number\n\n /**\n * The maximum length a hash is allowed to be truncated to in bytes. If not\n * specified it will be inferred from the length of the digest.\n */\n maxDigestLength?: number\n}\n\nexport function from <Name extends string, Code extends number> ({ name, code, encode, minDigestLength, maxDigestLength }: HasherInit<Name, Code>): Hasher<Name, Code> {\n return new Hasher(name, code, encode, minDigestLength, maxDigestLength)\n}\n\nexport interface DigestOptions {\n /**\n * Truncate the returned digest to this number of bytes.\n *\n * This may cause the digest method to throw/reject if the passed value is\n * greater than the digest length or below a threshold under which the risk of\n * hash collisions is significant.\n *\n * The actual value of this threshold can depend on the hashing algorithm in\n * use.\n */\n truncate?: number\n}\n\n/**\n * Hasher represents a hashing algorithm implementation that produces as\n * `MultihashDigest`.\n */\nexport class Hasher<Name extends string, Code extends number> implements MultihashHasher<Code> {\n readonly name: Name\n readonly code: Code\n readonly encode: (input: Uint8Array) => Await<Uint8Array>\n readonly minDigestLength: number\n readonly maxDigestLength?: number\n\n constructor (name: Name, code: Code, encode: (input: Uint8Array) => Await<Uint8Array>, minDigestLength?: number, maxDigestLength?: number) {\n this.name = name\n this.code = code\n this.encode = encode\n this.minDigestLength = minDigestLength ?? DEFAULT_MIN_DIGEST_LENGTH\n this.maxDigestLength = maxDigestLength\n }\n\n digest (input: Uint8Array, options?: DigestOptions): Await<Digest.Digest<Code, number>> {\n if (options?.truncate != null) {\n if (options.truncate < this.minDigestLength) {\n throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`)\n }\n\n if (this.maxDigestLength != null && options.truncate > this.maxDigestLength) {\n throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)\n }\n }\n\n if (input instanceof Uint8Array) {\n const result = this.encode(input)\n\n if (result instanceof Uint8Array) {\n return createDigest(result, this.code, options?.truncate)\n }\n\n return result.then(digest => createDigest(digest, this.code, options?.truncate))\n } else {\n throw Error('Unknown type, must be binary type')\n /* c8 ignore next 1 */\n }\n }\n}\n\n/**\n * Create a Digest from the passed uint8array and code, optionally truncating it\n * first.\n */\nfunction createDigest <Code extends number> (digest: Uint8Array, code: Code, truncate?: number): Digest.Digest<Code, number> {\n if (truncate != null && truncate !== digest.byteLength) {\n if (truncate > digest.byteLength) {\n throw new Error(`Invalid truncate option, must be less than or equal to ${digest.byteLength}`)\n }\n\n digest = digest.subarray(0, truncate)\n }\n\n return Digest.create(code, digest)\n}\n", "import { base32 } from './bases/base32.js'\nimport { base36 } from './bases/base36.js'\nimport { base58btc } from './bases/base58.js'\nimport { coerce } from './bytes.js'\nimport * as Digest from './hashes/digest.js'\nimport * as varint from './varint.js'\nimport type * as API from './link/interface.js'\n\n// This way TS will also expose all the types from module\nexport * from './link/interface.js'\n\nexport function format <T extends API.Link<unknown, number, number, API.Version>, Prefix extends string> (link: T, base?: API.MultibaseEncoder<Prefix>): API.ToString<T, Prefix> {\n const { bytes, version } = link\n switch (version) {\n case 0:\n return toStringV0(\n bytes,\n baseCache(link),\n base as API.MultibaseEncoder<'z'> ?? base58btc.encoder\n )\n default:\n return toStringV1(\n bytes,\n baseCache(link),\n (base ?? base32.encoder) as API.MultibaseEncoder<Prefix>\n )\n }\n}\n\nexport function toJSON <Link extends API.UnknownLink> (link: Link): API.LinkJSON<Link> {\n return {\n '/': format(link)\n }\n}\n\nexport function fromJSON <Link extends API.UnknownLink> (json: API.LinkJSON<Link>): CID<unknown, number, number, API.Version> {\n return CID.parse(json['/'])\n}\n\nconst cache = new WeakMap<API.UnknownLink, Map<string, string>>()\n\nfunction baseCache (cid: API.UnknownLink): Map<string, string> {\n const baseCache = cache.get(cid)\n if (baseCache == null) {\n const baseCache = new Map()\n cache.set(cid, baseCache)\n return baseCache\n }\n return baseCache\n}\n\nexport class CID<Data = unknown, Format extends number = number, Alg extends number = number, Version extends API.Version = API.Version> implements API.Link<Data, Format, Alg, Version> {\n readonly code: Format\n readonly version: Version\n readonly multihash: API.MultihashDigest<Alg>\n readonly bytes: Uint8Array\n readonly '/': Uint8Array\n\n /**\n * @param version - Version of the CID\n * @param code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv\n * @param multihash - (Multi)hash of the of the content.\n */\n constructor (version: Version, code: Format, multihash: API.MultihashDigest<Alg>, bytes: Uint8Array) {\n this.code = code\n this.version = version\n this.multihash = multihash\n this.bytes = bytes\n\n // flag to serializers that this is a CID and\n // should be treated specially\n this['/'] = bytes\n }\n\n /**\n * Signalling `cid.asCID === cid` has been replaced with `cid['/'] === cid.bytes`\n * please either use `CID.asCID(cid)` or switch to new signalling mechanism\n *\n * @deprecated\n */\n get asCID (): this {\n return this\n }\n\n // ArrayBufferView\n get byteOffset (): number {\n return this.bytes.byteOffset\n }\n\n // ArrayBufferView\n get byteLength (): number {\n return this.bytes.byteLength\n }\n\n toV0 (): CID<Data, API.DAG_PB, API.SHA_256, 0> {\n switch (this.version) {\n case 0: {\n return this as CID<Data, API.DAG_PB, API.SHA_256, 0>\n }\n case 1: {\n const { code, multihash } = this\n\n if (code !== DAG_PB_CODE) {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0')\n }\n\n // sha2-256\n if (multihash.code !== SHA_256_CODE) {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0')\n }\n\n return (\n CID.createV0(\n multihash as API.MultihashDigest<API.SHA_256>\n )\n )\n }\n default: {\n throw Error(\n `Can not convert CID version ${this.version} to version 0. This is a bug please report`\n )\n }\n }\n }\n\n toV1 (): CID<Data, Format, Alg, 1> {\n switch (this.version) {\n case 0: {\n const { code, digest } = this.multihash\n const multihash = Digest.create(code, digest)\n return (\n CID.createV1(this.code, multihash)\n )\n }\n case 1: {\n return this as CID<Data, Format, Alg, 1>\n }\n default: {\n throw Error(\n `Can not convert CID version ${this.version} to version 1. This is a bug please report`\n )\n }\n }\n }\n\n equals (other: unknown): other is CID<Data, Format, Alg, Version> {\n return CID.equals(this, other)\n }\n\n static equals <Data, Format extends number, Alg extends number, Version extends API.Version>(self: API.Link<Data, Format, Alg, Version>, other: unknown): other is CID {\n const unknown = other as { code?: unknown, version?: unknown, multihash?: unknown }\n return (\n unknown != null &&\n self.code === unknown.code &&\n self.version === unknown.version &&\n Digest.equals(self.multihash, unknown.multihash)\n )\n }\n\n toString (base?: API.MultibaseEncoder<string>): string {\n return format(this, base)\n }\n\n toJSON (): API.LinkJSON<this> {\n return { '/': format(this) }\n }\n\n link (): this {\n return this\n }\n\n readonly [Symbol.toStringTag] = 'CID';\n\n // Legacy\n\n [Symbol.for('nodejs.util.inspect.custom')] (): string {\n return `CID(${this.toString()})`\n }\n\n /**\n * Takes any input `value` and returns a `CID` instance if it was\n * a `CID` otherwise returns `null`. If `value` is instanceof `CID`\n * it will return value back. If `value` is not instance of this CID\n * class, but is compatible CID it will return new instance of this\n * `CID` class. Otherwise returns null.\n *\n * This allows two different incompatible versions of CID library to\n * co-exist and interop as long as binary interface is compatible.\n */\n static asCID <Data, Format extends number, Alg extends number, Version extends API.Version, U>(input: API.Link<Data, Format, Alg, Version> | U): CID<Data, Format, Alg, Version> | null {\n if (input == null) {\n return null\n }\n\n const value = input as any\n if (value instanceof CID) {\n // If value is instance of CID then we're all set.\n return value\n } else if ((value['/'] != null && value['/'] === value.bytes) || value.asCID === value) {\n // If value isn't instance of this CID class but `this.asCID === this` or\n // `value['/'] === value.bytes` is true it is CID instance coming from a\n // different implementation (diff version or duplicate). In that case we\n // rebase it to this `CID` implementation so caller is guaranteed to get\n // instance with expected API.\n const { version, code, multihash, bytes } = value\n return new CID(\n version,\n code,\n multihash as API.MultihashDigest<Alg>,\n bytes ?? encodeCID(version, code, multihash.bytes)\n )\n } else if (value[cidSymbol] === true) {\n // If value is a CID from older implementation that used to be tagged via\n // symbol we still rebase it to the this `CID` implementation by\n // delegating that to a constructor.\n const { version, multihash, code } = value\n const digest = Digest.decode(multihash) as API.MultihashDigest<Alg>\n return CID.create(version, code, digest)\n } else {\n // Otherwise value is not a CID (or an incompatible version of it) in\n // which case we return `null`.\n return null\n }\n }\n\n /**\n * @param version - Version of the CID\n * @param code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv\n * @param digest - (Multi)hash of the of the content.\n */\n static create <Data, Format extends number, Alg extends number, Version extends API.Version>(version: Version, code: Format, digest: API.MultihashDigest<Alg>): CID<Data, Format, Alg, Version> {\n if (typeof code !== 'number') {\n throw new Error('String codecs are no longer supported')\n }\n\n if (!(digest.bytes instanceof Uint8Array)) {\n throw new Error('Invalid digest')\n }\n\n switch (version) {\n case 0: {\n if (code !== DAG_PB_CODE) {\n throw new Error(\n `Version 0 CID must use dag-pb (code: ${DAG_PB_CODE}) block encoding`\n )\n } else {\n return new CID(version, code, digest, digest.bytes)\n }\n }\n case 1: {\n const bytes = encodeCID(version, code, digest.bytes)\n return new CID(version, code, digest, bytes)\n }\n default: {\n throw new Error('Invalid version')\n }\n }\n }\n\n /**\n * Simplified version of `create` for CIDv0.\n */\n static createV0 <T = unknown>(digest: API.MultihashDigest<typeof SHA_256_CODE>): CID<T, typeof DAG_PB_CODE, typeof SHA_256_CODE, 0> {\n return CID.create(0, DAG_PB_CODE, digest)\n }\n\n /**\n * Simplified version of `create` for CIDv1.\n *\n * @param code - Content encoding format code.\n * @param digest - Multihash of the content.\n */\n static createV1 <Data, Code extends number, Alg extends number>(code: Code, digest: API.MultihashDigest<Alg>): CID<Data, Code, Alg, 1> {\n return CID.create(1, code, digest)\n }\n\n /**\n * Decoded a CID from its binary representation. The byte array must contain\n * only the CID with no additional bytes.\n *\n * An error will be thrown if the bytes provided do not contain a valid\n * binary representation of a CID.\n */\n static decode <Data, Code extends number, Alg extends number, Version extends API.Version>(bytes: API.ByteView<API.Link<Data, Code, Alg, Version>>): CID<Data, Code, Alg, Version> {\n const [cid, remainder] = CID.decodeFirst(bytes)\n if (remainder.length !== 0) {\n throw new Error('Incorrect length')\n }\n return cid\n }\n\n /**\n * Decoded a CID from its binary representation at the beginning of a byte\n * array.\n *\n * Returns an array with the first element containing the CID and the second\n * element containing the remainder of the original byte array. The remainder\n * will be a zero-length byte array if the provided bytes only contained a\n * binary CID representation.\n */\n static decodeFirst <T, C extends number, A extends number, V extends API.Version>(bytes: API.ByteView<API.Link<T, C, A, V>>): [CID<T, C, A, V>, Uint8Array] {\n const specs = CID.inspectBytes(bytes)\n const prefixSize = specs.size - specs.multihashSize\n const multihashBytes = coerce(\n bytes.subarray(prefixSize, prefixSize + specs.multihashSize)\n )\n if (multihashBytes.byteLength !== specs.multihashSize) {\n throw new Error('Incorrect length')\n }\n const digestBytes = multihashBytes.subarray(\n specs.multihashSize - specs.digestSize\n )\n const digest = new Digest.Digest(\n specs.multihashCode,\n specs.digestSize,\n digestBytes,\n multihashBytes\n )\n const cid =\n specs.version === 0\n ? CID.createV0(digest as API.MultihashDigest<API.SHA_256>)\n : CID.createV1(specs.codec, digest)\n return [cid as CID<T, C, A, V>, bytes.subarray(specs.size)]\n }\n\n /**\n * Inspect the initial bytes of a CID to determine its properties.\n *\n * Involves decoding up to 4 varints. Typically this will require only 4 to 6\n * bytes but for larger multicodec code values and larger multihash digest\n * lengths these varints can be quite large. It is recommended that at least\n * 10 bytes be made available in the `initialBytes` argument for a complete\n * inspection.\n */\n static inspectBytes <T, C extends number, A extends number, V extends API.Version>(initialBytes: API.ByteView<API.Link<T, C, A, V>>): { version: V, codec: C, multihashCode: A, digestSize: number, multihashSize: number, size: number } {\n let offset = 0\n const next = (): number => {\n const [i, length] = varint.decode(initialBytes.subarray(offset))\n offset += length\n return i\n }\n\n let version = next() as V\n let codec = DAG_PB_CODE as C\n if (version as number === 18) {\n // CIDv0\n version = 0 as V\n offset = 0\n } else {\n codec = next() as C\n }\n\n if (version !== 0 && version !== 1) {\n throw new RangeError(`Invalid CID version ${version}`)\n }\n\n const prefixSize = offset\n const multihashCode = next() as A // multihash code\n const digestSize = next() // multihash length\n const size = offset + digestSize\n const multihashSize = size - prefixSize\n\n return { version, codec, multihashCode, digestSize, multihashSize, size }\n }\n\n /**\n * Takes cid in a string representation and creates an instance. If `base`\n * decoder is not provided will use a default from the configuration. It will\n * throw an error if encoding of the CID is not compatible with supplied (or\n * a default decoder).\n */\n static parse <Prefix extends string, Data, Code extends number, Alg extends number, Version extends API.Version>(source: API.ToString<API.Link<Data, Code, Alg, Version>, Prefix>, base?: API.MultibaseDecoder<Prefix>): CID<Data, Code, Alg, Version> {\n const [prefix, bytes] = parseCIDtoBytes(source, base)\n\n const cid = CID.decode(bytes)\n\n if (cid.version === 0 && source[0] !== 'Q') {\n throw Error('Version 0 CID string must not include multibase prefix')\n }\n\n // Cache string representation to avoid computing it on `this.toString()`\n baseCache(cid).set(prefix, source)\n\n return cid\n }\n}\n\nfunction parseCIDtoBytes <Prefix extends string, Data, Code extends number, Alg extends number, Version extends API.Version> (source: API.ToString<API.Link<Data, Code, Alg, Version>, Prefix>, base?: API.MultibaseDecoder<Prefix>): [Prefix, API.ByteView<API.Link<Data, Code, Alg, Version>>] {\n switch (source[0]) {\n // CIDv0 is parsed differently\n case 'Q': {\n const decoder = base ?? base58btc\n return [\n base58btc.prefix as Prefix,\n decoder.decode(`${base58btc.prefix}${source}`)\n ]\n }\n case base58btc.prefix: {\n const decoder = base ?? base58btc\n return [base58btc.prefix as Prefix, decoder.decode(source)]\n }\n case base32.prefix: {\n const decoder = base ?? base32\n return [base32.prefix as Prefix, decoder.decode(source)]\n }\n case base36.prefix: {\n const decoder = base ?? base36\n return [base36.prefix as Prefix, decoder.decode(source)]\n }\n default: {\n if (base == null) {\n throw Error(\n 'To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided'\n )\n }\n return [source[0] as Prefix, base.decode(source)]\n }\n }\n}\n\nfunction toStringV0 (bytes: Uint8Array, cache: Map<string, string>, base: API.MultibaseEncoder<'z'>): string {\n const { prefix } = base\n if (prefix !== base58btc.prefix) {\n throw Error(`Cannot string encode V0 in ${base.name} encoding`)\n }\n\n const cid = cache.get(prefix)\n if (cid == null) {\n const cid = base.encode(bytes).slice(1)\n cache.set(prefix, cid)\n return cid\n } else {\n return cid\n }\n}\n\nfunction toStringV1 <Prefix extends string> (bytes: Uint8Array, cache: Map<string, string>, base: API.MultibaseEncoder<Prefix>): string {\n const { prefix } = base\n const cid = cache.get(prefix)\n if (cid == null) {\n const cid = base.encode(bytes)\n cache.set(prefix, cid)\n return cid\n } else {\n return cid\n }\n}\n\nconst DAG_PB_CODE = 0x70\nconst SHA_256_CODE = 0x12\n\nfunction encodeCID (version: API.Version, code: number, multihash: Uint8Array): Uint8Array {\n const codeOffset = varint.encodingLength(version)\n const hashOffset = codeOffset + varint.encodingLength(code)\n const bytes = new Uint8Array(hashOffset + multihash.byteLength)\n varint.encodeTo(version, bytes, 0)\n varint.encodeTo(code, bytes, codeOffset)\n bytes.set(multihash, hashOffset)\n return bytes\n}\n\nconst cidSymbol = Symbol.for('@ipld/js-cid/CID')\n", "import * as base10 from './bases/base10.js'\nimport * as base16 from './bases/base16.js'\nimport * as base2 from './bases/base2.js'\nimport * as base256emoji from './bases/base256emoji.js'\nimport * as base32 from './bases/base32.js'\nimport * as base36 from './bases/base36.js'\nimport * as base58 from './bases/base58.js'\nimport * as base64 from './bases/base64.js'\nimport * as base8 from './bases/base8.js'\nimport * as identityBase from './bases/identity.js'\nimport * as json from './codecs/json.js'\nimport * as raw from './codecs/raw.js'\nimport * as identity from './hashes/identity.js'\nimport * as sha2 from './hashes/sha2.js'\nimport { CID, hasher, digest, varint, bytes } from './index.js'\n\nexport const bases = { ...identityBase, ...base2, ...base8, ...base10, ...base16, ...base32, ...base36, ...base58, ...base64, ...base256emoji }\nexport const hashes = { ...sha2, ...identity }\nexport const codecs = { raw, json }\n\nexport { CID, hasher, digest, varint, bytes }\n", "import { bases } from 'multiformats/basics'\nimport type { MultibaseCodec } from 'multiformats'\nimport { allocUnsafe } from '#alloc'\n\nfunction createCodec (name: string, prefix: string, encode: (buf: Uint8Array) => string, decode: (str: string) => Uint8Array): MultibaseCodec<any> {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: {\n decode\n }\n }\n}\n\nconst string = createCodec('utf8', 'u', (buf) => {\n const decoder = new TextDecoder('utf8')\n return 'u' + decoder.decode(buf)\n}, (str) => {\n const encoder = new TextEncoder()\n return encoder.encode(str.substring(1))\n})\n\nconst ascii = createCodec('ascii', 'a', (buf) => {\n let string = 'a'\n\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i])\n }\n return string\n}, (str) => {\n str = str.substring(1)\n const buf = allocUnsafe(str.length)\n\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i)\n }\n\n return buf\n})\n\nexport type SupportedEncodings = 'utf8' | 'utf-8' | 'hex' | 'latin1' | 'ascii' | 'binary' | keyof typeof bases\n\nconst BASES: Record<SupportedEncodings, MultibaseCodec<any>> = {\n utf8: string,\n 'utf-8': string,\n hex: bases.base16,\n latin1: ascii,\n ascii,\n binary: ascii,\n\n ...bases\n}\n\nexport default BASES\n", "import { Buffer } from 'node:buffer'\nimport bases, { type SupportedEncodings } from './util/bases.js'\n\nexport type { SupportedEncodings }\n\n/**\n * Turns a `Uint8Array` into a string.\n *\n * Supports `utf8`, `utf-8` and any encoding supported by the multibase module.\n *\n * Also `ascii` which is similar to node's 'binary' encoding.\n */\nexport function toString (array: Uint8Array, encoding: SupportedEncodings = 'utf8'): string {\n const base = bases[encoding]\n\n if (base == null) {\n throw new Error(`Unsupported encoding \"${encoding}\"`)\n }\n\n if (encoding === 'utf8' || encoding === 'utf-8') {\n return Buffer.from(array.buffer, array.byteOffset, array.byteLength).toString('utf8')\n }\n\n // strip multibase prefix\n return base.encoder.encode(array).substring(1)\n}\n", "/**\n * Thrown when an invalid multiaddr is encountered\n */\nexport class InvalidMultiaddrError extends Error {\n static name = 'InvalidMultiaddrError'\n name = 'InvalidMultiaddrError'\n}\n\nexport class ValidationError extends Error {\n static name = 'ValidationError'\n name = 'ValidationError'\n}\n\nexport class InvalidParametersError extends Error {\n static name = 'InvalidParametersError'\n name = 'InvalidParametersError'\n}\n\nexport class UnknownProtocolError extends Error {\n static name = 'UnknownProtocolError'\n name = 'UnknownProtocolError'\n}\n", "import { isIPv4, isIPv6, isIP as ipVersion } from \"node:net\";\n\nexport { isIPv4, isIPv6, ipVersion };\n\n/** Check if `input` is IPv4 or IPv6. */\nexport function isIP(input: string): boolean {\n return Boolean(ipVersion(input));\n}\n", "import { isIPv4 } from '@chainsafe/is-ip'\nimport { base32 } from 'multiformats/bases/base32'\nimport { bases } from 'multiformats/basics'\nimport { concat as uint8ArrayConcat } from 'uint8arrays/concat'\nimport { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'\nimport { toString as uint8ArrayToString } from 'uint8arrays/to-string'\nimport { InvalidMultiaddrError } from './errors.ts'\nimport type { MultibaseCodec } from 'multiformats'\nimport type { SupportedEncodings } from 'uint8arrays/to-string'\n\nexport function bytesToString (base: SupportedEncodings): (buf: Uint8Array) => string {\n return (buf) => {\n return uint8ArrayToString(buf, base)\n }\n}\n\nexport function stringToBytes (base: SupportedEncodings): (value: string) => Uint8Array {\n return (buf) => {\n return uint8ArrayFromString(buf, base)\n }\n}\n\nexport function bytes2port (buf: Uint8Array): string {\n const view = new DataView(buf.buffer)\n return view.getUint16(buf.byteOffset).toString()\n}\n\nexport function port2bytes (port: string | number): Uint8Array {\n const buf = new ArrayBuffer(2)\n const view = new DataView(buf)\n view.setUint16(0, typeof port === 'string' ? parseInt(port) : port)\n\n return new Uint8Array(buf)\n}\n\nexport function onion2bytes (str: string): Uint8Array {\n const addr = str.split(':')\n\n if (addr.length !== 2) {\n throw new Error(`failed to parse onion addr: [\"'${addr.join('\", \"')}'\"]' does not contain a port number`)\n }\n\n if (addr[0].length !== 16) {\n throw new Error(`failed to parse onion addr: ${addr[0]} not a Tor onion address.`)\n }\n\n // onion addresses do not include the multibase prefix, add it before decoding\n const buf = uint8ArrayFromString(addr[0], 'base32')\n\n // onion port number\n const port = parseInt(addr[1], 10)\n\n if (port < 1 || port > 65536) {\n throw new Error('Port number is not in range(1, 65536)')\n }\n\n const portBuf = port2bytes(port)\n\n return uint8ArrayConcat([buf, portBuf], buf.length + portBuf.length)\n}\n\nexport function onion32bytes (str: string): Uint8Array {\n const addr = str.split(':')\n\n if (addr.length !== 2) {\n throw new Error(`failed to parse onion addr: [\"'${addr.join('\", \"')}'\"]' does not contain a port number`)\n }\n\n if (addr[0].length !== 56) {\n throw new Error(`failed to parse onion addr: ${addr[0]} not a Tor onion3 address.`)\n }\n\n // onion addresses do not include the multibase prefix, add it before decoding\n const buf = base32.decode(`b${addr[0]}`)\n\n // onion port number\n const port = parseInt(addr[1], 10)\n\n if (port < 1 || port > 65536) {\n throw new Error('Port number is not in range(1, 65536)')\n }\n\n const portBuf = port2bytes(port)\n\n return uint8ArrayConcat([buf, portBuf], buf.length + portBuf.length)\n}\n\nexport function bytes2onion (buf: Uint8Array): string {\n const addrBytes = buf.subarray(0, buf.length - 2)\n const portBytes = buf.subarray(buf.length - 2)\n const addr = uint8ArrayToString(addrBytes, 'base32')\n const port = bytes2port(portBytes)\n return `${addr}:${port}`\n}\n\n// Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L7\n// but with buf/offset args removed because we don't use them\nexport const ip4ToBytes = function (ip: string): Uint8Array {\n ip = ip.toString().trim()\n\n const bytes = new Uint8Array(4)\n\n ip.split(/\\./g).forEach((byte, index) => {\n const value = parseInt(byte, 10)\n\n if (isNaN(value) || value < 0 || value > 0xff) {\n throw new InvalidMultiaddrError('Invalid byte value in IP address')\n }\n\n bytes[index] = value\n })\n\n return bytes\n}\n\n// Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L7\n// but with buf/offset args removed because we don't use them\nexport const ip6ToBytes = function (ip: string): Uint8Array {\n let offset = 0\n ip = ip.toString().trim()\n\n const sections = ip.split(':', 8)\n\n let i\n for (i = 0; i < sections.length; i++) {\n const isv4 = isIPv4(sections[i])\n let v4Buffer: Uint8Array | undefined\n\n if (isv4) {\n v4Buffer = ip4ToBytes(sections[i])\n sections[i] = uint8ArrayToString(v4Buffer.subarray(0, 2), 'base16')\n }\n\n if (v4Buffer != null && ++i < 8) {\n sections.splice(i, 0, uint8ArrayToString(v4Buffer.subarray(2, 4), 'base16'))\n }\n }\n\n if (sections[0] === '') {\n while (sections.length < 8) { sections.unshift('0') }\n } else if (sections[sections.length - 1] === '') {\n while (sections.length < 8) { sections.push('0') }\n } else if (sections.length < 8) {\n for (i = 0; i < sections.length && sections[i] !== ''; i++) { }\n const argv: [number, number, ...string[]] = [i, 1]\n for (i = 9 - sections.length; i > 0; i--) {\n argv.push('0')\n }\n sections.splice.apply(sections, argv)\n }\n\n const bytes = new Uint8Array(offset + 16)\n\n for (i = 0; i < sections.length; i++) {\n if (sections[i] === '') {\n sections[i] = '0'\n }\n\n const word = parseInt(sections[i], 16)\n\n if (isNaN(word) || word < 0 || word > 0xffff) {\n throw new InvalidMultiaddrError('Invalid byte value in IP address')\n }\n\n bytes[offset++] = (word >> 8) & 0xff\n bytes[offset++] = word & 0xff\n }\n\n return bytes\n}\n\n// Copied from https://github.com/indutny/node-ip/blob/master/lib/ip.js#L63\nexport const ip4ToString = function (buf: Uint8Array): string {\n if (buf.byteLength !== 4) {\n throw new InvalidMultiaddrError('IPv4 address was incorrect length')\n }\n\n const result = []\n\n for (let i = 0; i < buf.byteLength; i++) {\n result.push(buf[i])\n }\n\n return result.join('.')\n}\n\nexport const ip6ToString = function (buf: Uint8Array): string {\n if (buf.byteLength !== 16) {\n throw new InvalidMultiaddrError('IPv6 address was incorrect length')\n }\n\n const result: string[] = []\n\n for (let i = 0; i < buf.byteLength; i += 2) {\n const byte1 = buf[i]\n const byte2 = buf[i + 1]\n\n const tuple = `${byte1.toString(16).padStart(2, '0')}${byte2.toString(16).padStart(2, '0')}`\n\n result.push(tuple)\n }\n\n const ip = result.join(':')\n\n try {\n const url = new URL(`http://[${ip}]`)\n\n return url.hostname.substring(1, url.hostname.length - 1)\n } catch {\n throw new InvalidMultiaddrError(`Invalid IPv6 address \"${ip}\"`)\n }\n}\n\nexport function ip6StringToValue (str: string): string {\n try {\n const url = new URL(`http://[${str}]`)\n\n return url.hostname.substring(1, url.hostname.length - 1)\n } catch {\n throw new InvalidMultiaddrError(`Invalid IPv6 address \"${str}\"`)\n }\n}\n\nconst decoders = Object.values(bases).map((c) => c.decoder)\nconst anybaseDecoder = (function () {\n let acc = decoders[0].or(decoders[1])\n decoders.slice(2).forEach((d) => (acc = acc.or(d)))\n return acc\n})()\n\nexport function mb2bytes (mbstr: string): Uint8Array {\n return anybaseDecoder.decode(mbstr)\n}\n\nexport function bytes2mb (base: MultibaseCodec<any>): (buf: Uint8Array) => string {\n return (buf) => {\n return base.encoder.encode(buf)\n }\n}\n", "import { ValidationError } from './errors.ts'\n\nexport function integer (value: string): void {\n const int = parseInt(value)\n\n if (int.toString() !== value) {\n throw new ValidationError('Value must be an integer')\n }\n}\n\nexport function positive (value: any): void {\n if (value < 0) {\n throw new ValidationError('Value must be a positive integer, or zero')\n }\n}\n\nexport function maxValue (max: number): (value: any) => void {\n return (value) => {\n if (value > max) {\n throw new ValidationError(`Value must be smaller than or equal to ${max}`)\n }\n }\n}\n\nexport function validate (...funcs: Array<(value: string) => void>): (value: string) => void {\n return (value) => {\n for (const fn of funcs) {\n fn(value)\n }\n }\n}\n\nexport const validatePort = validate(\n integer,\n positive,\n maxValue(65_535)\n)\n", "import { isIPv4, isIPv6 } from '@chainsafe/is-ip'\nimport { CID } from 'multiformats'\nimport { base64url } from 'multiformats/bases/base64'\nimport { CODE_CERTHASH, CODE_DCCP, CODE_DNS, CODE_DNS4, CODE_DNS6, CODE_DNSADDR, CODE_GARLIC32, CODE_GARLIC64, CODE_HTTP, CODE_HTTP_PATH, CODE_HTTPS, CODE_IP4, CODE_IP6, CODE_IP6ZONE, CODE_IPCIDR, CODE_MEMORY, CODE_NOISE, CODE_ONION, CODE_ONION3, CODE_P2P, CODE_P2P_CIRCUIT, CODE_P2P_STARDUST, CODE_P2P_WEBRTC_DIRECT, CODE_P2P_WEBRTC_STAR, CODE_P2P_WEBSOCKET_STAR, CODE_QUIC, CODE_QUIC_V1, CODE_SCTP, CODE_SNI, CODE_TCP, CODE_TLS, CODE_UDP, CODE_UDT, CODE_UNIX, CODE_UTP, CODE_WEBRTC, CODE_WEBRTC_DIRECT, CODE_WEBTRANSPORT, CODE_WS, CODE_WSS } from './constants.ts'\nimport { UnknownProtocolError, ValidationError } from './errors.ts'\nimport { bytes2mb, bytes2onion, bytes2port, bytesToString, ip4ToBytes, ip4ToString, ip6StringToValue, ip6ToBytes, ip6ToString, mb2bytes, onion2bytes, onion32bytes, port2bytes, stringToBytes } from './utils.ts'\nimport { validatePort } from './validation.ts'\nimport type { Registry as RegistryInterface } from './index.ts'\n\nexport const V = -1\n\nexport interface ProtocolCodec {\n /**\n * A numeric code that will be used in the binary representation of the tuple.\n */\n code: number\n\n /**\n * A string name that will be used in the string representation of the addr.\n */\n name: string\n\n /**\n * Size defines the expected length of the address part of the tuple - valid\n * values are `-1` (or the `V` constant) for variable length (this will be\n * varint encoded in the binary representation), `0` for no address part or a\n * number that represents a fixed-length address.\n */\n size?: number\n\n /**\n * If specified this protocol codec will also be used to decode tuples with\n * these names from string multiaddrs.\n */\n aliases?: string[]\n\n /**\n * Where the multiaddr has been encoded as a string, decode the value if\n * necessary, unescaping any escaped values\n */\n stringToValue?(value: string): string\n\n /**\n * To encode the multiaddr as a string, escape any necessary values\n */\n valueToString?(value: string): string\n\n /**\n * To encode the multiaddr as bytes, convert the value to bytes\n */\n valueToBytes?(value: string): Uint8Array\n\n /**\n * To decode bytes to a multiaddr, convert the value bytes to a string\n */\n bytesToValue?(bytes: Uint8Array): string\n\n /**\n * Perform any necessary validation on the string value\n */\n validate?(value: string): void\n}\n\nclass Registry implements RegistryInterface {\n private protocolsByCode = new Map<number, ProtocolCodec>()\n private protocolsByName = new Map<string, ProtocolCodec>()\n\n getProtocol (key: string | number): ProtocolCodec {\n let codec: ProtocolCodec | undefined\n\n if (typeof key === 'string') {\n codec = this.protocolsByName.get(key)\n } else {\n codec = this.protocolsByCode.get(key)\n }\n\n if (codec == null) {\n throw new UnknownProtocolError(`Protocol ${key} was unknown`)\n }\n\n return codec\n }\n\n addProtocol (codec: ProtocolCodec): void {\n this.protocolsByCode.set(codec.code, codec)\n this.protocolsByName.set(codec.name, codec)\n\n codec.aliases?.forEach(alias => {\n this.protocolsByName.set(alias, codec)\n })\n }\n\n removeProtocol (code: number): void {\n const codec = this.protocolsByCode.get(code)\n\n if (codec == null) {\n return\n }\n\n this.protocolsByCode.delete(codec.code)\n this.protocolsByName.delete(codec.name)\n\n codec.aliases?.forEach(alias => {\n this.protocolsByName.delete(alias)\n })\n }\n}\n\nexport const registry = new Registry()\n\nconst codecs: ProtocolCodec[] = [{\n code: CODE_IP4,\n name: 'ip4',\n size: 32,\n valueToBytes: ip4ToBytes,\n bytesToValue: ip4ToString,\n validate: (value) => {\n if (!isIPv4(value)) {\n throw new ValidationError(`Invalid IPv4 address \"${value}\"`)\n }\n }\n}, {\n code: CODE_TCP,\n name: 'tcp',\n size: 16,\n valueToBytes: port2bytes,\n bytesToValue: bytes2port,\n validate: validatePort\n}, {\n code: CODE_UDP,\n name: 'udp',\n size: 16,\n valueToBytes: port2bytes,\n bytesToValue: bytes2port,\n validate: validatePort\n}, {\n code: CODE_DCCP,\n name: 'dccp',\n size: 16,\n valueToBytes: port2bytes,\n bytesToValue: bytes2port,\n validate: validatePort\n}, {\n code: CODE_IP6,\n name: 'ip6',\n size: 128,\n valueToBytes: ip6ToBytes,\n bytesToValue: ip6ToString,\n stringToValue: ip6StringToValue,\n validate: (value) => {\n if (!isIPv6(value)) {\n throw new ValidationError(`Invalid IPv6 address \"${value}\"`)\n }\n }\n}, {\n code: CODE_IP6ZONE,\n name: 'ip6zone',\n size: V\n}, {\n code: CODE_IPCIDR,\n name: 'ipcidr',\n size: 8,\n bytesToValue: bytesToString('base10'),\n valueToBytes: stringToBytes('base10')\n}, {\n code: CODE_DNS,\n name: 'dns',\n size: V\n}, {\n code: CODE_DNS4,\n name: 'dns4',\n size: V\n}, {\n code: CODE_DNS6,\n name: 'dns6',\n size: V\n}, {\n code: CODE_DNSADDR,\n name: 'dnsaddr',\n size: V\n}, {\n code: CODE_SCTP,\n name: 'sctp',\n size: 16,\n valueToBytes: port2bytes,\n bytesToValue: bytes2port,\n validate: validatePort\n}, {\n code: CODE_UDT,\n name: 'udt'\n}, {\n code: CODE_UTP,\n name: 'utp'\n}, {\n code: CODE_UNIX,\n name: 'unix',\n size: V,\n stringToValue: (str) => decodeURIComponent(str),\n valueToString: (val) => encodeURIComponent(val)\n}, {\n code: CODE_P2P,\n name: 'p2p',\n aliases: ['ipfs'],\n size: V,\n bytesToValue: bytesToString('base58btc'),\n valueToBytes: (val) => {\n if (val.startsWith('Q') || val.startsWith('1')) {\n return stringToBytes('base58btc')(val)\n }\n\n return CID.parse(val).multihash.bytes\n }\n}, {\n code: CODE_ONION,\n name: 'onion',\n size: 96,\n bytesToValue: bytes2onion,\n valueToBytes: onion2bytes\n}, {\n code: CODE_ONION3,\n name: 'onion3',\n size: 296,\n bytesToValue: bytes2onion,\n valueToBytes: onion32bytes\n}, {\n code: CODE_GARLIC64,\n name: 'garlic64',\n size: V\n}, {\n code: CODE_GARLIC32,\n name: 'garlic32',\n size: V\n}, {\n code: CODE_TLS,\n name: 'tls'\n}, {\n code: CODE_SNI,\n name: 'sni',\n size: V\n}, {\n code: CODE_NOISE,\n name: 'noise'\n}, {\n code: CODE_QUIC,\n name: 'quic'\n}, {\n code: CODE_QUIC_V1,\n name: 'quic-v1'\n}, {\n code: CODE_WEBTRANSPORT,\n name: 'webtransport'\n}, {\n code: CODE_CERTHASH,\n name: 'certhash',\n size: V,\n bytesToValue: bytes2mb(base64url),\n valueToBytes: mb2bytes\n}, {\n code: CODE_HTTP,\n name: 'http'\n}, {\n code: CODE_HTTP_PATH,\n name: 'http-path',\n size: V,\n stringToValue: (str) => `/${decodeURIComponent(str)}`,\n valueToString: (val) => encodeURIComponent(val.substring(1))\n}, {\n code: CODE_HTTPS,\n name: 'https'\n}, {\n code: CODE_WS,\n name: 'ws'\n}, {\n code: CODE_WSS,\n name: 'wss'\n}, {\n code: CODE_P2P_WEBSOCKET_STAR,\n name: 'p2p-websocket-star'\n}, {\n code: CODE_P2P_STARDUST,\n name: 'p2p-stardust'\n}, {\n code: CODE_P2P_WEBRTC_STAR,\n name: 'p2p-webrtc-star'\n}, {\n code: CODE_P2P_WEBRTC_DIRECT,\n name: 'p2p-webrtc-direct'\n}, {\n code: CODE_WEBRTC_DIRECT,\n name: 'webrtc-direct'\n}, {\n code: CODE_WEBRTC,\n name: 'webrtc'\n}, {\n code: CODE_P2P_CIRCUIT,\n name: 'p2p-circuit'\n}, {\n code: CODE_MEMORY,\n name: 'memory',\n size: V\n}]\n\ncodecs.forEach(codec => {\n registry.addProtocol(codec)\n})\n", "import * as varint from 'uint8-varint'\nimport { concat as uint8ArrayConcat } from 'uint8arrays/concat'\nimport { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'\nimport { toString as uint8ArrayToString } from 'uint8arrays/to-string'\nimport { InvalidMultiaddrError } from './errors.ts'\nimport { registry, V } from './registry.ts'\nimport type { Component } from './index.js'\nimport type { ProtocolCodec } from './registry.ts'\n\nexport function bytesToComponents (bytes: Uint8Array): Component[] {\n const components: Component[] = []\n\n let i = 0\n while (i < bytes.length) {\n const code = varint.decode(bytes, i)\n const codec = registry.getProtocol(code)\n const codeLength = varint.encodingLength(code)\n const size = sizeForAddr(codec, bytes, i + codeLength)\n let sizeLength = 0\n\n if (size > 0 && codec.size === V) {\n sizeLength = varint.encodingLength(size)\n }\n\n const componentLength = codeLength + sizeLength + size\n\n const component: Component = {\n code,\n name: codec.name,\n bytes: bytes.subarray(i, i + componentLength)\n }\n\n if (size > 0) {\n const valueOffset = i + codeLength + sizeLength\n const valueBytes = bytes.subarray(valueOffset, valueOffset + size)\n\n component.value = codec.bytesToValue?.(valueBytes) ?? uint8ArrayToString(valueBytes)\n }\n\n components.push(component)\n\n i += componentLength\n }\n\n return components\n}\n\nexport function componentsToBytes (components: Component[]): Uint8Array {\n let length = 0\n const bytes: Uint8Array[] = []\n\n for (const component of components) {\n if (component.bytes == null) {\n const codec = registry.getProtocol(component.code)\n const codecLength = varint.encodingLength(component.code)\n let valueBytes: Uint8Array | undefined\n let valueLength = 0\n let valueLengthLength = 0\n\n if (component.value != null) {\n valueBytes = codec.valueToBytes?.(component.value) ?? uint8ArrayFromString(component.value)\n valueLength = valueBytes.byteLength\n\n if (codec.size === V) {\n valueLengthLength = varint.encodingLength(valueLength)\n }\n }\n\n const bytes = new Uint8Array(codecLength + valueLengthLength + valueLength)\n\n // encode the protocol code\n let offset = 0\n varint.encodeUint8Array(component.code, bytes, offset)\n offset += codecLength\n\n // if there is a value\n if (valueBytes != null) {\n // if the value has variable length, encode the length\n if (codec.size === V) {\n varint.encodeUint8Array(valueLength, bytes, offset)\n offset += valueLengthLength\n }\n\n // finally encode the value\n bytes.set(valueBytes, offset)\n }\n\n component.bytes = bytes\n }\n\n bytes.push(component.bytes)\n length += component.bytes.byteLength\n }\n\n return uint8ArrayConcat(bytes, length)\n}\n\nexport function stringToComponents (string: string): Component[] {\n if (string.charAt(0) !== '/') {\n throw new InvalidMultiaddrError('String multiaddr must start with \"/\"')\n }\n\n const components: Component[] = []\n let collecting: 'protocol' | 'value' = 'protocol'\n let value = ''\n let protocol = ''\n\n for (let i = 1; i < string.length; i++) {\n const char = string.charAt(i)\n\n if (char !== '/') {\n if (collecting === 'protocol') {\n protocol += string.charAt(i)\n } else {\n value += string.charAt(i)\n }\n }\n\n const ended = i === string.length - 1\n\n if (char === '/' || ended) {\n const codec = registry.getProtocol(protocol)\n\n if (collecting === 'protocol') {\n if (codec.size == null || codec.size === 0) {\n // a protocol without an address, eg. `/tls`\n components.push({\n code: codec.code,\n name: codec.name\n })\n\n value = ''\n protocol = ''\n collecting = 'protocol'\n\n continue\n } else if (ended) {\n throw new InvalidMultiaddrError(`Component ${protocol} was missing value`)\n }\n\n // continue collecting value\n collecting = 'value'\n } else if (collecting === 'value') {\n const component: Component = {\n code: codec.code,\n name: codec.name\n }\n\n if (codec.size != null && codec.size !== 0) {\n if (value === '') {\n throw new InvalidMultiaddrError(`Component ${protocol} was missing value`)\n }\n\n component.value = codec.stringToValue?.(value) ?? value\n }\n\n components.push(component)\n\n value = ''\n protocol = ''\n collecting = 'protocol'\n }\n }\n }\n\n if (protocol !== '' && value !== '') {\n throw new InvalidMultiaddrError('Incomplete multiaddr')\n }\n\n return components\n}\n\nexport function componentsToString (components: Component[]): string {\n return `/${components.flatMap(component => {\n if (component.value == null) {\n return component.name\n }\n\n const codec = registry.getProtocol(component.code)\n\n if (codec == null) {\n throw new InvalidMultiaddrError(`Unknown protocol code ${component.code}`)\n }\n\n return [\n component.name,\n codec.valueToString?.(component.value) ?? component.value\n ]\n }).join('/')}`\n}\n\n/**\n * For the passed address, return the serialized size\n */\nfunction sizeForAddr (codec: ProtocolCodec, bytes: Uint8Array, offset: number): number {\n if (codec.size == null || codec.size === 0) {\n return 0\n }\n\n if (codec.size > 0) {\n return codec.size / 8\n }\n\n return varint.decode(bytes, offset)\n}\n", "import { equals as uint8ArrayEquals } from 'uint8arrays/equals'\nimport { bytesToComponents, componentsToBytes, componentsToString, stringToComponents } from './components.js'\nimport { InvalidMultiaddrError, InvalidParametersError } from './errors.ts'\nimport { registry } from './registry.ts'\nimport { isMultiaddr } from './index.js'\nimport type { MultiaddrInput, Multiaddr as MultiaddrInterface, Component } from './index.js'\n\nconst inspect = Symbol.for('nodejs.util.inspect.custom')\nexport const symbol = Symbol.for('@multiformats/multiaddr')\n\nfunction toComponents (addr: MultiaddrInput): Component[] {\n if (addr == null) {\n addr = '/'\n }\n\n if (isMultiaddr(addr)) {\n return addr.getComponents()\n }\n\n if (addr instanceof Uint8Array) {\n return bytesToComponents(addr)\n }\n\n if (typeof addr === 'string') {\n addr = addr\n .replace(/\\/(\\/)+/, '/')\n .replace(/(\\/)+$/, '')\n\n if (addr === '') {\n addr = '/'\n }\n\n return stringToComponents(addr)\n }\n\n if (Array.isArray(addr)) {\n return addr\n }\n\n throw new InvalidMultiaddrError('Must be a string, Uint8Array, Component[], or another Multiaddr')\n}\n\ninterface MultiaddrOptions {\n validate?: boolean\n}\n\n/**\n * Creates a {@link Multiaddr} from a {@link MultiaddrInput}\n */\nexport class Multiaddr implements MultiaddrInterface {\n [symbol]: boolean = true\n readonly #components: Component[]\n\n // cache string representation\n #string: string | undefined\n // cache byte representation\n #bytes: Uint8Array | undefined\n\n constructor (addr: MultiaddrInput | Component[] = '/', options: MultiaddrOptions = {}) {\n this.#components = toComponents(addr)\n\n if (options.validate !== false) {\n validate(this)\n }\n }\n\n get bytes (): Uint8Array {\n if (this.#bytes == null) {\n this.#bytes = componentsToBytes(this.#components)\n }\n\n return this.#bytes\n }\n\n toString (): string {\n if (this.#string == null) {\n this.#string = componentsToString(this.#components)\n }\n\n return this.#string\n }\n\n toJSON (): string {\n return this.toString()\n }\n\n getComponents (): Component[] {\n return [\n ...this.#components.map(c => ({ ...c }))\n ]\n }\n\n encapsulate (addr: MultiaddrInput): MultiaddrInterface {\n const ma = new Multiaddr(addr)\n\n return new Multiaddr([\n ...this.#components,\n ...ma.getComponents()\n ], {\n validate: false\n })\n }\n\n decapsulate (addr: Multiaddr | string): MultiaddrInterface {\n const addrString = addr.toString()\n const s = this.toString()\n const i = s.lastIndexOf(addrString)\n\n if (i < 0) {\n throw new InvalidParametersError(`Address ${this.toString()} does not contain subaddress: ${addrString}`)\n }\n\n return new Multiaddr(s.slice(0, i), {\n validate: false\n })\n }\n\n decapsulateCode (code: number): Multiaddr {\n let index\n\n for (let i = this.#components.length - 1; i > -1; i--) {\n if (this.#components[i].code === code) {\n index = i\n break\n }\n }\n\n return new Multiaddr(this.#components.slice(0, index), {\n validate: false\n })\n }\n\n equals (addr: { bytes: Uint8Array }): boolean {\n return uint8ArrayEquals(this.bytes, addr.bytes)\n }\n\n /**\n * Returns Multiaddr as a human-readable string\n * https://nodejs.org/api/util.html#utilinspectcustom\n *\n * @example\n * ```js\n * import { multiaddr } from '@multiformats/multiaddr'\n *\n * console.info(multiaddr('/ip4/127.0.0.1/tcp/4001'))\n * // 'Multiaddr(/ip4/127.0.0.1/tcp/4001)'\n * ```\n */\n [inspect] (): string {\n return `Multiaddr(${this.toString()})`\n }\n}\n\n/**\n * Ensures all multiaddr tuples are correct. Throws if any invalid protocols or\n * values are encountered.\n */\nexport function validate (addr: Multiaddr): void {\n addr.getComponents()\n .forEach(component => {\n const codec = registry.getProtocol(component.code)\n\n if (component.value == null) {\n return\n }\n\n codec.validate?.(component.value)\n })\n}\n", "/**\n * @packageDocumentation\n *\n * A standard way to represent addresses that\n *\n * - support any standard network protocol\n * - have a binary packed format\n * - have a nice string representation\n * - encapsulate well\n *\n * @example\n *\n * ```TypeScript\n * import { multiaddr } from '@multiformats/multiaddr'\n *\n * const addr = multiaddr('/ip4/127.0.0.1/udp/1234')\n * // Multiaddr(/ip4/127.0.0.1/udp/1234)\n *\n * addr.bytes\n * // <Uint8Array 04 7f 00 00 01 11 04 d2>\n *\n * addr.toString()\n * // '/ip4/127.0.0.1/udp/1234'\n *\n * addr.getComponents()\n * // [\n * // { code: 4, name: 'ip4', value: '127.0.0.1' },\n * // { code: 273, name: 'udp', value: '1234' }\n * // ]\n *\n * addr.encapsulate('/sctp/5678')\n * // Multiaddr(/ip4/127.0.0.1/udp/1234/sctp/5678)\n * ```\n *\n * @example Adding custom protocols\n *\n * To add application-specific or experimental protocols, add a protocol codec\n * to the protocol registry:\n *\n * ```ts\n * import { registry, V, multiaddr } from '@multiformats/multiaddr'\n * import type { ProtocolCodec } from '@multiformats/multiaddr'\n *\n * const maWithCustomTuple = '/custom-protocol/hello'\n *\n * // throws UnknownProtocolError\n * multiaddr(maWithCustomTuple)\n *\n * const protocol: ProtocolCodec = {\n * code: 2059,\n * name: 'custom-protocol',\n * size: V\n * // V means variable length, can also be 0, a positive integer (e.g. a fixed\n * // length or omitted\n * }\n *\n * registry.addProtocol(protocol)\n *\n * // does not throw UnknownProtocolError\n * multiaddr(maWithCustomTuple)\n *\n * // protocols can also be removed\n * registry.removeProtocol(protocol.code)\n * ```\n */\n\nimport { Multiaddr as MultiaddrClass, symbol } from './multiaddr.js'\nimport { registry, V } from './registry.ts'\nimport type { ProtocolCodec } from './registry.ts'\n\n/**\n * The protocol registry stores protocol codecs that allow transformation of\n * multiaddr tuples from bytes to string and back again, and also validation of\n * the address values.\n */\nexport interface Registry {\n /**\n * Retrieve a protocol definition by it's code or name\n */\n getProtocol (key: string | number): ProtocolCodec\n\n /**\n * Add a new protocol definition\n */\n addProtocol (codec: ProtocolCodec): void\n\n /**\n * Remove a protocol definition by it's code\n */\n removeProtocol (code: number): void\n}\n\n/**\n * These types can be parsed into a {@link Multiaddr} object\n */\nexport type MultiaddrInput = string | Multiaddr | Uint8Array | null | Component[]\n\n/**\n * A Component is a section of a multiaddr with a name/code, possibly with a\n * value.\n *\n * Component names/codes are defined in the protocol table.\n *\n * @see https://github.com/multiformats/multiaddr/blob/master/protocols.csv\n */\nexport interface Component {\n /**\n * The code of the component as defined in the protocol table\n */\n code: number\n\n /**\n * The name of the component as defined in the protocol table\n */\n name: string\n\n /**\n * The component value, if one is present\n */\n value?: string\n\n /**\n * The bytes that make up the component. This will be set if the multiaddr\n * was parsed from a `Uint8Array`, or if `.bytes` has been accessed on it.\n */\n bytes?: Uint8Array\n}\n\nexport interface Multiaddr {\n bytes: Uint8Array\n\n /**\n * Returns Multiaddr as a String\n *\n * @example\n * ```js\n * import { multiaddr } from '@multiformats/multiaddr'\n *\n * multiaddr('/ip4/127.0.0.1/tcp/4001').toString()\n * // '/ip4/127.0.0.1/tcp/4001'\n * ```\n */\n toString(): string\n\n /**\n * Returns Multiaddr as a JSON encoded object\n *\n * @example\n * ```js\n * import { multiaddr } from '@multiformats/multiaddr'\n *\n * JSON.stringify(multiaddr('/ip4/127.0.0.1/tcp/4001'))\n * // '/ip4/127.0.0.1/tcp/4001'\n * ```\n */\n toJSON(): string\n\n /**\n * Returns the components that make up this Multiaddr\n *\n * @example\n * ```ts\n * import { multiaddr } from '@multiformats/multiaddr'\n *\n * multiaddr('/ip4/127.0.0.1/tcp/4001').getComponents()\n * // [{ name: 'ip4', code: 4, value: '127.0.0.1' }, { name: 'tcp', code: 6, value: '4001' }]\n * ```\n */\n getComponents(): Component[]\n\n /**\n * Encapsulates a Multiaddr in another Multiaddr\n *\n * @example\n * ```js\n * import { multiaddr } from '@multiformats/multiaddr'\n *\n * const mh1 = multiaddr('/ip4/8.8.8.8/tcp/1080')\n * // Multiaddr(/ip4/8.8.8.8/tcp/1080)\n *\n * const mh2 = multiaddr('/ip4/127.0.0.1/tcp/4001')\n * // Multiaddr(/ip4/127.0.0.1/tcp/4001)\n *\n * const mh3 = mh1.encapsulate(mh2)\n * // Multiaddr(/ip4/8.8.8.8/tcp/1080/ip4/127.0.0.1/tcp/4001)\n *\n * mh3.toString()\n * // '/ip4/8.8.8.8/tcp/1080/ip4/127.0.0.1/tcp/4001'\n * ```\n *\n * @param {MultiaddrInput} addr - Multiaddr to add into this Multiaddr\n */\n encapsulate(addr: MultiaddrInput): Multiaddr\n\n /**\n * Decapsulates a Multiaddr from another Multiaddr\n *\n * @example\n * ```js\n * import { multiaddr } from '@multiformats/multiaddr'\n *\n * const mh1 = multiaddr('/ip4/8.8.8.8/tcp/1080')\n * // Multiaddr(/ip4/8.8.8.8/tcp/1080)\n *\n * const mh2 = multiaddr('/ip4/127.0.0.1/tcp/4001')\n * // Multiaddr(/ip4/127.0.0.1/tcp/4001)\n *\n * const mh3 = mh1.encapsulate(mh2)\n * // Multiaddr(/ip4/8.8.8.8/tcp/1080/ip4/127.0.0.1/tcp/4001)\n *\n * mh3.decapsulate(mh2).toString()\n * // '/ip4/8.8.8.8/tcp/1080'\n * ```\n *\n * @param {Multiaddr | string} addr - Multiaddr to remove from this Multiaddr\n */\n decapsulate(addr: Multiaddr | string): Multiaddr\n\n /**\n * A more reliable version of `decapsulate` if you are targeting a specific\n * code, such as 421 (the `p2p` protocol code). The last index of the code\n * will be removed from the `Multiaddr`, and a new instance will be returned.\n * If the code is not present, the original `Multiaddr` is returned.\n *\n * @example\n * ```js\n * import { multiaddr } from '@multiformats/multiaddr'\n *\n * const addr = multiaddr('/ip4/0.0.0.0/tcp/8080/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC')\n * // Multiaddr(/ip4/0.0.0.0/tcp/8080/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSupNKC)\n *\n * addr.decapsulateCode(421).toString()\n * // '/ip4/0.0.0.0/tcp/8080'\n *\n * multiaddr('/ip4/127.0.0.1/tcp/8080').decapsulateCode(421).toString()\n * // '/ip4/127.0.0.1/tcp/8080'\n * ```\n */\n decapsulateCode(code: number): Multiaddr\n\n /**\n * Checks if two Multiaddrs are the same\n *\n * @example\n * ```js\n * import { multiaddr } from '@multiformats/multiaddr'\n *\n * const mh1 = multiaddr('/ip4/8.8.8.8/tcp/1080')\n * // Multiaddr(/ip4/8.8.8.8/tcp/1080)\n *\n * const mh2 = multiaddr('/ip4/127.0.0.1/tcp/4001')\n * // Multiaddr(/ip4/127.0.0.1/tcp/4001)\n *\n * mh1.equals(mh1)\n * // true\n *\n * mh1.equals(mh2)\n * // false\n * ```\n */\n equals(addr: { bytes: Uint8Array }): boolean\n}\n\n/**\n * Check if object is a {@link Multiaddr} instance\n *\n * @example\n *\n * ```js\n * import { isMultiaddr, multiaddr } from '@multiformats/multiaddr'\n *\n * isMultiaddr(5)\n * // false\n * isMultiaddr(multiaddr('/ip4/127.0.0.1'))\n * // true\n * ```\n */\nexport function isMultiaddr (value: any): value is Multiaddr {\n return Boolean(value?.[symbol])\n}\n\n/**\n * A function that takes a {@link MultiaddrInput} and returns a {@link Multiaddr}\n *\n * @example\n * ```js\n * import { multiaddr } from '@libp2p/multiaddr'\n *\n * multiaddr('/ip4/127.0.0.1/tcp/4001')\n * // Multiaddr(/ip4/127.0.0.1/tcp/4001)\n * ```\n *\n * @param {MultiaddrInput} [addr] - If String or Uint8Array, needs to adhere to the address format of a [multiaddr](https://github.com/multiformats/multiaddr#string-format)\n */\nexport function multiaddr (addr?: MultiaddrInput): Multiaddr {\n return new MultiaddrClass(addr)\n}\n\n/**\n * Export all table.csv codes. These are all named exports so can be tree-shaken\n * out by bundlers.\n */\nexport * from './constants.ts'\nexport { registry, V }\nexport type { ProtocolCodec }\n", "import {createRequire} from 'module';\nimport path from 'path';\nimport process from 'process';\nimport {fileURLToPath} from 'url';\n\n/**\n * Strip the extension from a filename if it has one.\n * @param {string} name A filename.\n * @return {string} The filename without a path.\n */\nexport function stripExt(name) {\n const extension = path.extname(name);\n if (!extension) {\n return name;\n }\n\n return name.slice(0, -extension.length);\n}\n\n/**\n * Check if a module was run directly with node as opposed to being\n * imported from another module.\n * @param {ImportMeta} meta The `import.meta` object.\n * @return {boolean} The module was run directly with node.\n */\nexport default function esMain(meta) {\n if (!meta) {\n return false;\n }\n if ('main' in meta) {\n return !!meta.main;\n }\n if (!process.argv[1]) {\n return false;\n }\n\n const require = createRequire(meta.url);\n const scriptPath = require.resolve(process.argv[1]);\n\n const modulePath = fileURLToPath(meta.url);\n\n const extension = path.extname(scriptPath);\n if (extension) {\n return modulePath === scriptPath;\n }\n\n return stripExt(modulePath) === scriptPath;\n}\n", "'use strict'\n\nimport { notStrictEqual, strictEqual } from 'assert'\nimport cliui from 'cliui'\nimport escalade from 'escalade/sync'\nimport { inspect } from 'util'\nimport { fileURLToPath } from 'url';\nimport Parser from 'yargs-parser'\nimport { basename, dirname, extname, relative, resolve, join } from 'path'\nimport { getProcessArgvBin } from '../../build/lib/utils/process-argv.js'\nimport stringWidth from 'string-width';\nimport y18n from 'y18n'\nimport { createRequire } from 'node:module';\nimport getCallerFile from 'get-caller-file';\nimport { readFileSync, readdirSync } from 'node:fs'\n\nconst __dirname = fileURLToPath(import.meta.url);\nconst mainFilename = __dirname.substring(0, __dirname.lastIndexOf('node_modules'));\nconst require = createRequire(import.meta.url);\n\nexport default {\n assert: {\n notStrictEqual,\n strictEqual\n },\n cliui,\n findUp: escalade,\n getEnv: (key) => {\n return process.env[key]\n },\n inspect,\n getProcessArgvBin,\n mainFilename: mainFilename || process.cwd(),\n Parser,\n path: {\n basename,\n dirname,\n extname,\n relative,\n resolve,\n join\n },\n process: {\n argv: () => process.argv,\n cwd: process.cwd,\n emitWarning: (warning, type) => process.emitWarning(warning, type),\n execPath: () => process.execPath,\n exit: (code) => {\n // eslint-disable-next-line n/no-process-exit\n process.exit(code);\n },\n nextTick: process.nextTick,\n stdColumns: typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null\n },\n readFileSync,\n readdirSync,\n require,\n getCallerFile: () => {\n const callerFile = getCallerFile(3);\n return callerFile.match(/^file:\\/\\//) ? fileURLToPath(callerFile) : callerFile;\n },\n stringWidth,\n y18n: y18n({\n directory: resolve(__dirname, '../../../locales'),\n updateFiles: false\n })\n}\n", "'use strict';\nconst align = {\n right: alignRight,\n center: alignCenter\n};\nconst top = 0;\nconst right = 1;\nconst bottom = 2;\nconst left = 3;\nexport class UI {\n constructor(opts) {\n var _a;\n this.width = opts.width;\n this.wrap = (_a = opts.wrap) !== null && _a !== void 0 ? _a : true;\n this.rows = [];\n }\n span(...args) {\n const cols = this.div(...args);\n cols.span = true;\n }\n resetOutput() {\n this.rows = [];\n }\n div(...args) {\n if (args.length === 0) {\n this.div('');\n }\n if (this.wrap && this.shouldApplyLayoutDSL(...args) && typeof args[0] === 'string') {\n return this.applyLayoutDSL(args[0]);\n }\n const cols = args.map(arg => {\n if (typeof arg === 'string') {\n return this.colFromString(arg);\n }\n return arg;\n });\n this.rows.push(cols);\n return cols;\n }\n shouldApplyLayoutDSL(...args) {\n return args.length === 1 && typeof args[0] === 'string' &&\n /[\\t\\n]/.test(args[0]);\n }\n applyLayoutDSL(str) {\n const rows = str.split('\\n').map(row => row.split('\\t'));\n let leftColumnWidth = 0;\n // simple heuristic for layout, make sure the\n // second column lines up along the left-hand.\n // don't allow the first column to take up more\n // than 50% of the screen.\n rows.forEach(columns => {\n if (columns.length > 1 && mixin.stringWidth(columns[0]) > leftColumnWidth) {\n leftColumnWidth = Math.min(Math.floor(this.width * 0.5), mixin.stringWidth(columns[0]));\n }\n });\n // generate a table:\n // replacing ' ' with padding calculations.\n // using the algorithmically generated width.\n rows.forEach(columns => {\n this.div(...columns.map((r, i) => {\n return {\n text: r.trim(),\n padding: this.measurePadding(r),\n width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined\n };\n }));\n });\n return this.rows[this.rows.length - 1];\n }\n colFromString(text) {\n return {\n text,\n padding: this.measurePadding(text)\n };\n }\n measurePadding(str) {\n // measure padding without ansi escape codes\n const noAnsi = mixin.stripAnsi(str);\n return [0, noAnsi.match(/\\s*$/)[0].length, 0, noAnsi.match(/^\\s*/)[0].length];\n }\n toString() {\n const lines = [];\n this.rows.forEach(row => {\n this.rowToString(row, lines);\n });\n // don't display any lines with the\n // hidden flag set.\n return lines\n .filter(line => !line.hidden)\n .map(line => line.text)\n .join('\\n');\n }\n rowToString(row, lines) {\n this.rasterize(row).forEach((rrow, r) => {\n let str = '';\n rrow.forEach((col, c) => {\n const { width } = row[c]; // the width with padding.\n const wrapWidth = this.negatePadding(row[c]); // the width without padding.\n let ts = col; // temporary string used during alignment/padding.\n if (wrapWidth > mixin.stringWidth(col)) {\n ts += ' '.repeat(wrapWidth - mixin.stringWidth(col));\n }\n // align the string within its column.\n if (row[c].align && row[c].align !== 'left' && this.wrap) {\n const fn = align[row[c].align];\n ts = fn(ts, wrapWidth);\n if (mixin.stringWidth(ts) < wrapWidth) {\n ts += ' '.repeat((width || 0) - mixin.stringWidth(ts) - 1);\n }\n }\n // apply border and padding to string.\n const padding = row[c].padding || [0, 0, 0, 0];\n if (padding[left]) {\n str += ' '.repeat(padding[left]);\n }\n str += addBorder(row[c], ts, '| ');\n str += ts;\n str += addBorder(row[c], ts, ' |');\n if (padding[right]) {\n str += ' '.repeat(padding[right]);\n }\n // if prior row is span, try to render the\n // current row on the prior line.\n if (r === 0 && lines.length > 0) {\n str = this.renderInline(str, lines[lines.length - 1]);\n }\n });\n // remove trailing whitespace.\n lines.push({\n text: str.replace(/ +$/, ''),\n span: row.span\n });\n });\n return lines;\n }\n // if the full 'source' can render in\n // the target line, do so.\n renderInline(source, previousLine) {\n const match = source.match(/^ */);\n const leadingWhitespace = match ? match[0].length : 0;\n const target = previousLine.text;\n const targetTextWidth = mixin.stringWidth(target.trimRight());\n if (!previousLine.span) {\n return source;\n }\n // if we're not applying wrapping logic,\n // just always append to the span.\n if (!this.wrap) {\n previousLine.hidden = true;\n return target + source;\n }\n if (leadingWhitespace < targetTextWidth) {\n return source;\n }\n previousLine.hidden = true;\n return target.trimRight() + ' '.repeat(leadingWhitespace - targetTextWidth) + source.trimLeft();\n }\n rasterize(row) {\n const rrows = [];\n const widths = this.columnWidths(row);\n let wrapped;\n // word wrap all columns, and create\n // a data-structure that is easy to rasterize.\n row.forEach((col, c) => {\n // leave room for left and right padding.\n col.width = widths[c];\n if (this.wrap) {\n wrapped = mixin.wrap(col.text, this.negatePadding(col), { hard: true }).split('\\n');\n }\n else {\n wrapped = col.text.split('\\n');\n }\n if (col.border) {\n wrapped.unshift('.' + '-'.repeat(this.negatePadding(col) + 2) + '.');\n wrapped.push(\"'\" + '-'.repeat(this.negatePadding(col) + 2) + \"'\");\n }\n // add top and bottom padding.\n if (col.padding) {\n wrapped.unshift(...new Array(col.padding[top] || 0).fill(''));\n wrapped.push(...new Array(col.padding[bottom] || 0).fill(''));\n }\n wrapped.forEach((str, r) => {\n if (!rrows[r]) {\n rrows.push([]);\n }\n const rrow = rrows[r];\n for (let i = 0; i < c; i++) {\n if (rrow[i] === undefined) {\n rrow.push('');\n }\n }\n rrow.push(str);\n });\n });\n return rrows;\n }\n negatePadding(col) {\n let wrapWidth = col.width || 0;\n if (col.padding) {\n wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0);\n }\n if (col.border) {\n wrapWidth -= 4;\n }\n return wrapWidth;\n }\n columnWidths(row) {\n if (!this.wrap) {\n return row.map(col => {\n return col.width || mixin.stringWidth(col.text);\n });\n }\n let unset = row.length;\n let remainingWidth = this.width;\n // column widths can be set in config.\n const widths = row.map(col => {\n if (col.width) {\n unset--;\n remainingWidth -= col.width;\n return col.width;\n }\n return undefined;\n });\n // any unset widths should be calculated.\n const unsetWidth = unset ? Math.floor(remainingWidth / unset) : 0;\n return widths.map((w, i) => {\n if (w === undefined) {\n return Math.max(unsetWidth, _minWidth(row[i]));\n }\n return w;\n });\n }\n}\nfunction addBorder(col, ts, style) {\n if (col.border) {\n if (/[.']-+[.']/.test(ts)) {\n return '';\n }\n if (ts.trim().length !== 0) {\n return style;\n }\n return ' ';\n }\n return '';\n}\n// calculates the minimum width of\n// a column, based on padding preferences.\nfunction _minWidth(col) {\n const padding = col.padding || [];\n const minWidth = 1 + (padding[left] || 0) + (padding[right] || 0);\n if (col.border) {\n return minWidth + 4;\n }\n return minWidth;\n}\nfunction getWindowWidth() {\n /* c8 ignore next 5: depends on terminal */\n if (typeof process === 'object' && process.stdout && process.stdout.columns) {\n return process.stdout.columns;\n }\n return 80;\n}\nfunction alignRight(str, width) {\n str = str.trim();\n const strWidth = mixin.stringWidth(str);\n if (strWidth < width) {\n return ' '.repeat(width - strWidth) + str;\n }\n return str;\n}\nfunction alignCenter(str, width) {\n str = str.trim();\n const strWidth = mixin.stringWidth(str);\n /* c8 ignore next 3 */\n if (strWidth >= width) {\n return str;\n }\n return ' '.repeat((width - strWidth) >> 1) + str;\n}\nlet mixin;\nexport function cliui(opts, _mixin) {\n mixin = _mixin;\n return new UI({\n width: (opts === null || opts === void 0 ? void 0 : opts.width) || getWindowWidth(),\n wrap: opts === null || opts === void 0 ? void 0 : opts.wrap\n });\n}\n", "export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\n\t// OSC sequences only: ESC ] ... ST (non-greedy until the first ST)\n\tconst osc = `(?:\\\\u001B\\\\][\\\\s\\\\S]*?${ST})`;\n\n\t// CSI and related: ESC/C1, optional intermediates, optional params (supports ; and :) then final byte\n\tconst csi = '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:\\\\d{1,4}(?:[;:]\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]';\n\n\tconst pattern = `${osc}|${csi}`;\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n", "import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n", "// Generated code.\n\nfunction isAmbiguous(x) {\n\treturn x === 0xA1\n\t\t|| x === 0xA4\n\t\t|| x === 0xA7\n\t\t|| x === 0xA8\n\t\t|| x === 0xAA\n\t\t|| x === 0xAD\n\t\t|| x === 0xAE\n\t\t|| x >= 0xB0 && x <= 0xB4\n\t\t|| x >= 0xB6 && x <= 0xBA\n\t\t|| x >= 0xBC && x <= 0xBF\n\t\t|| x === 0xC6\n\t\t|| x === 0xD0\n\t\t|| x === 0xD7\n\t\t|| x === 0xD8\n\t\t|| x >= 0xDE && x <= 0xE1\n\t\t|| x === 0xE6\n\t\t|| x >= 0xE8 && x <= 0xEA\n\t\t|| x === 0xEC\n\t\t|| x === 0xED\n\t\t|| x === 0xF0\n\t\t|| x === 0xF2\n\t\t|| x === 0xF3\n\t\t|| x >= 0xF7 && x <= 0xFA\n\t\t|| x === 0xFC\n\t\t|| x === 0xFE\n\t\t|| x === 0x101\n\t\t|| x === 0x111\n\t\t|| x === 0x113\n\t\t|| x === 0x11B\n\t\t|| x === 0x126\n\t\t|| x === 0x127\n\t\t|| x === 0x12B\n\t\t|| x >= 0x131 && x <= 0x133\n\t\t|| x === 0x138\n\t\t|| x >= 0x13F && x <= 0x142\n\t\t|| x === 0x144\n\t\t|| x >= 0x148 && x <= 0x14B\n\t\t|| x === 0x14D\n\t\t|| x === 0x152\n\t\t|| x === 0x153\n\t\t|| x === 0x166\n\t\t|| x === 0x167\n\t\t|| x === 0x16B\n\t\t|| x === 0x1CE\n\t\t|| x === 0x1D0\n\t\t|| x === 0x1D2\n\t\t|| x === 0x1D4\n\t\t|| x === 0x1D6\n\t\t|| x === 0x1D8\n\t\t|| x === 0x1DA\n\t\t|| x === 0x1DC\n\t\t|| x === 0x251\n\t\t|| x === 0x261\n\t\t|| x === 0x2C4\n\t\t|| x === 0x2C7\n\t\t|| x >= 0x2C9 && x <= 0x2CB\n\t\t|| x === 0x2CD\n\t\t|| x === 0x2D0\n\t\t|| x >= 0x2D8 && x <= 0x2DB\n\t\t|| x === 0x2DD\n\t\t|| x === 0x2DF\n\t\t|| x >= 0x300 && x <= 0x36F\n\t\t|| x >= 0x391 && x <= 0x3A1\n\t\t|| x >= 0x3A3 && x <= 0x3A9\n\t\t|| x >= 0x3B1 && x <= 0x3C1\n\t\t|| x >= 0x3C3 && x <= 0x3C9\n\t\t|| x === 0x401\n\t\t|| x >= 0x410 && x <= 0x44F\n\t\t|| x === 0x451\n\t\t|| x === 0x2010\n\t\t|| x >= 0x2013 && x <= 0x2016\n\t\t|| x === 0x2018\n\t\t|| x === 0x2019\n\t\t|| x === 0x201C\n\t\t|| x === 0x201D\n\t\t|| x >= 0x2020 && x <= 0x2022\n\t\t|| x >= 0x2024 && x <= 0x2027\n\t\t|| x === 0x2030\n\t\t|| x === 0x2032\n\t\t|| x === 0x2033\n\t\t|| x === 0x2035\n\t\t|| x === 0x203B\n\t\t|| x === 0x203E\n\t\t|| x === 0x2074\n\t\t|| x === 0x207F\n\t\t|| x >= 0x2081 && x <= 0x2084\n\t\t|| x === 0x20AC\n\t\t|| x === 0x2103\n\t\t|| x === 0x2105\n\t\t|| x === 0x2109\n\t\t|| x === 0x2113\n\t\t|| x === 0x2116\n\t\t|| x === 0x2121\n\t\t|| x === 0x2122\n\t\t|| x === 0x2126\n\t\t|| x === 0x212B\n\t\t|| x === 0x2153\n\t\t|| x === 0x2154\n\t\t|| x >= 0x215B && x <= 0x215E\n\t\t|| x >= 0x2160 && x <= 0x216B\n\t\t|| x >= 0x2170 && x <= 0x2179\n\t\t|| x === 0x2189\n\t\t|| x >= 0x2190 && x <= 0x2199\n\t\t|| x === 0x21B8\n\t\t|| x === 0x21B9\n\t\t|| x === 0x21D2\n\t\t|| x === 0x21D4\n\t\t|| x === 0x21E7\n\t\t|| x === 0x2200\n\t\t|| x === 0x2202\n\t\t|| x === 0x2203\n\t\t|| x === 0x2207\n\t\t|| x === 0x2208\n\t\t|| x === 0x220B\n\t\t|| x === 0x220F\n\t\t|| x === 0x2211\n\t\t|| x === 0x2215\n\t\t|| x === 0x221A\n\t\t|| x >= 0x221D && x <= 0x2220\n\t\t|| x === 0x2223\n\t\t|| x === 0x2225\n\t\t|| x >= 0x2227 && x <= 0x222C\n\t\t|| x === 0x222E\n\t\t|| x >= 0x2234 && x <= 0x2237\n\t\t|| x === 0x223C\n\t\t|| x === 0x223D\n\t\t|| x === 0x2248\n\t\t|| x === 0x224C\n\t\t|| x === 0x2252\n\t\t|| x === 0x2260\n\t\t|| x === 0x2261\n\t\t|| x >= 0x2264 && x <= 0x2267\n\t\t|| x === 0x226A\n\t\t|| x === 0x226B\n\t\t|| x === 0x226E\n\t\t|| x === 0x226F\n\t\t|| x === 0x2282\n\t\t|| x === 0x2283\n\t\t|| x === 0x2286\n\t\t|| x === 0x2287\n\t\t|| x === 0x2295\n\t\t|| x === 0x2299\n\t\t|| x === 0x22A5\n\t\t|| x === 0x22BF\n\t\t|| x === 0x2312\n\t\t|| x >= 0x2460 && x <= 0x24E9\n\t\t|| x >= 0x24EB && x <= 0x254B\n\t\t|| x >= 0x2550 && x <= 0x2573\n\t\t|| x >= 0x2580 && x <= 0x258F\n\t\t|| x >= 0x2592 && x <= 0x2595\n\t\t|| x === 0x25A0\n\t\t|| x === 0x25A1\n\t\t|| x >= 0x25A3 && x <= 0x25A9\n\t\t|| x === 0x25B2\n\t\t|| x === 0x25B3\n\t\t|| x === 0x25B6\n\t\t|| x === 0x25B7\n\t\t|| x === 0x25BC\n\t\t|| x === 0x25BD\n\t\t|| x === 0x25C0\n\t\t|| x === 0x25C1\n\t\t|| x >= 0x25C6 && x <= 0x25C8\n\t\t|| x === 0x25CB\n\t\t|| x >= 0x25CE && x <= 0x25D1\n\t\t|| x >= 0x25E2 && x <= 0x25E5\n\t\t|| x === 0x25EF\n\t\t|| x === 0x2605\n\t\t|| x === 0x2606\n\t\t|| x === 0x2609\n\t\t|| x === 0x260E\n\t\t|| x === 0x260F\n\t\t|| x === 0x261C\n\t\t|| x === 0x261E\n\t\t|| x === 0x2640\n\t\t|| x === 0x2642\n\t\t|| x === 0x2660\n\t\t|| x === 0x2661\n\t\t|| x >= 0x2663 && x <= 0x2665\n\t\t|| x >= 0x2667 && x <= 0x266A\n\t\t|| x === 0x266C\n\t\t|| x === 0x266D\n\t\t|| x === 0x266F\n\t\t|| x === 0x269E\n\t\t|| x === 0x269F\n\t\t|| x === 0x26BF\n\t\t|| x >= 0x26C6 && x <= 0x26CD\n\t\t|| x >= 0x26CF && x <= 0x26D3\n\t\t|| x >= 0x26D5 && x <= 0x26E1\n\t\t|| x === 0x26E3\n\t\t|| x === 0x26E8\n\t\t|| x === 0x26E9\n\t\t|| x >= 0x26EB && x <= 0x26F1\n\t\t|| x === 0x26F4\n\t\t|| x >= 0x26F6 && x <= 0x26F9\n\t\t|| x === 0x26FB\n\t\t|| x === 0x26FC\n\t\t|| x === 0x26FE\n\t\t|| x === 0x26FF\n\t\t|| x === 0x273D\n\t\t|| x >= 0x2776 && x <= 0x277F\n\t\t|| x >= 0x2B56 && x <= 0x2B59\n\t\t|| x >= 0x3248 && x <= 0x324F\n\t\t|| x >= 0xE000 && x <= 0xF8FF\n\t\t|| x >= 0xFE00 && x <= 0xFE0F\n\t\t|| x === 0xFFFD\n\t\t|| x >= 0x1F100 && x <= 0x1F10A\n\t\t|| x >= 0x1F110 && x <= 0x1F12D\n\t\t|| x >= 0x1F130 && x <= 0x1F169\n\t\t|| x >= 0x1F170 && x <= 0x1F18D\n\t\t|| x === 0x1F18F\n\t\t|| x === 0x1F190\n\t\t|| x >= 0x1F19B && x <= 0x1F1AC\n\t\t|| x >= 0xE0100 && x <= 0xE01EF\n\t\t|| x >= 0xF0000 && x <= 0xFFFFD\n\t\t|| x >= 0x100000 && x <= 0x10FFFD;\n}\n\nfunction isFullWidth(x) {\n\treturn x === 0x3000\n\t\t|| x >= 0xFF01 && x <= 0xFF60\n\t\t|| x >= 0xFFE0 && x <= 0xFFE6;\n}\n\nfunction isWide(x) {\n\treturn x >= 0x1100 && x <= 0x115F\n\t\t|| x === 0x231A\n\t\t|| x === 0x231B\n\t\t|| x === 0x2329\n\t\t|| x === 0x232A\n\t\t|| x >= 0x23E9 && x <= 0x23EC\n\t\t|| x === 0x23F0\n\t\t|| x === 0x23F3\n\t\t|| x === 0x25FD\n\t\t|| x === 0x25FE\n\t\t|| x === 0x2614\n\t\t|| x === 0x2615\n\t\t|| x >= 0x2630 && x <= 0x2637\n\t\t|| x >= 0x2648 && x <= 0x2653\n\t\t|| x === 0x267F\n\t\t|| x >= 0x268A && x <= 0x268F\n\t\t|| x === 0x2693\n\t\t|| x === 0x26A1\n\t\t|| x === 0x26AA\n\t\t|| x === 0x26AB\n\t\t|| x === 0x26BD\n\t\t|| x === 0x26BE\n\t\t|| x === 0x26C4\n\t\t|| x === 0x26C5\n\t\t|| x === 0x26CE\n\t\t|| x === 0x26D4\n\t\t|| x === 0x26EA\n\t\t|| x === 0x26F2\n\t\t|| x === 0x26F3\n\t\t|| x === 0x26F5\n\t\t|| x === 0x26FA\n\t\t|| x === 0x26FD\n\t\t|| x === 0x2705\n\t\t|| x === 0x270A\n\t\t|| x === 0x270B\n\t\t|| x === 0x2728\n\t\t|| x === 0x274C\n\t\t|| x === 0x274E\n\t\t|| x >= 0x2753 && x <= 0x2755\n\t\t|| x === 0x2757\n\t\t|| x >= 0x2795 && x <= 0x2797\n\t\t|| x === 0x27B0\n\t\t|| x === 0x27BF\n\t\t|| x === 0x2B1B\n\t\t|| x === 0x2B1C\n\t\t|| x === 0x2B50\n\t\t|| x === 0x2B55\n\t\t|| x >= 0x2E80 && x <= 0x2E99\n\t\t|| x >= 0x2E9B && x <= 0x2EF3\n\t\t|| x >= 0x2F00 && x <= 0x2FD5\n\t\t|| x >= 0x2FF0 && x <= 0x2FFF\n\t\t|| x >= 0x3001 && x <= 0x303E\n\t\t|| x >= 0x3041 && x <= 0x3096\n\t\t|| x >= 0x3099 && x <= 0x30FF\n\t\t|| x >= 0x3105 && x <= 0x312F\n\t\t|| x >= 0x3131 && x <= 0x318E\n\t\t|| x >= 0x3190 && x <= 0x31E5\n\t\t|| x >= 0x31EF && x <= 0x321E\n\t\t|| x >= 0x3220 && x <= 0x3247\n\t\t|| x >= 0x3250 && x <= 0xA48C\n\t\t|| x >= 0xA490 && x <= 0xA4C6\n\t\t|| x >= 0xA960 && x <= 0xA97C\n\t\t|| x >= 0xAC00 && x <= 0xD7A3\n\t\t|| x >= 0xF900 && x <= 0xFAFF\n\t\t|| x >= 0xFE10 && x <= 0xFE19\n\t\t|| x >= 0xFE30 && x <= 0xFE52\n\t\t|| x >= 0xFE54 && x <= 0xFE66\n\t\t|| x >= 0xFE68 && x <= 0xFE6B\n\t\t|| x >= 0x16FE0 && x <= 0x16FE4\n\t\t|| x >= 0x16FF0 && x <= 0x16FF6\n\t\t|| x >= 0x17000 && x <= 0x18CD5\n\t\t|| x >= 0x18CFF && x <= 0x18D1E\n\t\t|| x >= 0x18D80 && x <= 0x18DF2\n\t\t|| x >= 0x1AFF0 && x <= 0x1AFF3\n\t\t|| x >= 0x1AFF5 && x <= 0x1AFFB\n\t\t|| x === 0x1AFFD\n\t\t|| x === 0x1AFFE\n\t\t|| x >= 0x1B000 && x <= 0x1B122\n\t\t|| x === 0x1B132\n\t\t|| x >= 0x1B150 && x <= 0x1B152\n\t\t|| x === 0x1B155\n\t\t|| x >= 0x1B164 && x <= 0x1B167\n\t\t|| x >= 0x1B170 && x <= 0x1B2FB\n\t\t|| x >= 0x1D300 && x <= 0x1D356\n\t\t|| x >= 0x1D360 && x <= 0x1D376\n\t\t|| x === 0x1F004\n\t\t|| x === 0x1F0CF\n\t\t|| x === 0x1F18E\n\t\t|| x >= 0x1F191 && x <= 0x1F19A\n\t\t|| x >= 0x1F200 && x <= 0x1F202\n\t\t|| x >= 0x1F210 && x <= 0x1F23B\n\t\t|| x >= 0x1F240 && x <= 0x1F248\n\t\t|| x === 0x1F250\n\t\t|| x === 0x1F251\n\t\t|| x >= 0x1F260 && x <= 0x1F265\n\t\t|| x >= 0x1F300 && x <= 0x1F320\n\t\t|| x >= 0x1F32D && x <= 0x1F335\n\t\t|| x >= 0x1F337 && x <= 0x1F37C\n\t\t|| x >= 0x1F37E && x <= 0x1F393\n\t\t|| x >= 0x1F3A0 && x <= 0x1F3CA\n\t\t|| x >= 0x1F3CF && x <= 0x1F3D3\n\t\t|| x >= 0x1F3E0 && x <= 0x1F3F0\n\t\t|| x === 0x1F3F4\n\t\t|| x >= 0x1F3F8 && x <= 0x1F43E\n\t\t|| x === 0x1F440\n\t\t|| x >= 0x1F442 && x <= 0x1F4FC\n\t\t|| x >= 0x1F4FF && x <= 0x1F53D\n\t\t|| x >= 0x1F54B && x <= 0x1F54E\n\t\t|| x >= 0x1F550 && x <= 0x1F567\n\t\t|| x === 0x1F57A\n\t\t|| x === 0x1F595\n\t\t|| x === 0x1F596\n\t\t|| x === 0x1F5A4\n\t\t|| x >= 0x1F5FB && x <= 0x1F64F\n\t\t|| x >= 0x1F680 && x <= 0x1F6C5\n\t\t|| x === 0x1F6CC\n\t\t|| x >= 0x1F6D0 && x <= 0x1F6D2\n\t\t|| x >= 0x1F6D5 && x <= 0x1F6D8\n\t\t|| x >= 0x1F6DC && x <= 0x1F6DF\n\t\t|| x === 0x1F6EB\n\t\t|| x === 0x1F6EC\n\t\t|| x >= 0x1F6F4 && x <= 0x1F6FC\n\t\t|| x >= 0x1F7E0 && x <= 0x1F7EB\n\t\t|| x === 0x1F7F0\n\t\t|| x >= 0x1F90C && x <= 0x1F93A\n\t\t|| x >= 0x1F93C && x <= 0x1F945\n\t\t|| x >= 0x1F947 && x <= 0x1F9FF\n\t\t|| x >= 0x1FA70 && x <= 0x1FA7C\n\t\t|| x >= 0x1FA80 && x <= 0x1FA8A\n\t\t|| x >= 0x1FA8E && x <= 0x1FAC6\n\t\t|| x === 0x1FAC8\n\t\t|| x >= 0x1FACD && x <= 0x1FADC\n\t\t|| x >= 0x1FADF && x <= 0x1FAEA\n\t\t|| x >= 0x1FAEF && x <= 0x1FAF8\n\t\t|| x >= 0x20000 && x <= 0x2FFFD\n\t\t|| x >= 0x30000 && x <= 0x3FFFD;\n}\n\nfunction getCategory(x) {\n\tif (isAmbiguous(x)) return 'ambiguous';\n\n\tif (isFullWidth(x)) return 'fullwidth';\n\n\tif (\n\t\tx === 0x20A9\n\t\t|| x >= 0xFF61 && x <= 0xFFBE\n\t\t|| x >= 0xFFC2 && x <= 0xFFC7\n\t\t|| x >= 0xFFCA && x <= 0xFFCF\n\t\t|| x >= 0xFFD2 && x <= 0xFFD7\n\t\t|| x >= 0xFFDA && x <= 0xFFDC\n\t\t|| x >= 0xFFE8 && x <= 0xFFEE\n\t) {\n\t\treturn 'halfwidth';\n\t}\n\n\tif (\n\t\tx >= 0x20 && x <= 0x7E\n\t\t|| x === 0xA2\n\t\t|| x === 0xA3\n\t\t|| x === 0xA5\n\t\t|| x === 0xA6\n\t\t|| x === 0xAC\n\t\t|| x === 0xAF\n\t\t|| x >= 0x27E6 && x <= 0x27ED\n\t\t|| x === 0x2985\n\t\t|| x === 0x2986\n\t) {\n\t\treturn 'narrow';\n\t}\n\n\tif (isWide(x)) return 'wide';\n\n\treturn 'neutral';\n}\n\nexport {isAmbiguous, isFullWidth, isWide, getCategory};\n", "import {getCategory, isAmbiguous, isFullWidth, isWide} from './lookup.js';\n\nfunction validate(codePoint) {\n\tif (!Number.isSafeInteger(codePoint)) {\n\t\tthrow new TypeError(`Expected a code point, got \\`${typeof codePoint}\\`.`);\n\t}\n}\n\nexport function eastAsianWidthType(codePoint) {\n\tvalidate(codePoint);\n\n\treturn getCategory(codePoint);\n}\n\nexport function eastAsianWidth(codePoint, {ambiguousAsWide = false} = {}) {\n\tvalidate(codePoint);\n\n\tif (\n\t\tisFullWidth(codePoint)\n\t\t|| isWide(codePoint)\n\t\t|| (ambiguousAsWide && isAmbiguous(codePoint))\n\t) {\n\t\treturn 2;\n\t}\n\n\treturn 1;\n}\n\n// Private exports for https://github.com/sindresorhus/is-fullwidth-code-point\nexport {isFullWidth as _isFullWidth, isWide as _isWide} from './lookup.js';\n", "import stripAnsi from 'strip-ansi';\nimport {eastAsianWidth} from 'get-east-asian-width';\nimport emojiRegex from 'emoji-regex';\n\nconst segmenter = new Intl.Segmenter();\n\nconst defaultIgnorableCodePointRegex = /^\\p{Default_Ignorable_Code_Point}$/u;\n\nexport default function stringWidth(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tconst {\n\t\tambiguousIsNarrow = true,\n\t\tcountAnsiEscapeCodes = false,\n\t} = options;\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tlet width = 0;\n\tconst eastAsianWidthOptions = {ambiguousAsWide: !ambiguousIsNarrow};\n\n\tfor (const {segment: character} of segmenter.segment(string)) {\n\t\tconst codePoint = character.codePointAt(0);\n\n\t\t// Ignore control characters\n\t\tif (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore zero-width characters\n\t\tif (\n\t\t\t(codePoint >= 0x20_0B && codePoint <= 0x20_0F) // Zero-width space, non-joiner, joiner, left-to-right mark, right-to-left mark\n\t\t\t|| codePoint === 0xFE_FF // Zero-width no-break space\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (\n\t\t\t(codePoint >= 0x3_00 && codePoint <= 0x3_6F) // Combining diacritical marks\n\t\t\t|| (codePoint >= 0x1A_B0 && codePoint <= 0x1A_FF) // Combining diacritical marks extended\n\t\t\t|| (codePoint >= 0x1D_C0 && codePoint <= 0x1D_FF) // Combining diacritical marks supplement\n\t\t\t|| (codePoint >= 0x20_D0 && codePoint <= 0x20_FF) // Combining diacritical marks for symbols\n\t\t\t|| (codePoint >= 0xFE_20 && codePoint <= 0xFE_2F) // Combining half marks\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore surrogate pairs\n\t\tif (codePoint >= 0xD8_00 && codePoint <= 0xDF_FF) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore variation selectors\n\t\tif (codePoint >= 0xFE_00 && codePoint <= 0xFE_0F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// This covers some of the above cases, but we still keep them for performance reasons.\n\t\tif (defaultIgnorableCodePointRegex.test(character)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// TODO: Use `/\\p{RGI_Emoji}/v` when targeting Node.js 20.\n\t\tif (emojiRegex().test(character)) {\n\t\t\twidth += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\twidth += eastAsianWidth(codePoint, eastAsianWidthOptions);\n\t}\n\n\treturn width;\n}\n", "const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n", "import stringWidth from 'string-width';\nimport stripAnsi from 'strip-ansi';\nimport ansiStyles from 'ansi-styles';\n\nconst ESCAPES = new Set([\n\t'\\u001B',\n\t'\\u009B',\n]);\n\nconst END_CODE = 39;\nconst ANSI_ESCAPE_BELL = '\\u0007';\nconst ANSI_CSI = '[';\nconst ANSI_OSC = ']';\nconst ANSI_SGR_TERMINATOR = 'm';\nconst ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;\n\nconst wrapAnsiCode = code => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;\nconst wrapAnsiHyperlink = url => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${url}${ANSI_ESCAPE_BELL}`;\n\n// Calculate the length of words split on ' ', ignoring\n// the extra characters added by ansi escape codes\nconst wordLengths = string => string.split(' ').map(character => stringWidth(character));\n\n// Wrap a long word across multiple rows\n// Ansi escape codes do not count towards length\nconst wrapWord = (rows, word, columns) => {\n\tconst characters = [...word];\n\n\tlet isInsideEscape = false;\n\tlet isInsideLinkEscape = false;\n\tlet visible = stringWidth(stripAnsi(rows.at(-1)));\n\n\tfor (const [index, character] of characters.entries()) {\n\t\tconst characterLength = stringWidth(character);\n\n\t\tif (visible + characterLength <= columns) {\n\t\t\trows[rows.length - 1] += character;\n\t\t} else {\n\t\t\trows.push(character);\n\t\t\tvisible = 0;\n\t\t}\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tisInsideEscape = true;\n\n\t\t\tconst ansiEscapeLinkCandidate = characters.slice(index + 1, index + 1 + ANSI_ESCAPE_LINK.length).join('');\n\t\t\tisInsideLinkEscape = ansiEscapeLinkCandidate === ANSI_ESCAPE_LINK;\n\t\t}\n\n\t\tif (isInsideEscape) {\n\t\t\tif (isInsideLinkEscape) {\n\t\t\t\tif (character === ANSI_ESCAPE_BELL) {\n\t\t\t\t\tisInsideEscape = false;\n\t\t\t\t\tisInsideLinkEscape = false;\n\t\t\t\t}\n\t\t\t} else if (character === ANSI_SGR_TERMINATOR) {\n\t\t\t\tisInsideEscape = false;\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tvisible += characterLength;\n\n\t\tif (visible === columns && index < characters.length - 1) {\n\t\t\trows.push('');\n\t\t\tvisible = 0;\n\t\t}\n\t}\n\n\t// It's possible that the last row we copy over is only\n\t// ansi escape characters, handle this edge-case\n\tif (!visible && rows.at(-1).length > 0 && rows.length > 1) {\n\t\trows[rows.length - 2] += rows.pop();\n\t}\n};\n\n// Trims spaces from a string ignoring invisible sequences\nconst stringVisibleTrimSpacesRight = string => {\n\tconst words = string.split(' ');\n\tlet last = words.length;\n\n\twhile (last > 0) {\n\t\tif (stringWidth(words[last - 1]) > 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\tlast--;\n\t}\n\n\tif (last === words.length) {\n\t\treturn string;\n\t}\n\n\treturn words.slice(0, last).join(' ') + words.slice(last).join('');\n};\n\n// The wrap-ansi module can be invoked in either 'hard' or 'soft' wrap mode.\n//\n// 'hard' will never allow a string to take up more than columns characters.\n//\n// 'soft' allows long words to expand past the column length.\nconst exec = (string, columns, options = {}) => {\n\tif (options.trim !== false && string.trim() === '') {\n\t\treturn '';\n\t}\n\n\tlet returnValue = '';\n\tlet escapeCode;\n\tlet escapeUrl;\n\n\tconst lengths = wordLengths(string);\n\tlet rows = [''];\n\n\tfor (const [index, word] of string.split(' ').entries()) {\n\t\tif (options.trim !== false) {\n\t\t\trows[rows.length - 1] = rows.at(-1).trimStart();\n\t\t}\n\n\t\tlet rowLength = stringWidth(rows.at(-1));\n\n\t\tif (index !== 0) {\n\t\t\tif (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {\n\t\t\t\t// If we start with a new word but the current row length equals the length of the columns, add a new row\n\t\t\t\trows.push('');\n\t\t\t\trowLength = 0;\n\t\t\t}\n\n\t\t\tif (rowLength > 0 || options.trim === false) {\n\t\t\t\trows[rows.length - 1] += ' ';\n\t\t\t\trowLength++;\n\t\t\t}\n\t\t}\n\n\t\t// In 'hard' wrap mode, the length of a line is never allowed to extend past 'columns'\n\t\tif (options.hard && lengths[index] > columns) {\n\t\t\tconst remainingColumns = (columns - rowLength);\n\t\t\tconst breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);\n\t\t\tconst breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);\n\t\t\tif (breaksStartingNextLine < breaksStartingThisLine) {\n\t\t\t\trows.push('');\n\t\t\t}\n\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {\n\t\t\tif (options.wordWrap === false && rowLength < columns) {\n\t\t\t\twrapWord(rows, word, columns);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\trows.push('');\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && options.wordWrap === false) {\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\trows[rows.length - 1] += word;\n\t}\n\n\tif (options.trim !== false) {\n\t\trows = rows.map(row => stringVisibleTrimSpacesRight(row));\n\t}\n\n\tconst preString = rows.join('\\n');\n\tconst pre = [...preString];\n\n\t// We need to keep a separate index as `String#slice()` works on Unicode code units, while `pre` is an array of codepoints.\n\tlet preStringIndex = 0;\n\n\tfor (const [index, character] of pre.entries()) {\n\t\treturnValue += character;\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tconst {groups} = new RegExp(`(?:\\\\${ANSI_CSI}(?<code>\\\\d+)m|\\\\${ANSI_ESCAPE_LINK}(?<uri>.*)${ANSI_ESCAPE_BELL})`).exec(preString.slice(preStringIndex)) || {groups: {}};\n\t\t\tif (groups.code !== undefined) {\n\t\t\t\tconst code = Number.parseFloat(groups.code);\n\t\t\t\tescapeCode = code === END_CODE ? undefined : code;\n\t\t\t} else if (groups.uri !== undefined) {\n\t\t\t\tescapeUrl = groups.uri.length === 0 ? undefined : groups.uri;\n\t\t\t}\n\t\t}\n\n\t\tconst code = ansiStyles.codes.get(Number(escapeCode));\n\n\t\tif (pre[index + 1] === '\\n') {\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink('');\n\t\t\t}\n\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(code);\n\t\t\t}\n\t\t} else if (character === '\\n') {\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(escapeCode);\n\t\t\t}\n\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink(escapeUrl);\n\t\t\t}\n\t\t}\n\n\t\tpreStringIndex += character.length;\n\t}\n\n\treturn returnValue;\n};\n\n// For each newline, invoke the method separately\nexport default function wrapAnsi(string, columns, options) {\n\treturn String(string)\n\t\t.normalize()\n\t\t.replaceAll('\\r\\n', '\\n')\n\t\t.split('\\n')\n\t\t.map(line => exec(line, columns, options))\n\t\t.join('\\n');\n}\n", "// Bootstrap cliui with CommonJS dependencies:\nimport { cliui } from './build/lib/index.js'\nimport stringWidth from 'string-width'\nimport stripAnsi from 'strip-ansi'\nimport wrapAnsi from 'wrap-ansi'\n\nexport default function ui (opts) {\n return cliui(opts, {\n stringWidth,\n stripAnsi,\n wrap: wrapAnsi\n })\n}\n\nexport {ui as 'module.exports'};\n", "import { dirname, resolve } from 'path';\nimport { readdirSync, statSync } from 'fs';\n\nexport default function (start, callback) {\n\tlet dir = resolve('.', start);\n\tlet tmp, stats = statSync(dir);\n\n\tif (!stats.isDirectory()) {\n\t\tdir = dirname(dir);\n\t}\n\n\twhile (true) {\n\t\ttmp = callback(dir, readdirSync(dir));\n\t\tif (tmp) return resolve(dir, tmp);\n\t\tdir = dirname(tmp = dir);\n\t\tif (tmp === dir) break;\n\t}\n}\n", "/**\n * @fileoverview Main entrypoint for libraries using yargs-parser in Node.js\n *\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nvar _a, _b, _c;\n/* eslint-disable n/no-unpublished-import */\nimport { format } from 'util';\nimport { normalize, resolve } from 'path';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nimport { YargsParser } from './yargs-parser.js';\nimport { readFileSync } from 'fs';\nimport { createRequire } from 'node:module';\n// See https://github.com/yargs/yargs-parser#supported-nodejs-versions for our\n// version support policy. The YARGS_MIN_NODE_VERSION is used for testing only.\nconst minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION)\n ? Number(process.env.YARGS_MIN_NODE_VERSION)\n : 20;\nconst nodeVersion = (_b = (_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node) !== null && _b !== void 0 ? _b : (_c = process === null || process === void 0 ? void 0 : process.version) === null || _c === void 0 ? void 0 : _c.slice(1);\nif (nodeVersion) {\n const major = Number(nodeVersion.match(/^([^.]+)/)[1]);\n if (major < minNodeVersion) {\n throw Error(`yargs parser supports a minimum Node.js version of ${minNodeVersion}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);\n }\n}\n// Creates a yargs-parser instance using Node.js standard libraries:\nconst env = process ? process.env : {};\nconst require = createRequire ? createRequire(import.meta.url) : undefined;\nconst parser = new YargsParser({\n cwd: process.cwd,\n env: () => {\n return env;\n },\n format,\n normalize,\n resolve,\n require: (path) => {\n if (typeof require !== 'undefined') {\n return require(path);\n }\n else if (path.match(/\\.json$/)) {\n // Addresses: https://github.com/yargs/yargs/issues/2040\n return JSON.parse(readFileSync(path, 'utf8'));\n }\n else {\n throw Error('only .json config files are supported in ESM');\n }\n }\n});\nconst yargsParser = function Parser(args, opts) {\n const result = parser.parse(args.slice(), opts);\n return result.argv;\n};\nyargsParser.detailed = function (args, opts) {\n return parser.parse(args.slice(), opts);\n};\nyargsParser.camelCase = camelCase;\nyargsParser.decamelize = decamelize;\nyargsParser.looksLikeNumber = looksLikeNumber;\nexport default yargsParser;\n// special syntax to allow unqualified default export from CommonJS\nexport { yargsParser as 'module.exports' };\n", "/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport function camelCase(str) {\n // Handle the case where an argument is provided as camel case, e.g., fooBar.\n // by ensuring that the string isn't already mixed case:\n const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase();\n if (!isCamelCase) {\n str = str.toLowerCase();\n }\n if (str.indexOf('-') === -1 && str.indexOf('_') === -1) {\n return str;\n }\n else {\n let camelcase = '';\n let nextChrUpper = false;\n const leadingHyphens = str.match(/^-+/);\n for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) {\n let chr = str.charAt(i);\n if (nextChrUpper) {\n nextChrUpper = false;\n chr = chr.toUpperCase();\n }\n if (i !== 0 && (chr === '-' || chr === '_')) {\n nextChrUpper = true;\n }\n else if (chr !== '-' && chr !== '_') {\n camelcase += chr;\n }\n }\n return camelcase;\n }\n}\nexport function decamelize(str, joinString) {\n const lowercase = str.toLowerCase();\n joinString = joinString || '-';\n let notCamelcase = '';\n for (let i = 0; i < str.length; i++) {\n const chrLower = lowercase.charAt(i);\n const chrString = str.charAt(i);\n if (chrLower !== chrString && i > 0) {\n notCamelcase += `${joinString}${lowercase.charAt(i)}`;\n }\n else {\n notCamelcase += chrString;\n }\n }\n return notCamelcase;\n}\nexport function looksLikeNumber(x) {\n if (x === null || x === undefined)\n return false;\n // if loaded from config, may already be a number.\n if (typeof x === 'number')\n return true;\n // hexadecimal.\n if (/^0x[0-9a-f]+$/i.test(x))\n return true;\n // don't treat 0123 as a number; as it drops the leading '0'.\n if (/^0[^.]/.test(x))\n return false;\n return /^[-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(e[-+]?\\d+)?$/.test(x);\n}\n", "/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\n// take an un-split argv string and tokenize it.\nexport function tokenizeArgString(argString) {\n if (Array.isArray(argString)) {\n return argString.map(e => typeof e !== 'string' ? e + '' : e);\n }\n argString = argString.trim();\n let i = 0;\n let prevC = null;\n let c = null;\n let opening = null;\n const args = [];\n for (let ii = 0; ii < argString.length; ii++) {\n prevC = c;\n c = argString.charAt(ii);\n // split on spaces unless we're in quotes.\n if (c === ' ' && !opening) {\n if (!(prevC === ' ')) {\n i++;\n }\n continue;\n }\n // don't split the string if we're in matching\n // opening or closing single and double quotes.\n if (c === opening) {\n opening = null;\n }\n else if ((c === \"'\" || c === '\"') && !opening) {\n opening = c;\n }\n if (!args[i])\n args[i] = '';\n args[i] += c;\n }\n return args;\n}\n", "/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\nexport var DefaultValuesForTypeKey;\n(function (DefaultValuesForTypeKey) {\n DefaultValuesForTypeKey[\"BOOLEAN\"] = \"boolean\";\n DefaultValuesForTypeKey[\"STRING\"] = \"string\";\n DefaultValuesForTypeKey[\"NUMBER\"] = \"number\";\n DefaultValuesForTypeKey[\"ARRAY\"] = \"array\";\n})(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {}));\n", "/**\n * @license\n * Copyright (c) 2016, Contributors\n * SPDX-License-Identifier: ISC\n */\n/* eslint-disable prefer-arrow-callback */\nimport { tokenizeArgString } from './tokenize-arg-string.js';\nimport { DefaultValuesForTypeKey } from './yargs-parser-types.js';\nimport { camelCase, decamelize, looksLikeNumber } from './string-utils.js';\nlet mixin;\nexport class YargsParser {\n constructor(_mixin) {\n mixin = _mixin;\n }\n parse(argsInput, options) {\n const opts = Object.assign({\n alias: undefined,\n array: undefined,\n boolean: undefined,\n config: undefined,\n configObjects: undefined,\n configuration: undefined,\n coerce: undefined,\n count: undefined,\n default: undefined,\n envPrefix: undefined,\n narg: undefined,\n normalize: undefined,\n string: undefined,\n number: undefined,\n __: undefined,\n key: undefined\n }, options);\n // allow a string argument to be passed in rather\n // than an argv array.\n const args = tokenizeArgString(argsInput);\n // tokenizeArgString adds extra quotes to args if argsInput is a string\n // only strip those extra quotes in processValue if argsInput is a string\n const inputIsString = typeof argsInput === 'string';\n // aliases might have transitive relationships, normalize this.\n const aliases = combineAliases(Object.assign(Object.create(null), opts.alias));\n const configuration = Object.assign({\n 'boolean-negation': true,\n 'camel-case-expansion': true,\n 'combine-arrays': false,\n 'dot-notation': true,\n 'duplicate-arguments-array': true,\n 'flatten-duplicate-arrays': true,\n 'greedy-arrays': true,\n 'halt-at-non-option': false,\n 'nargs-eats-options': false,\n 'negation-prefix': 'no-',\n 'parse-numbers': true,\n 'parse-positional-numbers': true,\n 'populate--': false,\n 'set-placeholder-key': false,\n 'short-option-groups': true,\n 'strip-aliased': false,\n 'strip-dashed': false,\n 'unknown-options-as-args': false\n }, opts.configuration);\n const defaults = Object.assign(Object.create(null), opts.default);\n const configObjects = opts.configObjects || [];\n const envPrefix = opts.envPrefix;\n const notFlagsOption = configuration['populate--'];\n const notFlagsArgv = notFlagsOption ? '--' : '_';\n const newAliases = Object.create(null);\n const defaulted = Object.create(null);\n // allow a i18n handler to be passed in, default to a fake one (util.format).\n const __ = opts.__ || mixin.format;\n const flags = {\n aliases: Object.create(null),\n arrays: Object.create(null),\n bools: Object.create(null),\n strings: Object.create(null),\n numbers: Object.create(null),\n counts: Object.create(null),\n normalize: Object.create(null),\n configs: Object.create(null),\n nargs: Object.create(null),\n coercions: Object.create(null),\n keys: []\n };\n const negative = /^-([0-9]+(\\.[0-9]+)?|\\.[0-9]+)$/;\n const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)');\n [].concat(opts.array || []).filter(Boolean).forEach(function (opt) {\n const key = typeof opt === 'object' ? opt.key : opt;\n // assign to flags[bools|strings|numbers]\n const assignment = Object.keys(opt).map(function (key) {\n const arrayFlagKeys = {\n boolean: 'bools',\n string: 'strings',\n number: 'numbers'\n };\n return arrayFlagKeys[key];\n }).filter(Boolean).pop();\n // assign key to be coerced\n if (assignment) {\n flags[assignment][key] = true;\n }\n flags.arrays[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) {\n flags.bools[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.string || []).filter(Boolean).forEach(function (key) {\n flags.strings[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.number || []).filter(Boolean).forEach(function (key) {\n flags.numbers[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.count || []).filter(Boolean).forEach(function (key) {\n flags.counts[key] = true;\n flags.keys.push(key);\n });\n [].concat(opts.normalize || []).filter(Boolean).forEach(function (key) {\n flags.normalize[key] = true;\n flags.keys.push(key);\n });\n if (typeof opts.narg === 'object') {\n Object.entries(opts.narg).forEach(([key, value]) => {\n if (typeof value === 'number') {\n flags.nargs[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.coerce === 'object') {\n Object.entries(opts.coerce).forEach(([key, value]) => {\n if (typeof value === 'function') {\n flags.coercions[key] = value;\n flags.keys.push(key);\n }\n });\n }\n if (typeof opts.config !== 'undefined') {\n if (Array.isArray(opts.config) || typeof opts.config === 'string') {\n ;\n [].concat(opts.config).filter(Boolean).forEach(function (key) {\n flags.configs[key] = true;\n });\n }\n else if (typeof opts.config === 'object') {\n Object.entries(opts.config).forEach(([key, value]) => {\n if (typeof value === 'boolean' || typeof value === 'function') {\n flags.configs[key] = value;\n }\n });\n }\n }\n // create a lookup table that takes into account all\n // combinations of aliases: {f: ['foo'], foo: ['f']}\n extendAliases(opts.key, aliases, opts.default, flags.arrays);\n // apply default values to all aliases.\n Object.keys(defaults).forEach(function (key) {\n (flags.aliases[key] || []).forEach(function (alias) {\n defaults[alias] = defaults[key];\n });\n });\n let error = null;\n checkConfiguration();\n let notFlags = [];\n const argv = Object.assign(Object.create(null), { _: [] });\n // TODO(bcoe): for the first pass at removing object prototype we didn't\n // remove all prototypes from objects returned by this API, we might want\n // to gradually move towards doing so.\n const argvReturn = {};\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n const truncatedArg = arg.replace(/^-{3,}/, '---');\n let broken;\n let key;\n let letters;\n let m;\n let next;\n let value;\n // any unknown option (except for end-of-options, \"--\")\n if (arg !== '--' && /^-/.test(arg) && isUnknownOptionAsArg(arg)) {\n pushPositional(arg);\n // ---, ---=, ----, etc,\n }\n else if (truncatedArg.match(/^---+(=|$)/)) {\n // options without key name are invalid.\n pushPositional(arg);\n continue;\n // -- separated by =\n }\n else if (arg.match(/^--.+=/) || (!configuration['short-option-groups'] && arg.match(/^-.+=/))) {\n // Using [\\s\\S] instead of . because js doesn't support the\n // 'dotall' regex modifier. See:\n // http://stackoverflow.com/a/1068308/13216\n m = arg.match(/^--?([^=]+)=([\\s\\S]*)$/);\n // arrays format = '--f=a b c'\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n if (checkAllAliases(m[1], flags.arrays)) {\n i = eatArray(i, m[1], args, m[2]);\n }\n else if (checkAllAliases(m[1], flags.nargs) !== false) {\n // nargs format = '--f=monkey washing cat'\n i = eatNargs(i, m[1], args, m[2]);\n }\n else {\n setArg(m[1], m[2], true);\n }\n }\n }\n else if (arg.match(negatedBoolean) && configuration['boolean-negation']) {\n m = arg.match(negatedBoolean);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false);\n }\n // -- separated by space.\n }\n else if (arg.match(/^--.+/) || (!configuration['short-option-groups'] && arg.match(/^-[^-]+/))) {\n m = arg.match(/^--?(.+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '--foo a b c'\n i = eatArray(i, key, args);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '--foo a b c'\n // should be truthy even if: flags.nargs[key] === 0\n i = eatNargs(i, key, args);\n }\n else {\n next = args[i + 1];\n if (next !== undefined && (!next.match(/^-/) ||\n next.match(negative)) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n // dot-notation flag separated by '='.\n }\n else if (arg.match(/^-.\\..+=/)) {\n m = arg.match(/^-([^=]+)=([\\s\\S]*)$/);\n if (m !== null && Array.isArray(m) && m.length >= 3) {\n setArg(m[1], m[2]);\n }\n // dot-notation flag separated by space.\n }\n else if (arg.match(/^-.\\..+/) && !arg.match(negative)) {\n next = args[i + 1];\n m = arg.match(/^-(.\\..+)/);\n if (m !== null && Array.isArray(m) && m.length >= 2) {\n key = m[1];\n if (next !== undefined && !next.match(/^-/) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {\n letters = arg.slice(1, -1).split('');\n broken = false;\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (letters[j + 1] && letters[j + 1] === '=') {\n value = arg.slice(j + 3);\n key = letters[j];\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '-f=a b c'\n i = eatArray(i, key, args, value);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '-f=monkey washing cat'\n i = eatNargs(i, key, args, value);\n }\n else {\n setArg(key, value);\n }\n broken = true;\n break;\n }\n if (next === '-') {\n setArg(letters[j], next);\n continue;\n }\n // current letter is an alphabetic character and next value is a number\n if (/[A-Za-z]/.test(letters[j]) &&\n /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next) &&\n checkAllAliases(next, flags.bools) === false) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n if (letters[j + 1] && letters[j + 1].match(/\\W/)) {\n setArg(letters[j], next);\n broken = true;\n break;\n }\n else {\n setArg(letters[j], defaultValue(letters[j]));\n }\n }\n key = arg.slice(-1)[0];\n if (!broken && key !== '-') {\n if (checkAllAliases(key, flags.arrays)) {\n // array format = '-f a b c'\n i = eatArray(i, key, args);\n }\n else if (checkAllAliases(key, flags.nargs) !== false) {\n // nargs format = '-f a b c'\n // should be truthy even if: flags.nargs[key] === 0\n i = eatNargs(i, key, args);\n }\n else {\n next = args[i + 1];\n if (next !== undefined && (!/^(-|--)[^-]/.test(next) ||\n next.match(negative)) &&\n !checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts)) {\n setArg(key, next);\n i++;\n }\n else if (/^(true|false)$/.test(next)) {\n setArg(key, next);\n i++;\n }\n else {\n setArg(key, defaultValue(key));\n }\n }\n }\n }\n else if (arg.match(/^-[0-9]$/) &&\n arg.match(negative) &&\n checkAllAliases(arg.slice(1), flags.bools)) {\n // single-digit boolean alias, e.g: xargs -0\n key = arg.slice(1);\n setArg(key, defaultValue(key));\n }\n else if (arg === '--') {\n notFlags = args.slice(i + 1);\n break;\n }\n else if (configuration['halt-at-non-option']) {\n notFlags = args.slice(i);\n break;\n }\n else {\n pushPositional(arg);\n }\n }\n // order of precedence:\n // 1. command line arg\n // 2. value from env var\n // 3. value from config file\n // 4. value from config objects\n // 5. configured default value\n applyEnvVars(argv, true); // special case: check env vars that point to config file\n applyEnvVars(argv, false);\n setConfig(argv);\n setConfigObjects();\n applyDefaultsAndAliases(argv, flags.aliases, defaults, true);\n applyCoercions(argv);\n if (configuration['set-placeholder-key'])\n setPlaceholderKeys(argv);\n // for any counts either not in args or without an explicit default, set to 0\n Object.keys(flags.counts).forEach(function (key) {\n if (!hasKey(argv, key.split('.')))\n setArg(key, 0);\n });\n // '--' defaults to undefined.\n if (notFlagsOption && notFlags.length)\n argv[notFlagsArgv] = [];\n notFlags.forEach(function (key) {\n argv[notFlagsArgv].push(key);\n });\n if (configuration['camel-case-expansion'] && configuration['strip-dashed']) {\n Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => {\n delete argv[key];\n });\n }\n if (configuration['strip-aliased']) {\n ;\n [].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => {\n if (configuration['camel-case-expansion'] && alias.includes('-')) {\n delete argv[alias.split('.').map(prop => camelCase(prop)).join('.')];\n }\n delete argv[alias];\n });\n }\n // Push argument into positional array, applying numeric coercion:\n function pushPositional(arg) {\n const maybeCoercedNumber = maybeCoerceNumber('_', arg);\n if (typeof maybeCoercedNumber === 'string' || typeof maybeCoercedNumber === 'number') {\n argv._.push(maybeCoercedNumber);\n }\n }\n // how many arguments should we consume, based\n // on the nargs option?\n function eatNargs(i, key, args, argAfterEqualSign) {\n let ii;\n let toEat = checkAllAliases(key, flags.nargs);\n // NaN has a special meaning for the array type, indicating that one or\n // more values are expected.\n toEat = typeof toEat !== 'number' || isNaN(toEat) ? 1 : toEat;\n if (toEat === 0) {\n if (!isUndefined(argAfterEqualSign)) {\n error = Error(__('Argument unexpected for: %s', key));\n }\n setArg(key, defaultValue(key));\n return i;\n }\n let available = isUndefined(argAfterEqualSign) ? 0 : 1;\n if (configuration['nargs-eats-options']) {\n // classic behavior, yargs eats positional and dash arguments.\n if (args.length - (i + 1) + available < toEat) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n available = toEat;\n }\n else {\n // nargs will not consume flag arguments, e.g., -abc, --foo,\n // and terminates when one is observed.\n for (ii = i + 1; ii < args.length; ii++) {\n if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii]))\n available++;\n else\n break;\n }\n if (available < toEat)\n error = Error(__('Not enough arguments following: %s', key));\n }\n let consumed = Math.min(available, toEat);\n if (!isUndefined(argAfterEqualSign) && consumed > 0) {\n setArg(key, argAfterEqualSign);\n consumed--;\n }\n for (ii = i + 1; ii < (consumed + i + 1); ii++) {\n setArg(key, args[ii]);\n }\n return (i + consumed);\n }\n // if an option is an array, eat all non-hyphenated arguments\n // following it... YUM!\n // e.g., --foo apple banana cat becomes [\"apple\", \"banana\", \"cat\"]\n function eatArray(i, key, args, argAfterEqualSign) {\n let argsToSet = [];\n let next = argAfterEqualSign || args[i + 1];\n // If both array and nargs are configured, enforce the nargs count:\n const nargsCount = checkAllAliases(key, flags.nargs);\n if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) {\n argsToSet.push(true);\n }\n else if (isUndefined(next) ||\n (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) {\n // for keys without value ==> argsToSet remains an empty []\n // set user default value, if available\n if (defaults[key] !== undefined) {\n const defVal = defaults[key];\n argsToSet = Array.isArray(defVal) ? defVal : [defVal];\n }\n }\n else {\n // value in --option=value is eaten as is\n if (!isUndefined(argAfterEqualSign)) {\n argsToSet.push(processValue(key, argAfterEqualSign, true));\n }\n for (let ii = i + 1; ii < args.length; ii++) {\n if ((!configuration['greedy-arrays'] && argsToSet.length > 0) ||\n (nargsCount && typeof nargsCount === 'number' && argsToSet.length >= nargsCount))\n break;\n next = args[ii];\n if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))\n break;\n i = ii;\n argsToSet.push(processValue(key, next, inputIsString));\n }\n }\n // If both array and nargs are configured, create an error if less than\n // nargs positionals were found. NaN has special meaning, indicating\n // that at least one value is required (more are okay).\n if (typeof nargsCount === 'number' && ((nargsCount && argsToSet.length < nargsCount) ||\n (isNaN(nargsCount) && argsToSet.length === 0))) {\n error = Error(__('Not enough arguments following: %s', key));\n }\n setArg(key, argsToSet);\n return i;\n }\n function setArg(key, val, shouldStripQuotes = inputIsString) {\n if (/-/.test(key) && configuration['camel-case-expansion']) {\n const alias = key.split('.').map(function (prop) {\n return camelCase(prop);\n }).join('.');\n addNewAlias(key, alias);\n }\n const value = processValue(key, val, shouldStripQuotes);\n const splitKey = key.split('.');\n setKey(argv, splitKey, value);\n // handle populating aliases of the full key\n if (flags.aliases[key]) {\n flags.aliases[key].forEach(function (x) {\n const keyProperties = x.split('.');\n setKey(argv, keyProperties, value);\n });\n }\n // handle populating aliases of the first element of the dot-notation key\n if (splitKey.length > 1 && configuration['dot-notation']) {\n ;\n (flags.aliases[splitKey[0]] || []).forEach(function (x) {\n let keyProperties = x.split('.');\n // expand alias with nested objects in key\n const a = [].concat(splitKey);\n a.shift(); // nuke the old key.\n keyProperties = keyProperties.concat(a);\n // populate alias only if is not already an alias of the full key\n // (already populated above)\n if (!(flags.aliases[key] || []).includes(keyProperties.join('.'))) {\n setKey(argv, keyProperties, value);\n }\n });\n }\n // Set normalize getter and setter when key is in 'normalize' but isn't an array\n if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {\n const keys = [key].concat(flags.aliases[key] || []);\n keys.forEach(function (key) {\n Object.defineProperty(argvReturn, key, {\n enumerable: true,\n get() {\n return val;\n },\n set(value) {\n val = typeof value === 'string' ? mixin.normalize(value) : value;\n }\n });\n });\n }\n }\n function addNewAlias(key, alias) {\n if (!(flags.aliases[key] && flags.aliases[key].length)) {\n flags.aliases[key] = [alias];\n newAliases[alias] = true;\n }\n if (!(flags.aliases[alias] && flags.aliases[alias].length)) {\n addNewAlias(alias, key);\n }\n }\n function processValue(key, val, shouldStripQuotes) {\n // strings may be quoted, clean this up as we assign values.\n if (shouldStripQuotes) {\n val = stripQuotes(val);\n }\n // handle parsing boolean arguments --foo=true --bar false.\n if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {\n if (typeof val === 'string')\n val = val === 'true';\n }\n let value = Array.isArray(val)\n ? val.map(function (v) { return maybeCoerceNumber(key, v); })\n : maybeCoerceNumber(key, val);\n // increment a count given as arg (either no value or value parsed as boolean)\n if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {\n value = increment();\n }\n // Set normalized value when key is in 'normalize' and in 'arrays'\n if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {\n if (Array.isArray(val))\n value = val.map((val) => { return mixin.normalize(val); });\n else\n value = mixin.normalize(val);\n }\n return value;\n }\n function maybeCoerceNumber(key, value) {\n if (!configuration['parse-positional-numbers'] && key === '_')\n return value;\n if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) {\n const shouldCoerceNumber = looksLikeNumber(value) && configuration['parse-numbers'] && (Number.isSafeInteger(Math.floor(parseFloat(`${value}`))));\n if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) {\n value = Number(value);\n }\n }\n return value;\n }\n // set args from config.json file, this should be\n // applied last so that defaults can be applied.\n function setConfig(argv) {\n const configLookup = Object.create(null);\n // expand defaults/aliases, in-case any happen to reference\n // the config.json file.\n applyDefaultsAndAliases(configLookup, flags.aliases, defaults);\n Object.keys(flags.configs).forEach(function (configKey) {\n const configPath = argv[configKey] || configLookup[configKey];\n if (configPath) {\n try {\n let config = null;\n const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath);\n const resolveConfig = flags.configs[configKey];\n if (typeof resolveConfig === 'function') {\n try {\n config = resolveConfig(resolvedConfigPath);\n }\n catch (e) {\n config = e;\n }\n if (config instanceof Error) {\n error = config;\n return;\n }\n }\n else {\n config = mixin.require(resolvedConfigPath);\n }\n setConfigObject(config);\n }\n catch (ex) {\n // Deno will receive a PermissionDenied error if an attempt is\n // made to load config without the --allow-read flag:\n if (ex.name === 'PermissionDenied')\n error = ex;\n else if (argv[configKey])\n error = Error(__('Invalid JSON config file: %s', configPath));\n }\n }\n });\n }\n // set args from config object.\n // it recursively checks nested objects.\n function setConfigObject(config, prev) {\n Object.keys(config).forEach(function (key) {\n const value = config[key];\n const fullKey = prev ? prev + '.' + key : key;\n // if the value is an inner object and we have dot-notation\n // enabled, treat inner objects in config the same as\n // heavily nested dot notations (foo.bar.apple).\n if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) {\n // if the value is an object but not an array, check nested object\n setConfigObject(value, fullKey);\n }\n else {\n // setting arguments via CLI takes precedence over\n // values within the config file.\n if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) {\n setArg(fullKey, value);\n }\n }\n });\n }\n // set all config objects passed in opts\n function setConfigObjects() {\n if (typeof configObjects !== 'undefined') {\n configObjects.forEach(function (configObject) {\n setConfigObject(configObject);\n });\n }\n }\n function applyEnvVars(argv, configOnly) {\n if (typeof envPrefix === 'undefined')\n return;\n const prefix = typeof envPrefix === 'string' ? envPrefix : '';\n const env = mixin.env();\n Object.keys(env).forEach(function (envVar) {\n if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {\n // get array of nested keys and convert them to camel case\n const keys = envVar.split('__').map(function (key, i) {\n if (i === 0) {\n key = key.substring(prefix.length);\n }\n return camelCase(key);\n });\n if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) {\n setArg(keys.join('.'), env[envVar]);\n }\n }\n });\n }\n function applyCoercions(argv) {\n let coerce;\n const applied = new Set();\n Object.keys(argv).forEach(function (key) {\n if (!applied.has(key)) { // If we haven't already coerced this option via one of its aliases\n coerce = checkAllAliases(key, flags.coercions);\n if (typeof coerce === 'function') {\n try {\n const value = maybeCoerceNumber(key, coerce(argv[key]));\n ([].concat(flags.aliases[key] || [], key)).forEach(ali => {\n applied.add(ali);\n argv[ali] = value;\n });\n }\n catch (err) {\n error = err;\n }\n }\n }\n });\n }\n function setPlaceholderKeys(argv) {\n flags.keys.forEach((key) => {\n // don't set placeholder keys for dot notation options 'foo.bar'.\n if (~key.indexOf('.'))\n return;\n if (typeof argv[key] === 'undefined')\n argv[key] = undefined;\n });\n return argv;\n }\n function applyDefaultsAndAliases(obj, aliases, defaults, canLog = false) {\n Object.keys(defaults).forEach(function (key) {\n if (!hasKey(obj, key.split('.'))) {\n setKey(obj, key.split('.'), defaults[key]);\n if (canLog)\n defaulted[key] = true;\n (aliases[key] || []).forEach(function (x) {\n if (hasKey(obj, x.split('.')))\n return;\n setKey(obj, x.split('.'), defaults[key]);\n });\n }\n });\n }\n function hasKey(obj, keys) {\n let o = obj;\n if (!configuration['dot-notation'])\n keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n o = (o[key] || {});\n });\n const key = keys[keys.length - 1];\n if (typeof o !== 'object')\n return false;\n else\n return key in o;\n }\n function setKey(obj, keys, value) {\n let o = obj;\n if (!configuration['dot-notation'])\n keys = [keys.join('.')];\n keys.slice(0, -1).forEach(function (key) {\n // TODO(bcoe): in the next major version of yargs, switch to\n // Object.create(null) for dot notation:\n key = sanitizeKey(key);\n if (typeof o === 'object' && o[key] === undefined) {\n o[key] = {};\n }\n if (typeof o[key] !== 'object' || Array.isArray(o[key])) {\n // ensure that o[key] is an array, and that the last item is an empty object.\n if (Array.isArray(o[key])) {\n o[key].push({});\n }\n else {\n o[key] = [o[key], {}];\n }\n // we want to update the empty object at the end of the o[key] array, so set o to that object\n o = o[key][o[key].length - 1];\n }\n else {\n o = o[key];\n }\n });\n // TODO(bcoe): in the next major version of yargs, switch to\n // Object.create(null) for dot notation:\n const key = sanitizeKey(keys[keys.length - 1]);\n const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays);\n const isValueArray = Array.isArray(value);\n let duplicate = configuration['duplicate-arguments-array'];\n // nargs has higher priority than duplicate\n if (!duplicate && checkAllAliases(key, flags.nargs)) {\n duplicate = true;\n if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) {\n o[key] = undefined;\n }\n }\n if (value === increment()) {\n o[key] = increment(o[key]);\n }\n else if (Array.isArray(o[key])) {\n if (duplicate && isTypeArray && isValueArray) {\n o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]);\n }\n else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {\n o[key] = value;\n }\n else {\n o[key] = o[key].concat([value]);\n }\n }\n else if (o[key] === undefined && isTypeArray) {\n o[key] = isValueArray ? value : [value];\n }\n else if (duplicate && !(o[key] === undefined ||\n checkAllAliases(key, flags.counts) ||\n checkAllAliases(key, flags.bools))) {\n o[key] = [o[key], value];\n }\n else {\n o[key] = value;\n }\n }\n // extend the aliases list with inferred aliases.\n function extendAliases(...args) {\n args.forEach(function (obj) {\n Object.keys(obj || {}).forEach(function (key) {\n // short-circuit if we've already added a key\n // to the aliases array, for example it might\n // exist in both 'opts.default' and 'opts.key'.\n if (flags.aliases[key])\n return;\n flags.aliases[key] = [].concat(aliases[key] || []);\n // For \"--option-name\", also set argv.optionName\n flags.aliases[key].concat(key).forEach(function (x) {\n if (/-/.test(x) && configuration['camel-case-expansion']) {\n const c = camelCase(x);\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n // For \"--optionName\", also set argv['option-name']\n flags.aliases[key].concat(key).forEach(function (x) {\n if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) {\n const c = decamelize(x, '-');\n if (c !== key && flags.aliases[key].indexOf(c) === -1) {\n flags.aliases[key].push(c);\n newAliases[c] = true;\n }\n }\n });\n flags.aliases[key].forEach(function (x) {\n flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {\n return x !== y;\n }));\n });\n });\n });\n }\n function checkAllAliases(key, flag) {\n const toCheck = [].concat(flags.aliases[key] || [], key);\n const keys = Object.keys(flag);\n const setAlias = toCheck.find(key => keys.includes(key));\n return setAlias ? flag[setAlias] : false;\n }\n function hasAnyFlag(key) {\n const flagsKeys = Object.keys(flags);\n const toCheck = [].concat(flagsKeys.map(k => flags[k]));\n return toCheck.some(function (flag) {\n return Array.isArray(flag) ? flag.includes(key) : flag[key];\n });\n }\n function hasFlagsMatching(arg, ...patterns) {\n const toCheck = [].concat(...patterns);\n return toCheck.some(function (pattern) {\n const match = arg.match(pattern);\n return match && hasAnyFlag(match[1]);\n });\n }\n // based on a simplified version of the short flag group parsing logic\n function hasAllShortFlags(arg) {\n // if this is a negative number, or doesn't start with a single hyphen, it's not a short flag group\n if (arg.match(negative) || !arg.match(/^-[^-]+/)) {\n return false;\n }\n let hasAllFlags = true;\n let next;\n const letters = arg.slice(1).split('');\n for (let j = 0; j < letters.length; j++) {\n next = arg.slice(j + 2);\n if (!hasAnyFlag(letters[j])) {\n hasAllFlags = false;\n break;\n }\n if ((letters[j + 1] && letters[j + 1] === '=') ||\n next === '-' ||\n (/[A-Za-z]/.test(letters[j]) && /^-?\\d+(\\.\\d*)?(e-?\\d+)?$/.test(next)) ||\n (letters[j + 1] && letters[j + 1].match(/\\W/))) {\n break;\n }\n }\n return hasAllFlags;\n }\n function isUnknownOptionAsArg(arg) {\n return configuration['unknown-options-as-args'] && isUnknownOption(arg);\n }\n function isUnknownOption(arg) {\n arg = arg.replace(/^-{3,}/, '--');\n // ignore negative numbers\n if (arg.match(negative)) {\n return false;\n }\n // if this is a short option group and all of them are configured, it isn't unknown\n if (hasAllShortFlags(arg)) {\n return false;\n }\n // e.g. '--count=2'\n const flagWithEquals = /^-+([^=]+?)=[\\s\\S]*$/;\n // e.g. '-a' or '--arg'\n const normalFlag = /^-+([^=]+?)$/;\n // e.g. '-a-'\n const flagEndingInHyphen = /^-+([^=]+?)-$/;\n // e.g. '-abc123'\n const flagEndingInDigits = /^-+([^=]+?\\d+)$/;\n // e.g. '-a/usr/local'\n const flagEndingInNonWordCharacters = /^-+([^=]+?)\\W+.*$/;\n // check the different types of flag styles, including negatedBoolean, a pattern defined near the start of the parse method\n return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters);\n }\n // make a best effort to pick a default value\n // for an option based on name and type.\n function defaultValue(key) {\n if (!checkAllAliases(key, flags.bools) &&\n !checkAllAliases(key, flags.counts) &&\n `${key}` in defaults) {\n return defaults[key];\n }\n else {\n return defaultForType(guessType(key));\n }\n }\n // return a default value, given the type of a flag.,\n function defaultForType(type) {\n const def = {\n [DefaultValuesForTypeKey.BOOLEAN]: true,\n [DefaultValuesForTypeKey.STRING]: '',\n [DefaultValuesForTypeKey.NUMBER]: undefined,\n [DefaultValuesForTypeKey.ARRAY]: []\n };\n return def[type];\n }\n // given a flag, enforce a default type.\n function guessType(key) {\n let type = DefaultValuesForTypeKey.BOOLEAN;\n if (checkAllAliases(key, flags.strings))\n type = DefaultValuesForTypeKey.STRING;\n else if (checkAllAliases(key, flags.numbers))\n type = DefaultValuesForTypeKey.NUMBER;\n else if (checkAllAliases(key, flags.bools))\n type = DefaultValuesForTypeKey.BOOLEAN;\n else if (checkAllAliases(key, flags.arrays))\n type = DefaultValuesForTypeKey.ARRAY;\n return type;\n }\n function isUndefined(num) {\n return num === undefined;\n }\n // check user configuration settings for inconsistencies\n function checkConfiguration() {\n // count keys should not be set as array/narg\n Object.keys(flags.counts).find(key => {\n if (checkAllAliases(key, flags.arrays)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key));\n return true;\n }\n else if (checkAllAliases(key, flags.nargs)) {\n error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key));\n return true;\n }\n return false;\n });\n }\n return {\n aliases: Object.assign({}, flags.aliases),\n argv: Object.assign(argvReturn, argv),\n configuration: configuration,\n defaulted: Object.assign({}, defaulted),\n error: error,\n newAliases: Object.assign({}, newAliases)\n };\n }\n}\n// if any aliases reference each other, we should\n// merge them together.\nfunction combineAliases(aliases) {\n const aliasArrays = [];\n const combined = Object.create(null);\n let change = true;\n // turn alias lookup hash {key: ['alias1', 'alias2']} into\n // a simple array ['key', 'alias1', 'alias2']\n Object.keys(aliases).forEach(function (key) {\n aliasArrays.push([].concat(aliases[key], key));\n });\n // combine arrays until zero changes are\n // made in an iteration.\n while (change) {\n change = false;\n for (let i = 0; i < aliasArrays.length; i++) {\n for (let ii = i + 1; ii < aliasArrays.length; ii++) {\n const intersect = aliasArrays[i].filter(function (v) {\n return aliasArrays[ii].indexOf(v) !== -1;\n });\n if (intersect.length) {\n aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]);\n aliasArrays.splice(ii, 1);\n change = true;\n break;\n }\n }\n }\n }\n // map arrays back to the hash-lookup (de-dupe while\n // we're at it).\n aliasArrays.forEach(function (aliasArray) {\n aliasArray = aliasArray.filter(function (v, i, self) {\n return self.indexOf(v) === i;\n });\n const lastAlias = aliasArray.pop();\n if (lastAlias !== undefined && typeof lastAlias === 'string') {\n combined[lastAlias] = aliasArray;\n }\n });\n return combined;\n}\n// this function should only be called when a count is given as an arg\n// it is NOT called to set a default value\n// thus we can start the count at 1 instead of 0\nfunction increment(orig) {\n return orig !== undefined ? orig + 1 : 1;\n}\n// TODO(bcoe): in the next major version of yargs, switch to\n// Object.create(null) for dot notation:\nfunction sanitizeKey(key) {\n if (key === '__proto__')\n return '___proto___';\n return key;\n}\nfunction stripQuotes(val) {\n return (typeof val === 'string' &&\n (val[0] === \"'\" || val[0] === '\"') &&\n val[val.length - 1] === val[0])\n ? val.substring(1, val.length - 1)\n : val;\n}\n", "function getProcessArgvBinIndex() {\n if (isBundledElectronApp())\n return 0;\n return 1;\n}\nfunction isBundledElectronApp() {\n return isElectronApp() && !process.defaultApp;\n}\nfunction isElectronApp() {\n return !!process.versions.electron;\n}\nexport function hideBin(argv) {\n return argv.slice(getProcessArgvBinIndex() + 1);\n}\nexport function getProcessArgvBin() {\n return process.argv[getProcessArgvBinIndex()];\n}\n", "import { readFileSync, statSync, writeFile } from 'fs';\nimport { format } from 'util';\nimport { resolve } from 'path';\nexport default {\n fs: {\n readFileSync,\n writeFile\n },\n format,\n resolve,\n exists: (file) => {\n try {\n return statSync(file).isFile();\n }\n catch (err) {\n return false;\n }\n }\n};\n", "let shim;\nclass Y18N {\n constructor(opts) {\n // configurable options.\n opts = opts || {};\n this.directory = opts.directory || './locales';\n this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true;\n this.locale = opts.locale || 'en';\n this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true;\n // internal stuff.\n this.cache = Object.create(null);\n this.writeQueue = [];\n }\n __(...args) {\n if (typeof arguments[0] !== 'string') {\n return this._taggedLiteral(arguments[0], ...arguments);\n }\n const str = args.shift();\n let cb = function () { }; // start with noop.\n if (typeof args[args.length - 1] === 'function')\n cb = args.pop();\n cb = cb || function () { }; // noop.\n if (!this.cache[this.locale])\n this._readLocaleFile();\n // we've observed a new string, update the language file.\n if (!this.cache[this.locale][str] && this.updateFiles) {\n this.cache[this.locale][str] = str;\n // include the current directory and locale,\n // since these values could change before the\n // write is performed.\n this._enqueueWrite({\n directory: this.directory,\n locale: this.locale,\n cb\n });\n }\n else {\n cb();\n }\n return shim.format.apply(shim.format, [this.cache[this.locale][str] || str].concat(args));\n }\n __n() {\n const args = Array.prototype.slice.call(arguments);\n const singular = args.shift();\n const plural = args.shift();\n const quantity = args.shift();\n let cb = function () { }; // start with noop.\n if (typeof args[args.length - 1] === 'function')\n cb = args.pop();\n if (!this.cache[this.locale])\n this._readLocaleFile();\n let str = quantity === 1 ? singular : plural;\n if (this.cache[this.locale][singular]) {\n const entry = this.cache[this.locale][singular];\n str = entry[quantity === 1 ? 'one' : 'other'];\n }\n // we've observed a new string, update the language file.\n if (!this.cache[this.locale][singular] && this.updateFiles) {\n this.cache[this.locale][singular] = {\n one: singular,\n other: plural\n };\n // include the current directory and locale,\n // since these values could change before the\n // write is performed.\n this._enqueueWrite({\n directory: this.directory,\n locale: this.locale,\n cb\n });\n }\n else {\n cb();\n }\n // if a %d placeholder is provided, add quantity\n // to the arguments expanded by util.format.\n const values = [str];\n if (~str.indexOf('%d'))\n values.push(quantity);\n return shim.format.apply(shim.format, values.concat(args));\n }\n setLocale(locale) {\n this.locale = locale;\n }\n getLocale() {\n return this.locale;\n }\n updateLocale(obj) {\n if (!this.cache[this.locale])\n this._readLocaleFile();\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n this.cache[this.locale][key] = obj[key];\n }\n }\n }\n _taggedLiteral(parts, ...args) {\n let str = '';\n parts.forEach(function (part, i) {\n const arg = args[i + 1];\n str += part;\n if (typeof arg !== 'undefined') {\n str += '%s';\n }\n });\n return this.__.apply(this, [str].concat([].slice.call(args, 1)));\n }\n _enqueueWrite(work) {\n this.writeQueue.push(work);\n if (this.writeQueue.length === 1)\n this._processWriteQueue();\n }\n _processWriteQueue() {\n const _this = this;\n const work = this.writeQueue[0];\n // destructure the enqueued work.\n const directory = work.directory;\n const locale = work.locale;\n const cb = work.cb;\n const languageFile = this._resolveLocaleFile(directory, locale);\n const serializedLocale = JSON.stringify(this.cache[locale], null, 2);\n shim.fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) {\n _this.writeQueue.shift();\n if (_this.writeQueue.length > 0)\n _this._processWriteQueue();\n cb(err);\n });\n }\n _readLocaleFile() {\n let localeLookup = {};\n const languageFile = this._resolveLocaleFile(this.directory, this.locale);\n try {\n // When using a bundler such as webpack, readFileSync may not be defined:\n if (shim.fs.readFileSync) {\n localeLookup = JSON.parse(shim.fs.readFileSync(languageFile, 'utf-8'));\n }\n }\n catch (err) {\n if (err instanceof SyntaxError) {\n err.message = 'syntax error in ' + languageFile;\n }\n if (err.code === 'ENOENT')\n localeLookup = {};\n else\n throw err;\n }\n this.cache[this.locale] = localeLookup;\n }\n _resolveLocaleFile(directory, locale) {\n let file = shim.resolve(directory, './', locale + '.json');\n if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) {\n // attempt fallback to language only\n const languageFile = shim.resolve(directory, './', locale.split('_')[0] + '.json');\n if (this._fileExistsSync(languageFile))\n file = languageFile;\n }\n return file;\n }\n _fileExistsSync(file) {\n return shim.exists(file);\n }\n}\nexport function y18n(opts, _shim) {\n shim = _shim;\n const y18n = new Y18N(opts);\n return {\n __: y18n.__.bind(y18n),\n __n: y18n.__n.bind(y18n),\n setLocale: y18n.setLocale.bind(y18n),\n getLocale: y18n.getLocale.bind(y18n),\n updateLocale: y18n.updateLocale.bind(y18n),\n locale: y18n.locale\n };\n}\n", "import shim from './build/lib/platform-shims/node.js'\nimport { y18n as _y18n } from './build/lib/index.js'\n\nconst y18n = (opts) => {\n return _y18n(opts, shim)\n}\n\nexport default y18n\n", "export function assertNotStrictEqual(actual, expected, shim, message) {\n shim.assert.notStrictEqual(actual, expected, message);\n}\nexport function assertSingleKey(actual, shim) {\n shim.assert.strictEqual(typeof actual, 'string');\n}\nexport function objectKeys(object) {\n return Object.keys(object);\n}\n", "export function isPromise(maybePromise) {\n return (!!maybePromise &&\n !!maybePromise.then &&\n typeof maybePromise.then === 'function');\n}\n", "export class YError extends Error {\n constructor(msg) {\n super(msg || 'yargs error');\n this.name = 'YError';\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, YError);\n }\n }\n}\n", "export function parseCommand(cmd) {\n const extraSpacesStrippedCommand = cmd.replace(/\\s{2,}/g, ' ');\n const splitCommand = extraSpacesStrippedCommand.split(/\\s+(?![^[]*]|[^<]*>)/);\n const bregex = /\\.*[\\][<>]/g;\n const firstCommand = splitCommand.shift();\n if (!firstCommand)\n throw new Error(`No command found in: ${cmd}`);\n const parsedCommand = {\n cmd: firstCommand.replace(bregex, ''),\n demanded: [],\n optional: [],\n };\n splitCommand.forEach((cmd, i) => {\n let variadic = false;\n cmd = cmd.replace(/\\s/g, '');\n if (/\\.+[\\]>]/.test(cmd) && i === splitCommand.length - 1)\n variadic = true;\n if (/^\\[/.test(cmd)) {\n parsedCommand.optional.push({\n cmd: cmd.replace(bregex, '').split('|'),\n variadic,\n });\n }\n else {\n parsedCommand.demanded.push({\n cmd: cmd.replace(bregex, '').split('|'),\n variadic,\n });\n }\n });\n return parsedCommand;\n}\n", "import { YError } from './yerror.js';\nimport { parseCommand } from './parse-command.js';\nconst positionName = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth'];\nexport function argsert(arg1, arg2, arg3) {\n function parseArgs() {\n return typeof arg1 === 'object'\n ? [{ demanded: [], optional: [] }, arg1, arg2]\n : [\n parseCommand(`cmd ${arg1}`),\n arg2,\n arg3,\n ];\n }\n try {\n let position = 0;\n const [parsed, callerArguments, _length] = parseArgs();\n const args = [].slice.call(callerArguments);\n while (args.length && args[args.length - 1] === undefined)\n args.pop();\n const length = _length || args.length;\n if (length < parsed.demanded.length) {\n throw new YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`);\n }\n const totalCommands = parsed.demanded.length + parsed.optional.length;\n if (length > totalCommands) {\n throw new YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`);\n }\n parsed.demanded.forEach(demanded => {\n const arg = args.shift();\n const observedType = guessType(arg);\n const matchingTypes = demanded.cmd.filter(type => type === observedType || type === '*');\n if (matchingTypes.length === 0)\n argumentTypeError(observedType, demanded.cmd, position);\n position += 1;\n });\n parsed.optional.forEach(optional => {\n if (args.length === 0)\n return;\n const arg = args.shift();\n const observedType = guessType(arg);\n const matchingTypes = optional.cmd.filter(type => type === observedType || type === '*');\n if (matchingTypes.length === 0)\n argumentTypeError(observedType, optional.cmd, position);\n position += 1;\n });\n }\n catch (err) {\n console.warn(err.stack);\n }\n}\nfunction guessType(arg) {\n if (Array.isArray(arg)) {\n return 'array';\n }\n else if (arg === null) {\n return 'null';\n }\n return typeof arg;\n}\nfunction argumentTypeError(observedType, allowedTypes, position) {\n throw new YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`);\n}\n", "import { argsert } from './argsert.js';\nimport { isPromise } from './utils/is-promise.js';\nexport class GlobalMiddleware {\n constructor(yargs) {\n this.globalMiddleware = [];\n this.frozens = [];\n this.yargs = yargs;\n }\n addMiddleware(callback, applyBeforeValidation, global = true, mutates = false) {\n argsert('<array|function> [boolean] [boolean] [boolean]', [callback, applyBeforeValidation, global], arguments.length);\n if (Array.isArray(callback)) {\n for (let i = 0; i < callback.length; i++) {\n if (typeof callback[i] !== 'function') {\n throw Error('middleware must be a function');\n }\n const m = callback[i];\n m.applyBeforeValidation = applyBeforeValidation;\n m.global = global;\n }\n Array.prototype.push.apply(this.globalMiddleware, callback);\n }\n else if (typeof callback === 'function') {\n const m = callback;\n m.applyBeforeValidation = applyBeforeValidation;\n m.global = global;\n m.mutates = mutates;\n this.globalMiddleware.push(callback);\n }\n return this.yargs;\n }\n addCoerceMiddleware(callback, option) {\n const aliases = this.yargs.getAliases();\n this.globalMiddleware = this.globalMiddleware.filter(m => {\n const toCheck = [...(aliases[option] || []), option];\n if (!m.option)\n return true;\n else\n return !toCheck.includes(m.option);\n });\n callback.option = option;\n return this.addMiddleware(callback, true, true, true);\n }\n getMiddleware() {\n return this.globalMiddleware;\n }\n freeze() {\n this.frozens.push([...this.globalMiddleware]);\n }\n unfreeze() {\n const frozen = this.frozens.pop();\n if (frozen !== undefined)\n this.globalMiddleware = frozen;\n }\n reset() {\n this.globalMiddleware = this.globalMiddleware.filter(m => m.global);\n }\n}\nexport function commandMiddlewareFactory(commandMiddleware) {\n if (!commandMiddleware)\n return [];\n return commandMiddleware.map(middleware => {\n middleware.applyBeforeValidation = false;\n return middleware;\n });\n}\nexport function applyMiddleware(argv, yargs, middlewares, beforeValidation) {\n return middlewares.reduce((acc, middleware) => {\n if (middleware.applyBeforeValidation !== beforeValidation) {\n return acc;\n }\n if (middleware.mutates) {\n if (middleware.applied)\n return acc;\n middleware.applied = true;\n }\n if (isPromise(acc)) {\n return acc\n .then(initialObj => Promise.all([initialObj, middleware(initialObj, yargs)]))\n .then(([initialObj, middlewareObj]) => Object.assign(initialObj, middlewareObj));\n }\n else {\n const result = middleware(acc, yargs);\n return isPromise(result)\n ? result.then(middlewareObj => Object.assign(acc, middlewareObj))\n : Object.assign(acc, result);\n }\n }, argv);\n}\n", "import { isPromise } from './is-promise.js';\nexport function maybeAsyncResult(getResult, resultHandler, errorHandler = (err) => {\n throw err;\n}) {\n try {\n const result = isFunction(getResult) ? getResult() : getResult;\n return isPromise(result)\n ? result.then((result) => resultHandler(result))\n : resultHandler(result);\n }\n catch (err) {\n return errorHandler(err);\n }\n}\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n", "import { assertNotStrictEqual, } from './typings/common-types.js';\nimport { isPromise } from './utils/is-promise.js';\nimport { applyMiddleware, commandMiddlewareFactory, } from './middleware.js';\nimport { parseCommand } from './parse-command.js';\nimport { isYargsInstance, } from './yargs-factory.js';\nimport { maybeAsyncResult } from './utils/maybe-async-result.js';\nconst DEFAULT_MARKER = /(^\\*)|(^\\$0)/;\nexport class CommandInstance {\n constructor(usage, validation, globalMiddleware, shim) {\n this.requireCache = new Set();\n this.handlers = {};\n this.aliasMap = {};\n this.frozens = [];\n this.shim = shim;\n this.usage = usage;\n this.globalMiddleware = globalMiddleware;\n this.validation = validation;\n }\n addDirectory(dir, req, callerFile, opts) {\n opts = opts || {};\n this.requireCache.add(callerFile);\n const fullDirPath = this.shim.path.resolve(this.shim.path.dirname(callerFile), dir);\n const files = this.shim.readdirSync(fullDirPath, {\n recursive: opts.recurse ? true : false,\n });\n if (!Array.isArray(opts.extensions))\n opts.extensions = ['js'];\n const visit = typeof opts.visit === 'function' ? opts.visit : (o) => o;\n for (const fileb of files) {\n const file = fileb.toString();\n if (opts.exclude) {\n let exclude = false;\n if (typeof opts.exclude === 'function') {\n exclude = opts.exclude(file);\n }\n else {\n exclude = opts.exclude.test(file);\n }\n if (exclude)\n continue;\n }\n if (opts.include) {\n let include = false;\n if (typeof opts.include === 'function') {\n include = opts.include(file);\n }\n else {\n include = opts.include.test(file);\n }\n if (!include)\n continue;\n }\n let supportedExtension = false;\n for (const ext of opts.extensions) {\n if (file.endsWith(ext))\n supportedExtension = true;\n }\n if (supportedExtension) {\n const joined = this.shim.path.join(fullDirPath, file);\n const module = req(joined);\n const extendableModule = Object.create(null, Object.getOwnPropertyDescriptors({ ...module }));\n const visited = visit(extendableModule, joined, file);\n if (visited) {\n if (this.requireCache.has(joined))\n continue;\n else\n this.requireCache.add(joined);\n if (!extendableModule.command) {\n extendableModule.command = this.shim.path.basename(joined, this.shim.path.extname(joined));\n }\n this.addHandler(extendableModule);\n }\n }\n }\n }\n addHandler(cmd, description, builder, handler, commandMiddleware, deprecated) {\n let aliases = [];\n const middlewares = commandMiddlewareFactory(commandMiddleware);\n handler = handler || (() => { });\n if (Array.isArray(cmd)) {\n if (isCommandAndAliases(cmd)) {\n [cmd, ...aliases] = cmd;\n }\n else {\n for (const command of cmd) {\n this.addHandler(command);\n }\n }\n }\n else if (isCommandHandlerDefinition(cmd)) {\n let command = Array.isArray(cmd.command) || typeof cmd.command === 'string'\n ? cmd.command\n : null;\n if (command === null) {\n throw new Error(`No command name given for module: ${this.shim.inspect(cmd)}`);\n }\n if (cmd.aliases)\n command = [].concat(command).concat(cmd.aliases);\n this.addHandler(command, this.extractDesc(cmd), cmd.builder, cmd.handler, cmd.middlewares, cmd.deprecated);\n return;\n }\n else if (isCommandBuilderDefinition(builder)) {\n this.addHandler([cmd].concat(aliases), description, builder.builder, builder.handler, builder.middlewares, builder.deprecated);\n return;\n }\n if (typeof cmd === 'string') {\n const parsedCommand = parseCommand(cmd);\n aliases = aliases.map(alias => parseCommand(alias).cmd);\n let isDefault = false;\n const parsedAliases = [parsedCommand.cmd].concat(aliases).filter(c => {\n if (DEFAULT_MARKER.test(c)) {\n isDefault = true;\n return false;\n }\n return true;\n });\n if (parsedAliases.length === 0 && isDefault)\n parsedAliases.push('$0');\n if (isDefault) {\n parsedCommand.cmd = parsedAliases[0];\n aliases = parsedAliases.slice(1);\n cmd = cmd.replace(DEFAULT_MARKER, parsedCommand.cmd);\n }\n aliases.forEach(alias => {\n this.aliasMap[alias] = parsedCommand.cmd;\n });\n if (description !== false) {\n this.usage.command(cmd, description, isDefault, aliases, deprecated);\n }\n this.handlers[parsedCommand.cmd] = {\n original: cmd,\n description,\n handler,\n builder: builder || {},\n middlewares,\n deprecated,\n demanded: parsedCommand.demanded,\n optional: parsedCommand.optional,\n };\n if (isDefault)\n this.defaultCommand = this.handlers[parsedCommand.cmd];\n }\n }\n getCommandHandlers() {\n return this.handlers;\n }\n getCommands() {\n return Object.keys(this.handlers).concat(Object.keys(this.aliasMap));\n }\n hasDefaultCommand() {\n return !!this.defaultCommand;\n }\n runCommand(command, yargs, parsed, commandIndex, helpOnly, helpOrVersionSet) {\n const commandHandler = this.handlers[command] ||\n this.handlers[this.aliasMap[command]] ||\n this.defaultCommand;\n const currentContext = yargs.getInternalMethods().getContext();\n const parentCommands = currentContext.commands.slice();\n const isDefaultCommand = !command;\n if (command) {\n currentContext.commands.push(command);\n currentContext.fullCommands.push(commandHandler.original);\n }\n const builderResult = this.applyBuilderUpdateUsageAndParse(isDefaultCommand, commandHandler, yargs, parsed.aliases, parentCommands, commandIndex, helpOnly, helpOrVersionSet);\n return isPromise(builderResult)\n ? builderResult.then(result => this.applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, result.innerArgv, currentContext, helpOnly, result.aliases, yargs))\n : this.applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, builderResult.innerArgv, currentContext, helpOnly, builderResult.aliases, yargs);\n }\n applyBuilderUpdateUsageAndParse(isDefaultCommand, commandHandler, yargs, aliases, parentCommands, commandIndex, helpOnly, helpOrVersionSet) {\n const builder = commandHandler.builder;\n let innerYargs = yargs;\n if (isCommandBuilderCallback(builder)) {\n yargs.getInternalMethods().getUsageInstance().freeze();\n const builderOutput = builder(yargs.getInternalMethods().reset(aliases), helpOrVersionSet);\n if (isPromise(builderOutput)) {\n return builderOutput.then(output => {\n innerYargs = isYargsInstance(output) ? output : yargs;\n return this.parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly);\n });\n }\n }\n else if (isCommandBuilderOptionDefinitions(builder)) {\n yargs.getInternalMethods().getUsageInstance().freeze();\n innerYargs = yargs.getInternalMethods().reset(aliases);\n Object.keys(commandHandler.builder).forEach(key => {\n innerYargs.option(key, builder[key]);\n });\n }\n return this.parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly);\n }\n parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly) {\n if (isDefaultCommand)\n innerYargs.getInternalMethods().getUsageInstance().unfreeze(true);\n if (this.shouldUpdateUsage(innerYargs)) {\n innerYargs\n .getInternalMethods()\n .getUsageInstance()\n .usage(this.usageFromParentCommandsCommandHandler(parentCommands, commandHandler), commandHandler.description);\n }\n const innerArgv = innerYargs\n .getInternalMethods()\n .runYargsParserAndExecuteCommands(null, undefined, true, commandIndex, helpOnly);\n return isPromise(innerArgv)\n ? innerArgv.then(argv => ({\n aliases: innerYargs.parsed.aliases,\n innerArgv: argv,\n }))\n : {\n aliases: innerYargs.parsed.aliases,\n innerArgv: innerArgv,\n };\n }\n shouldUpdateUsage(yargs) {\n return (!yargs.getInternalMethods().getUsageInstance().getUsageDisabled() &&\n yargs.getInternalMethods().getUsageInstance().getUsage().length === 0);\n }\n usageFromParentCommandsCommandHandler(parentCommands, commandHandler) {\n const c = DEFAULT_MARKER.test(commandHandler.original)\n ? commandHandler.original.replace(DEFAULT_MARKER, '').trim()\n : commandHandler.original;\n const pc = parentCommands.filter(c => {\n return !DEFAULT_MARKER.test(c);\n });\n pc.push(c);\n return `$0 ${pc.join(' ')}`;\n }\n handleValidationAndGetResult(isDefaultCommand, commandHandler, innerArgv, currentContext, aliases, yargs, middlewares, positionalMap) {\n if (!yargs.getInternalMethods().getHasOutput()) {\n const validation = yargs\n .getInternalMethods()\n .runValidation(aliases, positionalMap, yargs.parsed.error, isDefaultCommand);\n innerArgv = maybeAsyncResult(innerArgv, result => {\n validation(result);\n return result;\n });\n }\n if (commandHandler.handler && !yargs.getInternalMethods().getHasOutput()) {\n yargs.getInternalMethods().setHasOutput();\n const populateDoubleDash = !!yargs.getOptions().configuration['populate--'];\n yargs\n .getInternalMethods()\n .postProcess(innerArgv, populateDoubleDash, false, false);\n innerArgv = applyMiddleware(innerArgv, yargs, middlewares, false);\n innerArgv = maybeAsyncResult(innerArgv, result => {\n const handlerResult = commandHandler.handler(result);\n return isPromise(handlerResult)\n ? handlerResult.then(() => result)\n : result;\n });\n if (!isDefaultCommand) {\n yargs.getInternalMethods().getUsageInstance().cacheHelpMessage();\n }\n if (isPromise(innerArgv) &&\n !yargs.getInternalMethods().hasParseCallback()) {\n innerArgv.catch(error => {\n try {\n yargs.getInternalMethods().getUsageInstance().fail(null, error);\n }\n catch (_err) {\n }\n });\n }\n }\n if (!isDefaultCommand) {\n currentContext.commands.pop();\n currentContext.fullCommands.pop();\n }\n return innerArgv;\n }\n applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, innerArgv, currentContext, helpOnly, aliases, yargs) {\n let positionalMap = {};\n if (helpOnly)\n return innerArgv;\n if (!yargs.getInternalMethods().getHasOutput()) {\n positionalMap = this.populatePositionals(commandHandler, innerArgv, currentContext, yargs);\n }\n const middlewares = this.globalMiddleware\n .getMiddleware()\n .slice(0)\n .concat(commandHandler.middlewares);\n const maybePromiseArgv = applyMiddleware(innerArgv, yargs, middlewares, true);\n return isPromise(maybePromiseArgv)\n ? maybePromiseArgv.then(resolvedInnerArgv => this.handleValidationAndGetResult(isDefaultCommand, commandHandler, resolvedInnerArgv, currentContext, aliases, yargs, middlewares, positionalMap))\n : this.handleValidationAndGetResult(isDefaultCommand, commandHandler, maybePromiseArgv, currentContext, aliases, yargs, middlewares, positionalMap);\n }\n populatePositionals(commandHandler, argv, context, yargs) {\n argv._ = argv._.slice(context.commands.length);\n const demanded = commandHandler.demanded.slice(0);\n const optional = commandHandler.optional.slice(0);\n const positionalMap = {};\n this.validation.positionalCount(demanded.length, argv._.length);\n while (demanded.length) {\n const demand = demanded.shift();\n this.populatePositional(demand, argv, positionalMap);\n }\n while (optional.length) {\n const maybe = optional.shift();\n this.populatePositional(maybe, argv, positionalMap);\n }\n argv._ = context.commands.concat(argv._.map(a => '' + a));\n this.postProcessPositionals(argv, positionalMap, this.cmdToParseOptions(commandHandler.original), yargs);\n return positionalMap;\n }\n populatePositional(positional, argv, positionalMap) {\n const cmd = positional.cmd[0];\n if (positional.variadic) {\n positionalMap[cmd] = argv._.splice(0).map(String);\n }\n else {\n if (argv._.length)\n positionalMap[cmd] = [String(argv._.shift())];\n }\n }\n cmdToParseOptions(cmdString) {\n const parseOptions = {\n array: [],\n default: {},\n alias: {},\n demand: {},\n };\n const parsed = parseCommand(cmdString);\n parsed.demanded.forEach(d => {\n const [cmd, ...aliases] = d.cmd;\n if (d.variadic) {\n parseOptions.array.push(cmd);\n parseOptions.default[cmd] = [];\n }\n parseOptions.alias[cmd] = aliases;\n parseOptions.demand[cmd] = true;\n });\n parsed.optional.forEach(o => {\n const [cmd, ...aliases] = o.cmd;\n if (o.variadic) {\n parseOptions.array.push(cmd);\n parseOptions.default[cmd] = [];\n }\n parseOptions.alias[cmd] = aliases;\n });\n return parseOptions;\n }\n postProcessPositionals(argv, positionalMap, parseOptions, yargs) {\n const options = Object.assign({}, yargs.getOptions());\n options.default = Object.assign(parseOptions.default, options.default);\n for (const key of Object.keys(parseOptions.alias)) {\n options.alias[key] = (options.alias[key] || []).concat(parseOptions.alias[key]);\n }\n options.array = options.array.concat(parseOptions.array);\n options.config = {};\n const unparsed = [];\n Object.keys(positionalMap).forEach(key => {\n positionalMap[key].map(value => {\n if (options.configuration['unknown-options-as-args'])\n options.key[key] = true;\n unparsed.push(`--${key}`);\n unparsed.push(value);\n });\n });\n if (!unparsed.length)\n return;\n const config = Object.assign({}, options.configuration, {\n 'populate--': false,\n });\n const parsed = this.shim.Parser.detailed(unparsed, Object.assign({}, options, {\n configuration: config,\n }));\n if (parsed.error) {\n yargs\n .getInternalMethods()\n .getUsageInstance()\n .fail(parsed.error.message, parsed.error);\n }\n else {\n const positionalKeys = Object.keys(positionalMap);\n Object.keys(positionalMap).forEach(key => {\n positionalKeys.push(...parsed.aliases[key]);\n });\n Object.keys(parsed.argv).forEach(key => {\n if (positionalKeys.includes(key)) {\n if (!positionalMap[key])\n positionalMap[key] = parsed.argv[key];\n if (!this.isInConfigs(yargs, key) &&\n !this.isDefaulted(yargs, key) &&\n Object.prototype.hasOwnProperty.call(argv, key) &&\n Object.prototype.hasOwnProperty.call(parsed.argv, key) &&\n (Array.isArray(argv[key]) || Array.isArray(parsed.argv[key]))) {\n argv[key] = [].concat(argv[key], parsed.argv[key]);\n }\n else {\n argv[key] = parsed.argv[key];\n }\n }\n });\n }\n }\n isDefaulted(yargs, key) {\n const { default: defaults } = yargs.getOptions();\n return (Object.prototype.hasOwnProperty.call(defaults, key) ||\n Object.prototype.hasOwnProperty.call(defaults, this.shim.Parser.camelCase(key)));\n }\n isInConfigs(yargs, key) {\n const { configObjects } = yargs.getOptions();\n return (configObjects.some(c => Object.prototype.hasOwnProperty.call(c, key)) ||\n configObjects.some(c => Object.prototype.hasOwnProperty.call(c, this.shim.Parser.camelCase(key))));\n }\n runDefaultBuilderOn(yargs) {\n if (!this.defaultCommand)\n return;\n if (this.shouldUpdateUsage(yargs)) {\n const commandString = DEFAULT_MARKER.test(this.defaultCommand.original)\n ? this.defaultCommand.original\n : this.defaultCommand.original.replace(/^[^[\\]<>]*/, '$0 ');\n yargs\n .getInternalMethods()\n .getUsageInstance()\n .usage(commandString, this.defaultCommand.description);\n }\n const builder = this.defaultCommand.builder;\n if (isCommandBuilderCallback(builder)) {\n return builder(yargs, true);\n }\n else if (!isCommandBuilderDefinition(builder)) {\n Object.keys(builder).forEach(key => {\n yargs.option(key, builder[key]);\n });\n }\n return undefined;\n }\n extractDesc({ describe, description, desc }) {\n for (const test of [describe, description, desc]) {\n if (typeof test === 'string' || test === false)\n return test;\n assertNotStrictEqual(test, true, this.shim);\n }\n return false;\n }\n freeze() {\n this.frozens.push({\n handlers: this.handlers,\n aliasMap: this.aliasMap,\n defaultCommand: this.defaultCommand,\n });\n }\n unfreeze() {\n const frozen = this.frozens.pop();\n assertNotStrictEqual(frozen, undefined, this.shim);\n ({\n handlers: this.handlers,\n aliasMap: this.aliasMap,\n defaultCommand: this.defaultCommand,\n } = frozen);\n }\n reset() {\n this.handlers = {};\n this.aliasMap = {};\n this.defaultCommand = undefined;\n this.requireCache = new Set();\n return this;\n }\n}\nexport function command(usage, validation, globalMiddleware, shim) {\n return new CommandInstance(usage, validation, globalMiddleware, shim);\n}\nexport function isCommandBuilderDefinition(builder) {\n return (typeof builder === 'object' &&\n !!builder.builder &&\n typeof builder.handler === 'function');\n}\nfunction isCommandAndAliases(cmd) {\n return cmd.every(c => typeof c === 'string');\n}\nexport function isCommandBuilderCallback(builder) {\n return typeof builder === 'function';\n}\nfunction isCommandBuilderOptionDefinitions(builder) {\n return typeof builder === 'object';\n}\nexport function isCommandHandlerDefinition(cmd) {\n return typeof cmd === 'object' && !Array.isArray(cmd);\n}\n", "import { objectKeys } from '../typings/common-types.js';\nexport function objFilter(original = {}, filter = () => true) {\n const obj = {};\n objectKeys(original).forEach(key => {\n if (filter(key, original[key])) {\n obj[key] = original[key];\n }\n });\n return obj;\n}\n", "export default function setBlocking(blocking) {\n if (typeof process === 'undefined')\n return;\n [process.stdout, process.stderr].forEach(_stream => {\n const stream = _stream;\n if (stream._handle &&\n stream.isTTY &&\n typeof stream._handle.setBlocking === 'function') {\n stream._handle.setBlocking(blocking);\n }\n });\n}\n", "import { objFilter } from './utils/obj-filter.js';\nimport { YError } from './yerror.js';\nimport setBlocking from './utils/set-blocking.js';\nfunction isBoolean(fail) {\n return typeof fail === 'boolean';\n}\nexport function usage(yargs, shim) {\n const __ = shim.y18n.__;\n const self = {};\n const fails = [];\n self.failFn = function failFn(f) {\n fails.push(f);\n };\n let failMessage = null;\n let globalFailMessage = null;\n let showHelpOnFail = true;\n self.showHelpOnFail = function showHelpOnFailFn(arg1 = true, arg2) {\n const [enabled, message] = typeof arg1 === 'string' ? [true, arg1] : [arg1, arg2];\n if (yargs.getInternalMethods().isGlobalContext()) {\n globalFailMessage = message;\n }\n failMessage = message;\n showHelpOnFail = enabled;\n return self;\n };\n let failureOutput = false;\n self.fail = function fail(msg, err) {\n const logger = yargs.getInternalMethods().getLoggerInstance();\n if (fails.length) {\n for (let i = fails.length - 1; i >= 0; --i) {\n const fail = fails[i];\n if (isBoolean(fail)) {\n if (err)\n throw err;\n else if (msg)\n throw Error(msg);\n }\n else {\n fail(msg, err, self);\n }\n }\n }\n else {\n if (yargs.getExitProcess())\n setBlocking(true);\n if (!failureOutput) {\n failureOutput = true;\n if (showHelpOnFail) {\n yargs.showHelp('error');\n logger.error();\n }\n if (msg || err)\n logger.error(msg || err);\n const globalOrCommandFailMessage = failMessage || globalFailMessage;\n if (globalOrCommandFailMessage) {\n if (msg || err)\n logger.error('');\n logger.error(globalOrCommandFailMessage);\n }\n }\n err = err || new YError(msg);\n if (yargs.getExitProcess()) {\n return yargs.exit(1);\n }\n else if (yargs.getInternalMethods().hasParseCallback()) {\n return yargs.exit(1, err);\n }\n else {\n throw err;\n }\n }\n };\n let usages = [];\n let usageDisabled = false;\n self.usage = (msg, description) => {\n if (msg === null) {\n usageDisabled = true;\n usages = [];\n return self;\n }\n usageDisabled = false;\n usages.push([msg, description || '']);\n return self;\n };\n self.getUsage = () => {\n return usages;\n };\n self.getUsageDisabled = () => {\n return usageDisabled;\n };\n self.getPositionalGroupName = () => {\n return __('Positionals:');\n };\n let examples = [];\n self.example = (cmd, description) => {\n examples.push([cmd, description || '']);\n };\n let commands = [];\n self.command = function command(cmd, description, isDefault, aliases, deprecated = false) {\n if (isDefault) {\n commands = commands.map(cmdArray => {\n cmdArray[2] = false;\n return cmdArray;\n });\n }\n commands.push([cmd, description || '', isDefault, aliases, deprecated]);\n };\n self.getCommands = () => commands;\n let descriptions = {};\n self.describe = function describe(keyOrKeys, desc) {\n if (Array.isArray(keyOrKeys)) {\n keyOrKeys.forEach(k => {\n self.describe(k, desc);\n });\n }\n else if (typeof keyOrKeys === 'object') {\n Object.keys(keyOrKeys).forEach(k => {\n self.describe(k, keyOrKeys[k]);\n });\n }\n else {\n descriptions[keyOrKeys] = desc;\n }\n };\n self.getDescriptions = () => descriptions;\n let epilogs = [];\n self.epilog = msg => {\n epilogs.push(msg);\n };\n let wrapSet = false;\n let wrap;\n self.wrap = cols => {\n wrapSet = true;\n wrap = cols;\n };\n self.getWrap = () => {\n if (shim.getEnv('YARGS_DISABLE_WRAP')) {\n return null;\n }\n if (!wrapSet) {\n wrap = windowWidth();\n wrapSet = true;\n }\n return wrap;\n };\n const deferY18nLookupPrefix = '__yargsString__:';\n self.deferY18nLookup = str => deferY18nLookupPrefix + str;\n self.help = function help() {\n if (cachedHelpMessage)\n return cachedHelpMessage;\n normalizeAliases();\n const base$0 = yargs.customScriptName\n ? yargs.$0\n : shim.path.basename(yargs.$0);\n const demandedOptions = yargs.getDemandedOptions();\n const demandedCommands = yargs.getDemandedCommands();\n const deprecatedOptions = yargs.getDeprecatedOptions();\n const groups = yargs.getGroups();\n const options = yargs.getOptions();\n let keys = [];\n keys = keys.concat(Object.keys(descriptions));\n keys = keys.concat(Object.keys(demandedOptions));\n keys = keys.concat(Object.keys(demandedCommands));\n keys = keys.concat(Object.keys(options.default));\n keys = keys.filter(filterHiddenOptions);\n keys = Object.keys(keys.reduce((acc, key) => {\n if (key !== '_')\n acc[key] = true;\n return acc;\n }, {}));\n const theWrap = self.getWrap();\n const ui = shim.cliui({\n width: theWrap,\n wrap: !!theWrap,\n });\n if (!usageDisabled) {\n if (usages.length) {\n usages.forEach(usage => {\n ui.div({ text: `${usage[0].replace(/\\$0/g, base$0)}` });\n if (usage[1]) {\n ui.div({ text: `${usage[1]}`, padding: [1, 0, 0, 0] });\n }\n });\n ui.div();\n }\n else if (commands.length) {\n let u = null;\n if (demandedCommands._) {\n u = `${base$0} <${__('command')}>\\n`;\n }\n else {\n u = `${base$0} [${__('command')}]\\n`;\n }\n ui.div(`${u}`);\n }\n }\n if (commands.length > 1 || (commands.length === 1 && !commands[0][2])) {\n ui.div(__('Commands:'));\n const context = yargs.getInternalMethods().getContext();\n const parentCommands = context.commands.length\n ? `${context.commands.join(' ')} `\n : '';\n if (yargs.getInternalMethods().getParserConfiguration()['sort-commands'] ===\n true) {\n commands = commands.sort((a, b) => a[0].localeCompare(b[0]));\n }\n const prefix = base$0 ? `${base$0} ` : '';\n commands.forEach(command => {\n const commandString = `${prefix}${parentCommands}${command[0].replace(/^\\$0 ?/, '')}`;\n ui.span({\n text: commandString,\n padding: [0, 2, 0, 2],\n width: maxWidth(commands, theWrap, `${base$0}${parentCommands}`) + 4,\n }, { text: command[1] });\n const hints = [];\n if (command[2])\n hints.push(`[${__('default')}]`);\n if (command[3] && command[3].length) {\n hints.push(`[${__('aliases:')} ${command[3].join(', ')}]`);\n }\n if (command[4]) {\n if (typeof command[4] === 'string') {\n hints.push(`[${__('deprecated: %s', command[4])}]`);\n }\n else {\n hints.push(`[${__('deprecated')}]`);\n }\n }\n if (hints.length) {\n ui.div({\n text: hints.join(' '),\n padding: [0, 0, 0, 2],\n align: 'right',\n });\n }\n else {\n ui.div();\n }\n });\n ui.div();\n }\n const aliasKeys = (Object.keys(options.alias) || []).concat(Object.keys(yargs.parsed.newAliases) || []);\n keys = keys.filter(key => !yargs.parsed.newAliases[key] &&\n aliasKeys.every(alias => (options.alias[alias] || []).indexOf(key) === -1));\n const defaultGroup = __('Options:');\n if (!groups[defaultGroup])\n groups[defaultGroup] = [];\n addUngroupedKeys(keys, options.alias, groups, defaultGroup);\n const isLongSwitch = (sw) => /^--/.test(getText(sw));\n const displayedGroups = Object.keys(groups)\n .filter(groupName => groups[groupName].length > 0)\n .map(groupName => {\n const normalizedKeys = groups[groupName]\n .filter(filterHiddenOptions)\n .map(key => {\n if (aliasKeys.includes(key))\n return key;\n for (let i = 0, aliasKey; (aliasKey = aliasKeys[i]) !== undefined; i++) {\n if ((options.alias[aliasKey] || []).includes(key))\n return aliasKey;\n }\n return key;\n });\n return { groupName, normalizedKeys };\n })\n .filter(({ normalizedKeys }) => normalizedKeys.length > 0)\n .map(({ groupName, normalizedKeys }) => {\n const switches = normalizedKeys.reduce((acc, key) => {\n acc[key] = [key]\n .concat(options.alias[key] || [])\n .map(sw => {\n if (groupName === self.getPositionalGroupName())\n return sw;\n else {\n return ((/^[0-9]$/.test(sw)\n ? options.boolean.includes(key)\n ? '-'\n : '--'\n : sw.length > 1\n ? '--'\n : '-') + sw);\n }\n })\n .sort((sw1, sw2) => isLongSwitch(sw1) === isLongSwitch(sw2)\n ? 0\n : isLongSwitch(sw1)\n ? 1\n : -1)\n .join(', ');\n return acc;\n }, {});\n return { groupName, normalizedKeys, switches };\n });\n const shortSwitchesUsed = displayedGroups\n .filter(({ groupName }) => groupName !== self.getPositionalGroupName())\n .some(({ normalizedKeys, switches }) => !normalizedKeys.every(key => isLongSwitch(switches[key])));\n if (shortSwitchesUsed) {\n displayedGroups\n .filter(({ groupName }) => groupName !== self.getPositionalGroupName())\n .forEach(({ normalizedKeys, switches }) => {\n normalizedKeys.forEach(key => {\n if (isLongSwitch(switches[key])) {\n switches[key] = addIndentation(switches[key], '-x, '.length);\n }\n });\n });\n }\n displayedGroups.forEach(({ groupName, normalizedKeys, switches }) => {\n ui.div(groupName);\n normalizedKeys.forEach(key => {\n const kswitch = switches[key];\n let desc = descriptions[key] || '';\n let type = null;\n if (desc.includes(deferY18nLookupPrefix))\n desc = __(desc.substring(deferY18nLookupPrefix.length));\n if (options.boolean.includes(key))\n type = `[${__('boolean')}]`;\n if (options.count.includes(key))\n type = `[${__('count')}]`;\n if (options.string.includes(key))\n type = `[${__('string')}]`;\n if (options.normalize.includes(key))\n type = `[${__('string')}]`;\n if (options.array.includes(key))\n type = `[${__('array')}]`;\n if (options.number.includes(key))\n type = `[${__('number')}]`;\n const deprecatedExtra = (deprecated) => typeof deprecated === 'string'\n ? `[${__('deprecated: %s', deprecated)}]`\n : `[${__('deprecated')}]`;\n const extra = [\n key in deprecatedOptions\n ? deprecatedExtra(deprecatedOptions[key])\n : null,\n type,\n key in demandedOptions ? `[${__('required')}]` : null,\n options.choices && options.choices[key]\n ? `[${__('choices:')} ${self.stringifiedValues(options.choices[key])}]`\n : null,\n defaultString(options.default[key], options.defaultDescription[key]),\n ]\n .filter(Boolean)\n .join(' ');\n ui.span({\n text: getText(kswitch),\n padding: [0, 2, 0, 2 + getIndentation(kswitch)],\n width: maxWidth(switches, theWrap) + 4,\n }, desc);\n const shouldHideOptionExtras = yargs.getInternalMethods().getUsageConfiguration()['hide-types'] ===\n true;\n if (extra && !shouldHideOptionExtras)\n ui.div({ text: extra, padding: [0, 0, 0, 2], align: 'right' });\n else\n ui.div();\n });\n ui.div();\n });\n if (examples.length) {\n ui.div(__('Examples:'));\n examples.forEach(example => {\n example[0] = example[0].replace(/\\$0/g, base$0);\n });\n examples.forEach(example => {\n if (example[1] === '') {\n ui.div({\n text: example[0],\n padding: [0, 2, 0, 2],\n });\n }\n else {\n ui.div({\n text: example[0],\n padding: [0, 2, 0, 2],\n width: maxWidth(examples, theWrap) + 4,\n }, {\n text: example[1],\n });\n }\n });\n ui.div();\n }\n if (epilogs.length > 0) {\n const e = epilogs\n .map(epilog => epilog.replace(/\\$0/g, base$0))\n .join('\\n');\n ui.div(`${e}\\n`);\n }\n return ui.toString().replace(/\\s*$/, '');\n };\n function maxWidth(table, theWrap, modifier) {\n let width = 0;\n if (!Array.isArray(table)) {\n table = Object.values(table).map(v => [v]);\n }\n table.forEach(v => {\n width = Math.max(shim.stringWidth(modifier ? `${modifier} ${getText(v[0])}` : getText(v[0])) + getIndentation(v[0]), width);\n });\n if (theWrap)\n width = Math.min(width, parseInt((theWrap * 0.5).toString(), 10));\n return width;\n }\n function normalizeAliases() {\n const demandedOptions = yargs.getDemandedOptions();\n const options = yargs.getOptions();\n (Object.keys(options.alias) || []).forEach(key => {\n options.alias[key].forEach(alias => {\n if (descriptions[alias])\n self.describe(key, descriptions[alias]);\n if (alias in demandedOptions)\n yargs.demandOption(key, demandedOptions[alias]);\n if (options.boolean.includes(alias))\n yargs.boolean(key);\n if (options.count.includes(alias))\n yargs.count(key);\n if (options.string.includes(alias))\n yargs.string(key);\n if (options.normalize.includes(alias))\n yargs.normalize(key);\n if (options.array.includes(alias))\n yargs.array(key);\n if (options.number.includes(alias))\n yargs.number(key);\n });\n });\n }\n let cachedHelpMessage;\n self.cacheHelpMessage = function () {\n cachedHelpMessage = this.help();\n };\n self.clearCachedHelpMessage = function () {\n cachedHelpMessage = undefined;\n };\n self.hasCachedHelpMessage = function () {\n return !!cachedHelpMessage;\n };\n function addUngroupedKeys(keys, aliases, groups, defaultGroup) {\n let groupedKeys = [];\n let toCheck = null;\n Object.keys(groups).forEach(group => {\n groupedKeys = groupedKeys.concat(groups[group]);\n });\n keys.forEach(key => {\n toCheck = [key].concat(aliases[key]);\n if (!toCheck.some(k => groupedKeys.indexOf(k) !== -1)) {\n groups[defaultGroup].push(key);\n }\n });\n return groupedKeys;\n }\n function filterHiddenOptions(key) {\n return (yargs.getOptions().hiddenOptions.indexOf(key) < 0 ||\n yargs.parsed.argv[yargs.getOptions().showHiddenOpt]);\n }\n self.showHelp = (level) => {\n const logger = yargs.getInternalMethods().getLoggerInstance();\n if (!level)\n level = 'error';\n const emit = typeof level === 'function' ? level : logger[level];\n emit(self.help());\n };\n self.functionDescription = fn => {\n const description = fn.name\n ? shim.Parser.decamelize(fn.name, '-')\n : __('generated-value');\n return ['(', description, ')'].join('');\n };\n self.stringifiedValues = function stringifiedValues(values, separator) {\n let string = '';\n const sep = separator || ', ';\n const array = [].concat(values);\n if (!values || !array.length)\n return string;\n array.forEach(value => {\n if (string.length)\n string += sep;\n string += JSON.stringify(value);\n });\n return string;\n };\n function defaultString(value, defaultDescription) {\n let string = `[${__('default:')} `;\n if (value === undefined && !defaultDescription)\n return null;\n if (defaultDescription) {\n string += defaultDescription;\n }\n else {\n switch (typeof value) {\n case 'string':\n string += `\"${value}\"`;\n break;\n case 'object':\n string += JSON.stringify(value);\n break;\n default:\n string += value;\n }\n }\n return `${string}]`;\n }\n function windowWidth() {\n const maxWidth = 80;\n if (shim.process.stdColumns) {\n return Math.min(maxWidth, shim.process.stdColumns);\n }\n else {\n return maxWidth;\n }\n }\n let version = null;\n self.version = ver => {\n version = ver;\n };\n self.showVersion = level => {\n const logger = yargs.getInternalMethods().getLoggerInstance();\n if (!level)\n level = 'error';\n const emit = typeof level === 'function' ? level : logger[level];\n emit(version);\n };\n self.reset = function reset(localLookup) {\n failMessage = null;\n failureOutput = false;\n usages = [];\n usageDisabled = false;\n epilogs = [];\n examples = [];\n commands = [];\n descriptions = objFilter(descriptions, k => !localLookup[k]);\n return self;\n };\n const frozens = [];\n self.freeze = function freeze() {\n frozens.push({\n failMessage,\n failureOutput,\n usages,\n usageDisabled,\n epilogs,\n examples,\n commands,\n descriptions,\n });\n };\n self.unfreeze = function unfreeze(defaultCommand = false) {\n const frozen = frozens.pop();\n if (!frozen)\n return;\n if (defaultCommand) {\n descriptions = { ...frozen.descriptions, ...descriptions };\n commands = [...frozen.commands, ...commands];\n usages = [...frozen.usages, ...usages];\n examples = [...frozen.examples, ...examples];\n epilogs = [...frozen.epilogs, ...epilogs];\n }\n else {\n ({\n failMessage,\n failureOutput,\n usages,\n usageDisabled,\n epilogs,\n examples,\n commands,\n descriptions,\n } = frozen);\n }\n };\n return self;\n}\nfunction isIndentedText(text) {\n return typeof text === 'object';\n}\nfunction addIndentation(text, indent) {\n return isIndentedText(text)\n ? { text: text.text, indentation: text.indentation + indent }\n : { text, indentation: indent };\n}\nfunction getIndentation(text) {\n return isIndentedText(text) ? text.indentation : 0;\n}\nfunction getText(text) {\n return isIndentedText(text) ? text.text : text;\n}\n", "export const completionShTemplate = `###-begin-{{app_name}}-completions-###\n#\n# yargs command completion script\n#\n# Installation: {{app_path}} {{completion_command}} >> ~/.bashrc\n# or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX.\n#\n_{{app_name}}_yargs_completions()\n{\n local cur_word args type_list\n\n cur_word=\"\\${COMP_WORDS[COMP_CWORD]}\"\n args=(\"\\${COMP_WORDS[@]}\")\n\n # ask yargs to generate completions.\n # see https://stackoverflow.com/a/40944195/7080036 for the spaces-handling awk\n mapfile -t type_list < <({{app_path}} --get-yargs-completions \"\\${args[@]}\")\n mapfile -t COMPREPLY < <(compgen -W \"$( printf '%q ' \"\\${type_list[@]}\" )\" -- \"\\${cur_word}\" |\n awk '/ / { print \"\\\\\"\"$0\"\\\\\"\" } /^[^ ]+$/ { print $0 }')\n\n # if no match was found, fall back to filename completion\n if [ \\${#COMPREPLY[@]} -eq 0 ]; then\n COMPREPLY=()\n fi\n\n return 0\n}\ncomplete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}}\n###-end-{{app_name}}-completions-###\n`;\nexport const completionZshTemplate = `#compdef {{app_name}}\n###-begin-{{app_name}}-completions-###\n#\n# yargs command completion script\n#\n# Installation: {{app_path}} {{completion_command}} >> ~/.zshrc\n# or {{app_path}} {{completion_command}} >> ~/.zprofile on OSX.\n#\n_{{app_name}}_yargs_completions()\n{\n local reply\n local si=$IFS\n IFS=$'\\n' reply=($(COMP_CWORD=\"$((CURRENT-1))\" COMP_LINE=\"$BUFFER\" COMP_POINT=\"$CURSOR\" {{app_path}} --get-yargs-completions \"\\${words[@]}\"))\n IFS=$si\n if [[ \\${#reply} -gt 0 ]]; then\n _describe 'values' reply\n else\n _default\n fi\n}\nif [[ \"'\\${zsh_eval_context[-1]}\" == \"loadautofunc\" ]]; then\n _{{app_name}}_yargs_completions \"$@\"\nelse\n compdef _{{app_name}}_yargs_completions {{app_name}}\nfi\n###-end-{{app_name}}-completions-###\n`;\n", "import { isCommandBuilderCallback } from './command.js';\nimport { assertNotStrictEqual } from './typings/common-types.js';\nimport * as templates from './completion-templates.js';\nimport { isPromise } from './utils/is-promise.js';\nimport { parseCommand } from './parse-command.js';\nexport class Completion {\n constructor(yargs, usage, command, shim) {\n var _a, _b, _c;\n this.yargs = yargs;\n this.usage = usage;\n this.command = command;\n this.shim = shim;\n this.completionKey = 'get-yargs-completions';\n this.aliases = null;\n this.customCompletionFunction = null;\n this.indexAfterLastReset = 0;\n this.zshShell =\n (_c = (((_a = this.shim.getEnv('SHELL')) === null || _a === void 0 ? void 0 : _a.includes('zsh')) ||\n ((_b = this.shim.getEnv('ZSH_NAME')) === null || _b === void 0 ? void 0 : _b.includes('zsh')))) !== null && _c !== void 0 ? _c : false;\n }\n defaultCompletion(args, argv, current, done) {\n const handlers = this.command.getCommandHandlers();\n for (let i = 0, ii = args.length; i < ii; ++i) {\n if (handlers[args[i]] && handlers[args[i]].builder) {\n const builder = handlers[args[i]].builder;\n if (isCommandBuilderCallback(builder)) {\n this.indexAfterLastReset = i + 1;\n const y = this.yargs.getInternalMethods().reset();\n builder(y, true);\n return y.argv;\n }\n }\n }\n const completions = [];\n this.commandCompletions(completions, args, current);\n this.optionCompletions(completions, args, argv, current);\n this.choicesFromOptionsCompletions(completions, args, argv, current);\n this.choicesFromPositionalsCompletions(completions, args, argv, current);\n done(null, completions);\n }\n commandCompletions(completions, args, current) {\n const parentCommands = this.yargs\n .getInternalMethods()\n .getContext().commands;\n if (!current.match(/^-/) &&\n parentCommands[parentCommands.length - 1] !== current &&\n !this.previousArgHasChoices(args)) {\n this.usage.getCommands().forEach(usageCommand => {\n const commandName = parseCommand(usageCommand[0]).cmd;\n if (args.indexOf(commandName) === -1) {\n if (!this.zshShell) {\n completions.push(commandName);\n }\n else {\n const desc = usageCommand[1] || '';\n completions.push(commandName.replace(/:/g, '\\\\:') + ':' + desc);\n }\n }\n });\n }\n }\n optionCompletions(completions, args, argv, current) {\n if ((current.match(/^-/) || (current === '' && completions.length === 0)) &&\n !this.previousArgHasChoices(args)) {\n const options = this.yargs.getOptions();\n const positionalKeys = this.yargs.getGroups()[this.usage.getPositionalGroupName()] || [];\n Object.keys(options.key).forEach(key => {\n const negable = !!options.configuration['boolean-negation'] &&\n options.boolean.includes(key);\n const isPositionalKey = positionalKeys.includes(key);\n if (!isPositionalKey &&\n !options.hiddenOptions.includes(key) &&\n !this.argsContainKey(args, key, negable)) {\n this.completeOptionKey(key, completions, current, negable && !!options.default[key]);\n }\n });\n }\n }\n choicesFromOptionsCompletions(completions, args, argv, current) {\n if (this.previousArgHasChoices(args)) {\n const choices = this.getPreviousArgChoices(args);\n if (choices && choices.length > 0) {\n completions.push(...choices.map(c => c.replace(/:/g, '\\\\:')));\n }\n }\n }\n choicesFromPositionalsCompletions(completions, args, argv, current) {\n if (current === '' &&\n completions.length > 0 &&\n this.previousArgHasChoices(args)) {\n return;\n }\n const positionalKeys = this.yargs.getGroups()[this.usage.getPositionalGroupName()] || [];\n const offset = Math.max(this.indexAfterLastReset, this.yargs.getInternalMethods().getContext().commands.length +\n 1);\n const positionalKey = positionalKeys[argv._.length - offset - 1];\n if (!positionalKey) {\n return;\n }\n const choices = this.yargs.getOptions().choices[positionalKey] || [];\n for (const choice of choices) {\n if (choice.startsWith(current)) {\n completions.push(choice.replace(/:/g, '\\\\:'));\n }\n }\n }\n getPreviousArgChoices(args) {\n if (args.length < 1)\n return;\n let previousArg = args[args.length - 1];\n let filter = '';\n if (!previousArg.startsWith('-') && args.length > 1) {\n filter = previousArg;\n previousArg = args[args.length - 2];\n }\n if (!previousArg.startsWith('-'))\n return;\n const previousArgKey = previousArg.replace(/^-+/, '');\n const options = this.yargs.getOptions();\n const possibleAliases = [\n previousArgKey,\n ...(this.yargs.getAliases()[previousArgKey] || []),\n ];\n let choices;\n for (const possibleAlias of possibleAliases) {\n if (Object.prototype.hasOwnProperty.call(options.key, possibleAlias) &&\n Array.isArray(options.choices[possibleAlias])) {\n choices = options.choices[possibleAlias];\n break;\n }\n }\n if (choices) {\n return choices.filter(choice => !filter || choice.startsWith(filter));\n }\n }\n previousArgHasChoices(args) {\n const choices = this.getPreviousArgChoices(args);\n return choices !== undefined && choices.length > 0;\n }\n argsContainKey(args, key, negable) {\n const argsContains = (s) => args.indexOf((/^[^0-9]$/.test(s) ? '-' : '--') + s) !== -1;\n if (argsContains(key))\n return true;\n if (negable && argsContains(`no-${key}`))\n return true;\n if (this.aliases) {\n for (const alias of this.aliases[key]) {\n if (argsContains(alias))\n return true;\n }\n }\n return false;\n }\n completeOptionKey(key, completions, current, negable) {\n var _a, _b, _c, _d;\n let keyWithDesc = key;\n if (this.zshShell) {\n const descs = this.usage.getDescriptions();\n const aliasKey = (_b = (_a = this === null || this === void 0 ? void 0 : this.aliases) === null || _a === void 0 ? void 0 : _a[key]) === null || _b === void 0 ? void 0 : _b.find(alias => {\n const desc = descs[alias];\n return typeof desc === 'string' && desc.length > 0;\n });\n const descFromAlias = aliasKey ? descs[aliasKey] : undefined;\n const desc = (_d = (_c = descs[key]) !== null && _c !== void 0 ? _c : descFromAlias) !== null && _d !== void 0 ? _d : '';\n keyWithDesc = `${key.replace(/:/g, '\\\\:')}:${desc\n .replace('__yargsString__:', '')\n .replace(/(\\r\\n|\\n|\\r)/gm, ' ')}`;\n }\n const startsByTwoDashes = (s) => /^--/.test(s);\n const isShortOption = (s) => /^[^0-9]$/.test(s);\n const dashes = !startsByTwoDashes(current) && isShortOption(key) ? '-' : '--';\n completions.push(dashes + keyWithDesc);\n if (negable) {\n completions.push(dashes + 'no-' + keyWithDesc);\n }\n }\n customCompletion(args, argv, current, done) {\n assertNotStrictEqual(this.customCompletionFunction, null, this.shim);\n if (isSyncCompletionFunction(this.customCompletionFunction)) {\n const result = this.customCompletionFunction(current, argv);\n if (isPromise(result)) {\n return result\n .then(list => {\n this.shim.process.nextTick(() => {\n done(null, list);\n });\n })\n .catch(err => {\n this.shim.process.nextTick(() => {\n done(err, undefined);\n });\n });\n }\n return done(null, result);\n }\n else if (isFallbackCompletionFunction(this.customCompletionFunction)) {\n return this.customCompletionFunction(current, argv, (onCompleted = done) => this.defaultCompletion(args, argv, current, onCompleted), completions => {\n done(null, completions);\n });\n }\n else {\n return this.customCompletionFunction(current, argv, completions => {\n done(null, completions);\n });\n }\n }\n getCompletion(args, done) {\n const current = args.length ? args[args.length - 1] : '';\n const argv = this.yargs.parse(args, true);\n const completionFunction = this.customCompletionFunction\n ? (argv) => this.customCompletion(args, argv, current, done)\n : (argv) => this.defaultCompletion(args, argv, current, done);\n return isPromise(argv)\n ? argv.then(completionFunction)\n : completionFunction(argv);\n }\n generateCompletionScript($0, cmd) {\n let script = this.zshShell\n ? templates.completionZshTemplate\n : templates.completionShTemplate;\n const name = this.shim.path.basename($0);\n if ($0.match(/\\.js$/))\n $0 = `./${$0}`;\n script = script.replace(/{{app_name}}/g, name);\n script = script.replace(/{{completion_command}}/g, cmd);\n return script.replace(/{{app_path}}/g, $0);\n }\n registerFunction(fn) {\n this.customCompletionFunction = fn;\n }\n setParsed(parsed) {\n this.aliases = parsed.aliases;\n }\n}\nexport function completion(yargs, usage, command, shim) {\n return new Completion(yargs, usage, command, shim);\n}\nfunction isSyncCompletionFunction(completionFunction) {\n return completionFunction.length < 3;\n}\nfunction isFallbackCompletionFunction(completionFunction) {\n return completionFunction.length > 3;\n}\n", "export function levenshtein(a, b) {\n if (a.length === 0)\n return b.length;\n if (b.length === 0)\n return a.length;\n const matrix = [];\n let i;\n for (i = 0; i <= b.length; i++) {\n matrix[i] = [i];\n }\n let j;\n for (j = 0; j <= a.length; j++) {\n matrix[0][j] = j;\n }\n for (i = 1; i <= b.length; i++) {\n for (j = 1; j <= a.length; j++) {\n if (b.charAt(i - 1) === a.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n }\n else {\n if (i > 1 &&\n j > 1 &&\n b.charAt(i - 2) === a.charAt(j - 1) &&\n b.charAt(i - 1) === a.charAt(j - 2)) {\n matrix[i][j] = matrix[i - 2][j - 2] + 1;\n }\n else {\n matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1));\n }\n }\n }\n }\n return matrix[b.length][a.length];\n}\n", "import { argsert } from './argsert.js';\nimport { assertNotStrictEqual, } from './typings/common-types.js';\nimport { levenshtein as distance } from './utils/levenshtein.js';\nimport { objFilter } from './utils/obj-filter.js';\nconst specialKeys = ['$0', '--', '_'];\nexport function validation(yargs, usage, shim) {\n const __ = shim.y18n.__;\n const __n = shim.y18n.__n;\n const self = {};\n self.nonOptionCount = function nonOptionCount(argv) {\n const demandedCommands = yargs.getDemandedCommands();\n const positionalCount = argv._.length + (argv['--'] ? argv['--'].length : 0);\n const _s = positionalCount - yargs.getInternalMethods().getContext().commands.length;\n if (demandedCommands._ &&\n (_s < demandedCommands._.min || _s > demandedCommands._.max)) {\n if (_s < demandedCommands._.min) {\n if (demandedCommands._.minMsg !== undefined) {\n usage.fail(demandedCommands._.minMsg\n ? demandedCommands._.minMsg\n .replace(/\\$0/g, _s.toString())\n .replace(/\\$1/, demandedCommands._.min.toString())\n : null);\n }\n else {\n usage.fail(__n('Not enough non-option arguments: got %s, need at least %s', 'Not enough non-option arguments: got %s, need at least %s', _s, _s.toString(), demandedCommands._.min.toString()));\n }\n }\n else if (_s > demandedCommands._.max) {\n if (demandedCommands._.maxMsg !== undefined) {\n usage.fail(demandedCommands._.maxMsg\n ? demandedCommands._.maxMsg\n .replace(/\\$0/g, _s.toString())\n .replace(/\\$1/, demandedCommands._.max.toString())\n : null);\n }\n else {\n usage.fail(__n('Too many non-option arguments: got %s, maximum of %s', 'Too many non-option arguments: got %s, maximum of %s', _s, _s.toString(), demandedCommands._.max.toString()));\n }\n }\n }\n };\n self.positionalCount = function positionalCount(required, observed) {\n if (observed < required) {\n usage.fail(__n('Not enough non-option arguments: got %s, need at least %s', 'Not enough non-option arguments: got %s, need at least %s', observed, observed + '', required + ''));\n }\n };\n self.requiredArguments = function requiredArguments(argv, demandedOptions) {\n let missing = null;\n for (const key of Object.keys(demandedOptions)) {\n if (!Object.prototype.hasOwnProperty.call(argv, key) ||\n typeof argv[key] === 'undefined') {\n missing = missing || {};\n missing[key] = demandedOptions[key];\n }\n }\n if (missing) {\n const customMsgs = [];\n for (const key of Object.keys(missing)) {\n const msg = missing[key];\n if (msg && customMsgs.indexOf(msg) < 0) {\n customMsgs.push(msg);\n }\n }\n const customMsg = customMsgs.length ? `\\n${customMsgs.join('\\n')}` : '';\n usage.fail(__n('Missing required argument: %s', 'Missing required arguments: %s', Object.keys(missing).length, Object.keys(missing).join(', ') + customMsg));\n }\n };\n self.unknownArguments = function unknownArguments(argv, aliases, positionalMap, isDefaultCommand, checkPositionals = true) {\n var _a;\n const commandKeys = yargs\n .getInternalMethods()\n .getCommandInstance()\n .getCommands();\n const unknown = [];\n const currentContext = yargs.getInternalMethods().getContext();\n Object.keys(argv).forEach(key => {\n if (!specialKeys.includes(key) &&\n !Object.prototype.hasOwnProperty.call(positionalMap, key) &&\n !Object.prototype.hasOwnProperty.call(yargs.getInternalMethods().getParseContext(), key) &&\n !self.isValidAndSomeAliasIsNotNew(key, aliases)) {\n unknown.push(key);\n }\n });\n if (checkPositionals &&\n (currentContext.commands.length > 0 ||\n commandKeys.length > 0 ||\n isDefaultCommand)) {\n argv._.slice(currentContext.commands.length).forEach(key => {\n if (!commandKeys.includes('' + key)) {\n unknown.push('' + key);\n }\n });\n }\n if (checkPositionals) {\n const demandedCommands = yargs.getDemandedCommands();\n const maxNonOptDemanded = ((_a = demandedCommands._) === null || _a === void 0 ? void 0 : _a.max) || 0;\n const expected = currentContext.commands.length + maxNonOptDemanded;\n if (expected < argv._.length) {\n argv._.slice(expected).forEach(key => {\n key = String(key);\n if (!currentContext.commands.includes(key) &&\n !unknown.includes(key)) {\n unknown.push(key);\n }\n });\n }\n }\n if (unknown.length) {\n usage.fail(__n('Unknown argument: %s', 'Unknown arguments: %s', unknown.length, unknown.map(s => (s.trim() ? s : `\"${s}\"`)).join(', ')));\n }\n };\n self.unknownCommands = function unknownCommands(argv) {\n const commandKeys = yargs\n .getInternalMethods()\n .getCommandInstance()\n .getCommands();\n const unknown = [];\n const currentContext = yargs.getInternalMethods().getContext();\n if (currentContext.commands.length > 0 || commandKeys.length > 0) {\n argv._.slice(currentContext.commands.length).forEach(key => {\n if (!commandKeys.includes('' + key)) {\n unknown.push('' + key);\n }\n });\n }\n if (unknown.length > 0) {\n usage.fail(__n('Unknown command: %s', 'Unknown commands: %s', unknown.length, unknown.join(', ')));\n return true;\n }\n else {\n return false;\n }\n };\n self.isValidAndSomeAliasIsNotNew = function isValidAndSomeAliasIsNotNew(key, aliases) {\n if (!Object.prototype.hasOwnProperty.call(aliases, key)) {\n return false;\n }\n const newAliases = yargs.parsed.newAliases;\n return [key, ...aliases[key]].some(a => !Object.prototype.hasOwnProperty.call(newAliases, a) || !newAliases[key]);\n };\n self.limitedChoices = function limitedChoices(argv) {\n const options = yargs.getOptions();\n const invalid = {};\n if (!Object.keys(options.choices).length)\n return;\n Object.keys(argv).forEach(key => {\n if (specialKeys.indexOf(key) === -1 &&\n Object.prototype.hasOwnProperty.call(options.choices, key)) {\n [].concat(argv[key]).forEach(value => {\n if (options.choices[key].indexOf(value) === -1 &&\n value !== undefined) {\n invalid[key] = (invalid[key] || []).concat(value);\n }\n });\n }\n });\n const invalidKeys = Object.keys(invalid);\n if (!invalidKeys.length)\n return;\n let msg = __('Invalid values:');\n invalidKeys.forEach(key => {\n msg += `\\n ${__('Argument: %s, Given: %s, Choices: %s', key, usage.stringifiedValues(invalid[key]), usage.stringifiedValues(options.choices[key]))}`;\n });\n usage.fail(msg);\n };\n let implied = {};\n self.implies = function implies(key, value) {\n argsert('<string|object> [array|number|string]', [key, value], arguments.length);\n if (typeof key === 'object') {\n Object.keys(key).forEach(k => {\n self.implies(k, key[k]);\n });\n }\n else {\n yargs.global(key);\n if (!implied[key]) {\n implied[key] = [];\n }\n if (Array.isArray(value)) {\n value.forEach(i => self.implies(key, i));\n }\n else {\n assertNotStrictEqual(value, undefined, shim);\n implied[key].push(value);\n }\n }\n };\n self.getImplied = function getImplied() {\n return implied;\n };\n function keyExists(argv, val) {\n const num = Number(val);\n val = isNaN(num) ? val : num;\n if (typeof val === 'number') {\n val = argv._.length >= val;\n }\n else if (val.match(/^--no-.+/)) {\n val = val.match(/^--no-(.+)/)[1];\n val = !Object.prototype.hasOwnProperty.call(argv, val);\n }\n else {\n val = Object.prototype.hasOwnProperty.call(argv, val);\n }\n return val;\n }\n self.implications = function implications(argv) {\n const implyFail = [];\n Object.keys(implied).forEach(key => {\n const origKey = key;\n (implied[key] || []).forEach(value => {\n let key = origKey;\n const origValue = value;\n key = keyExists(argv, key);\n value = keyExists(argv, value);\n if (key && !value) {\n implyFail.push(` ${origKey} -> ${origValue}`);\n }\n });\n });\n if (implyFail.length) {\n let msg = `${__('Implications failed:')}\\n`;\n implyFail.forEach(value => {\n msg += value;\n });\n usage.fail(msg);\n }\n };\n let conflicting = {};\n self.conflicts = function conflicts(key, value) {\n argsert('<string|object> [array|string]', [key, value], arguments.length);\n if (typeof key === 'object') {\n Object.keys(key).forEach(k => {\n self.conflicts(k, key[k]);\n });\n }\n else {\n yargs.global(key);\n if (!conflicting[key]) {\n conflicting[key] = [];\n }\n if (Array.isArray(value)) {\n value.forEach(i => self.conflicts(key, i));\n }\n else {\n conflicting[key].push(value);\n }\n }\n };\n self.getConflicting = () => conflicting;\n self.conflicting = function conflictingFn(argv) {\n Object.keys(argv).forEach(key => {\n if (conflicting[key]) {\n conflicting[key].forEach(value => {\n if (value && argv[key] !== undefined && argv[value] !== undefined) {\n usage.fail(__('Arguments %s and %s are mutually exclusive', key, value));\n }\n });\n }\n });\n if (yargs.getInternalMethods().getParserConfiguration()['strip-dashed']) {\n Object.keys(conflicting).forEach(key => {\n conflicting[key].forEach(value => {\n if (value &&\n argv[shim.Parser.camelCase(key)] !== undefined &&\n argv[shim.Parser.camelCase(value)] !== undefined) {\n usage.fail(__('Arguments %s and %s are mutually exclusive', key, value));\n }\n });\n });\n }\n };\n self.recommendCommands = function recommendCommands(cmd, potentialCommands) {\n const threshold = 3;\n potentialCommands = potentialCommands.sort((a, b) => b.length - a.length);\n let recommended = null;\n let bestDistance = Infinity;\n for (let i = 0, candidate; (candidate = potentialCommands[i]) !== undefined; i++) {\n const d = distance(cmd, candidate);\n if (d <= threshold && d < bestDistance) {\n bestDistance = d;\n recommended = candidate;\n }\n }\n if (recommended)\n usage.fail(__('Did you mean %s?', recommended));\n };\n self.reset = function reset(localLookup) {\n implied = objFilter(implied, k => !localLookup[k]);\n conflicting = objFilter(conflicting, k => !localLookup[k]);\n return self;\n };\n const frozens = [];\n self.freeze = function freeze() {\n frozens.push({\n implied,\n conflicting,\n });\n };\n self.unfreeze = function unfreeze() {\n const frozen = frozens.pop();\n assertNotStrictEqual(frozen, undefined, shim);\n ({ implied, conflicting } = frozen);\n };\n return self;\n}\n", "import { YError } from '../yerror.js';\nlet previouslyVisitedConfigs = [];\nlet shim;\nexport function applyExtends(config, cwd, mergeExtends, _shim) {\n shim = _shim;\n let defaultConfig = {};\n if (Object.prototype.hasOwnProperty.call(config, 'extends')) {\n if (typeof config.extends !== 'string')\n return defaultConfig;\n const isPath = /\\.json|\\..*rc$/.test(config.extends);\n let pathToDefault = null;\n if (!isPath) {\n try {\n pathToDefault = import.meta.resolve(config.extends);\n }\n catch (_err) {\n return config;\n }\n }\n else {\n pathToDefault = getPathToDefaultConfig(cwd, config.extends);\n }\n checkForCircularExtends(pathToDefault);\n previouslyVisitedConfigs.push(pathToDefault);\n defaultConfig = isPath\n ? JSON.parse(shim.readFileSync(pathToDefault, 'utf8'))\n : _shim.require(config.extends);\n delete config.extends;\n defaultConfig = applyExtends(defaultConfig, shim.path.dirname(pathToDefault), mergeExtends, shim);\n }\n previouslyVisitedConfigs = [];\n return mergeExtends\n ? mergeDeep(defaultConfig, config)\n : Object.assign({}, defaultConfig, config);\n}\nfunction checkForCircularExtends(cfgPath) {\n if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) {\n throw new YError(`Circular extended configurations: '${cfgPath}'.`);\n }\n}\nfunction getPathToDefaultConfig(cwd, pathToExtend) {\n return shim.path.resolve(cwd, pathToExtend);\n}\nfunction mergeDeep(config1, config2) {\n const target = {};\n function isObject(obj) {\n return obj && typeof obj === 'object' && !Array.isArray(obj);\n }\n Object.assign(target, config1);\n for (const key of Object.keys(config2)) {\n if (isObject(config2[key]) && isObject(target[key])) {\n target[key] = mergeDeep(config1[key], config2[key]);\n }\n else {\n target[key] = config2[key];\n }\n }\n return target;\n}\n", "var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _YargsInstance_command, _YargsInstance_cwd, _YargsInstance_context, _YargsInstance_completion, _YargsInstance_completionCommand, _YargsInstance_defaultShowHiddenOpt, _YargsInstance_exitError, _YargsInstance_detectLocale, _YargsInstance_emittedWarnings, _YargsInstance_exitProcess, _YargsInstance_frozens, _YargsInstance_globalMiddleware, _YargsInstance_groups, _YargsInstance_hasOutput, _YargsInstance_helpOpt, _YargsInstance_isGlobalContext, _YargsInstance_logger, _YargsInstance_output, _YargsInstance_options, _YargsInstance_parentRequire, _YargsInstance_parserConfig, _YargsInstance_parseFn, _YargsInstance_parseContext, _YargsInstance_pkgs, _YargsInstance_preservedGroups, _YargsInstance_processArgs, _YargsInstance_recommendCommands, _YargsInstance_shim, _YargsInstance_strict, _YargsInstance_strictCommands, _YargsInstance_strictOptions, _YargsInstance_usage, _YargsInstance_usageConfig, _YargsInstance_versionOpt, _YargsInstance_validation;\nimport { command as Command, } from './command.js';\nimport { assertNotStrictEqual, assertSingleKey, objectKeys, } from './typings/common-types.js';\nimport { YError } from './yerror.js';\nimport { usage as Usage } from './usage.js';\nimport { argsert } from './argsert.js';\nimport { completion as Completion, } from './completion.js';\nimport { validation as Validation, } from './validation.js';\nimport { objFilter } from './utils/obj-filter.js';\nimport { applyExtends } from './utils/apply-extends.js';\nimport { applyMiddleware, GlobalMiddleware, } from './middleware.js';\nimport { isPromise } from './utils/is-promise.js';\nimport { maybeAsyncResult } from './utils/maybe-async-result.js';\nimport setBlocking from './utils/set-blocking.js';\nexport function YargsFactory(_shim) {\n return (processArgs = [], cwd = _shim.process.cwd(), parentRequire) => {\n const yargs = new YargsInstance(processArgs, cwd, parentRequire, _shim);\n Object.defineProperty(yargs, 'argv', {\n get: () => {\n return yargs.parse();\n },\n enumerable: true,\n });\n yargs.help();\n yargs.version();\n return yargs;\n };\n}\nconst kCopyDoubleDash = Symbol('copyDoubleDash');\nconst kCreateLogger = Symbol('copyDoubleDash');\nconst kDeleteFromParserHintObject = Symbol('deleteFromParserHintObject');\nconst kEmitWarning = Symbol('emitWarning');\nconst kFreeze = Symbol('freeze');\nconst kGetDollarZero = Symbol('getDollarZero');\nconst kGetParserConfiguration = Symbol('getParserConfiguration');\nconst kGetUsageConfiguration = Symbol('getUsageConfiguration');\nconst kGuessLocale = Symbol('guessLocale');\nconst kGuessVersion = Symbol('guessVersion');\nconst kParsePositionalNumbers = Symbol('parsePositionalNumbers');\nconst kPkgUp = Symbol('pkgUp');\nconst kPopulateParserHintArray = Symbol('populateParserHintArray');\nconst kPopulateParserHintSingleValueDictionary = Symbol('populateParserHintSingleValueDictionary');\nconst kPopulateParserHintArrayDictionary = Symbol('populateParserHintArrayDictionary');\nconst kPopulateParserHintDictionary = Symbol('populateParserHintDictionary');\nconst kSanitizeKey = Symbol('sanitizeKey');\nconst kSetKey = Symbol('setKey');\nconst kUnfreeze = Symbol('unfreeze');\nconst kValidateAsync = Symbol('validateAsync');\nconst kGetCommandInstance = Symbol('getCommandInstance');\nconst kGetContext = Symbol('getContext');\nconst kGetHasOutput = Symbol('getHasOutput');\nconst kGetLoggerInstance = Symbol('getLoggerInstance');\nconst kGetParseContext = Symbol('getParseContext');\nconst kGetUsageInstance = Symbol('getUsageInstance');\nconst kGetValidationInstance = Symbol('getValidationInstance');\nconst kHasParseCallback = Symbol('hasParseCallback');\nconst kIsGlobalContext = Symbol('isGlobalContext');\nconst kPostProcess = Symbol('postProcess');\nconst kRebase = Symbol('rebase');\nconst kReset = Symbol('reset');\nconst kRunYargsParserAndExecuteCommands = Symbol('runYargsParserAndExecuteCommands');\nconst kRunValidation = Symbol('runValidation');\nconst kSetHasOutput = Symbol('setHasOutput');\nconst kTrackManuallySetKeys = Symbol('kTrackManuallySetKeys');\nconst DEFAULT_LOCALE = 'en_US';\nexport class YargsInstance {\n constructor(processArgs = [], cwd, parentRequire, shim) {\n this.customScriptName = false;\n this.parsed = false;\n _YargsInstance_command.set(this, void 0);\n _YargsInstance_cwd.set(this, void 0);\n _YargsInstance_context.set(this, { commands: [], fullCommands: [] });\n _YargsInstance_completion.set(this, null);\n _YargsInstance_completionCommand.set(this, null);\n _YargsInstance_defaultShowHiddenOpt.set(this, 'show-hidden');\n _YargsInstance_exitError.set(this, null);\n _YargsInstance_detectLocale.set(this, true);\n _YargsInstance_emittedWarnings.set(this, {});\n _YargsInstance_exitProcess.set(this, true);\n _YargsInstance_frozens.set(this, []);\n _YargsInstance_globalMiddleware.set(this, void 0);\n _YargsInstance_groups.set(this, {});\n _YargsInstance_hasOutput.set(this, false);\n _YargsInstance_helpOpt.set(this, null);\n _YargsInstance_isGlobalContext.set(this, true);\n _YargsInstance_logger.set(this, void 0);\n _YargsInstance_output.set(this, '');\n _YargsInstance_options.set(this, void 0);\n _YargsInstance_parentRequire.set(this, void 0);\n _YargsInstance_parserConfig.set(this, {});\n _YargsInstance_parseFn.set(this, null);\n _YargsInstance_parseContext.set(this, null);\n _YargsInstance_pkgs.set(this, {});\n _YargsInstance_preservedGroups.set(this, {});\n _YargsInstance_processArgs.set(this, void 0);\n _YargsInstance_recommendCommands.set(this, false);\n _YargsInstance_shim.set(this, void 0);\n _YargsInstance_strict.set(this, false);\n _YargsInstance_strictCommands.set(this, false);\n _YargsInstance_strictOptions.set(this, false);\n _YargsInstance_usage.set(this, void 0);\n _YargsInstance_usageConfig.set(this, {});\n _YargsInstance_versionOpt.set(this, null);\n _YargsInstance_validation.set(this, void 0);\n __classPrivateFieldSet(this, _YargsInstance_shim, shim, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_processArgs, processArgs, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_cwd, cwd, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_parentRequire, parentRequire, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_globalMiddleware, new GlobalMiddleware(this), \"f\");\n this.$0 = this[kGetDollarZero]();\n this[kReset]();\n __classPrivateFieldSet(this, _YargsInstance_command, __classPrivateFieldGet(this, _YargsInstance_command, \"f\"), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_usage, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_validation, __classPrivateFieldGet(this, _YargsInstance_validation, \"f\"), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_options, __classPrivateFieldGet(this, _YargsInstance_options, \"f\"), \"f\");\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").showHiddenOpt = __classPrivateFieldGet(this, _YargsInstance_defaultShowHiddenOpt, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_logger, this[kCreateLogger](), \"f\");\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.setLocale(DEFAULT_LOCALE);\n }\n addHelpOpt(opt, msg) {\n const defaultHelpOpt = 'help';\n argsert('[string|boolean] [string]', [opt, msg], arguments.length);\n if (__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")) {\n this[kDeleteFromParserHintObject](__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\"));\n __classPrivateFieldSet(this, _YargsInstance_helpOpt, null, \"f\");\n }\n if (opt === false && msg === undefined)\n return this;\n __classPrivateFieldSet(this, _YargsInstance_helpOpt, typeof opt === 'string' ? opt : defaultHelpOpt, \"f\");\n this.boolean(__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\"));\n this.describe(__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\"), msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Show help'));\n return this;\n }\n help(opt, msg) {\n return this.addHelpOpt(opt, msg);\n }\n addShowHiddenOpt(opt, msg) {\n argsert('[string|boolean] [string]', [opt, msg], arguments.length);\n if (opt === false && msg === undefined)\n return this;\n const showHiddenOpt = typeof opt === 'string' ? opt : __classPrivateFieldGet(this, _YargsInstance_defaultShowHiddenOpt, \"f\");\n this.boolean(showHiddenOpt);\n this.describe(showHiddenOpt, msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Show hidden options'));\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").showHiddenOpt = showHiddenOpt;\n return this;\n }\n showHidden(opt, msg) {\n return this.addShowHiddenOpt(opt, msg);\n }\n alias(key, value) {\n argsert('<object|string|array> [string|array]', [key, value], arguments.length);\n this[kPopulateParserHintArrayDictionary](this.alias.bind(this), 'alias', key, value);\n return this;\n }\n array(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('array', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n boolean(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('boolean', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n check(f, global) {\n argsert('<function> [boolean]', [f, global], arguments.length);\n this.middleware((argv, _yargs) => {\n return maybeAsyncResult(() => {\n return f(argv, _yargs.getOptions());\n }, (result) => {\n if (!result) {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.__('Argument check failed: %s', f.toString()));\n }\n else if (typeof result === 'string' || result instanceof Error) {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(result.toString(), result);\n }\n return argv;\n }, (err) => {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(err.message ? err.message : err.toString(), err);\n return argv;\n });\n }, false, global);\n return this;\n }\n choices(key, value) {\n argsert('<object|string|array> [string|array]', [key, value], arguments.length);\n this[kPopulateParserHintArrayDictionary](this.choices.bind(this), 'choices', key, value);\n return this;\n }\n coerce(keys, value) {\n argsert('<object|string|array> [function]', [keys, value], arguments.length);\n if (Array.isArray(keys)) {\n if (!value) {\n throw new YError('coerce callback must be provided');\n }\n for (const key of keys) {\n this.coerce(key, value);\n }\n return this;\n }\n else if (typeof keys === 'object') {\n for (const key of Object.keys(keys)) {\n this.coerce(key, keys[key]);\n }\n return this;\n }\n if (!value) {\n throw new YError('coerce callback must be provided');\n }\n const coerceKey = keys;\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[coerceKey] = true;\n __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").addCoerceMiddleware((argv, yargs) => {\n var _a;\n const coerceKeyAliases = (_a = yargs.getAliases()[coerceKey]) !== null && _a !== void 0 ? _a : [];\n const argvKeys = [coerceKey, ...coerceKeyAliases].filter(key => Object.prototype.hasOwnProperty.call(argv, key));\n if (argvKeys.length === 0) {\n return argv;\n }\n return maybeAsyncResult(() => {\n return value(argv[argvKeys[0]]);\n }, (result) => {\n argvKeys.forEach(key => {\n argv[key] = result;\n });\n return argv;\n }, (err) => {\n throw new YError(err.message);\n });\n }, coerceKey);\n return this;\n }\n conflicts(key1, key2) {\n argsert('<string|object> [string|array]', [key1, key2], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").conflicts(key1, key2);\n return this;\n }\n config(key = 'config', msg, parseFn) {\n argsert('[object|string] [string|function] [function]', [key, msg, parseFn], arguments.length);\n if (typeof key === 'object' && !Array.isArray(key)) {\n key = applyExtends(key, __classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"), this[kGetParserConfiguration]()['deep-merge-config'] || false, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects || []).concat(key);\n return this;\n }\n if (typeof msg === 'function') {\n parseFn = msg;\n msg = undefined;\n }\n this.describe(key, msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Path to JSON config file'));\n (Array.isArray(key) ? key : [key]).forEach(k => {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").config[k] = parseFn || true;\n });\n return this;\n }\n completion(cmd, desc, fn) {\n argsert('[string] [string|boolean|function] [function]', [cmd, desc, fn], arguments.length);\n if (typeof desc === 'function') {\n fn = desc;\n desc = undefined;\n }\n __classPrivateFieldSet(this, _YargsInstance_completionCommand, cmd || __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\") || 'completion', \"f\");\n if (!desc && desc !== false) {\n desc = 'generate completion script';\n }\n this.command(__classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\"), desc);\n if (fn)\n __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").registerFunction(fn);\n return this;\n }\n command(cmd, description, builder, handler, middlewares, deprecated) {\n argsert('<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]', [cmd, description, builder, handler, middlewares, deprecated], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_command, \"f\").addHandler(cmd, description, builder, handler, middlewares, deprecated);\n return this;\n }\n commands(cmd, description, builder, handler, middlewares, deprecated) {\n return this.command(cmd, description, builder, handler, middlewares, deprecated);\n }\n commandDir(dir, opts) {\n argsert('<string> [object]', [dir, opts], arguments.length);\n const req = __classPrivateFieldGet(this, _YargsInstance_parentRequire, \"f\") || __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").require;\n __classPrivateFieldGet(this, _YargsInstance_command, \"f\").addDirectory(dir, req, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getCallerFile(), opts);\n return this;\n }\n count(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('count', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n default(key, value, defaultDescription) {\n argsert('<object|string|array> [*] [string]', [key, value, defaultDescription], arguments.length);\n if (defaultDescription) {\n assertSingleKey(key, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key] = defaultDescription;\n }\n if (typeof value === 'function') {\n assertSingleKey(key, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n if (!__classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key])\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key] =\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").functionDescription(value);\n value = value.call();\n }\n this[kPopulateParserHintSingleValueDictionary](this.default.bind(this), 'default', key, value);\n return this;\n }\n defaults(key, value, defaultDescription) {\n return this.default(key, value, defaultDescription);\n }\n demandCommand(min = 1, max, minMsg, maxMsg) {\n argsert('[number] [number|string] [string|null|undefined] [string|null|undefined]', [min, max, minMsg, maxMsg], arguments.length);\n if (typeof max !== 'number') {\n minMsg = max;\n max = Infinity;\n }\n this.global('_', false);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").demandedCommands._ = {\n min,\n max,\n minMsg,\n maxMsg,\n };\n return this;\n }\n demand(keys, max, msg) {\n if (Array.isArray(max)) {\n max.forEach(key => {\n assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n this.demandOption(key, msg);\n });\n max = Infinity;\n }\n else if (typeof max !== 'number') {\n msg = max;\n max = Infinity;\n }\n if (typeof keys === 'number') {\n assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n this.demandCommand(keys, max, msg, msg);\n }\n else if (Array.isArray(keys)) {\n keys.forEach(key => {\n assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n this.demandOption(key, msg);\n });\n }\n else {\n if (typeof msg === 'string') {\n this.demandOption(keys, msg);\n }\n else if (msg === true || typeof msg === 'undefined') {\n this.demandOption(keys);\n }\n }\n return this;\n }\n demandOption(keys, msg) {\n argsert('<object|string|array> [string]', [keys, msg], arguments.length);\n this[kPopulateParserHintSingleValueDictionary](this.demandOption.bind(this), 'demandedOptions', keys, msg);\n return this;\n }\n deprecateOption(option, message) {\n argsert('<string> [string|boolean]', [option, message], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").deprecatedOptions[option] = message;\n return this;\n }\n describe(keys, description) {\n argsert('<object|string|array> [string]', [keys, description], arguments.length);\n this[kSetKey](keys, true);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").describe(keys, description);\n return this;\n }\n detectLocale(detect) {\n argsert('<boolean>', [detect], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_detectLocale, detect, \"f\");\n return this;\n }\n env(prefix) {\n argsert('[string|boolean]', [prefix], arguments.length);\n if (prefix === false)\n delete __classPrivateFieldGet(this, _YargsInstance_options, \"f\").envPrefix;\n else\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").envPrefix = prefix || '';\n return this;\n }\n epilogue(msg) {\n argsert('<string>', [msg], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").epilog(msg);\n return this;\n }\n epilog(msg) {\n return this.epilogue(msg);\n }\n example(cmd, description) {\n argsert('<string|array> [string]', [cmd, description], arguments.length);\n if (Array.isArray(cmd)) {\n cmd.forEach(exampleParams => this.example(...exampleParams));\n }\n else {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").example(cmd, description);\n }\n return this;\n }\n exit(code, err) {\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_exitError, err, \"f\");\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.exit(code);\n }\n exitProcess(enabled = true) {\n argsert('[boolean]', [enabled], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_exitProcess, enabled, \"f\");\n return this;\n }\n fail(f) {\n argsert('<function|boolean>', [f], arguments.length);\n if (typeof f === 'boolean' && f !== false) {\n throw new YError(\"Invalid first argument. Expected function or boolean 'false'\");\n }\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").failFn(f);\n return this;\n }\n getAliases() {\n return this.parsed ? this.parsed.aliases : {};\n }\n async getCompletion(args, done) {\n argsert('<array> [function]', [args, done], arguments.length);\n if (!done) {\n return new Promise((resolve, reject) => {\n __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").getCompletion(args, (err, completions) => {\n if (err)\n reject(err);\n else\n resolve(completions);\n });\n });\n }\n else {\n return __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").getCompletion(args, done);\n }\n }\n getDemandedOptions() {\n argsert([], 0);\n return __classPrivateFieldGet(this, _YargsInstance_options, \"f\").demandedOptions;\n }\n getDemandedCommands() {\n argsert([], 0);\n return __classPrivateFieldGet(this, _YargsInstance_options, \"f\").demandedCommands;\n }\n getDeprecatedOptions() {\n argsert([], 0);\n return __classPrivateFieldGet(this, _YargsInstance_options, \"f\").deprecatedOptions;\n }\n getDetectLocale() {\n return __classPrivateFieldGet(this, _YargsInstance_detectLocale, \"f\");\n }\n getExitProcess() {\n return __classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\");\n }\n getGroups() {\n return Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_groups, \"f\"), __classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\"));\n }\n getHelp() {\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n if (!__classPrivateFieldGet(this, _YargsInstance_usage, \"f\").hasCachedHelpMessage()) {\n if (!this.parsed) {\n const parse = this[kRunYargsParserAndExecuteCommands](__classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\"), undefined, undefined, 0, true);\n if (isPromise(parse)) {\n return parse.then(() => {\n return __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").help();\n });\n }\n }\n const builderResponse = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runDefaultBuilderOn(this);\n if (isPromise(builderResponse)) {\n return builderResponse.then(() => {\n return __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").help();\n });\n }\n }\n return Promise.resolve(__classPrivateFieldGet(this, _YargsInstance_usage, \"f\").help());\n }\n getOptions() {\n return __classPrivateFieldGet(this, _YargsInstance_options, \"f\");\n }\n getStrict() {\n return __classPrivateFieldGet(this, _YargsInstance_strict, \"f\");\n }\n getStrictCommands() {\n return __classPrivateFieldGet(this, _YargsInstance_strictCommands, \"f\");\n }\n getStrictOptions() {\n return __classPrivateFieldGet(this, _YargsInstance_strictOptions, \"f\");\n }\n global(globals, global) {\n argsert('<string|array> [boolean]', [globals, global], arguments.length);\n globals = [].concat(globals);\n if (global !== false) {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local.filter(l => globals.indexOf(l) === -1);\n }\n else {\n globals.forEach(g => {\n if (!__classPrivateFieldGet(this, _YargsInstance_options, \"f\").local.includes(g))\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local.push(g);\n });\n }\n return this;\n }\n group(opts, groupName) {\n argsert('<string|array> <string>', [opts, groupName], arguments.length);\n const existing = __classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\")[groupName] || __classPrivateFieldGet(this, _YargsInstance_groups, \"f\")[groupName];\n if (__classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\")[groupName]) {\n delete __classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\")[groupName];\n }\n const seen = {};\n __classPrivateFieldGet(this, _YargsInstance_groups, \"f\")[groupName] = (existing || []).concat(opts).filter(key => {\n if (seen[key])\n return false;\n return (seen[key] = true);\n });\n return this;\n }\n hide(key) {\n argsert('<string>', [key], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").hiddenOptions.push(key);\n return this;\n }\n implies(key, value) {\n argsert('<string|object> [number|string|array]', [key, value], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").implies(key, value);\n return this;\n }\n locale(locale) {\n argsert('[string]', [locale], arguments.length);\n if (locale === undefined) {\n this[kGuessLocale]();\n return __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.getLocale();\n }\n __classPrivateFieldSet(this, _YargsInstance_detectLocale, false, \"f\");\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.setLocale(locale);\n return this;\n }\n middleware(callback, applyBeforeValidation, global) {\n return __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").addMiddleware(callback, !!applyBeforeValidation, global);\n }\n nargs(key, value) {\n argsert('<string|object|array> [number]', [key, value], arguments.length);\n this[kPopulateParserHintSingleValueDictionary](this.nargs.bind(this), 'narg', key, value);\n return this;\n }\n normalize(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('normalize', keys);\n return this;\n }\n number(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('number', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n option(key, opt) {\n argsert('<string|object> [object]', [key, opt], arguments.length);\n if (typeof key === 'object') {\n Object.keys(key).forEach(k => {\n this.options(k, key[k]);\n });\n }\n else {\n if (typeof opt !== 'object') {\n opt = {};\n }\n this[kTrackManuallySetKeys](key);\n if (__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\") && (key === 'version' || (opt === null || opt === void 0 ? void 0 : opt.alias) === 'version')) {\n this[kEmitWarning]([\n '\"version\" is a reserved word.',\n 'Please do one of the following:',\n '- Disable version with `yargs.version(false)` if using \"version\" as an option',\n '- Use the built-in `yargs.version` method instead (if applicable)',\n '- Use a different option key',\n 'https://yargs.js.org/docs/#api-reference-version',\n ].join('\\n'), undefined, 'versionWarning');\n }\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[key] = true;\n if (opt.alias)\n this.alias(key, opt.alias);\n const deprecate = opt.deprecate || opt.deprecated;\n if (deprecate) {\n this.deprecateOption(key, deprecate);\n }\n const demand = opt.demand || opt.required || opt.require;\n if (demand) {\n this.demand(key, demand);\n }\n if (opt.demandOption) {\n this.demandOption(key, typeof opt.demandOption === 'string' ? opt.demandOption : undefined);\n }\n if (opt.conflicts) {\n this.conflicts(key, opt.conflicts);\n }\n if ('default' in opt) {\n this.default(key, opt.default);\n }\n if (opt.implies !== undefined) {\n this.implies(key, opt.implies);\n }\n if (opt.nargs !== undefined) {\n this.nargs(key, opt.nargs);\n }\n if (opt.config) {\n this.config(key, opt.configParser);\n }\n if (opt.normalize) {\n this.normalize(key);\n }\n if (opt.choices) {\n this.choices(key, opt.choices);\n }\n if (opt.coerce) {\n this.coerce(key, opt.coerce);\n }\n if (opt.group) {\n this.group(key, opt.group);\n }\n if (opt.boolean || opt.type === 'boolean') {\n this.boolean(key);\n if (opt.alias)\n this.boolean(opt.alias);\n }\n if (opt.array || opt.type === 'array') {\n this.array(key);\n if (opt.alias)\n this.array(opt.alias);\n }\n if (opt.number || opt.type === 'number') {\n this.number(key);\n if (opt.alias)\n this.number(opt.alias);\n }\n if (opt.string || opt.type === 'string') {\n this.string(key);\n if (opt.alias)\n this.string(opt.alias);\n }\n if (opt.count || opt.type === 'count') {\n this.count(key);\n }\n if (typeof opt.global === 'boolean') {\n this.global(key, opt.global);\n }\n if (opt.defaultDescription) {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").defaultDescription[key] = opt.defaultDescription;\n }\n if (opt.skipValidation) {\n this.skipValidation(key);\n }\n const desc = opt.describe || opt.description || opt.desc;\n const descriptions = __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").getDescriptions();\n if (!Object.prototype.hasOwnProperty.call(descriptions, key) ||\n typeof desc === 'string') {\n this.describe(key, desc);\n }\n if (opt.hidden) {\n this.hide(key);\n }\n if (opt.requiresArg) {\n this.requiresArg(key);\n }\n }\n return this;\n }\n options(key, opt) {\n return this.option(key, opt);\n }\n parse(args, shortCircuit, _parseFn) {\n argsert('[string|array] [function|boolean|object] [function]', [args, shortCircuit, _parseFn], arguments.length);\n this[kFreeze]();\n if (typeof args === 'undefined') {\n args = __classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\");\n }\n if (typeof shortCircuit === 'object') {\n __classPrivateFieldSet(this, _YargsInstance_parseContext, shortCircuit, \"f\");\n shortCircuit = _parseFn;\n }\n if (typeof shortCircuit === 'function') {\n __classPrivateFieldSet(this, _YargsInstance_parseFn, shortCircuit, \"f\");\n shortCircuit = false;\n }\n if (!shortCircuit)\n __classPrivateFieldSet(this, _YargsInstance_processArgs, args, \"f\");\n if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"))\n __classPrivateFieldSet(this, _YargsInstance_exitProcess, false, \"f\");\n const parsed = this[kRunYargsParserAndExecuteCommands](args, !!shortCircuit);\n const tmpParsed = this.parsed;\n __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").setParsed(this.parsed);\n if (isPromise(parsed)) {\n return parsed\n .then(argv => {\n if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"))\n __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\").call(this, __classPrivateFieldGet(this, _YargsInstance_exitError, \"f\"), argv, __classPrivateFieldGet(this, _YargsInstance_output, \"f\"));\n return argv;\n })\n .catch(err => {\n if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\")) {\n __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\")(err, this.parsed.argv, __classPrivateFieldGet(this, _YargsInstance_output, \"f\"));\n }\n throw err;\n })\n .finally(() => {\n this[kUnfreeze]();\n this.parsed = tmpParsed;\n });\n }\n else {\n if (__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"))\n __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\").call(this, __classPrivateFieldGet(this, _YargsInstance_exitError, \"f\"), parsed, __classPrivateFieldGet(this, _YargsInstance_output, \"f\"));\n this[kUnfreeze]();\n this.parsed = tmpParsed;\n }\n return parsed;\n }\n parseAsync(args, shortCircuit, _parseFn) {\n const maybePromise = this.parse(args, shortCircuit, _parseFn);\n return !isPromise(maybePromise)\n ? Promise.resolve(maybePromise)\n : maybePromise;\n }\n parseSync(args, shortCircuit, _parseFn) {\n const maybePromise = this.parse(args, shortCircuit, _parseFn);\n if (isPromise(maybePromise)) {\n throw new YError('.parseSync() must not be used with asynchronous builders, handlers, or middleware');\n }\n return maybePromise;\n }\n parserConfiguration(config) {\n argsert('<object>', [config], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_parserConfig, config, \"f\");\n return this;\n }\n pkgConf(key, rootPath) {\n argsert('<string> [string]', [key, rootPath], arguments.length);\n let conf = null;\n const obj = this[kPkgUp](rootPath || __classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"));\n if (obj[key] && typeof obj[key] === 'object') {\n conf = applyExtends(obj[key], rootPath || __classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"), this[kGetParserConfiguration]()['deep-merge-config'] || false, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects || []).concat(conf);\n }\n return this;\n }\n positional(key, opts) {\n argsert('<string> <object>', [key, opts], arguments.length);\n const supportedOpts = [\n 'default',\n 'defaultDescription',\n 'implies',\n 'normalize',\n 'choices',\n 'conflicts',\n 'coerce',\n 'type',\n 'describe',\n 'desc',\n 'description',\n 'alias',\n ];\n opts = objFilter(opts, (k, v) => {\n if (k === 'type' && !['string', 'number', 'boolean'].includes(v))\n return false;\n return supportedOpts.includes(k);\n });\n const fullCommand = __classPrivateFieldGet(this, _YargsInstance_context, \"f\").fullCommands[__classPrivateFieldGet(this, _YargsInstance_context, \"f\").fullCommands.length - 1];\n const parseOptions = fullCommand\n ? __classPrivateFieldGet(this, _YargsInstance_command, \"f\").cmdToParseOptions(fullCommand)\n : {\n array: [],\n alias: {},\n default: {},\n demand: {},\n };\n objectKeys(parseOptions).forEach(pk => {\n const parseOption = parseOptions[pk];\n if (Array.isArray(parseOption)) {\n if (parseOption.indexOf(key) !== -1)\n opts[pk] = true;\n }\n else {\n if (parseOption[key] && !(pk in opts))\n opts[pk] = parseOption[key];\n }\n });\n this.group(key, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").getPositionalGroupName());\n return this.option(key, opts);\n }\n recommendCommands(recommend = true) {\n argsert('[boolean]', [recommend], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_recommendCommands, recommend, \"f\");\n return this;\n }\n required(keys, max, msg) {\n return this.demand(keys, max, msg);\n }\n require(keys, max, msg) {\n return this.demand(keys, max, msg);\n }\n requiresArg(keys) {\n argsert('<array|string|object> [number]', [keys], arguments.length);\n if (typeof keys === 'string' && __classPrivateFieldGet(this, _YargsInstance_options, \"f\").narg[keys]) {\n return this;\n }\n else {\n this[kPopulateParserHintSingleValueDictionary](this.requiresArg.bind(this), 'narg', keys, NaN);\n }\n return this;\n }\n showCompletionScript($0, cmd) {\n argsert('[string] [string]', [$0, cmd], arguments.length);\n $0 = $0 || this.$0;\n __classPrivateFieldGet(this, _YargsInstance_logger, \"f\").log(__classPrivateFieldGet(this, _YargsInstance_completion, \"f\").generateCompletionScript($0, cmd || __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\") || 'completion'));\n return this;\n }\n showHelp(level) {\n argsert('[string|function]', [level], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n if (!__classPrivateFieldGet(this, _YargsInstance_usage, \"f\").hasCachedHelpMessage()) {\n if (!this.parsed) {\n const parse = this[kRunYargsParserAndExecuteCommands](__classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\"), undefined, undefined, 0, true);\n if (isPromise(parse)) {\n parse.then(() => {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelp(level);\n });\n return this;\n }\n }\n const builderResponse = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runDefaultBuilderOn(this);\n if (isPromise(builderResponse)) {\n builderResponse.then(() => {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelp(level);\n });\n return this;\n }\n }\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelp(level);\n return this;\n }\n scriptName(scriptName) {\n this.customScriptName = true;\n this.$0 = scriptName;\n return this;\n }\n showHelpOnFail(enabled, message) {\n argsert('[boolean|string] [string]', [enabled, message], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showHelpOnFail(enabled, message);\n return this;\n }\n showVersion(level) {\n argsert('[string|function]', [level], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showVersion(level);\n return this;\n }\n skipValidation(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('skipValidation', keys);\n return this;\n }\n strict(enabled) {\n argsert('[boolean]', [enabled], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_strict, enabled !== false, \"f\");\n return this;\n }\n strictCommands(enabled) {\n argsert('[boolean]', [enabled], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_strictCommands, enabled !== false, \"f\");\n return this;\n }\n strictOptions(enabled) {\n argsert('[boolean]', [enabled], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_strictOptions, enabled !== false, \"f\");\n return this;\n }\n string(keys) {\n argsert('<array|string>', [keys], arguments.length);\n this[kPopulateParserHintArray]('string', keys);\n this[kTrackManuallySetKeys](keys);\n return this;\n }\n terminalWidth() {\n argsert([], 0);\n return __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.stdColumns;\n }\n updateLocale(obj) {\n return this.updateStrings(obj);\n }\n updateStrings(obj) {\n argsert('<object>', [obj], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_detectLocale, false, \"f\");\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.updateLocale(obj);\n return this;\n }\n usage(msg, description, builder, handler) {\n argsert('<string|null|undefined> [string|boolean] [function|object] [function]', [msg, description, builder, handler], arguments.length);\n if (description !== undefined) {\n assertNotStrictEqual(msg, null, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n if ((msg || '').match(/^\\$0( |$)/)) {\n return this.command(msg, description, builder, handler);\n }\n else {\n throw new YError('.usage() description must start with $0 if being used as alias for .command()');\n }\n }\n else {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").usage(msg);\n return this;\n }\n }\n usageConfiguration(config) {\n argsert('<object>', [config], arguments.length);\n __classPrivateFieldSet(this, _YargsInstance_usageConfig, config, \"f\");\n return this;\n }\n version(opt, msg, ver) {\n const defaultVersionOpt = 'version';\n argsert('[boolean|string] [string] [string]', [opt, msg, ver], arguments.length);\n if (__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\")) {\n this[kDeleteFromParserHintObject](__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\"));\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").version(undefined);\n __classPrivateFieldSet(this, _YargsInstance_versionOpt, null, \"f\");\n }\n if (arguments.length === 0) {\n ver = this[kGuessVersion]();\n opt = defaultVersionOpt;\n }\n else if (arguments.length === 1) {\n if (opt === false) {\n return this;\n }\n ver = opt;\n opt = defaultVersionOpt;\n }\n else if (arguments.length === 2) {\n ver = msg;\n msg = undefined;\n }\n __classPrivateFieldSet(this, _YargsInstance_versionOpt, typeof opt === 'string' ? opt : defaultVersionOpt, \"f\");\n msg = msg || __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").deferY18nLookup('Show version number');\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").version(ver || undefined);\n this.boolean(__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\"));\n this.describe(__classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\"), msg);\n return this;\n }\n wrap(cols) {\n argsert('<number|null|undefined>', [cols], arguments.length);\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").wrap(cols);\n return this;\n }\n [(_YargsInstance_command = new WeakMap(), _YargsInstance_cwd = new WeakMap(), _YargsInstance_context = new WeakMap(), _YargsInstance_completion = new WeakMap(), _YargsInstance_completionCommand = new WeakMap(), _YargsInstance_defaultShowHiddenOpt = new WeakMap(), _YargsInstance_exitError = new WeakMap(), _YargsInstance_detectLocale = new WeakMap(), _YargsInstance_emittedWarnings = new WeakMap(), _YargsInstance_exitProcess = new WeakMap(), _YargsInstance_frozens = new WeakMap(), _YargsInstance_globalMiddleware = new WeakMap(), _YargsInstance_groups = new WeakMap(), _YargsInstance_hasOutput = new WeakMap(), _YargsInstance_helpOpt = new WeakMap(), _YargsInstance_isGlobalContext = new WeakMap(), _YargsInstance_logger = new WeakMap(), _YargsInstance_output = new WeakMap(), _YargsInstance_options = new WeakMap(), _YargsInstance_parentRequire = new WeakMap(), _YargsInstance_parserConfig = new WeakMap(), _YargsInstance_parseFn = new WeakMap(), _YargsInstance_parseContext = new WeakMap(), _YargsInstance_pkgs = new WeakMap(), _YargsInstance_preservedGroups = new WeakMap(), _YargsInstance_processArgs = new WeakMap(), _YargsInstance_recommendCommands = new WeakMap(), _YargsInstance_shim = new WeakMap(), _YargsInstance_strict = new WeakMap(), _YargsInstance_strictCommands = new WeakMap(), _YargsInstance_strictOptions = new WeakMap(), _YargsInstance_usage = new WeakMap(), _YargsInstance_usageConfig = new WeakMap(), _YargsInstance_versionOpt = new WeakMap(), _YargsInstance_validation = new WeakMap(), kCopyDoubleDash)](argv) {\n if (!argv._ || !argv['--'])\n return argv;\n argv._.push.apply(argv._, argv['--']);\n try {\n delete argv['--'];\n }\n catch (_err) { }\n return argv;\n }\n [kCreateLogger]() {\n return {\n log: (...args) => {\n if (!this[kHasParseCallback]())\n console.log(...args);\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n if (__classPrivateFieldGet(this, _YargsInstance_output, \"f\").length)\n __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + '\\n', \"f\");\n __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + args.join(' '), \"f\");\n },\n error: (...args) => {\n if (!this[kHasParseCallback]())\n console.error(...args);\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n if (__classPrivateFieldGet(this, _YargsInstance_output, \"f\").length)\n __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + '\\n', \"f\");\n __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, \"f\") + args.join(' '), \"f\");\n },\n };\n }\n [kDeleteFromParserHintObject](optionKey) {\n objectKeys(__classPrivateFieldGet(this, _YargsInstance_options, \"f\")).forEach((hintKey) => {\n if (((key) => key === 'configObjects')(hintKey))\n return;\n const hint = __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[hintKey];\n if (Array.isArray(hint)) {\n if (hint.includes(optionKey))\n hint.splice(hint.indexOf(optionKey), 1);\n }\n else if (typeof hint === 'object') {\n delete hint[optionKey];\n }\n });\n delete __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").getDescriptions()[optionKey];\n }\n [kEmitWarning](warning, type, deduplicationId) {\n if (!__classPrivateFieldGet(this, _YargsInstance_emittedWarnings, \"f\")[deduplicationId]) {\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.emitWarning(warning, type);\n __classPrivateFieldGet(this, _YargsInstance_emittedWarnings, \"f\")[deduplicationId] = true;\n }\n }\n [kFreeze]() {\n __classPrivateFieldGet(this, _YargsInstance_frozens, \"f\").push({\n options: __classPrivateFieldGet(this, _YargsInstance_options, \"f\"),\n configObjects: __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects.slice(0),\n exitProcess: __classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"),\n groups: __classPrivateFieldGet(this, _YargsInstance_groups, \"f\"),\n strict: __classPrivateFieldGet(this, _YargsInstance_strict, \"f\"),\n strictCommands: __classPrivateFieldGet(this, _YargsInstance_strictCommands, \"f\"),\n strictOptions: __classPrivateFieldGet(this, _YargsInstance_strictOptions, \"f\"),\n completionCommand: __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\"),\n output: __classPrivateFieldGet(this, _YargsInstance_output, \"f\"),\n exitError: __classPrivateFieldGet(this, _YargsInstance_exitError, \"f\"),\n hasOutput: __classPrivateFieldGet(this, _YargsInstance_hasOutput, \"f\"),\n parsed: this.parsed,\n parseFn: __classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\"),\n parseContext: __classPrivateFieldGet(this, _YargsInstance_parseContext, \"f\"),\n });\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").freeze();\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").freeze();\n __classPrivateFieldGet(this, _YargsInstance_command, \"f\").freeze();\n __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").freeze();\n }\n [kGetDollarZero]() {\n let $0 = '';\n let default$0;\n if (/\\b(node|iojs|electron)(\\.exe)?$/.test(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.argv()[0])) {\n default$0 = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.argv().slice(1, 2);\n }\n else {\n default$0 = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.argv().slice(0, 1);\n }\n $0 = default$0\n .map(x => {\n const b = this[kRebase](__classPrivateFieldGet(this, _YargsInstance_cwd, \"f\"), x);\n return x.match(/^(\\/|([a-zA-Z]:)?\\\\)/) && b.length < x.length ? b : x;\n })\n .join(' ')\n .trim();\n if (__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('_') &&\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getProcessArgvBin() === __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('_')) {\n $0 = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")\n .getEnv('_')\n .replace(`${__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.dirname(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").process.execPath())}/`, '');\n }\n return $0;\n }\n [kGetParserConfiguration]() {\n return __classPrivateFieldGet(this, _YargsInstance_parserConfig, \"f\");\n }\n [kGetUsageConfiguration]() {\n return __classPrivateFieldGet(this, _YargsInstance_usageConfig, \"f\");\n }\n [kGuessLocale]() {\n if (!__classPrivateFieldGet(this, _YargsInstance_detectLocale, \"f\"))\n return;\n const locale = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LC_ALL') ||\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LC_MESSAGES') ||\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LANG') ||\n __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").getEnv('LANGUAGE') ||\n 'en_US';\n this.locale(locale.replace(/[.:].*/, ''));\n }\n [kGuessVersion]() {\n const obj = this[kPkgUp]();\n return obj.version || 'unknown';\n }\n [kParsePositionalNumbers](argv) {\n const args = argv['--'] ? argv['--'] : argv._;\n for (let i = 0, arg; (arg = args[i]) !== undefined; i++) {\n if (__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").Parser.looksLikeNumber(arg) &&\n Number.isSafeInteger(Math.floor(parseFloat(`${arg}`)))) {\n args[i] = Number(arg);\n }\n }\n return argv;\n }\n [kPkgUp](rootPath) {\n const npath = rootPath || '*';\n if (__classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath])\n return __classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath];\n let obj = {};\n try {\n let startDir = rootPath || __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").mainFilename;\n if (__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.extname(startDir)) {\n startDir = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.dirname(startDir);\n }\n const pkgJsonPath = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").findUp(startDir, (dir, names) => {\n if (names.includes('package.json')) {\n return 'package.json';\n }\n else {\n return undefined;\n }\n });\n assertNotStrictEqual(pkgJsonPath, undefined, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n obj = JSON.parse(__classPrivateFieldGet(this, _YargsInstance_shim, \"f\").readFileSync(pkgJsonPath, 'utf8'));\n }\n catch (_noop) { }\n __classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath] = obj || {};\n return __classPrivateFieldGet(this, _YargsInstance_pkgs, \"f\")[npath];\n }\n [kPopulateParserHintArray](type, keys) {\n keys = [].concat(keys);\n keys.forEach(key => {\n key = this[kSanitizeKey](key);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type].push(key);\n });\n }\n [kPopulateParserHintSingleValueDictionary](builder, type, key, value) {\n this[kPopulateParserHintDictionary](builder, type, key, value, (type, key, value) => {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type][key] = value;\n });\n }\n [kPopulateParserHintArrayDictionary](builder, type, key, value) {\n this[kPopulateParserHintDictionary](builder, type, key, value, (type, key, value) => {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type][key] = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\")[type][key] || []).concat(value);\n });\n }\n [kPopulateParserHintDictionary](builder, type, key, value, singleKeyHandler) {\n if (Array.isArray(key)) {\n key.forEach(k => {\n builder(k, value);\n });\n }\n else if (((key) => typeof key === 'object')(key)) {\n for (const k of objectKeys(key)) {\n builder(k, key[k]);\n }\n }\n else {\n singleKeyHandler(type, this[kSanitizeKey](key), value);\n }\n }\n [kSanitizeKey](key) {\n if (key === '__proto__')\n return '___proto___';\n return key;\n }\n [kSetKey](key, set) {\n this[kPopulateParserHintSingleValueDictionary](this[kSetKey].bind(this), 'key', key, set);\n return this;\n }\n [kUnfreeze]() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n const frozen = __classPrivateFieldGet(this, _YargsInstance_frozens, \"f\").pop();\n assertNotStrictEqual(frozen, undefined, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\"));\n let configObjects;\n (_a = this, _b = this, _c = this, _d = this, _e = this, _f = this, _g = this, _h = this, _j = this, _k = this, _l = this, _m = this, {\n options: ({ set value(_o) { __classPrivateFieldSet(_a, _YargsInstance_options, _o, \"f\"); } }).value,\n configObjects,\n exitProcess: ({ set value(_o) { __classPrivateFieldSet(_b, _YargsInstance_exitProcess, _o, \"f\"); } }).value,\n groups: ({ set value(_o) { __classPrivateFieldSet(_c, _YargsInstance_groups, _o, \"f\"); } }).value,\n output: ({ set value(_o) { __classPrivateFieldSet(_d, _YargsInstance_output, _o, \"f\"); } }).value,\n exitError: ({ set value(_o) { __classPrivateFieldSet(_e, _YargsInstance_exitError, _o, \"f\"); } }).value,\n hasOutput: ({ set value(_o) { __classPrivateFieldSet(_f, _YargsInstance_hasOutput, _o, \"f\"); } }).value,\n parsed: this.parsed,\n strict: ({ set value(_o) { __classPrivateFieldSet(_g, _YargsInstance_strict, _o, \"f\"); } }).value,\n strictCommands: ({ set value(_o) { __classPrivateFieldSet(_h, _YargsInstance_strictCommands, _o, \"f\"); } }).value,\n strictOptions: ({ set value(_o) { __classPrivateFieldSet(_j, _YargsInstance_strictOptions, _o, \"f\"); } }).value,\n completionCommand: ({ set value(_o) { __classPrivateFieldSet(_k, _YargsInstance_completionCommand, _o, \"f\"); } }).value,\n parseFn: ({ set value(_o) { __classPrivateFieldSet(_l, _YargsInstance_parseFn, _o, \"f\"); } }).value,\n parseContext: ({ set value(_o) { __classPrivateFieldSet(_m, _YargsInstance_parseContext, _o, \"f\"); } }).value,\n } = frozen);\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects = configObjects;\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").unfreeze();\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unfreeze();\n __classPrivateFieldGet(this, _YargsInstance_command, \"f\").unfreeze();\n __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").unfreeze();\n }\n [kValidateAsync](validation, argv) {\n return maybeAsyncResult(argv, result => {\n validation(result);\n return result;\n });\n }\n getInternalMethods() {\n return {\n getCommandInstance: this[kGetCommandInstance].bind(this),\n getContext: this[kGetContext].bind(this),\n getHasOutput: this[kGetHasOutput].bind(this),\n getLoggerInstance: this[kGetLoggerInstance].bind(this),\n getParseContext: this[kGetParseContext].bind(this),\n getParserConfiguration: this[kGetParserConfiguration].bind(this),\n getUsageConfiguration: this[kGetUsageConfiguration].bind(this),\n getUsageInstance: this[kGetUsageInstance].bind(this),\n getValidationInstance: this[kGetValidationInstance].bind(this),\n hasParseCallback: this[kHasParseCallback].bind(this),\n isGlobalContext: this[kIsGlobalContext].bind(this),\n postProcess: this[kPostProcess].bind(this),\n reset: this[kReset].bind(this),\n runValidation: this[kRunValidation].bind(this),\n runYargsParserAndExecuteCommands: this[kRunYargsParserAndExecuteCommands].bind(this),\n setHasOutput: this[kSetHasOutput].bind(this),\n };\n }\n [kGetCommandInstance]() {\n return __classPrivateFieldGet(this, _YargsInstance_command, \"f\");\n }\n [kGetContext]() {\n return __classPrivateFieldGet(this, _YargsInstance_context, \"f\");\n }\n [kGetHasOutput]() {\n return __classPrivateFieldGet(this, _YargsInstance_hasOutput, \"f\");\n }\n [kGetLoggerInstance]() {\n return __classPrivateFieldGet(this, _YargsInstance_logger, \"f\");\n }\n [kGetParseContext]() {\n return __classPrivateFieldGet(this, _YargsInstance_parseContext, \"f\") || {};\n }\n [kGetUsageInstance]() {\n return __classPrivateFieldGet(this, _YargsInstance_usage, \"f\");\n }\n [kGetValidationInstance]() {\n return __classPrivateFieldGet(this, _YargsInstance_validation, \"f\");\n }\n [kHasParseCallback]() {\n return !!__classPrivateFieldGet(this, _YargsInstance_parseFn, \"f\");\n }\n [kIsGlobalContext]() {\n return __classPrivateFieldGet(this, _YargsInstance_isGlobalContext, \"f\");\n }\n [kPostProcess](argv, populateDoubleDash, calledFromCommand, runGlobalMiddleware) {\n if (calledFromCommand)\n return argv;\n if (isPromise(argv))\n return argv;\n if (!populateDoubleDash) {\n argv = this[kCopyDoubleDash](argv);\n }\n const parsePositionalNumbers = this[kGetParserConfiguration]()['parse-positional-numbers'] ||\n this[kGetParserConfiguration]()['parse-positional-numbers'] === undefined;\n if (parsePositionalNumbers) {\n argv = this[kParsePositionalNumbers](argv);\n }\n if (runGlobalMiddleware) {\n argv = applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").getMiddleware(), false);\n }\n return argv;\n }\n [kReset](aliases = {}) {\n __classPrivateFieldSet(this, _YargsInstance_options, __classPrivateFieldGet(this, _YargsInstance_options, \"f\") || {}, \"f\");\n const tmpOptions = {};\n tmpOptions.local = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").local || [];\n tmpOptions.configObjects = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configObjects || [];\n const localLookup = {};\n tmpOptions.local.forEach(l => {\n localLookup[l] = true;\n (aliases[l] || []).forEach(a => {\n localLookup[a] = true;\n });\n });\n Object.assign(__classPrivateFieldGet(this, _YargsInstance_preservedGroups, \"f\"), Object.keys(__classPrivateFieldGet(this, _YargsInstance_groups, \"f\")).reduce((acc, groupName) => {\n const keys = __classPrivateFieldGet(this, _YargsInstance_groups, \"f\")[groupName].filter(key => !(key in localLookup));\n if (keys.length > 0) {\n acc[groupName] = keys;\n }\n return acc;\n }, {}));\n __classPrivateFieldSet(this, _YargsInstance_groups, {}, \"f\");\n const arrayOptions = [\n 'array',\n 'boolean',\n 'string',\n 'skipValidation',\n 'count',\n 'normalize',\n 'number',\n 'hiddenOptions',\n ];\n const objectOptions = [\n 'narg',\n 'key',\n 'alias',\n 'default',\n 'defaultDescription',\n 'config',\n 'choices',\n 'demandedOptions',\n 'demandedCommands',\n 'deprecatedOptions',\n ];\n arrayOptions.forEach(k => {\n tmpOptions[k] = (__classPrivateFieldGet(this, _YargsInstance_options, \"f\")[k] || []).filter((k) => !localLookup[k]);\n });\n objectOptions.forEach((k) => {\n tmpOptions[k] = objFilter(__classPrivateFieldGet(this, _YargsInstance_options, \"f\")[k], k => !localLookup[k]);\n });\n tmpOptions.envPrefix = __classPrivateFieldGet(this, _YargsInstance_options, \"f\").envPrefix;\n __classPrivateFieldSet(this, _YargsInstance_options, tmpOptions, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_usage, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\")\n ? __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").reset(localLookup)\n : Usage(this, __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_validation, __classPrivateFieldGet(this, _YargsInstance_validation, \"f\")\n ? __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").reset(localLookup)\n : Validation(this, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n __classPrivateFieldSet(this, _YargsInstance_command, __classPrivateFieldGet(this, _YargsInstance_command, \"f\")\n ? __classPrivateFieldGet(this, _YargsInstance_command, \"f\").reset()\n : Command(__classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), __classPrivateFieldGet(this, _YargsInstance_validation, \"f\"), __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\"), __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n if (!__classPrivateFieldGet(this, _YargsInstance_completion, \"f\"))\n __classPrivateFieldSet(this, _YargsInstance_completion, Completion(this, __classPrivateFieldGet(this, _YargsInstance_usage, \"f\"), __classPrivateFieldGet(this, _YargsInstance_command, \"f\"), __classPrivateFieldGet(this, _YargsInstance_shim, \"f\")), \"f\");\n __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").reset();\n __classPrivateFieldSet(this, _YargsInstance_completionCommand, null, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_output, '', \"f\");\n __classPrivateFieldSet(this, _YargsInstance_exitError, null, \"f\");\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, false, \"f\");\n this.parsed = false;\n return this;\n }\n [kRebase](base, dir) {\n return __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").path.relative(base, dir);\n }\n [kRunYargsParserAndExecuteCommands](args, shortCircuit, calledFromCommand, commandIndex = 0, helpOnly = false) {\n var _a, _b, _c, _d;\n let skipValidation = !!calledFromCommand || helpOnly;\n args = args || __classPrivateFieldGet(this, _YargsInstance_processArgs, \"f\");\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").__ = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").y18n.__;\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configuration = this[kGetParserConfiguration]();\n const populateDoubleDash = !!__classPrivateFieldGet(this, _YargsInstance_options, \"f\").configuration['populate--'];\n const config = Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_options, \"f\").configuration, {\n 'populate--': true,\n });\n const parsed = __classPrivateFieldGet(this, _YargsInstance_shim, \"f\").Parser.detailed(args, Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_options, \"f\"), {\n configuration: { 'parse-positional-numbers': false, ...config },\n }));\n const argv = Object.assign(parsed.argv, __classPrivateFieldGet(this, _YargsInstance_parseContext, \"f\"));\n let argvPromise = undefined;\n const aliases = parsed.aliases;\n let helpOptSet = false;\n let versionOptSet = false;\n Object.keys(argv).forEach(key => {\n if (key === __classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\") && argv[key]) {\n helpOptSet = true;\n }\n else if (key === __classPrivateFieldGet(this, _YargsInstance_versionOpt, \"f\") && argv[key]) {\n versionOptSet = true;\n }\n });\n argv.$0 = this.$0;\n this.parsed = parsed;\n if (commandIndex === 0) {\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").clearCachedHelpMessage();\n }\n try {\n this[kGuessLocale]();\n if (shortCircuit) {\n return this[kPostProcess](argv, populateDoubleDash, !!calledFromCommand, false);\n }\n if (__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")) {\n const helpCmds = [__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")]\n .concat(aliases[__classPrivateFieldGet(this, _YargsInstance_helpOpt, \"f\")] || [])\n .filter(k => k.length > 1);\n if (helpCmds.includes('' + argv._[argv._.length - 1])) {\n argv._.pop();\n helpOptSet = true;\n }\n }\n __classPrivateFieldSet(this, _YargsInstance_isGlobalContext, false, \"f\");\n const handlerKeys = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").getCommands();\n const requestCompletions = ((_a = __classPrivateFieldGet(this, _YargsInstance_completion, \"f\")) === null || _a === void 0 ? void 0 : _a.completionKey)\n ? [\n (_b = __classPrivateFieldGet(this, _YargsInstance_completion, \"f\")) === null || _b === void 0 ? void 0 : _b.completionKey,\n ...((_d = this.getAliases()[(_c = __classPrivateFieldGet(this, _YargsInstance_completion, \"f\")) === null || _c === void 0 ? void 0 : _c.completionKey]) !== null && _d !== void 0 ? _d : []),\n ].some((key) => Object.prototype.hasOwnProperty.call(argv, key))\n : false;\n const skipRecommendation = helpOptSet || requestCompletions || helpOnly;\n if (argv._.length) {\n if (handlerKeys.length) {\n let firstUnknownCommand;\n for (let i = commandIndex || 0, cmd; argv._[i] !== undefined; i++) {\n cmd = String(argv._[i]);\n if (handlerKeys.includes(cmd) && cmd !== __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\")) {\n const innerArgv = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runCommand(cmd, this, parsed, i + 1, helpOnly, helpOptSet || versionOptSet || helpOnly);\n return this[kPostProcess](innerArgv, populateDoubleDash, !!calledFromCommand, false);\n }\n else if (!firstUnknownCommand &&\n cmd !== __classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\")) {\n firstUnknownCommand = cmd;\n break;\n }\n }\n if (!__classPrivateFieldGet(this, _YargsInstance_command, \"f\").hasDefaultCommand() &&\n __classPrivateFieldGet(this, _YargsInstance_recommendCommands, \"f\") &&\n firstUnknownCommand &&\n !skipRecommendation) {\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").recommendCommands(firstUnknownCommand, handlerKeys);\n }\n }\n if (__classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\") &&\n argv._.includes(__classPrivateFieldGet(this, _YargsInstance_completionCommand, \"f\")) &&\n !requestCompletions) {\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n setBlocking(true);\n this.showCompletionScript();\n this.exit(0);\n }\n }\n if (__classPrivateFieldGet(this, _YargsInstance_command, \"f\").hasDefaultCommand() && !skipRecommendation) {\n const innerArgv = __classPrivateFieldGet(this, _YargsInstance_command, \"f\").runCommand(null, this, parsed, 0, helpOnly, helpOptSet || versionOptSet || helpOnly);\n return this[kPostProcess](innerArgv, populateDoubleDash, !!calledFromCommand, false);\n }\n if (requestCompletions) {\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n setBlocking(true);\n args = [].concat(args);\n const completionArgs = args.slice(args.indexOf(`--${__classPrivateFieldGet(this, _YargsInstance_completion, \"f\").completionKey}`) + 1);\n __classPrivateFieldGet(this, _YargsInstance_completion, \"f\").getCompletion(completionArgs, (err, completions) => {\n if (err)\n throw new YError(err.message);\n (completions || []).forEach(completion => {\n __classPrivateFieldGet(this, _YargsInstance_logger, \"f\").log(completion);\n });\n this.exit(0);\n });\n return this[kPostProcess](argv, !populateDoubleDash, !!calledFromCommand, false);\n }\n if (!__classPrivateFieldGet(this, _YargsInstance_hasOutput, \"f\")) {\n if (helpOptSet) {\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n setBlocking(true);\n skipValidation = true;\n this.showHelp(message => {\n __classPrivateFieldGet(this, _YargsInstance_logger, \"f\").log(message);\n this.exit(0);\n });\n }\n else if (versionOptSet) {\n if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, \"f\"))\n setBlocking(true);\n skipValidation = true;\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").showVersion('log');\n this.exit(0);\n }\n }\n if (!skipValidation && __classPrivateFieldGet(this, _YargsInstance_options, \"f\").skipValidation.length > 0) {\n skipValidation = Object.keys(argv).some(key => __classPrivateFieldGet(this, _YargsInstance_options, \"f\").skipValidation.indexOf(key) >= 0 && argv[key] === true);\n }\n if (!skipValidation) {\n if (parsed.error)\n throw new YError(parsed.error.message);\n if (!requestCompletions) {\n const validation = this[kRunValidation](aliases, {}, parsed.error);\n if (!calledFromCommand) {\n argvPromise = applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").getMiddleware(), true);\n }\n argvPromise = this[kValidateAsync](validation, argvPromise !== null && argvPromise !== void 0 ? argvPromise : argv);\n if (isPromise(argvPromise) && !calledFromCommand) {\n argvPromise = argvPromise.then(() => {\n return applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, \"f\").getMiddleware(), false);\n });\n }\n }\n }\n }\n catch (err) {\n if (err instanceof YError)\n __classPrivateFieldGet(this, _YargsInstance_usage, \"f\").fail(err.message, err);\n else\n throw err;\n }\n return this[kPostProcess](argvPromise !== null && argvPromise !== void 0 ? argvPromise : argv, populateDoubleDash, !!calledFromCommand, true);\n }\n [kRunValidation](aliases, positionalMap, parseErrors, isDefaultCommand) {\n const demandedOptions = { ...this.getDemandedOptions() };\n return (argv) => {\n if (parseErrors)\n throw new YError(parseErrors.message);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").nonOptionCount(argv);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").requiredArguments(argv, demandedOptions);\n let failedStrictCommands = false;\n if (__classPrivateFieldGet(this, _YargsInstance_strictCommands, \"f\")) {\n failedStrictCommands = __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unknownCommands(argv);\n }\n if (__classPrivateFieldGet(this, _YargsInstance_strict, \"f\") && !failedStrictCommands) {\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unknownArguments(argv, aliases, positionalMap, !!isDefaultCommand);\n }\n else if (__classPrivateFieldGet(this, _YargsInstance_strictOptions, \"f\")) {\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").unknownArguments(argv, aliases, {}, false, false);\n }\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").limitedChoices(argv);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").implications(argv);\n __classPrivateFieldGet(this, _YargsInstance_validation, \"f\").conflicting(argv);\n };\n }\n [kSetHasOutput]() {\n __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, \"f\");\n }\n [kTrackManuallySetKeys](keys) {\n if (typeof keys === 'string') {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[keys] = true;\n }\n else {\n for (const k of keys) {\n __classPrivateFieldGet(this, _YargsInstance_options, \"f\").key[k] = true;\n }\n }\n }\n}\nexport function isYargsInstance(y) {\n return !!y && typeof y.getInternalMethods === 'function';\n}\n", "'use strict';\n\n// Bootstraps yargs for ESM:\nimport esmPlatformShim from './lib/platform-shims/esm.mjs';\nimport {YargsFactory} from './build/lib/yargs-factory.js';\n\nconst Yargs = YargsFactory(esmPlatformShim);\nexport default Yargs;\n\nexport {Yargs as 'module.exports'};\n", "#! /usr/bin/env node\n/* eslint no-console: [\"error\", { allow: [\"log\", \"warn\", \"error\"] }] */\n\nimport { multiaddr } from '@multiformats/multiaddr'\nimport esMain from 'es-main'\nimport yargs from 'yargs'\n// @ts-expect-error no types\nimport YargsPromise from 'yargs-promise'\nimport type { Libp2pServer } from '@libp2p/daemon-server'\nimport type { Multiaddr } from '@multiformats/multiaddr'\n\nconst args = process.argv.slice(2)\nconst parser = new YargsPromise(yargs)\n\nconst log = console.log\n\nexport default async function main (processArgs: string[]): Promise<void> {\n parser.yargs\n .option('listen', {\n desc: 'daemon control listen multiaddr',\n type: 'string',\n default: '/unix/tmp/p2pd.sock'\n })\n .option('quiet', {\n alias: 'q',\n desc: 'be quiet',\n type: 'boolean',\n default: false\n })\n .option('id', {\n desc: 'peer identity; private key file',\n type: 'string',\n default: ''\n })\n .option('hostAddrs', {\n desc: 'Comma separated list of multiaddrs the host should listen on',\n type: 'string',\n default: ''\n })\n .option('announceAddrs', {\n desc: 'Comma separated list of multiaddrs the host should announce to the network',\n type: 'string',\n default: ''\n })\n .option('bootstrap', {\n alias: 'b',\n desc: 'Connects to bootstrap peers and bootstraps the dht if enabled',\n type: 'boolean',\n default: false\n })\n .option('bootstrapPeers', {\n desc: 'Comma separated list of bootstrap peers; defaults to the IPFS DHT peers',\n type: 'string',\n default: ''\n })\n .option('dht', {\n desc: 'Enables the DHT in full node mode',\n type: 'boolean',\n default: false\n })\n .option('dhtClient', {\n desc: '(Not yet supported) Enables the DHT in client mode',\n type: 'boolean',\n default: false\n })\n .option('nat', {\n desc: 'Enables UPnP NAT hole punching',\n type: 'boolean',\n default: false\n })\n .option('connMgr', {\n desc: '(Not yet supported) Enables the Connection Manager',\n type: 'boolean',\n default: false\n })\n .option('connMgrLo', {\n desc: 'Number identifying the number of peers below which this node will not activate preemptive disconnections',\n type: 'number'\n })\n .option('connMgrHi', {\n desc: 'Number identifying the maximum number of peers the current peer is willing to be connected to before is starts disconnecting',\n type: 'number'\n })\n .option('pubsub', {\n desc: 'Enables pubsub',\n type: 'boolean',\n default: false\n })\n .option('pubsubRouter', {\n desc: 'Specifies the pubsub router implementation',\n type: 'string',\n default: 'gossipsub'\n })\n .fail((msg: string, err: Error | undefined, yargs?: any) => {\n if (err != null) {\n throw err // preserve stack\n }\n\n if (args.length > 0) {\n log(msg)\n }\n\n yargs.showHelp()\n })\n\n const { data, argv } = await parser.parse(processArgs)\n\n if (data != null) {\n // Log help and exit\n\n log(data)\n process.exit(0)\n }\n\n const daemon = await createLibp2pServer(multiaddr(argv.listen), argv)\n await daemon.start()\n\n if (argv.quiet !== true) {\n log('daemon has started')\n }\n}\n\nexport async function createLibp2pServer (listenAddr: Multiaddr, argv: any): Promise<Libp2pServer> {\n // const libp2p = await createLibp2p(argv)\n // const daemon = await createServer(multiaddr(argv.listen), libp2p)\n\n throw new Error('Not implemented yet')\n}\n\nif (esMain(import.meta)) {\n main(process.argv)\n .catch((err) => {\n console.error(err)\n process.exit(1)\n })\n}\n"],
5
5
  "mappings": "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AM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,OACNA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,IAAM,OACNA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,IAAM,QACNA,IAAM,QACNA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,SACrBA,GAAK,SAAYA,GAAK,OAC3B,CAEA,SAASC,GAAYD,EAAG,CACvB,OAAOA,IAAM,OACTA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,KACzB,CAEA,SAASE,GAAOF,EAAG,CAClB,OAAOA,GAAK,MAAUA,GAAK,MACvBA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,GAAK,MAAUA,GAAK,MACpBA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,MACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,GAAK,OAAUA,GAAK,OACpBA,IAAM,OACNA,GAAK,OAAUA,GAAK,OACpBA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,IAAM,OACNA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAWA,GAAK,OACrBA,GAAK,OAAWA,GAAK,OACrBA,GAAK,OAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,IAAM,QACNA,IAAM,QACNA,GAAK,QAAWA,GAAK,QACrBA,IAAM,QACNA,GAAK,QAAWA,GAAK,QACrBA,IAAM,QACNA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,IAAM,QACNA,IAAM,QACNA,IAAM,QACNA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,IAAM,QACNA,IAAM,QACNA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,IAAM,QACNA,GAAK,QAAWA,GAAK,QACrBA,IAAM,QACNA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,GAAK,QAAWA,GAAK,QACrBA,IAAM,QACNA,IAAM,QACNA,IAAM,QACNA,IAAM,QACNA,GAAK,QAAWA,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",
6
6
  "names": ["require_emoji_regex", "__commonJSMin", "exports", "module", "module", "position", "oldPrepareStackTrace", "_", "stack", "require_yargs_promise", "__commonJSMin", "exports", "module", "YargsPromise", "yargs", "ctx", "msg", "returnArgs", "resolve", "reject", "context", "error", "argv", "output", "p", "data", "equals", "a", "b", "i", "import_node_buffer", "asUint8Array", "buf", "allocUnsafe", "size", "asUint8Array", "N1", "N2", "N3", "N4", "N5", "N6", "N7", "MSB", "REST", "encodingLength", "value", "encodeUint8Array", "buf", "offset", "decodeUint8Array", "buf", "offset", "b", "res", "REST", "MSB", "N4", "N5", "N6", "N7", "decodeUint8ArrayList", "decode", "buf", "offset", "decodeUint8Array", "decodeUint8ArrayList", "import_node_buffer", "concat", "arrays", "length", "asUint8Array", "import_node_buffer", "base10_exports", "__export", "base10", "empty", "equals", "aa", "bb", "ii", "coerce", "o", "fromString", "str", "toString", "b", "base", "ALPHABET", "name", "BASE_MAP", "j", "x", "xc", "BASE", "LEADER", "FACTOR", "iFACTOR", "encode", "source", "zeroes", "length", "pbegin", "pend", "size", "b58", "carry", "i", "it1", "it2", "str", "decodeUnsafe", "psz", "b256", "it3", "it4", "vch", "decode", "string", "buffer", "src", "_brrp__multiformats_scope_baseX", "base_x_default", "Encoder", "name", "prefix", "baseEncode", "bytes", "Decoder", "baseDecode", "prefixCodePoint", "text", "decoder", "or", "ComposedDecoder", "decoders", "input", "left", "right", "Codec", "from", "encode", "decode", "baseX", "alphabet", "base_x_default", "coerce", "string", "alphabetIdx", "bitsPerChar", "end", "out", "bits", "buffer", "written", "i", "value", "data", "pad", "mask", "createAlphabetIdx", "rfc4648", "base10", "baseX", "base16_exports", "__export", "base16", "base16upper", "base16", "rfc4648", "base16upper", "base2_exports", "__export", "base2", "base2", "rfc4648", "base256emoji_exports", "__export", "base256emoji", "alphabet", "alphabetBytesToChars", "p", "c", "i", "alphabetCharsToBytes", "codePoint", "encode", "data", "decode", "str", "byts", "char", "byt", "base256emoji", "from", "base32_exports", "__export", "base32", "base32hex", "base32hexpad", "base32hexpadupper", "base32hexupper", "base32pad", "base32padupper", "base32upper", "base32z", "base32", "rfc4648", "base32upper", "base32pad", "base32padupper", "base32hex", "base32hexupper", "base32hexpad", "base32hexpadupper", "base32z", "base36_exports", "__export", "base36", "base36upper", "base36", "baseX", "base36upper", "base58_exports", "__export", "base58btc", "base58flickr", "base58btc", "baseX", "base58flickr", "base64_exports", "__export", "base64", "base64pad", "base64url", "base64urlpad", "base64", "rfc4648", "base64pad", "base64url", "base64urlpad", "base8_exports", "__export", "base8", "base8", "rfc4648", "identity_exports", "__export", "identity", "identity", "from", "buf", "toString", "str", "fromString", "textEncoder", "textDecoder", "identity_exports", "__export", "identity", "encode_1", "encode", "MSB", "REST", "MSBALL", "INT", "num", "out", "offset", "oldOffset", "decode", "read", "MSB$1", "REST$1", "buf", "res", "shift", "counter", "b", "l", "N1", "N2", "N3", "N4", "N5", "N6", "N7", "N8", "N9", "length", "value", "varint", "_brrp_varint", "varint_default", "decode", "data", "offset", "varint_default", "encodeTo", "int", "target", "encodingLength", "create", "code", "digest", "size", "sizeOffset", "encodingLength", "digestOffset", "bytes", "encodeTo", "Digest", "decode", "multihash", "coerce", "equals", "a", "b", "data", "code", "name", "encode", "coerce", "digest", "input", "options", "create", "identity", "sha2_exports", "__export", "sha256", "sha512", "import_crypto", "DEFAULT_MIN_DIGEST_LENGTH", "from", "name", "code", "encode", "minDigestLength", "maxDigestLength", "Hasher", "input", "options", "result", "createDigest", "digest", "truncate", "create", "sha256", "from", "input", "coerce", "crypto", "sha512", "format", "link", "base", "bytes", "version", "toStringV0", "baseCache", "base58btc", "toStringV1", "base32", "cache", "baseCache", "cid", "CID", "_CID", "version", "code", "multihash", "bytes", "DAG_PB_CODE", "SHA_256_CODE", "digest", "create", "other", "self", "unknown", "equals", "base", "format", "input", "value", "encodeCID", "cidSymbol", "decode", "remainder", "specs", "prefixSize", "multihashBytes", "coerce", "digestBytes", "Digest", "initialBytes", "offset", "next", "i", "length", "codec", "multihashCode", "digestSize", "size", "multihashSize", "source", "prefix", "parseCIDtoBytes", "decoder", "base58btc", "base32", "base36", "toStringV0", "toStringV1", "codeOffset", "encodingLength", "hashOffset", "encodeTo", "bases", "identity_exports", "base2_exports", "base8_exports", "base10_exports", "base16_exports", "base32_exports", "base36_exports", "base58_exports", "base64_exports", "base256emoji_exports", "hashes", "sha2_exports", "createCodec", "name", "prefix", "encode", "decode", "string", "buf", "str", "ascii", "i", "allocUnsafe", "BASES", "bases", "bases_default", "fromString", "string", "encoding", "base", "bases_default", "asUint8Array", "import_node_buffer", "toString", "array", "encoding", "base", "bases_default", "InvalidMultiaddrError", "ValidationError", "InvalidParametersError", "UnknownProtocolError", "import_node_net", "bytesToString", "base", "buf", "toString", "stringToBytes", "fromString", "bytes2port", "port2bytes", "port", "onion2bytes", "str", "addr", "portBuf", "concat", "onion32bytes", "base32", "bytes2onion", "addrBytes", "portBytes", "ip4ToBytes", "ip", "bytes", "byte", "index", "value", "InvalidMultiaddrError", "ip6ToBytes", "offset", "sections", "i", "isv4", "v4Buffer", "argv", "word", "ip4ToString", "result", "ip6ToString", "byte1", "byte2", "tuple", "url", "ip6StringToValue", "decoders", "bases", "c", "anybaseDecoder", "acc", "d", "mb2bytes", "mbstr", "bytes2mb", "integer", "value", "ValidationError", "positive", "maxValue", "max", "validate", "funcs", "fn", "validatePort", "V", "Registry", "key", "codec", "UnknownProtocolError", "alias", "code", "registry", "codecs", "ip4ToBytes", "ip4ToString", "value", "ValidationError", "port2bytes", "bytes2port", "validatePort", "ip6ToBytes", "ip6ToString", "ip6StringToValue", "bytesToString", "stringToBytes", "str", "val", "CID", "bytes2onion", "onion2bytes", "onion32bytes", "bytes2mb", "base64url", "mb2bytes", "bytesToComponents", "bytes", "components", "i", "code", "decode", "codec", "registry", "codeLength", "encodingLength", "size", "sizeForAddr", "sizeLength", "V", "componentLength", "component", "valueOffset", "valueBytes", "toString", "componentsToBytes", "length", "codecLength", "valueLength", "valueLengthLength", "fromString", "offset", "encodeUint8Array", "concat", "stringToComponents", "string", "InvalidMultiaddrError", "collecting", "value", "protocol", "char", "ended", "componentsToString", "inspect", "symbol", "toComponents", "addr", "isMultiaddr", "bytesToComponents", "stringToComponents", "InvalidMultiaddrError", "Multiaddr", "_Multiaddr", "#components", "#string", "#bytes", "options", "validate", "componentsToBytes", "componentsToString", "c", "ma", "addrString", "s", "InvalidParametersError", "code", "index", "i", "equals", "component", "codec", "registry", "isMultiaddr", "value", "symbol", "multiaddr", "addr", "Multiaddr", "import_module", "import_path", "import_process", "import_url", "stripExt", "name", "extension", "path", "esMain", "meta", "process", "scriptPath", "modulePath", "import_assert", "align", "alignRight", "alignCenter", "top", "right", "bottom", "left", "UI", "opts", "_a", "args", "cols", "arg", "str", "rows", "row", "leftColumnWidth", "columns", "mixin", "r", "i", "text", "noAnsi", "lines", "line", "rrow", "col", "c", "width", "wrapWidth", "ts", "fn", "padding", "addBorder", "source", "previousLine", "match", "leadingWhitespace", "target", "targetTextWidth", "rrows", "widths", "wrapped", "unset", "remainingWidth", "unsetWidth", "w", "_minWidth", "style", "minWidth", "getWindowWidth", "strWidth", "cliui", "_mixin", "ansiRegex", "onlyFirst", "pattern", "regex", "ansiRegex", "stripAnsi", "string", "isAmbiguous", "x", "isFullWidth", "isWide", "validate", "codePoint", "eastAsianWidth", "codePoint", "ambiguousAsWide", "validate", "isFullWidth", "isWide", "isAmbiguous", "import_emoji_regex", "segmenter", "defaultIgnorableCodePointRegex", "stringWidth", "string", "options", "ambiguousIsNarrow", "countAnsiEscapeCodes", "stripAnsi", "width", "eastAsianWidthOptions", "character", "codePoint", "emojiRegex", "eastAsianWidth", "wrapAnsi16", "offset", "code", "wrapAnsi256", "wrapAnsi16m", "red", "green", "blue", "styles", "modifierNames", "foregroundColorNames", "backgroundColorNames", "colorNames", "assembleStyles", "codes", "groupName", "group", "styleName", "style", "hex", "matches", "colorString", "character", "integer", "remainder", "value", "result", "ansiStyles", "ansi_styles_default", "ESCAPES", "END_CODE", "ANSI_ESCAPE_BELL", "ANSI_CSI", "ANSI_OSC", "ANSI_SGR_TERMINATOR", "ANSI_ESCAPE_LINK", "wrapAnsiCode", "code", "wrapAnsiHyperlink", "url", "wordLengths", "string", "character", "stringWidth", "wrapWord", "rows", "word", "columns", "characters", "isInsideEscape", "isInsideLinkEscape", "visible", "stripAnsi", "index", "characterLength", "stringVisibleTrimSpacesRight", "words", "last", "exec", "options", "returnValue", "escapeCode", "escapeUrl", "lengths", "rowLength", "remainingColumns", "breaksStartingThisLine", "row", "preString", "pre", "preStringIndex", "groups", "ansi_styles_default", "wrapAnsi", "line", "ui", "opts", "cliui", "stringWidth", "stripAnsi", "wrapAnsi", "import_path", "import_fs", "sync_default", "start", "callback", "dir", "tmp", "import_util", "import_url", "import_util", "import_path", "camelCase", "str", "camelcase", "nextChrUpper", "leadingHyphens", "i", "chr", "decamelize", "joinString", "lowercase", "notCamelcase", "chrLower", "chrString", "looksLikeNumber", "x", "tokenizeArgString", "argString", "e", "i", "prevC", "c", "opening", "args", "ii", "DefaultValuesForTypeKey", "mixin", "YargsParser", "_mixin", "argsInput", "options", "opts", "args", "tokenizeArgString", "inputIsString", "aliases", "combineAliases", "configuration", "defaults", "configObjects", "envPrefix", "notFlagsOption", "notFlagsArgv", "newAliases", "defaulted", "__", "flags", "negative", "negatedBoolean", "opt", "key", "assignment", "value", "extendAliases", "alias", "error", "checkConfiguration", "notFlags", "argv", "argvReturn", "i", "arg", "truncatedArg", "broken", "letters", "m", "next", "isUnknownOptionAsArg", "pushPositional", "checkAllAliases", "eatArray", "eatNargs", "setArg", "defaultValue", "j", "applyEnvVars", "setConfig", "setConfigObjects", "applyDefaultsAndAliases", "applyCoercions", "setPlaceholderKeys", "hasKey", "k", "prop", "camelCase", "maybeCoercedNumber", "maybeCoerceNumber", "argAfterEqualSign", "ii", "toEat", "isUndefined", "available", "consumed", "argsToSet", "nargsCount", "defVal", "processValue", "val", "shouldStripQuotes", "addNewAlias", "splitKey", "setKey", "x", "keyProperties", "a", "stripQuotes", "v", "increment", "looksLikeNumber", "configLookup", "configKey", "configPath", "config", "resolvedConfigPath", "resolveConfig", "e", "setConfigObject", "ex", "prev", "fullKey", "configObject", "configOnly", "prefix", "env", "envVar", "keys", "coerce", "applied", "ali", "err", "obj", "canLog", "o", "sanitizeKey", "isTypeArray", "isValueArray", "duplicate", "c", "decamelize", "y", "flag", "toCheck", "setAlias", "hasAnyFlag", "flagsKeys", "hasFlagsMatching", "patterns", "pattern", "match", "hasAllShortFlags", "hasAllFlags", "isUnknownOption", "defaultForType", "guessType", "type", "DefaultValuesForTypeKey", "num", "aliasArrays", "combined", "change", "aliasArray", "self", "lastAlias", "orig", "import_fs", "import_node_module", "import_meta", "_a", "_b", "_c", "minNodeVersion", "nodeVersion", "env", "require", "parser", "YargsParser", "path", "yargsParser", "args", "opts", "camelCase", "decamelize", "looksLikeNumber", "lib_default", "import_path", "getProcessArgvBinIndex", "isBundledElectronApp", "isElectronApp", "getProcessArgvBin", "getProcessArgvBinIndex", "import_fs", "import_util", "import_path", "node_default", "file", "shim", "Y18N", "opts", "args", "str", "cb", "singular", "plural", "quantity", "values", "locale", "obj", "key", "parts", "part", "i", "arg", "work", "_this", "directory", "languageFile", "serializedLocale", "err", "localeLookup", "file", "y18n", "_shim", "y18n", "opts", "node_default", "y18n_default", "import_node_module", "import_get_caller_file", "import_node_fs", "import_meta", "__dirname", "mainFilename", "require", "esm_default", "ui", "sync_default", "key", "getProcessArgvBin", "lib_default", "warning", "type", "code", "callerFile", "getCallerFile", "stringWidth", "y18n_default", "assertNotStrictEqual", "actual", "expected", "shim", "message", "assertSingleKey", "objectKeys", "object", "isPromise", "maybePromise", "YError", "_YError", "msg", "parseCommand", "cmd", "splitCommand", "bregex", "firstCommand", "parsedCommand", "i", "variadic", "positionName", "argsert", "arg1", "arg2", "arg3", "parseArgs", "parseCommand", "position", "parsed", "callerArguments", "_length", "args", "length", "YError", "totalCommands", "demanded", "arg", "observedType", "guessType", "type", "argumentTypeError", "optional", "err", "allowedTypes", "GlobalMiddleware", "yargs", "callback", "applyBeforeValidation", "global", "mutates", "argsert", "i", "m", "option", "aliases", "toCheck", "frozen", "commandMiddlewareFactory", "commandMiddleware", "middleware", "applyMiddleware", "argv", "middlewares", "beforeValidation", "acc", "isPromise", "initialObj", "middlewareObj", "result", "maybeAsyncResult", "getResult", "resultHandler", "errorHandler", "err", "result", "isFunction", "isPromise", "arg", "DEFAULT_MARKER", "CommandInstance", "usage", "validation", "globalMiddleware", "shim", "dir", "req", "callerFile", "opts", "fullDirPath", "files", "visit", "o", "fileb", "file", "exclude", "include", "supportedExtension", "ext", "joined", "module", "extendableModule", "cmd", "description", "builder", "handler", "commandMiddleware", "deprecated", "aliases", "middlewares", "commandMiddlewareFactory", "isCommandAndAliases", "command", "isCommandHandlerDefinition", "isCommandBuilderDefinition", "parsedCommand", "parseCommand", "alias", "isDefault", "parsedAliases", "c", "yargs", "parsed", "commandIndex", "helpOnly", "helpOrVersionSet", "commandHandler", "currentContext", "parentCommands", "isDefaultCommand", "builderResult", "isPromise", "result", "innerYargs", "isCommandBuilderCallback", "builderOutput", "output", "isYargsInstance", "isCommandBuilderOptionDefinitions", "key", "innerArgv", "argv", "pc", "positionalMap", "maybeAsyncResult", "populateDoubleDash", "applyMiddleware", "handlerResult", "error", "maybePromiseArgv", "resolvedInnerArgv", "context", "demanded", "optional", "demand", "maybe", "a", "positional", "cmdString", "parseOptions", "d", "options", "unparsed", "value", "config", "positionalKeys", "defaults", "configObjects", "commandString", "describe", "desc", "test", "assertNotStrictEqual", "frozen", "objFilter", "original", "filter", "obj", "objectKeys", "key", "setBlocking", "blocking", "_stream", "stream", "isBoolean", "fail", "usage", "yargs", "shim", "__", "self", "fails", "f", "failMessage", "globalFailMessage", "showHelpOnFail", "arg1", "arg2", "enabled", "message", "failureOutput", "msg", "err", "logger", "i", "setBlocking", "globalOrCommandFailMessage", "YError", "usages", "usageDisabled", "description", "examples", "cmd", "commands", "isDefault", "aliases", "deprecated", "cmdArray", "descriptions", "keyOrKeys", "desc", "k", "epilogs", "wrapSet", "wrap", "cols", "windowWidth", "deferY18nLookupPrefix", "str", "cachedHelpMessage", "normalizeAliases", "base$0", "demandedOptions", "demandedCommands", "deprecatedOptions", "groups", "options", "keys", "filterHiddenOptions", "acc", "key", "theWrap", "ui", "u", "context", "parentCommands", "a", "b", "prefix", "command", "commandString", "maxWidth", "hints", "aliasKeys", "alias", "defaultGroup", "addUngroupedKeys", "isLongSwitch", "sw", "getText", "displayedGroups", "groupName", "normalizedKeys", "aliasKey", "switches", "sw1", "sw2", "addIndentation", "kswitch", "type", "deprecatedExtra", "extra", "defaultString", "getIndentation", "shouldHideOptionExtras", "example", "e", "epilog", "table", "modifier", "width", "v", "groupedKeys", "toCheck", "group", "level", "fn", "values", "separator", "string", "sep", "array", "value", "defaultDescription", "version", "ver", "localLookup", "objFilter", "frozens", "defaultCommand", "frozen", "isIndentedText", "text", "indent", "completionShTemplate", "completionZshTemplate", "Completion", "yargs", "usage", "command", "shim", "_a", "_b", "_c", "args", "argv", "current", "done", "handlers", "i", "ii", "builder", "isCommandBuilderCallback", "y", "completions", "parentCommands", "usageCommand", "commandName", "parseCommand", "desc", "options", "positionalKeys", "key", "negable", "choices", "c", "offset", "positionalKey", "choice", "previousArg", "filter", "previousArgKey", "possibleAliases", "possibleAlias", "argsContains", "alias", "_d", "keyWithDesc", "descs", "aliasKey", "descFromAlias", "startsByTwoDashes", "s", "isShortOption", "dashes", "assertNotStrictEqual", "isSyncCompletionFunction", "result", "isPromise", "list", "err", "isFallbackCompletionFunction", "onCompleted", "completionFunction", "$0", "cmd", "script", "completionZshTemplate", "completionShTemplate", "name", "fn", "parsed", "completion", "levenshtein", "a", "b", "matrix", "i", "j", "specialKeys", "validation", "yargs", "usage", "shim", "__", "__n", "self", "argv", "demandedCommands", "_s", "required", "observed", "demandedOptions", "missing", "key", "customMsgs", "msg", "customMsg", "aliases", "positionalMap", "isDefaultCommand", "checkPositionals", "_a", "commandKeys", "unknown", "currentContext", "maxNonOptDemanded", "expected", "s", "newAliases", "a", "options", "invalid", "value", "invalidKeys", "implied", "argsert", "k", "i", "assertNotStrictEqual", "keyExists", "val", "num", "implyFail", "origKey", "origValue", "conflicting", "cmd", "potentialCommands", "b", "recommended", "bestDistance", "candidate", "d", "levenshtein", "localLookup", "objFilter", "frozens", "frozen", "import_meta", "previouslyVisitedConfigs", "shim", "applyExtends", "config", "cwd", "mergeExtends", "_shim", "defaultConfig", "isPath", "pathToDefault", "getPathToDefaultConfig", "checkForCircularExtends", "mergeDeep", "cfgPath", "YError", "pathToExtend", "config1", "config2", "target", "isObject", "obj", "key", "__classPrivateFieldSet", "receiver", "state", "value", "kind", "f", "__classPrivateFieldGet", "_YargsInstance_command", "_YargsInstance_cwd", "_YargsInstance_context", "_YargsInstance_completion", "_YargsInstance_completionCommand", "_YargsInstance_defaultShowHiddenOpt", "_YargsInstance_exitError", "_YargsInstance_detectLocale", "_YargsInstance_emittedWarnings", "_YargsInstance_exitProcess", "_YargsInstance_frozens", "_YargsInstance_globalMiddleware", "_YargsInstance_groups", "_YargsInstance_hasOutput", "_YargsInstance_helpOpt", "_YargsInstance_isGlobalContext", "_YargsInstance_logger", "_YargsInstance_output", "_YargsInstance_options", "_YargsInstance_parentRequire", "_YargsInstance_parserConfig", "_YargsInstance_parseFn", "_YargsInstance_parseContext", "_YargsInstance_pkgs", "_YargsInstance_preservedGroups", "_YargsInstance_processArgs", "_YargsInstance_recommendCommands", "_YargsInstance_shim", "_YargsInstance_strict", "_YargsInstance_strictCommands", "_YargsInstance_strictOptions", "_YargsInstance_usage", "_YargsInstance_usageConfig", "_YargsInstance_versionOpt", "_YargsInstance_validation", "YargsFactory", "_shim", "processArgs", "cwd", "parentRequire", "yargs", "YargsInstance", "kCopyDoubleDash", "kCreateLogger", "kDeleteFromParserHintObject", "kEmitWarning", "kFreeze", "kGetDollarZero", "kGetParserConfiguration", "kGetUsageConfiguration", "kGuessLocale", "kGuessVersion", "kParsePositionalNumbers", "kPkgUp", "kPopulateParserHintArray", "kPopulateParserHintSingleValueDictionary", "kPopulateParserHintArrayDictionary", "kPopulateParserHintDictionary", "kSanitizeKey", "kSetKey", "kUnfreeze", "kValidateAsync", "kGetCommandInstance", "kGetContext", "kGetHasOutput", "kGetLoggerInstance", "kGetParseContext", "kGetUsageInstance", "kGetValidationInstance", "kHasParseCallback", "kIsGlobalContext", "kPostProcess", "kRebase", "kReset", "kRunYargsParserAndExecuteCommands", "kRunValidation", "kSetHasOutput", "kTrackManuallySetKeys", "DEFAULT_LOCALE", "shim", "GlobalMiddleware", "opt", "msg", "defaultHelpOpt", "argsert", "showHiddenOpt", "key", "keys", "global", "argv", "_yargs", "maybeAsyncResult", "result", "err", "YError", "coerceKey", "_a", "coerceKeyAliases", "argvKeys", "key1", "key2", "parseFn", "applyExtends", "k", "cmd", "desc", "fn", "description", "builder", "handler", "middlewares", "deprecated", "dir", "opts", "req", "defaultDescription", "assertSingleKey", "min", "max", "minMsg", "maxMsg", "assertNotStrictEqual", "option", "message", "detect", "prefix", "exampleParams", "code", "enabled", "args", "done", "resolve", "reject", "completions", "parse", "isPromise", "builderResponse", "globals", "l", "g", "groupName", "existing", "seen", "locale", "callback", "applyBeforeValidation", "deprecate", "demand", "descriptions", "shortCircuit", "_parseFn", "parsed", "tmpParsed", "maybePromise", "config", "rootPath", "conf", "obj", "supportedOpts", "objFilter", "v", "fullCommand", "parseOptions", "objectKeys", "pk", "parseOption", "recommend", "$0", "level", "scriptName", "ver", "defaultVersionOpt", "cols", "optionKey", "hintKey", "hint", "warning", "type", "deduplicationId", "default$0", "x", "b", "i", "arg", "npath", "startDir", "pkgJsonPath", "names", "singleKeyHandler", "set", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "_j", "_k", "_l", "_m", "frozen", "configObjects", "_o", "validation", "populateDoubleDash", "calledFromCommand", "runGlobalMiddleware", "applyMiddleware", "aliases", "tmpOptions", "localLookup", "acc", "arrayOptions", "objectOptions", "usage", "command", "completion", "base", "commandIndex", "helpOnly", "skipValidation", "argvPromise", "helpOptSet", "versionOptSet", "handlerKeys", "requestCompletions", "skipRecommendation", "firstUnknownCommand", "innerArgv", "setBlocking", "completionArgs", "positionalMap", "parseErrors", "isDefaultCommand", "demandedOptions", "failedStrictCommands", "isYargsInstance", "y", "Yargs", "YargsFactory", "esm_default", "yargs_default", "import_yargs_promise", "args", "parser", "YargsPromise", "yargs_default", "log", "main", "processArgs", "msg", "err", "yargs", "data", "argv", "createLibp2pServer", "multiaddr", "listenAddr", "esMain", "import_meta"]