From a1adfc8706f7f49dc2a1e68ba1242519c9808efd Mon Sep 17 00:00:00 2001 From: "david@federated.company" Date: Fri, 21 Apr 2023 08:57:54 -0600 Subject: [PATCH] Initial commit... new file: archetypes/default.md new file: config.toml new file: content/about/_index.md new file: content/access/_index.md new file: content/background.jpg new file: content/background.mp4 new file: content/blog/_index.md new file: content/manifesto/_index.md new file: content/posts/_index.md new file: content/posts/apple-breaks-privacy.md new file: content/posts/main_street_against_big_tech.md new file: content/posts/template.md new file: content/posts/what_is_done_with_personal_data.md new file: content/projects/_index.md new file: node_modules/.bin/nanoid new file: node_modules/.bin/postcss new file: node_modules/.package-lock.json new file: node_modules/@nodelib/fs.scandir/LICENSE new file: node_modules/@nodelib/fs.scandir/README.md new file: node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts new file: node_modules/@nodelib/fs.scandir/out/adapters/fs.js new file: node_modules/@nodelib/fs.scandir/out/constants.d.ts new file: node_modules/@nodelib/fs.scandir/out/constants.js new file: node_modules/@nodelib/fs.scandir/out/index.d.ts new file: node_modules/@nodelib/fs.scandir/out/index.js new file: node_modules/@nodelib/fs.scandir/out/providers/async.d.ts new file: node_modules/@nodelib/fs.scandir/out/providers/async.js new file: node_modules/@nodelib/fs.scandir/out/providers/common.d.ts new file: node_modules/@nodelib/fs.scandir/out/providers/common.js new file: node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts new file: node_modules/@nodelib/fs.scandir/out/providers/sync.js new file: node_modules/@nodelib/fs.scandir/out/settings.d.ts new file: node_modules/@nodelib/fs.scandir/out/settings.js new file: node_modules/@nodelib/fs.scandir/out/types/index.d.ts new file: node_modules/@nodelib/fs.scandir/out/types/index.js new file: node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts new file: node_modules/@nodelib/fs.scandir/out/utils/fs.js new file: node_modules/@nodelib/fs.scandir/out/utils/index.d.ts new file: node_modules/@nodelib/fs.scandir/out/utils/index.js new file: node_modules/@nodelib/fs.scandir/package.json new file: node_modules/@nodelib/fs.stat/LICENSE new file: node_modules/@nodelib/fs.stat/README.md new file: node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts new file: node_modules/@nodelib/fs.stat/out/adapters/fs.js new file: node_modules/@nodelib/fs.stat/out/index.d.ts new file: node_modules/@nodelib/fs.stat/out/index.js new file: node_modules/@nodelib/fs.stat/out/providers/async.d.ts new file: node_modules/@nodelib/fs.stat/out/providers/async.js new file: node_modules/@nodelib/fs.stat/out/providers/sync.d.ts new file: node_modules/@nodelib/fs.stat/out/providers/sync.js new file: node_modules/@nodelib/fs.stat/out/settings.d.ts new file: node_modules/@nodelib/fs.stat/out/settings.js new file: node_modules/@nodelib/fs.stat/out/types/index.d.ts new file: node_modules/@nodelib/fs.stat/out/types/index.js new file: node_modules/@nodelib/fs.stat/package.json new file: node_modules/@nodelib/fs.walk/LICENSE new file: node_modules/@nodelib/fs.walk/README.md new file: node_modules/@nodelib/fs.walk/out/index.d.ts new file: node_modules/@nodelib/fs.walk/out/index.js new file: node_modules/@nodelib/fs.walk/out/providers/async.d.ts new file: node_modules/@nodelib/fs.walk/out/providers/async.js new file: node_modules/@nodelib/fs.walk/out/providers/index.d.ts new file: node_modules/@nodelib/fs.walk/out/providers/index.js new file: node_modules/@nodelib/fs.walk/out/providers/stream.d.ts new file: node_modules/@nodelib/fs.walk/out/providers/stream.js new file: node_modules/@nodelib/fs.walk/out/providers/sync.d.ts new file: node_modules/@nodelib/fs.walk/out/providers/sync.js new file: node_modules/@nodelib/fs.walk/out/readers/async.d.ts new file: node_modules/@nodelib/fs.walk/out/readers/async.js new file: node_modules/@nodelib/fs.walk/out/readers/common.d.ts new file: node_modules/@nodelib/fs.walk/out/readers/common.js new file: node_modules/@nodelib/fs.walk/out/readers/reader.d.ts new file: node_modules/@nodelib/fs.walk/out/readers/reader.js new file: node_modules/@nodelib/fs.walk/out/readers/sync.d.ts new file: node_modules/@nodelib/fs.walk/out/readers/sync.js new file: node_modules/@nodelib/fs.walk/out/settings.d.ts new file: node_modules/@nodelib/fs.walk/out/settings.js new file: node_modules/@nodelib/fs.walk/out/types/index.d.ts new file: node_modules/@nodelib/fs.walk/out/types/index.js new file: node_modules/@nodelib/fs.walk/package.json new file: node_modules/ansi-regex/index.d.ts new file: node_modules/ansi-regex/index.js new file: node_modules/ansi-regex/license new file: node_modules/ansi-regex/package.json new file: node_modules/ansi-regex/readme.md new file: node_modules/ansi-styles/index.d.ts new file: node_modules/ansi-styles/index.js new file: node_modules/ansi-styles/license new file: node_modules/ansi-styles/package.json new file: node_modules/ansi-styles/readme.md new file: node_modules/anymatch/LICENSE new file: node_modules/anymatch/README.md new file: node_modules/anymatch/index.d.ts new file: node_modules/anymatch/index.js new file: node_modules/anymatch/package.json new file: node_modules/array-union/index.d.ts new file: node_modules/array-union/index.js new file: node_modules/array-union/license new file: node_modules/array-union/package.json new file: node_modules/array-union/readme.md new file: node_modules/binary-extensions/binary-extensions.json new file: node_modules/binary-extensions/binary-extensions.json.d.ts new file: node_modules/binary-extensions/index.d.ts new file: node_modules/binary-extensions/index.js new file: node_modules/binary-extensions/license new file: node_modules/binary-extensions/package.json new file: node_modules/binary-extensions/readme.md new file: node_modules/braces/CHANGELOG.md new file: node_modules/braces/LICENSE new file: node_modules/braces/README.md new file: node_modules/braces/index.js new file: node_modules/braces/lib/compile.js new file: node_modules/braces/lib/constants.js new file: node_modules/braces/lib/expand.js new file: node_modules/braces/lib/parse.js new file: node_modules/braces/lib/stringify.js new file: node_modules/braces/lib/utils.js new file: node_modules/braces/package.json new file: node_modules/chokidar/LICENSE new file: node_modules/chokidar/README.md new file: node_modules/chokidar/index.js new file: node_modules/chokidar/lib/constants.js new file: node_modules/chokidar/lib/fsevents-handler.js new file: node_modules/chokidar/lib/nodefs-handler.js new file: node_modules/chokidar/package.json new file: node_modules/chokidar/types/index.d.ts new file: node_modules/cliui/CHANGELOG.md new file: node_modules/cliui/LICENSE.txt new file: node_modules/cliui/README.md new file: node_modules/cliui/build/index.cjs new file: node_modules/cliui/build/lib/index.js new file: node_modules/cliui/build/lib/string-utils.js new file: node_modules/cliui/index.mjs new file: node_modules/cliui/package.json new file: node_modules/color-convert/CHANGELOG.md new file: node_modules/color-convert/LICENSE new file: node_modules/color-convert/README.md new file: node_modules/color-convert/conversions.js new file: node_modules/color-convert/index.js new file: node_modules/color-convert/package.json new file: node_modules/color-convert/route.js new file: node_modules/color-name/LICENSE new file: node_modules/color-name/README.md new file: node_modules/color-name/index.js new file: node_modules/color-name/package.json new file: node_modules/dependency-graph/CHANGELOG.md new file: node_modules/dependency-graph/LICENSE new file: node_modules/dependency-graph/README.md new file: node_modules/dependency-graph/lib/dep_graph.js new file: node_modules/dependency-graph/lib/index.d.ts new file: node_modules/dependency-graph/package.json new file: node_modules/dependency-graph/specs/dep_graph_spec.js new file: node_modules/dir-glob/index.js new file: node_modules/dir-glob/license new file: node_modules/dir-glob/package.json new file: node_modules/dir-glob/readme.md new file: node_modules/emoji-regex/LICENSE-MIT.txt new file: node_modules/emoji-regex/README.md new file: node_modules/emoji-regex/es2015/index.js new file: node_modules/emoji-regex/es2015/text.js new file: node_modules/emoji-regex/index.d.ts new file: node_modules/emoji-regex/index.js new file: node_modules/emoji-regex/package.json new file: node_modules/emoji-regex/text.js new file: node_modules/escalade/dist/index.js new file: node_modules/escalade/dist/index.mjs new file: node_modules/escalade/index.d.ts new file: node_modules/escalade/license new file: node_modules/escalade/package.json new file: node_modules/escalade/readme.md new file: node_modules/escalade/sync/index.d.ts new file: node_modules/escalade/sync/index.js new file: node_modules/escalade/sync/index.mjs new file: node_modules/fast-glob/LICENSE new file: node_modules/fast-glob/README.md new file: node_modules/fast-glob/out/index.d.ts new file: node_modules/fast-glob/out/index.js new file: node_modules/fast-glob/out/managers/patterns.d.ts new file: node_modules/fast-glob/out/managers/patterns.js new file: node_modules/fast-glob/out/managers/tasks.d.ts new file: node_modules/fast-glob/out/managers/tasks.js new file: node_modules/fast-glob/out/providers/async.d.ts new file: node_modules/fast-glob/out/providers/async.js new file: node_modules/fast-glob/out/providers/filters/deep.d.ts new file: node_modules/fast-glob/out/providers/filters/deep.js new file: node_modules/fast-glob/out/providers/filters/entry.d.ts new file: node_modules/fast-glob/out/providers/filters/entry.js new file: node_modules/fast-glob/out/providers/filters/error.d.ts new file: node_modules/fast-glob/out/providers/filters/error.js new file: node_modules/fast-glob/out/providers/matchers/matcher.d.ts new file: node_modules/fast-glob/out/providers/matchers/matcher.js new file: node_modules/fast-glob/out/providers/matchers/partial.d.ts new file: node_modules/fast-glob/out/providers/matchers/partial.js new file: node_modules/fast-glob/out/providers/provider.d.ts new file: node_modules/fast-glob/out/providers/provider.js new file: node_modules/fast-glob/out/providers/stream.d.ts new file: node_modules/fast-glob/out/providers/stream.js new file: node_modules/fast-glob/out/providers/sync.d.ts new file: node_modules/fast-glob/out/providers/sync.js new file: node_modules/fast-glob/out/providers/transformers/entry.d.ts new file: node_modules/fast-glob/out/providers/transformers/entry.js new file: node_modules/fast-glob/out/readers/reader.d.ts new file: node_modules/fast-glob/out/readers/reader.js new file: node_modules/fast-glob/out/readers/stream.d.ts new file: node_modules/fast-glob/out/readers/stream.js new file: node_modules/fast-glob/out/readers/sync.d.ts new file: node_modules/fast-glob/out/readers/sync.js new file: node_modules/fast-glob/out/settings.d.ts new file: node_modules/fast-glob/out/settings.js new file: node_modules/fast-glob/out/types/index.d.ts new file: node_modules/fast-glob/out/types/index.js new file: node_modules/fast-glob/out/utils/array.d.ts new file: node_modules/fast-glob/out/utils/array.js new file: node_modules/fast-glob/out/utils/errno.d.ts new file: node_modules/fast-glob/out/utils/errno.js new file: node_modules/fast-glob/out/utils/fs.d.ts new file: node_modules/fast-glob/out/utils/fs.js new file: node_modules/fast-glob/out/utils/index.d.ts new file: node_modules/fast-glob/out/utils/index.js new file: node_modules/fast-glob/out/utils/path.d.ts new file: node_modules/fast-glob/out/utils/path.js new file: node_modules/fast-glob/out/utils/pattern.d.ts new file: node_modules/fast-glob/out/utils/pattern.js new file: node_modules/fast-glob/out/utils/stream.d.ts new file: node_modules/fast-glob/out/utils/stream.js new file: node_modules/fast-glob/out/utils/string.d.ts new file: node_modules/fast-glob/out/utils/string.js new file: node_modules/fast-glob/package.json new file: node_modules/fastq/.github/dependabot.yml new file: node_modules/fastq/.github/workflows/ci.yml new file: node_modules/fastq/LICENSE new file: node_modules/fastq/README.md new file: node_modules/fastq/bench.js new file: node_modules/fastq/example.js new file: node_modules/fastq/example.mjs new file: node_modules/fastq/index.d.ts new file: node_modules/fastq/package.json new file: node_modules/fastq/queue.js new file: node_modules/fastq/test/example.ts new file: node_modules/fastq/test/promise.js new file: node_modules/fastq/test/test.js new file: node_modules/fastq/test/tsconfig.json new file: node_modules/fill-range/LICENSE new file: node_modules/fill-range/README.md new file: node_modules/fill-range/index.js new file: node_modules/fill-range/package.json new file: node_modules/fs-extra/CHANGELOG.md new file: node_modules/fs-extra/LICENSE new file: node_modules/fs-extra/README.md new file: node_modules/fs-extra/lib/copy-sync/copy-sync.js new file: node_modules/fs-extra/lib/copy-sync/index.js new file: node_modules/fs-extra/lib/copy/copy.js new file: node_modules/fs-extra/lib/copy/index.js new file: node_modules/fs-extra/lib/empty/index.js new file: node_modules/fs-extra/lib/ensure/file.js new file: node_modules/fs-extra/lib/ensure/index.js new file: node_modules/fs-extra/lib/ensure/link.js new file: node_modules/fs-extra/lib/ensure/symlink-paths.js new file: node_modules/fs-extra/lib/ensure/symlink-type.js new file: node_modules/fs-extra/lib/ensure/symlink.js new file: node_modules/fs-extra/lib/fs/index.js new file: node_modules/fs-extra/lib/index.js new file: node_modules/fs-extra/lib/json/index.js new file: node_modules/fs-extra/lib/json/jsonfile.js new file: node_modules/fs-extra/lib/json/output-json-sync.js new file: node_modules/fs-extra/lib/json/output-json.js new file: node_modules/fs-extra/lib/mkdirs/index.js new file: node_modules/fs-extra/lib/mkdirs/make-dir.js new file: node_modules/fs-extra/lib/mkdirs/utils.js new file: node_modules/fs-extra/lib/move-sync/index.js new file: node_modules/fs-extra/lib/move-sync/move-sync.js new file: node_modules/fs-extra/lib/move/index.js new file: node_modules/fs-extra/lib/move/move.js new file: node_modules/fs-extra/lib/output/index.js new file: node_modules/fs-extra/lib/path-exists/index.js new file: node_modules/fs-extra/lib/remove/index.js new file: node_modules/fs-extra/lib/remove/rimraf.js new file: node_modules/fs-extra/lib/util/stat.js new file: node_modules/fs-extra/lib/util/utimes.js new file: node_modules/fs-extra/package.json new file: node_modules/get-caller-file/LICENSE.md new file: node_modules/get-caller-file/README.md new file: node_modules/get-caller-file/index.d.ts new file: node_modules/get-caller-file/index.js new file: node_modules/get-caller-file/index.js.map new file: node_modules/get-caller-file/package.json new file: node_modules/get-stdin/index.d.ts new file: node_modules/get-stdin/index.js new file: node_modules/get-stdin/license new file: node_modules/get-stdin/package.json new file: node_modules/get-stdin/readme.md new file: node_modules/glob-parent/CHANGELOG.md new file: node_modules/glob-parent/LICENSE new file: node_modules/glob-parent/README.md new file: node_modules/glob-parent/index.js new file: node_modules/glob-parent/package.json new file: node_modules/globby/gitignore.js new file: node_modules/globby/index.d.ts new file: node_modules/globby/index.js new file: node_modules/globby/license new file: node_modules/globby/package.json new file: node_modules/globby/readme.md new file: node_modules/globby/stream-utils.js new file: node_modules/globby/to-path.js new file: node_modules/graceful-fs/LICENSE new file: node_modules/graceful-fs/README.md new file: node_modules/graceful-fs/clone.js new file: node_modules/graceful-fs/graceful-fs.js new file: node_modules/graceful-fs/legacy-streams.js new file: node_modules/graceful-fs/package.json new file: node_modules/graceful-fs/polyfills.js new file: node_modules/ignore/LICENSE-MIT new file: node_modules/ignore/README.md new file: node_modules/ignore/index.d.ts new file: node_modules/ignore/index.js new file: node_modules/ignore/legacy.js new file: node_modules/ignore/package.json new file: node_modules/is-binary-path/index.d.ts new file: node_modules/is-binary-path/index.js new file: node_modules/is-binary-path/license new file: node_modules/is-binary-path/package.json new file: node_modules/is-binary-path/readme.md new file: node_modules/is-extglob/LICENSE new file: node_modules/is-extglob/README.md new file: node_modules/is-extglob/index.js new file: node_modules/is-extglob/package.json new file: node_modules/is-fullwidth-code-point/index.d.ts new file: node_modules/is-fullwidth-code-point/index.js new file: node_modules/is-fullwidth-code-point/license new file: node_modules/is-fullwidth-code-point/package.json new file: node_modules/is-fullwidth-code-point/readme.md new file: node_modules/is-glob/LICENSE new file: node_modules/is-glob/README.md new file: node_modules/is-glob/index.js new file: node_modules/is-glob/package.json new file: node_modules/is-number/LICENSE new file: node_modules/is-number/README.md new file: node_modules/is-number/index.js new file: node_modules/is-number/package.json new file: node_modules/jsonfile/CHANGELOG.md new file: node_modules/jsonfile/LICENSE new file: node_modules/jsonfile/README.md new file: node_modules/jsonfile/index.js new file: node_modules/jsonfile/package.json new file: node_modules/jsonfile/utils.js new file: node_modules/lilconfig/dist/index.d.ts new file: node_modules/lilconfig/dist/index.js new file: node_modules/lilconfig/package.json new file: node_modules/lilconfig/readme.md new file: node_modules/merge2/LICENSE new file: node_modules/merge2/README.md new file: node_modules/merge2/index.js new file: node_modules/merge2/package.json new file: node_modules/micromatch/CHANGELOG.md new file: node_modules/micromatch/LICENSE new file: node_modules/micromatch/README.md new file: node_modules/micromatch/index.js new file: node_modules/micromatch/package.json new file: node_modules/nanoid/LICENSE new file: node_modules/nanoid/README.md new file: node_modules/nanoid/async/index.browser.cjs new file: node_modules/nanoid/async/index.browser.js new file: node_modules/nanoid/async/index.cjs new file: node_modules/nanoid/async/index.d.ts new file: node_modules/nanoid/async/index.js new file: node_modules/nanoid/async/index.native.js new file: node_modules/nanoid/async/package.json new file: node_modules/nanoid/bin/nanoid.cjs new file: node_modules/nanoid/index.browser.cjs new file: node_modules/nanoid/index.browser.js new file: node_modules/nanoid/index.cjs new file: node_modules/nanoid/index.d.ts new file: node_modules/nanoid/index.dev.js new file: node_modules/nanoid/index.js new file: node_modules/nanoid/index.prod.js new file: node_modules/nanoid/nanoid.js new file: node_modules/nanoid/non-secure/index.cjs new file: node_modules/nanoid/non-secure/index.d.ts new file: node_modules/nanoid/non-secure/index.js new file: node_modules/nanoid/non-secure/package.json new file: node_modules/nanoid/package.json new file: node_modules/nanoid/url-alphabet/index.cjs new file: node_modules/nanoid/url-alphabet/index.js new file: node_modules/nanoid/url-alphabet/package.json new file: node_modules/normalize-path/LICENSE new file: node_modules/normalize-path/README.md new file: node_modules/normalize-path/index.js new file: node_modules/normalize-path/package.json new file: node_modules/path-type/index.d.ts new file: node_modules/path-type/index.js new file: node_modules/path-type/license new file: node_modules/path-type/package.json new file: node_modules/path-type/readme.md new file: node_modules/picocolors/LICENSE new file: node_modules/picocolors/README.md new file: node_modules/picocolors/package.json new file: node_modules/picocolors/picocolors.browser.js new file: node_modules/picocolors/picocolors.d.ts new file: node_modules/picocolors/picocolors.js new file: node_modules/picocolors/types.ts new file: node_modules/picomatch/CHANGELOG.md new file: node_modules/picomatch/LICENSE new file: node_modules/picomatch/README.md new file: node_modules/picomatch/index.js new file: node_modules/picomatch/lib/constants.js new file: node_modules/picomatch/lib/parse.js new file: node_modules/picomatch/lib/picomatch.js new file: node_modules/picomatch/lib/scan.js new file: node_modules/picomatch/lib/utils.js new file: node_modules/picomatch/package.json new file: node_modules/pify/index.js new file: node_modules/pify/license new file: node_modules/pify/package.json new file: node_modules/pify/readme.md new file: node_modules/postcss-cli/LICENSE new file: node_modules/postcss-cli/README.md new file: node_modules/postcss-cli/index.js new file: node_modules/postcss-cli/lib/DependencyGraph.js new file: node_modules/postcss-cli/lib/args.js new file: node_modules/postcss-cli/lib/getMapfile.js new file: node_modules/postcss-cli/package.json new file: node_modules/postcss-load-config/LICENSE new file: node_modules/postcss-load-config/README.md new file: node_modules/postcss-load-config/package.json new file: node_modules/postcss-load-config/src/index.d.ts new file: node_modules/postcss-load-config/src/index.js new file: node_modules/postcss-load-config/src/options.js new file: node_modules/postcss-load-config/src/plugins.js new file: node_modules/postcss-load-config/src/req.js new file: node_modules/postcss-reporter/LICENSE new file: node_modules/postcss-reporter/README.md new file: node_modules/postcss-reporter/index.js new file: node_modules/postcss-reporter/lib/formatter.js new file: node_modules/postcss-reporter/lib/reporter.js new file: node_modules/postcss-reporter/lib/util.js new file: node_modules/postcss-reporter/package.json new file: node_modules/postcss/LICENSE new file: node_modules/postcss/README.md new file: node_modules/postcss/lib/at-rule.d.ts new file: node_modules/postcss/lib/at-rule.js new file: node_modules/postcss/lib/comment.d.ts new file: node_modules/postcss/lib/comment.js new file: node_modules/postcss/lib/container.d.ts new file: node_modules/postcss/lib/container.js new file: node_modules/postcss/lib/css-syntax-error.d.ts new file: node_modules/postcss/lib/css-syntax-error.js new file: node_modules/postcss/lib/declaration.d.ts new file: node_modules/postcss/lib/declaration.js new file: node_modules/postcss/lib/document.d.ts new file: node_modules/postcss/lib/document.js new file: node_modules/postcss/lib/fromJSON.d.ts new file: node_modules/postcss/lib/fromJSON.js new file: node_modules/postcss/lib/input.d.ts new file: node_modules/postcss/lib/input.js new file: node_modules/postcss/lib/lazy-result.d.ts new file: node_modules/postcss/lib/lazy-result.js new file: node_modules/postcss/lib/list.d.ts new file: node_modules/postcss/lib/list.js new file: node_modules/postcss/lib/map-generator.js new file: node_modules/postcss/lib/no-work-result.d.ts new file: node_modules/postcss/lib/no-work-result.js new file: node_modules/postcss/lib/node.d.ts new file: node_modules/postcss/lib/node.js new file: node_modules/postcss/lib/parse.d.ts new file: node_modules/postcss/lib/parse.js new file: node_modules/postcss/lib/parser.js new file: node_modules/postcss/lib/postcss.d.ts new file: node_modules/postcss/lib/postcss.js new file: node_modules/postcss/lib/postcss.mjs new file: node_modules/postcss/lib/previous-map.d.ts new file: node_modules/postcss/lib/previous-map.js new file: node_modules/postcss/lib/processor.d.ts new file: node_modules/postcss/lib/processor.js new file: node_modules/postcss/lib/result.d.ts new file: node_modules/postcss/lib/result.js new file: node_modules/postcss/lib/root.d.ts new file: node_modules/postcss/lib/root.js new file: node_modules/postcss/lib/rule.d.ts new file: node_modules/postcss/lib/rule.js new file: node_modules/postcss/lib/stringifier.d.ts new file: node_modules/postcss/lib/stringifier.js new file: node_modules/postcss/lib/stringify.d.ts new file: node_modules/postcss/lib/stringify.js new file: node_modules/postcss/lib/symbols.js new file: node_modules/postcss/lib/terminal-highlight.js new file: node_modules/postcss/lib/tokenize.js new file: node_modules/postcss/lib/warn-once.js new file: node_modules/postcss/lib/warning.d.ts new file: node_modules/postcss/lib/warning.js new file: node_modules/postcss/package.json new file: node_modules/pretty-hrtime/.jshintignore new file: node_modules/pretty-hrtime/.npmignore new file: node_modules/pretty-hrtime/LICENSE new file: node_modules/pretty-hrtime/README.md new file: node_modules/pretty-hrtime/index.js new file: node_modules/pretty-hrtime/package.json new file: node_modules/queue-microtask/LICENSE new file: node_modules/queue-microtask/README.md new file: node_modules/queue-microtask/index.d.ts new file: node_modules/queue-microtask/index.js new file: node_modules/queue-microtask/package.json new file: node_modules/read-cache/LICENSE new file: node_modules/read-cache/README.md new file: node_modules/read-cache/index.js new file: node_modules/read-cache/package.json new file: node_modules/readdirp/LICENSE new file: node_modules/readdirp/README.md new file: node_modules/readdirp/index.d.ts new file: node_modules/readdirp/index.js new file: node_modules/readdirp/package.json new file: node_modules/require-directory/.jshintrc new file: node_modules/require-directory/.npmignore new file: node_modules/require-directory/.travis.yml new file: node_modules/require-directory/LICENSE new file: node_modules/require-directory/README.markdown new file: node_modules/require-directory/index.js new file: node_modules/require-directory/package.json new file: node_modules/reusify/.coveralls.yml new file: node_modules/reusify/.travis.yml new file: node_modules/reusify/LICENSE new file: node_modules/reusify/README.md new file: node_modules/reusify/benchmarks/createNoCodeFunction.js new file: node_modules/reusify/benchmarks/fib.js new file: node_modules/reusify/benchmarks/reuseNoCodeFunction.js new file: node_modules/reusify/package.json new file: node_modules/reusify/reusify.js new file: node_modules/reusify/test.js new file: node_modules/run-parallel/LICENSE new file: node_modules/run-parallel/README.md new file: node_modules/run-parallel/index.js new file: node_modules/run-parallel/package.json new file: node_modules/slash/index.d.ts new file: node_modules/slash/index.js new file: node_modules/slash/license new file: node_modules/slash/package.json new file: node_modules/slash/readme.md new file: node_modules/source-map-js/CHANGELOG.md new file: node_modules/source-map-js/LICENSE new file: node_modules/source-map-js/README.md new file: node_modules/source-map-js/lib/array-set.js new file: node_modules/source-map-js/lib/base64-vlq.js new file: node_modules/source-map-js/lib/base64.js new file: node_modules/source-map-js/lib/binary-search.js new file: node_modules/source-map-js/lib/mapping-list.js new file: node_modules/source-map-js/lib/quick-sort.js new file: node_modules/source-map-js/lib/source-map-consumer.js new file: node_modules/source-map-js/lib/source-map-generator.js new file: node_modules/source-map-js/lib/source-node.js new file: node_modules/source-map-js/lib/util.js new file: node_modules/source-map-js/package.json new file: node_modules/source-map-js/source-map.d.ts new file: node_modules/source-map-js/source-map.js new file: node_modules/string-width/index.d.ts new file: node_modules/string-width/index.js new file: node_modules/string-width/license new file: node_modules/string-width/package.json new file: node_modules/string-width/readme.md new file: node_modules/strip-ansi/index.d.ts new file: node_modules/strip-ansi/index.js new file: node_modules/strip-ansi/license new file: node_modules/strip-ansi/package.json new file: node_modules/strip-ansi/readme.md new file: node_modules/thenby/LICENSE.TXT new file: node_modules/thenby/README.md new file: node_modules/thenby/package.json new file: node_modules/thenby/thenBy.min.js new file: node_modules/thenby/thenBy.module.d.ts new file: node_modules/thenby/thenBy.module.js new file: node_modules/to-regex-range/LICENSE new file: node_modules/to-regex-range/README.md new file: node_modules/to-regex-range/index.js new file: node_modules/to-regex-range/package.json new file: node_modules/universalify/LICENSE new file: node_modules/universalify/README.md new file: node_modules/universalify/index.js new file: node_modules/universalify/package.json new file: node_modules/wrap-ansi/index.js new file: node_modules/wrap-ansi/license new file: node_modules/wrap-ansi/package.json new file: node_modules/wrap-ansi/readme.md new file: node_modules/y18n/CHANGELOG.md new file: node_modules/y18n/LICENSE new file: node_modules/y18n/README.md new file: node_modules/y18n/build/index.cjs new file: node_modules/y18n/build/lib/cjs.js new file: node_modules/y18n/build/lib/index.js new file: node_modules/y18n/build/lib/platform-shims/node.js new file: node_modules/y18n/index.mjs new file: node_modules/y18n/package.json new file: node_modules/yaml/LICENSE new file: node_modules/yaml/README.md new file: node_modules/yaml/browser/dist/PlainValue-b8036b75.js new file: node_modules/yaml/browser/dist/Schema-e94716c8.js new file: node_modules/yaml/browser/dist/index.js new file: node_modules/yaml/browser/dist/legacy-exports.js new file: node_modules/yaml/browser/dist/package.json new file: node_modules/yaml/browser/dist/parse-cst.js new file: node_modules/yaml/browser/dist/resolveSeq-492ab440.js new file: node_modules/yaml/browser/dist/types.js new file: node_modules/yaml/browser/dist/util.js new file: node_modules/yaml/browser/dist/warnings-df54cb69.js new file: node_modules/yaml/browser/index.js new file: node_modules/yaml/browser/map.js new file: node_modules/yaml/browser/pair.js new file: node_modules/yaml/browser/parse-cst.js new file: node_modules/yaml/browser/scalar.js new file: node_modules/yaml/browser/schema.js new file: node_modules/yaml/browser/seq.js new file: node_modules/yaml/browser/types.js new file: node_modules/yaml/browser/types/binary.js new file: node_modules/yaml/browser/types/omap.js new file: node_modules/yaml/browser/types/pairs.js new file: node_modules/yaml/browser/types/set.js new file: node_modules/yaml/browser/types/timestamp.js new file: node_modules/yaml/browser/util.js new file: node_modules/yaml/dist/Document-9b4560a1.js new file: node_modules/yaml/dist/PlainValue-ec8e588e.js new file: node_modules/yaml/dist/Schema-88e323a7.js new file: node_modules/yaml/dist/index.js new file: node_modules/yaml/dist/legacy-exports.js new file: node_modules/yaml/dist/parse-cst.js new file: node_modules/yaml/dist/resolveSeq-d03cb037.js new file: node_modules/yaml/dist/test-events.js new file: node_modules/yaml/dist/types.js new file: node_modules/yaml/dist/util.js new file: node_modules/yaml/dist/warnings-1000a372.js new file: node_modules/yaml/index.d.ts new file: node_modules/yaml/index.js new file: node_modules/yaml/map.js new file: node_modules/yaml/package.json new file: node_modules/yaml/pair.js new file: node_modules/yaml/parse-cst.d.ts new file: node_modules/yaml/parse-cst.js new file: node_modules/yaml/scalar.js new file: node_modules/yaml/schema.js new file: node_modules/yaml/seq.js new file: node_modules/yaml/types.d.ts new file: node_modules/yaml/types.js new file: node_modules/yaml/types.mjs new file: node_modules/yaml/types/binary.js new file: node_modules/yaml/types/omap.js new file: node_modules/yaml/types/pairs.js new file: node_modules/yaml/types/set.js new file: node_modules/yaml/types/timestamp.js new file: node_modules/yaml/util.d.ts new file: node_modules/yaml/util.js new file: node_modules/yaml/util.mjs new file: node_modules/yargs-parser/CHANGELOG.md new file: node_modules/yargs-parser/LICENSE.txt new file: node_modules/yargs-parser/README.md new file: node_modules/yargs-parser/browser.js new file: node_modules/yargs-parser/build/index.cjs new file: node_modules/yargs-parser/build/lib/index.js new file: node_modules/yargs-parser/build/lib/string-utils.js new file: node_modules/yargs-parser/build/lib/tokenize-arg-string.js new file: node_modules/yargs-parser/build/lib/yargs-parser-types.js new file: node_modules/yargs-parser/build/lib/yargs-parser.js new file: node_modules/yargs-parser/package.json new file: node_modules/yargs/LICENSE new file: node_modules/yargs/README.md new file: node_modules/yargs/browser.mjs new file: node_modules/yargs/build/index.cjs new file: node_modules/yargs/build/lib/argsert.js new file: node_modules/yargs/build/lib/command.js new file: node_modules/yargs/build/lib/completion-templates.js new file: node_modules/yargs/build/lib/completion.js new file: node_modules/yargs/build/lib/middleware.js new file: node_modules/yargs/build/lib/parse-command.js new file: node_modules/yargs/build/lib/typings/common-types.js new file: node_modules/yargs/build/lib/typings/yargs-parser-types.js new file: node_modules/yargs/build/lib/usage.js new file: node_modules/yargs/build/lib/utils/apply-extends.js new file: node_modules/yargs/build/lib/utils/is-promise.js new file: node_modules/yargs/build/lib/utils/levenshtein.js new file: node_modules/yargs/build/lib/utils/maybe-async-result.js new file: node_modules/yargs/build/lib/utils/obj-filter.js new file: node_modules/yargs/build/lib/utils/process-argv.js new file: node_modules/yargs/build/lib/utils/set-blocking.js new file: node_modules/yargs/build/lib/utils/which-module.js new file: node_modules/yargs/build/lib/validation.js new file: node_modules/yargs/build/lib/yargs-factory.js new file: node_modules/yargs/build/lib/yerror.js new file: node_modules/yargs/helpers/helpers.mjs new file: node_modules/yargs/helpers/index.js new file: node_modules/yargs/helpers/package.json new file: node_modules/yargs/index.cjs new file: node_modules/yargs/index.mjs new file: node_modules/yargs/lib/platform-shims/browser.mjs new file: node_modules/yargs/lib/platform-shims/esm.mjs new file: node_modules/yargs/locales/be.json new file: node_modules/yargs/locales/de.json new file: node_modules/yargs/locales/en.json new file: node_modules/yargs/locales/es.json new file: node_modules/yargs/locales/fi.json new file: node_modules/yargs/locales/fr.json new file: node_modules/yargs/locales/hi.json new file: node_modules/yargs/locales/hu.json new file: node_modules/yargs/locales/id.json new file: node_modules/yargs/locales/it.json new file: node_modules/yargs/locales/ja.json new file: node_modules/yargs/locales/ko.json new file: node_modules/yargs/locales/nb.json new file: node_modules/yargs/locales/nl.json new file: node_modules/yargs/locales/nn.json new file: node_modules/yargs/locales/pirate.json new file: node_modules/yargs/locales/pl.json new file: node_modules/yargs/locales/pt.json new file: node_modules/yargs/locales/pt_BR.json new file: node_modules/yargs/locales/ru.json new file: node_modules/yargs/locales/th.json new file: node_modules/yargs/locales/tr.json new file: node_modules/yargs/locales/uk_UA.json new file: node_modules/yargs/locales/uz.json new file: node_modules/yargs/locales/zh_CN.json new file: node_modules/yargs/locales/zh_TW.json new file: node_modules/yargs/package.json new file: node_modules/yargs/yargs new file: package-lock.json new file: package.json new file: public/about/index.html new file: public/about/index.xml new file: public/access/index.html new file: public/access/index.xml new file: public/background.jpg new file: public/background.mp4 new file: public/blog/index.html new file: public/blog/index.xml new file: public/categories/index.html new file: public/categories/index.xml new file: public/css/default-skin.css new file: public/css/default-skin.png new file: public/css/default-skin.svg new file: public/css/photoswipe.css new file: public/css/preloader.gif new file: public/css/style.css new file: public/index.html new file: public/index.xml new file: public/js/photoswipe-ui-default.min.js new file: public/js/photoswipe.min.js new file: public/manifesto/index.html new file: public/manifesto/index.xml new file: public/posts/apple-breaks-privacy/index.html new file: public/posts/index.html new file: public/posts/index.xml new file: public/posts/main_street_against_big_tech/index.html new file: public/posts/manifesto/index.html new file: public/posts/what_is_done_with_personal_data/index.html new file: public/projects/index.html new file: public/projects/index.xml new file: public/sam.ico new file: public/sitemap.xml new file: public/tags/index.html new file: public/tags/index.xml new file: public/tn.png new file: resources/_gen/assets/css/ananke/css/main.css_bb5467e0521bbea6b1e66429f6ec028e.content new file: resources/_gen/assets/css/ananke/css/main.css_bb5467e0521bbea6b1e66429f6ec028e.json new file: resources/_gen/assets/sass/sass/style.sass_7642ba43b3212fd7d7ba324df3b88b0c.content new file: resources/_gen/assets/sass/sass/style.sass_7642ba43b3212fd7d7ba324df3b88b0c.json --- archetypes/default.md | 6 + config.toml | 38 + content/about/_index.md | 43 + content/access/_index.md | 35 + content/background.jpg | Bin 0 -> 239908 bytes content/background.mp4 | Bin 0 -> 2503472 bytes content/blog/_index.md | 15 + content/manifesto/_index.md | 37 + content/posts/_index.md | 18 + content/posts/apple-breaks-privacy.md | 13 + content/posts/main_street_against_big_tech.md | 9 + content/posts/template.md | 7 + .../posts/what_is_done_with_personal_data.md | 13 + content/projects/_index.md | 41 + node_modules/.bin/nanoid | 1 + node_modules/.bin/postcss | 1 + node_modules/.package-lock.json | 732 +++++ node_modules/@nodelib/fs.scandir/LICENSE | 21 + node_modules/@nodelib/fs.scandir/README.md | 171 ++ .../@nodelib/fs.scandir/out/adapters/fs.d.ts | 20 + .../@nodelib/fs.scandir/out/adapters/fs.js | 19 + .../@nodelib/fs.scandir/out/constants.d.ts | 4 + .../@nodelib/fs.scandir/out/constants.js | 17 + .../@nodelib/fs.scandir/out/index.d.ts | 12 + node_modules/@nodelib/fs.scandir/out/index.js | 26 + .../fs.scandir/out/providers/async.d.ts | 7 + .../fs.scandir/out/providers/async.js | 104 + .../fs.scandir/out/providers/common.d.ts | 1 + .../fs.scandir/out/providers/common.js | 13 + .../fs.scandir/out/providers/sync.d.ts | 5 + .../@nodelib/fs.scandir/out/providers/sync.js | 54 + .../@nodelib/fs.scandir/out/settings.d.ts | 20 + .../@nodelib/fs.scandir/out/settings.js | 24 + .../@nodelib/fs.scandir/out/types/index.d.ts | 20 + .../@nodelib/fs.scandir/out/types/index.js | 2 + .../@nodelib/fs.scandir/out/utils/fs.d.ts | 2 + .../@nodelib/fs.scandir/out/utils/fs.js | 19 + .../@nodelib/fs.scandir/out/utils/index.d.ts | 2 + .../@nodelib/fs.scandir/out/utils/index.js | 5 + node_modules/@nodelib/fs.scandir/package.json | 44 + node_modules/@nodelib/fs.stat/LICENSE | 21 + node_modules/@nodelib/fs.stat/README.md | 126 + .../@nodelib/fs.stat/out/adapters/fs.d.ts | 13 + .../@nodelib/fs.stat/out/adapters/fs.js | 17 + node_modules/@nodelib/fs.stat/out/index.d.ts | 12 + node_modules/@nodelib/fs.stat/out/index.js | 26 + .../@nodelib/fs.stat/out/providers/async.d.ts | 4 + .../@nodelib/fs.stat/out/providers/async.js | 36 + .../@nodelib/fs.stat/out/providers/sync.d.ts | 3 + .../@nodelib/fs.stat/out/providers/sync.js | 23 + .../@nodelib/fs.stat/out/settings.d.ts | 16 + node_modules/@nodelib/fs.stat/out/settings.js | 16 + .../@nodelib/fs.stat/out/types/index.d.ts | 4 + .../@nodelib/fs.stat/out/types/index.js | 2 + node_modules/@nodelib/fs.stat/package.json | 37 + node_modules/@nodelib/fs.walk/LICENSE | 21 + node_modules/@nodelib/fs.walk/README.md | 215 ++ node_modules/@nodelib/fs.walk/out/index.d.ts | 14 + node_modules/@nodelib/fs.walk/out/index.js | 34 + .../@nodelib/fs.walk/out/providers/async.d.ts | 12 + .../@nodelib/fs.walk/out/providers/async.js | 30 + .../@nodelib/fs.walk/out/providers/index.d.ts | 4 + .../@nodelib/fs.walk/out/providers/index.js | 9 + .../fs.walk/out/providers/stream.d.ts | 12 + .../@nodelib/fs.walk/out/providers/stream.js | 34 + .../@nodelib/fs.walk/out/providers/sync.d.ts | 10 + .../@nodelib/fs.walk/out/providers/sync.js | 14 + .../@nodelib/fs.walk/out/readers/async.d.ts | 30 + .../@nodelib/fs.walk/out/readers/async.js | 97 + .../@nodelib/fs.walk/out/readers/common.d.ts | 7 + .../@nodelib/fs.walk/out/readers/common.js | 31 + .../@nodelib/fs.walk/out/readers/reader.d.ts | 6 + .../@nodelib/fs.walk/out/readers/reader.js | 11 + .../@nodelib/fs.walk/out/readers/sync.d.ts | 15 + .../@nodelib/fs.walk/out/readers/sync.js | 59 + .../@nodelib/fs.walk/out/settings.d.ts | 30 + node_modules/@nodelib/fs.walk/out/settings.js | 26 + .../@nodelib/fs.walk/out/types/index.d.ts | 8 + .../@nodelib/fs.walk/out/types/index.js | 2 + node_modules/@nodelib/fs.walk/package.json | 44 + node_modules/ansi-regex/index.d.ts | 37 + node_modules/ansi-regex/index.js | 10 + node_modules/ansi-regex/license | 9 + node_modules/ansi-regex/package.json | 55 + node_modules/ansi-regex/readme.md | 78 + node_modules/ansi-styles/index.d.ts | 345 +++ node_modules/ansi-styles/index.js | 163 ++ node_modules/ansi-styles/license | 9 + node_modules/ansi-styles/package.json | 56 + node_modules/ansi-styles/readme.md | 152 ++ node_modules/anymatch/LICENSE | 15 + node_modules/anymatch/README.md | 87 + node_modules/anymatch/index.d.ts | 19 + node_modules/anymatch/index.js | 104 + node_modules/anymatch/package.json | 48 + node_modules/array-union/index.d.ts | 25 + node_modules/array-union/index.js | 3 + node_modules/array-union/license | 9 + node_modules/array-union/package.json | 46 + node_modules/array-union/readme.md | 39 + .../binary-extensions/binary-extensions.json | 260 ++ .../binary-extensions.json.d.ts | 3 + node_modules/binary-extensions/index.d.ts | 14 + node_modules/binary-extensions/index.js | 1 + node_modules/binary-extensions/license | 9 + node_modules/binary-extensions/package.json | 38 + node_modules/binary-extensions/readme.md | 41 + node_modules/braces/CHANGELOG.md | 184 ++ node_modules/braces/LICENSE | 21 + node_modules/braces/README.md | 593 ++++ node_modules/braces/index.js | 170 ++ node_modules/braces/lib/compile.js | 57 + node_modules/braces/lib/constants.js | 57 + node_modules/braces/lib/expand.js | 113 + node_modules/braces/lib/parse.js | 333 +++ node_modules/braces/lib/stringify.js | 32 + node_modules/braces/lib/utils.js | 112 + node_modules/braces/package.json | 77 + node_modules/chokidar/LICENSE | 21 + node_modules/chokidar/README.md | 308 +++ node_modules/chokidar/index.js | 973 +++++++ node_modules/chokidar/lib/constants.js | 65 + node_modules/chokidar/lib/fsevents-handler.js | 524 ++++ node_modules/chokidar/lib/nodefs-handler.js | 654 +++++ node_modules/chokidar/package.json | 85 + node_modules/chokidar/types/index.d.ts | 188 ++ node_modules/cliui/CHANGELOG.md | 121 + node_modules/cliui/LICENSE.txt | 14 + node_modules/cliui/README.md | 141 + node_modules/cliui/build/index.cjs | 302 ++ node_modules/cliui/build/lib/index.js | 287 ++ node_modules/cliui/build/lib/string-utils.js | 27 + node_modules/cliui/index.mjs | 13 + node_modules/cliui/package.json | 83 + node_modules/color-convert/CHANGELOG.md | 54 + node_modules/color-convert/LICENSE | 21 + node_modules/color-convert/README.md | 68 + node_modules/color-convert/conversions.js | 839 ++++++ node_modules/color-convert/index.js | 81 + node_modules/color-convert/package.json | 48 + node_modules/color-convert/route.js | 97 + node_modules/color-name/LICENSE | 8 + node_modules/color-name/README.md | 11 + node_modules/color-name/index.js | 152 ++ node_modules/color-name/package.json | 28 + node_modules/dependency-graph/CHANGELOG.md | 82 + node_modules/dependency-graph/LICENSE | 19 + node_modules/dependency-graph/README.md | 78 + .../dependency-graph/lib/dep_graph.js | 364 +++ node_modules/dependency-graph/lib/index.d.ts | 127 + node_modules/dependency-graph/package.json | 31 + .../dependency-graph/specs/dep_graph_spec.js | 542 ++++ node_modules/dir-glob/index.js | 75 + node_modules/dir-glob/license | 9 + node_modules/dir-glob/package.json | 38 + node_modules/dir-glob/readme.md | 76 + node_modules/emoji-regex/LICENSE-MIT.txt | 20 + node_modules/emoji-regex/README.md | 73 + node_modules/emoji-regex/es2015/index.js | 6 + node_modules/emoji-regex/es2015/text.js | 6 + node_modules/emoji-regex/index.d.ts | 23 + node_modules/emoji-regex/index.js | 6 + node_modules/emoji-regex/package.json | 50 + node_modules/emoji-regex/text.js | 6 + node_modules/escalade/dist/index.js | 22 + node_modules/escalade/dist/index.mjs | 22 + node_modules/escalade/index.d.ts | 3 + node_modules/escalade/license | 9 + node_modules/escalade/package.json | 61 + node_modules/escalade/readme.md | 211 ++ node_modules/escalade/sync/index.d.ts | 2 + node_modules/escalade/sync/index.js | 18 + node_modules/escalade/sync/index.mjs | 18 + node_modules/fast-glob/LICENSE | 21 + node_modules/fast-glob/README.md | 795 ++++++ node_modules/fast-glob/out/index.d.ts | 27 + node_modules/fast-glob/out/index.js | 68 + .../fast-glob/out/managers/patterns.d.ts | 6 + .../fast-glob/out/managers/patterns.js | 21 + .../fast-glob/out/managers/tasks.d.ts | 22 + node_modules/fast-glob/out/managers/tasks.js | 80 + .../fast-glob/out/providers/async.d.ts | 11 + node_modules/fast-glob/out/providers/async.js | 28 + .../fast-glob/out/providers/filters/deep.d.ts | 16 + .../fast-glob/out/providers/filters/deep.js | 62 + .../out/providers/filters/entry.d.ts | 20 + .../fast-glob/out/providers/filters/entry.js | 60 + .../out/providers/filters/error.d.ts | 8 + .../fast-glob/out/providers/filters/error.js | 15 + .../out/providers/matchers/matcher.d.ts | 33 + .../out/providers/matchers/matcher.js | 50 + .../out/providers/matchers/partial.d.ts | 4 + .../out/providers/matchers/partial.js | 38 + .../fast-glob/out/providers/provider.d.ts | 19 + .../fast-glob/out/providers/provider.js | 48 + .../fast-glob/out/providers/stream.d.ts | 11 + .../fast-glob/out/providers/stream.js | 31 + .../fast-glob/out/providers/sync.d.ts | 9 + node_modules/fast-glob/out/providers/sync.js | 23 + .../out/providers/transformers/entry.d.ts | 8 + .../out/providers/transformers/entry.js | 26 + .../fast-glob/out/readers/reader.d.ts | 15 + node_modules/fast-glob/out/readers/reader.js | 33 + .../fast-glob/out/readers/stream.d.ts | 14 + node_modules/fast-glob/out/readers/stream.js | 55 + node_modules/fast-glob/out/readers/sync.d.ts | 12 + node_modules/fast-glob/out/readers/sync.js | 43 + node_modules/fast-glob/out/settings.d.ts | 164 ++ node_modules/fast-glob/out/settings.js | 57 + node_modules/fast-glob/out/types/index.d.ts | 31 + node_modules/fast-glob/out/types/index.js | 2 + node_modules/fast-glob/out/utils/array.d.ts | 2 + node_modules/fast-glob/out/utils/array.js | 22 + node_modules/fast-glob/out/utils/errno.d.ts | 2 + node_modules/fast-glob/out/utils/errno.js | 7 + node_modules/fast-glob/out/utils/fs.d.ts | 4 + node_modules/fast-glob/out/utils/fs.js | 19 + node_modules/fast-glob/out/utils/index.d.ts | 8 + node_modules/fast-glob/out/utils/index.js | 17 + node_modules/fast-glob/out/utils/path.d.ts | 8 + node_modules/fast-glob/out/utils/path.js | 33 + node_modules/fast-glob/out/utils/pattern.d.ts | 42 + node_modules/fast-glob/out/utils/pattern.js | 169 ++ node_modules/fast-glob/out/utils/stream.d.ts | 3 + node_modules/fast-glob/out/utils/stream.js | 17 + node_modules/fast-glob/out/utils/string.d.ts | 2 + node_modules/fast-glob/out/utils/string.js | 11 + node_modules/fast-glob/package.json | 94 + node_modules/fastq/.github/dependabot.yml | 11 + node_modules/fastq/.github/workflows/ci.yml | 50 + node_modules/fastq/LICENSE | 13 + node_modules/fastq/README.md | 309 +++ node_modules/fastq/bench.js | 66 + node_modules/fastq/example.js | 14 + node_modules/fastq/example.mjs | 11 + node_modules/fastq/index.d.ts | 37 + node_modules/fastq/package.json | 52 + node_modules/fastq/queue.js | 283 ++ node_modules/fastq/test/example.ts | 81 + node_modules/fastq/test/promise.js | 221 ++ node_modules/fastq/test/test.js | 566 ++++ node_modules/fastq/test/tsconfig.json | 11 + node_modules/fill-range/LICENSE | 21 + node_modules/fill-range/README.md | 237 ++ node_modules/fill-range/index.js | 249 ++ node_modules/fill-range/package.json | 69 + node_modules/fs-extra/CHANGELOG.md | 932 +++++++ node_modules/fs-extra/LICENSE | 15 + node_modules/fs-extra/README.md | 264 ++ .../fs-extra/lib/copy-sync/copy-sync.js | 166 ++ node_modules/fs-extra/lib/copy-sync/index.js | 5 + node_modules/fs-extra/lib/copy/copy.js | 232 ++ node_modules/fs-extra/lib/copy/index.js | 6 + node_modules/fs-extra/lib/empty/index.js | 39 + node_modules/fs-extra/lib/ensure/file.js | 69 + node_modules/fs-extra/lib/ensure/index.js | 23 + node_modules/fs-extra/lib/ensure/link.js | 64 + .../fs-extra/lib/ensure/symlink-paths.js | 99 + .../fs-extra/lib/ensure/symlink-type.js | 31 + node_modules/fs-extra/lib/ensure/symlink.js | 82 + node_modules/fs-extra/lib/fs/index.js | 119 + node_modules/fs-extra/lib/index.js | 18 + node_modules/fs-extra/lib/json/index.js | 16 + node_modules/fs-extra/lib/json/jsonfile.js | 11 + .../fs-extra/lib/json/output-json-sync.js | 12 + node_modules/fs-extra/lib/json/output-json.js | 12 + node_modules/fs-extra/lib/mkdirs/index.js | 14 + node_modules/fs-extra/lib/mkdirs/make-dir.js | 27 + node_modules/fs-extra/lib/mkdirs/utils.js | 21 + node_modules/fs-extra/lib/move-sync/index.js | 5 + .../fs-extra/lib/move-sync/move-sync.js | 54 + node_modules/fs-extra/lib/move/index.js | 6 + node_modules/fs-extra/lib/move/move.js | 73 + node_modules/fs-extra/lib/output/index.js | 40 + .../fs-extra/lib/path-exists/index.js | 12 + node_modules/fs-extra/lib/remove/index.js | 22 + node_modules/fs-extra/lib/remove/rimraf.js | 302 ++ node_modules/fs-extra/lib/util/stat.js | 154 ++ node_modules/fs-extra/lib/util/utimes.js | 26 + node_modules/fs-extra/package.json | 70 + node_modules/get-caller-file/LICENSE.md | 6 + node_modules/get-caller-file/README.md | 41 + node_modules/get-caller-file/index.d.ts | 2 + node_modules/get-caller-file/index.js | 22 + node_modules/get-caller-file/index.js.map | 1 + node_modules/get-caller-file/package.json | 42 + node_modules/get-stdin/index.d.ts | 29 + node_modules/get-stdin/index.js | 33 + node_modules/get-stdin/license | 9 + node_modules/get-stdin/package.json | 42 + node_modules/get-stdin/readme.md | 56 + node_modules/glob-parent/CHANGELOG.md | 110 + node_modules/glob-parent/LICENSE | 15 + node_modules/glob-parent/README.md | 137 + node_modules/glob-parent/index.js | 42 + node_modules/glob-parent/package.json | 48 + node_modules/globby/gitignore.js | 108 + node_modules/globby/index.d.ts | 188 ++ node_modules/globby/index.js | 197 ++ node_modules/globby/license | 9 + node_modules/globby/package.json | 87 + node_modules/globby/readme.md | 168 ++ node_modules/globby/stream-utils.js | 40 + node_modules/globby/to-path.js | 15 + node_modules/graceful-fs/LICENSE | 15 + node_modules/graceful-fs/README.md | 143 + node_modules/graceful-fs/clone.js | 23 + node_modules/graceful-fs/graceful-fs.js | 429 +++ node_modules/graceful-fs/legacy-streams.js | 118 + node_modules/graceful-fs/package.json | 50 + node_modules/graceful-fs/polyfills.js | 348 +++ node_modules/ignore/LICENSE-MIT | 21 + node_modules/ignore/README.md | 412 +++ node_modules/ignore/index.d.ts | 61 + node_modules/ignore/index.js | 603 ++++ node_modules/ignore/legacy.js | 498 ++++ node_modules/ignore/package.json | 71 + node_modules/is-binary-path/index.d.ts | 17 + node_modules/is-binary-path/index.js | 7 + node_modules/is-binary-path/license | 9 + node_modules/is-binary-path/package.json | 40 + node_modules/is-binary-path/readme.md | 34 + node_modules/is-extglob/LICENSE | 21 + node_modules/is-extglob/README.md | 107 + node_modules/is-extglob/index.js | 20 + node_modules/is-extglob/package.json | 69 + .../is-fullwidth-code-point/index.d.ts | 17 + node_modules/is-fullwidth-code-point/index.js | 50 + node_modules/is-fullwidth-code-point/license | 9 + .../is-fullwidth-code-point/package.json | 42 + .../is-fullwidth-code-point/readme.md | 39 + node_modules/is-glob/LICENSE | 21 + node_modules/is-glob/README.md | 206 ++ node_modules/is-glob/index.js | 150 + node_modules/is-glob/package.json | 81 + node_modules/is-number/LICENSE | 21 + node_modules/is-number/README.md | 187 ++ node_modules/is-number/index.js | 18 + node_modules/is-number/package.json | 82 + node_modules/jsonfile/CHANGELOG.md | 171 ++ node_modules/jsonfile/LICENSE | 15 + node_modules/jsonfile/README.md | 230 ++ node_modules/jsonfile/index.js | 88 + node_modules/jsonfile/package.json | 40 + node_modules/jsonfile/utils.js | 14 + node_modules/lilconfig/dist/index.d.ts | 38 + node_modules/lilconfig/dist/index.js | 247 ++ node_modules/lilconfig/package.json | 48 + node_modules/lilconfig/readme.md | 93 + node_modules/merge2/LICENSE | 21 + node_modules/merge2/README.md | 144 + node_modules/merge2/index.js | 144 + node_modules/merge2/package.json | 43 + node_modules/micromatch/CHANGELOG.md | 109 + node_modules/micromatch/LICENSE | 21 + node_modules/micromatch/README.md | 1008 +++++++ node_modules/micromatch/index.js | 467 ++++ node_modules/micromatch/package.json | 119 + node_modules/nanoid/LICENSE | 20 + node_modules/nanoid/README.md | 39 + node_modules/nanoid/async/index.browser.cjs | 34 + node_modules/nanoid/async/index.browser.js | 34 + node_modules/nanoid/async/index.cjs | 35 + node_modules/nanoid/async/index.d.ts | 56 + node_modules/nanoid/async/index.js | 35 + node_modules/nanoid/async/index.native.js | 26 + node_modules/nanoid/async/package.json | 12 + node_modules/nanoid/bin/nanoid.cjs | 55 + node_modules/nanoid/index.browser.cjs | 63 + node_modules/nanoid/index.browser.js | 63 + node_modules/nanoid/index.cjs | 45 + node_modules/nanoid/index.d.ts | 91 + node_modules/nanoid/index.dev.js | 63 + node_modules/nanoid/index.js | 45 + node_modules/nanoid/index.prod.js | 63 + node_modules/nanoid/nanoid.js | 1 + node_modules/nanoid/non-secure/index.cjs | 21 + node_modules/nanoid/non-secure/index.d.ts | 33 + node_modules/nanoid/non-secure/index.js | 21 + node_modules/nanoid/non-secure/package.json | 6 + node_modules/nanoid/package.json | 64 + node_modules/nanoid/url-alphabet/index.cjs | 3 + node_modules/nanoid/url-alphabet/index.js | 3 + node_modules/nanoid/url-alphabet/package.json | 6 + node_modules/normalize-path/LICENSE | 21 + node_modules/normalize-path/README.md | 127 + node_modules/normalize-path/index.js | 35 + node_modules/normalize-path/package.json | 77 + node_modules/path-type/index.d.ts | 51 + node_modules/path-type/index.js | 43 + node_modules/path-type/license | 9 + node_modules/path-type/package.json | 45 + node_modules/path-type/readme.md | 72 + node_modules/picocolors/LICENSE | 15 + node_modules/picocolors/README.md | 21 + node_modules/picocolors/package.json | 25 + node_modules/picocolors/picocolors.browser.js | 4 + node_modules/picocolors/picocolors.d.ts | 5 + node_modules/picocolors/picocolors.js | 58 + node_modules/picocolors/types.ts | 30 + node_modules/picomatch/CHANGELOG.md | 136 + node_modules/picomatch/LICENSE | 21 + node_modules/picomatch/README.md | 708 +++++ node_modules/picomatch/index.js | 3 + node_modules/picomatch/lib/constants.js | 179 ++ node_modules/picomatch/lib/parse.js | 1091 ++++++++ node_modules/picomatch/lib/picomatch.js | 342 +++ node_modules/picomatch/lib/scan.js | 391 +++ node_modules/picomatch/lib/utils.js | 64 + node_modules/picomatch/package.json | 81 + node_modules/pify/index.js | 68 + node_modules/pify/license | 21 + node_modules/pify/package.json | 48 + node_modules/pify/readme.md | 119 + node_modules/postcss-cli/LICENSE | 21 + node_modules/postcss-cli/README.md | 149 + node_modules/postcss-cli/index.js | 348 +++ .../postcss-cli/lib/DependencyGraph.js | 30 + node_modules/postcss-cli/lib/args.js | 115 + node_modules/postcss-cli/lib/getMapfile.js | 7 + node_modules/postcss-cli/package.json | 78 + node_modules/postcss-load-config/LICENSE | 20 + node_modules/postcss-load-config/README.md | 498 ++++ node_modules/postcss-load-config/package.json | 44 + .../postcss-load-config/src/index.d.ts | 71 + node_modules/postcss-load-config/src/index.js | 188 ++ .../postcss-load-config/src/options.js | 47 + .../postcss-load-config/src/plugins.js | 85 + node_modules/postcss-load-config/src/req.js | 10 + node_modules/postcss-reporter/LICENSE | 22 + node_modules/postcss-reporter/README.md | 12 + node_modules/postcss-reporter/index.js | 4 + .../postcss-reporter/lib/formatter.js | 95 + node_modules/postcss-reporter/lib/reporter.js | 101 + node_modules/postcss-reporter/lib/util.js | 19 + node_modules/postcss-reporter/package.json | 31 + node_modules/postcss/LICENSE | 20 + node_modules/postcss/README.md | 44 + node_modules/postcss/lib/at-rule.d.ts | 106 + node_modules/postcss/lib/at-rule.js | 25 + node_modules/postcss/lib/comment.d.ts | 56 + node_modules/postcss/lib/comment.js | 13 + node_modules/postcss/lib/container.d.ts | 442 +++ node_modules/postcss/lib/container.js | 433 +++ .../postcss/lib/css-syntax-error.d.ts | 239 ++ node_modules/postcss/lib/css-syntax-error.js | 100 + node_modules/postcss/lib/declaration.d.ts | 124 + node_modules/postcss/lib/declaration.js | 24 + node_modules/postcss/lib/document.d.ts | 57 + node_modules/postcss/lib/document.js | 33 + node_modules/postcss/lib/fromJSON.d.ts | 5 + node_modules/postcss/lib/fromJSON.js | 54 + node_modules/postcss/lib/input.d.ts | 150 + node_modules/postcss/lib/input.js | 248 ++ node_modules/postcss/lib/lazy-result.d.ts | 176 ++ node_modules/postcss/lib/lazy-result.js | 550 ++++ node_modules/postcss/lib/list.d.ts | 51 + node_modules/postcss/lib/list.js | 56 + node_modules/postcss/lib/map-generator.js | 331 +++ node_modules/postcss/lib/no-work-result.d.ts | 37 + node_modules/postcss/lib/no-work-result.js | 135 + node_modules/postcss/lib/node.d.ts | 478 ++++ node_modules/postcss/lib/node.js | 379 +++ node_modules/postcss/lib/parse.d.ts | 5 + node_modules/postcss/lib/parse.js | 42 + node_modules/postcss/lib/parser.js | 583 ++++ node_modules/postcss/lib/postcss.d.ts | 473 ++++ node_modules/postcss/lib/postcss.js | 99 + node_modules/postcss/lib/postcss.mjs | 30 + node_modules/postcss/lib/previous-map.d.ts | 72 + node_modules/postcss/lib/previous-map.js | 142 + node_modules/postcss/lib/processor.d.ts | 102 + node_modules/postcss/lib/processor.js | 67 + node_modules/postcss/lib/result.d.ts | 196 ++ node_modules/postcss/lib/result.js | 42 + node_modules/postcss/lib/root.d.ts | 73 + node_modules/postcss/lib/root.js | 59 + node_modules/postcss/lib/rule.d.ts | 104 + node_modules/postcss/lib/rule.js | 27 + node_modules/postcss/lib/stringifier.d.ts | 37 + node_modules/postcss/lib/stringifier.js | 353 +++ node_modules/postcss/lib/stringify.d.ts | 5 + node_modules/postcss/lib/stringify.js | 11 + node_modules/postcss/lib/symbols.js | 5 + .../postcss/lib/terminal-highlight.js | 70 + node_modules/postcss/lib/tokenize.js | 266 ++ node_modules/postcss/lib/warn-once.js | 13 + node_modules/postcss/lib/warning.d.ts | 138 + node_modules/postcss/lib/warning.js | 37 + node_modules/postcss/package.json | 79 + node_modules/pretty-hrtime/.jshintignore | 1 + node_modules/pretty-hrtime/.npmignore | 10 + node_modules/pretty-hrtime/LICENSE | 20 + node_modules/pretty-hrtime/README.md | 57 + node_modules/pretty-hrtime/index.js | 80 + node_modules/pretty-hrtime/package.json | 25 + node_modules/queue-microtask/LICENSE | 20 + node_modules/queue-microtask/README.md | 90 + node_modules/queue-microtask/index.d.ts | 2 + node_modules/queue-microtask/index.js | 9 + node_modules/queue-microtask/package.json | 55 + node_modules/read-cache/LICENSE | 20 + node_modules/read-cache/README.md | 46 + node_modules/read-cache/index.js | 78 + node_modules/read-cache/package.json | 34 + node_modules/readdirp/LICENSE | 21 + node_modules/readdirp/README.md | 122 + node_modules/readdirp/index.d.ts | 43 + node_modules/readdirp/index.js | 287 ++ node_modules/readdirp/package.json | 122 + node_modules/require-directory/.jshintrc | 67 + node_modules/require-directory/.npmignore | 1 + node_modules/require-directory/.travis.yml | 3 + node_modules/require-directory/LICENSE | 22 + .../require-directory/README.markdown | 184 ++ node_modules/require-directory/index.js | 86 + node_modules/require-directory/package.json | 40 + node_modules/reusify/.coveralls.yml | 1 + node_modules/reusify/.travis.yml | 28 + node_modules/reusify/LICENSE | 22 + node_modules/reusify/README.md | 145 + .../benchmarks/createNoCodeFunction.js | 30 + node_modules/reusify/benchmarks/fib.js | 13 + .../reusify/benchmarks/reuseNoCodeFunction.js | 38 + node_modules/reusify/package.json | 45 + node_modules/reusify/reusify.js | 33 + node_modules/reusify/test.js | 66 + node_modules/run-parallel/LICENSE | 20 + node_modules/run-parallel/README.md | 85 + node_modules/run-parallel/index.js | 51 + node_modules/run-parallel/package.json | 58 + node_modules/slash/index.d.ts | 23 + node_modules/slash/index.js | 10 + node_modules/slash/license | 9 + node_modules/slash/package.json | 38 + node_modules/slash/readme.md | 48 + node_modules/source-map-js/CHANGELOG.md | 320 +++ node_modules/source-map-js/LICENSE | 28 + node_modules/source-map-js/README.md | 758 ++++++ node_modules/source-map-js/lib/array-set.js | 121 + node_modules/source-map-js/lib/base64-vlq.js | 140 + node_modules/source-map-js/lib/base64.js | 67 + .../source-map-js/lib/binary-search.js | 111 + .../source-map-js/lib/mapping-list.js | 79 + node_modules/source-map-js/lib/quick-sort.js | 132 + .../source-map-js/lib/source-map-consumer.js | 1184 ++++++++ .../source-map-js/lib/source-map-generator.js | 425 +++ node_modules/source-map-js/lib/source-node.js | 413 +++ node_modules/source-map-js/lib/util.js | 594 ++++ node_modules/source-map-js/package.json | 71 + node_modules/source-map-js/source-map.d.ts | 115 + node_modules/source-map-js/source-map.js | 8 + node_modules/string-width/index.d.ts | 29 + node_modules/string-width/index.js | 47 + node_modules/string-width/license | 9 + node_modules/string-width/package.json | 56 + node_modules/string-width/readme.md | 50 + node_modules/strip-ansi/index.d.ts | 17 + node_modules/strip-ansi/index.js | 4 + node_modules/strip-ansi/license | 9 + node_modules/strip-ansi/package.json | 54 + node_modules/strip-ansi/readme.md | 46 + node_modules/thenby/LICENSE.TXT | 201 ++ node_modules/thenby/README.md | 159 ++ node_modules/thenby/package.json | 45 + node_modules/thenby/thenBy.min.js | 2 + node_modules/thenby/thenBy.module.d.ts | 51 + node_modules/thenby/thenBy.module.js | 60 + node_modules/to-regex-range/LICENSE | 21 + node_modules/to-regex-range/README.md | 305 +++ node_modules/to-regex-range/index.js | 288 ++ node_modules/to-regex-range/package.json | 88 + node_modules/universalify/LICENSE | 20 + node_modules/universalify/README.md | 76 + node_modules/universalify/index.js | 24 + node_modules/universalify/package.json | 34 + node_modules/wrap-ansi/index.js | 216 ++ node_modules/wrap-ansi/license | 9 + node_modules/wrap-ansi/package.json | 62 + node_modules/wrap-ansi/readme.md | 91 + node_modules/y18n/CHANGELOG.md | 100 + node_modules/y18n/LICENSE | 13 + node_modules/y18n/README.md | 127 + node_modules/y18n/build/index.cjs | 203 ++ node_modules/y18n/build/lib/cjs.js | 6 + node_modules/y18n/build/lib/index.js | 174 ++ .../y18n/build/lib/platform-shims/node.js | 19 + node_modules/y18n/index.mjs | 8 + node_modules/y18n/package.json | 70 + node_modules/yaml/LICENSE | 13 + node_modules/yaml/README.md | 127 + .../yaml/browser/dist/PlainValue-b8036b75.js | 1275 +++++++++ .../yaml/browser/dist/Schema-e94716c8.js | 682 +++++ node_modules/yaml/browser/dist/index.js | 1002 +++++++ .../yaml/browser/dist/legacy-exports.js | 3 + node_modules/yaml/browser/dist/package.json | 1 + node_modules/yaml/browser/dist/parse-cst.js | 1904 +++++++++++++ .../yaml/browser/dist/resolveSeq-492ab440.js | 2419 +++++++++++++++++ node_modules/yaml/browser/dist/types.js | 4 + node_modules/yaml/browser/dist/util.js | 2 + .../yaml/browser/dist/warnings-df54cb69.js | 499 ++++ node_modules/yaml/browser/index.js | 1 + node_modules/yaml/browser/map.js | 2 + node_modules/yaml/browser/pair.js | 2 + node_modules/yaml/browser/parse-cst.js | 1 + node_modules/yaml/browser/scalar.js | 2 + node_modules/yaml/browser/schema.js | 9 + node_modules/yaml/browser/seq.js | 2 + node_modules/yaml/browser/types.js | 1 + node_modules/yaml/browser/types/binary.js | 8 + node_modules/yaml/browser/types/omap.js | 3 + node_modules/yaml/browser/types/pairs.js | 3 + node_modules/yaml/browser/types/set.js | 3 + node_modules/yaml/browser/types/timestamp.js | 10 + node_modules/yaml/browser/util.js | 1 + node_modules/yaml/dist/Document-9b4560a1.js | 757 ++++++ node_modules/yaml/dist/PlainValue-ec8e588e.js | 876 ++++++ node_modules/yaml/dist/Schema-88e323a7.js | 525 ++++ node_modules/yaml/dist/index.js | 79 + node_modules/yaml/dist/legacy-exports.js | 16 + node_modules/yaml/dist/parse-cst.js | 1753 ++++++++++++ node_modules/yaml/dist/resolveSeq-d03cb037.js | 2161 +++++++++++++++ node_modules/yaml/dist/test-events.js | 162 ++ node_modules/yaml/dist/types.js | 23 + node_modules/yaml/dist/util.js | 19 + node_modules/yaml/dist/warnings-1000a372.js | 416 +++ node_modules/yaml/index.d.ts | 372 +++ node_modules/yaml/index.js | 1 + node_modules/yaml/map.js | 2 + node_modules/yaml/package.json | 106 + node_modules/yaml/pair.js | 2 + node_modules/yaml/parse-cst.d.ts | 191 ++ node_modules/yaml/parse-cst.js | 1 + node_modules/yaml/scalar.js | 2 + node_modules/yaml/schema.js | 9 + node_modules/yaml/seq.js | 2 + node_modules/yaml/types.d.ts | 407 +++ node_modules/yaml/types.js | 17 + node_modules/yaml/types.mjs | 17 + node_modules/yaml/types/binary.js | 8 + node_modules/yaml/types/omap.js | 3 + node_modules/yaml/types/pairs.js | 3 + node_modules/yaml/types/set.js | 3 + node_modules/yaml/types/timestamp.js | 10 + node_modules/yaml/util.d.ts | 86 + node_modules/yaml/util.js | 16 + node_modules/yaml/util.mjs | 18 + node_modules/yargs-parser/CHANGELOG.md | 280 ++ node_modules/yargs-parser/LICENSE.txt | 14 + node_modules/yargs-parser/README.md | 518 ++++ node_modules/yargs-parser/browser.js | 29 + node_modules/yargs-parser/build/index.cjs | 1048 +++++++ node_modules/yargs-parser/build/lib/index.js | 60 + .../yargs-parser/build/lib/string-utils.js | 65 + .../build/lib/tokenize-arg-string.js | 40 + .../build/lib/yargs-parser-types.js | 12 + .../yargs-parser/build/lib/yargs-parser.js | 1045 +++++++ node_modules/yargs-parser/package.json | 88 + node_modules/yargs/LICENSE | 21 + node_modules/yargs/README.md | 204 ++ node_modules/yargs/browser.mjs | 7 + node_modules/yargs/build/index.cjs | 1 + node_modules/yargs/build/lib/argsert.js | 62 + node_modules/yargs/build/lib/command.js | 432 +++ .../yargs/build/lib/completion-templates.js | 48 + node_modules/yargs/build/lib/completion.js | 200 ++ node_modules/yargs/build/lib/middleware.js | 88 + node_modules/yargs/build/lib/parse-command.js | 32 + .../yargs/build/lib/typings/common-types.js | 9 + .../build/lib/typings/yargs-parser-types.js | 1 + node_modules/yargs/build/lib/usage.js | 568 ++++ .../yargs/build/lib/utils/apply-extends.js | 59 + .../yargs/build/lib/utils/is-promise.js | 5 + .../yargs/build/lib/utils/levenshtein.js | 34 + .../build/lib/utils/maybe-async-result.js | 17 + .../yargs/build/lib/utils/obj-filter.js | 10 + .../yargs/build/lib/utils/process-argv.js | 17 + .../yargs/build/lib/utils/set-blocking.js | 12 + .../yargs/build/lib/utils/which-module.js | 10 + node_modules/yargs/build/lib/validation.js | 305 +++ node_modules/yargs/build/lib/yargs-factory.js | 1483 ++++++++++ node_modules/yargs/build/lib/yerror.js | 7 + node_modules/yargs/helpers/helpers.mjs | 10 + node_modules/yargs/helpers/index.js | 14 + node_modules/yargs/helpers/package.json | 3 + node_modules/yargs/index.cjs | 53 + node_modules/yargs/index.mjs | 8 + .../yargs/lib/platform-shims/browser.mjs | 95 + node_modules/yargs/lib/platform-shims/esm.mjs | 73 + node_modules/yargs/locales/be.json | 46 + node_modules/yargs/locales/de.json | 46 + node_modules/yargs/locales/en.json | 51 + node_modules/yargs/locales/es.json | 46 + node_modules/yargs/locales/fi.json | 49 + node_modules/yargs/locales/fr.json | 53 + node_modules/yargs/locales/hi.json | 49 + node_modules/yargs/locales/hu.json | 46 + node_modules/yargs/locales/id.json | 50 + node_modules/yargs/locales/it.json | 46 + node_modules/yargs/locales/ja.json | 51 + node_modules/yargs/locales/ko.json | 49 + node_modules/yargs/locales/nb.json | 44 + node_modules/yargs/locales/nl.json | 49 + node_modules/yargs/locales/nn.json | 44 + node_modules/yargs/locales/pirate.json | 13 + node_modules/yargs/locales/pl.json | 49 + node_modules/yargs/locales/pt.json | 45 + node_modules/yargs/locales/pt_BR.json | 48 + node_modules/yargs/locales/ru.json | 46 + node_modules/yargs/locales/th.json | 46 + node_modules/yargs/locales/tr.json | 48 + node_modules/yargs/locales/uk_UA.json | 51 + node_modules/yargs/locales/uz.json | 52 + node_modules/yargs/locales/zh_CN.json | 48 + node_modules/yargs/locales/zh_TW.json | 51 + node_modules/yargs/package.json | 116 + node_modules/yargs/yargs | 9 + package-lock.json | 1229 +++++++++ package.json | 7 + public/about/index.html | 162 ++ public/about/index.xml | 11 + public/access/index.html | 154 ++ public/access/index.xml | 11 + public/background.jpg | Bin 0 -> 239908 bytes public/background.mp4 | Bin 0 -> 2503472 bytes public/blog/index.html | 135 + public/blog/index.xml | 11 + public/categories/index.html | 129 + public/categories/index.xml | 10 + public/css/default-skin.css | 482 ++++ public/css/default-skin.png | Bin 0 -> 547 bytes public/css/default-skin.svg | 1 + public/css/photoswipe.css | 179 ++ public/css/preloader.gif | Bin 0 -> 866 bytes public/css/style.css | 3 + public/index.html | 102 + public/index.xml | 41 + public/js/photoswipe-ui-default.min.js | 4 + public/js/photoswipe.min.js | 4 + public/manifesto/index.html | 151 + public/manifesto/index.xml | 11 + public/posts/apple-breaks-privacy/index.html | 148 + public/posts/index.html | 157 ++ public/posts/index.xml | 41 + .../main_street_against_big_tech/index.html | 140 + public/posts/manifesto/index.html | 135 + .../index.html | 142 + public/projects/index.html | 150 + public/projects/index.xml | 11 + public/sam.ico | Bin 0 -> 27198 bytes public/sitemap.xml | 39 + public/tags/index.html | 129 + public/tags/index.xml | 10 + public/tn.png | Bin 0 -> 10498 bytes ...s_bb5467e0521bbea6b1e66429f6ec028e.content | 1 + ....css_bb5467e0521bbea6b1e66429f6ec028e.json | 1 + ...s_7642ba43b3212fd7d7ba324df3b88b0c.content | 298 ++ ...sass_7642ba43b3212fd7d7ba324df3b88b0c.json | 1 + 758 files changed, 82435 insertions(+) create mode 100644 archetypes/default.md create mode 100644 config.toml create mode 100644 content/about/_index.md create mode 100644 content/access/_index.md create mode 100644 content/background.jpg create mode 100644 content/background.mp4 create mode 100644 content/blog/_index.md create mode 100644 content/manifesto/_index.md create mode 100644 content/posts/_index.md create mode 100644 content/posts/apple-breaks-privacy.md create mode 100644 content/posts/main_street_against_big_tech.md create mode 100644 content/posts/template.md create mode 100644 content/posts/what_is_done_with_personal_data.md create mode 100644 content/projects/_index.md create mode 120000 node_modules/.bin/nanoid create mode 120000 node_modules/.bin/postcss create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/@nodelib/fs.scandir/LICENSE create mode 100644 node_modules/@nodelib/fs.scandir/README.md create mode 100644 node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/adapters/fs.js create mode 100644 node_modules/@nodelib/fs.scandir/out/constants.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/constants.js create mode 100644 node_modules/@nodelib/fs.scandir/out/index.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/index.js create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/async.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/async.js create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/common.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/common.js create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/providers/sync.js create mode 100644 node_modules/@nodelib/fs.scandir/out/settings.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/settings.js create mode 100644 node_modules/@nodelib/fs.scandir/out/types/index.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/types/index.js create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/fs.js create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/index.d.ts create mode 100644 node_modules/@nodelib/fs.scandir/out/utils/index.js create mode 100644 node_modules/@nodelib/fs.scandir/package.json create mode 100644 node_modules/@nodelib/fs.stat/LICENSE create mode 100644 node_modules/@nodelib/fs.stat/README.md create mode 100644 node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/adapters/fs.js create mode 100644 node_modules/@nodelib/fs.stat/out/index.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/index.js create mode 100644 node_modules/@nodelib/fs.stat/out/providers/async.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/providers/async.js create mode 100644 node_modules/@nodelib/fs.stat/out/providers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/providers/sync.js create mode 100644 node_modules/@nodelib/fs.stat/out/settings.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/settings.js create mode 100644 node_modules/@nodelib/fs.stat/out/types/index.d.ts create mode 100644 node_modules/@nodelib/fs.stat/out/types/index.js create mode 100644 node_modules/@nodelib/fs.stat/package.json create mode 100644 node_modules/@nodelib/fs.walk/LICENSE create mode 100644 node_modules/@nodelib/fs.walk/README.md create mode 100644 node_modules/@nodelib/fs.walk/out/index.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/index.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/async.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/async.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/index.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/index.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/stream.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/stream.js create mode 100644 node_modules/@nodelib/fs.walk/out/providers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/providers/sync.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/async.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/async.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/common.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/common.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/reader.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/reader.js create mode 100644 node_modules/@nodelib/fs.walk/out/readers/sync.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/readers/sync.js create mode 100644 node_modules/@nodelib/fs.walk/out/settings.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/settings.js create mode 100644 node_modules/@nodelib/fs.walk/out/types/index.d.ts create mode 100644 node_modules/@nodelib/fs.walk/out/types/index.js create mode 100644 node_modules/@nodelib/fs.walk/package.json create mode 100644 node_modules/ansi-regex/index.d.ts create mode 100644 node_modules/ansi-regex/index.js create mode 100644 node_modules/ansi-regex/license create mode 100644 node_modules/ansi-regex/package.json create mode 100644 node_modules/ansi-regex/readme.md create mode 100644 node_modules/ansi-styles/index.d.ts create mode 100644 node_modules/ansi-styles/index.js create mode 100644 node_modules/ansi-styles/license create mode 100644 node_modules/ansi-styles/package.json create mode 100644 node_modules/ansi-styles/readme.md create mode 100644 node_modules/anymatch/LICENSE create mode 100644 node_modules/anymatch/README.md create mode 100644 node_modules/anymatch/index.d.ts create mode 100644 node_modules/anymatch/index.js create mode 100644 node_modules/anymatch/package.json create mode 100644 node_modules/array-union/index.d.ts create mode 100644 node_modules/array-union/index.js create mode 100644 node_modules/array-union/license create mode 100644 node_modules/array-union/package.json create mode 100644 node_modules/array-union/readme.md create mode 100644 node_modules/binary-extensions/binary-extensions.json create mode 100644 node_modules/binary-extensions/binary-extensions.json.d.ts create mode 100644 node_modules/binary-extensions/index.d.ts create mode 100644 node_modules/binary-extensions/index.js create mode 100644 node_modules/binary-extensions/license create mode 100644 node_modules/binary-extensions/package.json create mode 100644 node_modules/binary-extensions/readme.md create mode 100644 node_modules/braces/CHANGELOG.md create mode 100644 node_modules/braces/LICENSE create mode 100644 node_modules/braces/README.md create mode 100644 node_modules/braces/index.js create mode 100644 node_modules/braces/lib/compile.js create mode 100644 node_modules/braces/lib/constants.js create mode 100644 node_modules/braces/lib/expand.js create mode 100644 node_modules/braces/lib/parse.js create mode 100644 node_modules/braces/lib/stringify.js create mode 100644 node_modules/braces/lib/utils.js create mode 100644 node_modules/braces/package.json create mode 100644 node_modules/chokidar/LICENSE create mode 100644 node_modules/chokidar/README.md create mode 100644 node_modules/chokidar/index.js create mode 100644 node_modules/chokidar/lib/constants.js create mode 100644 node_modules/chokidar/lib/fsevents-handler.js create mode 100644 node_modules/chokidar/lib/nodefs-handler.js create mode 100644 node_modules/chokidar/package.json create mode 100644 node_modules/chokidar/types/index.d.ts create mode 100644 node_modules/cliui/CHANGELOG.md create mode 100644 node_modules/cliui/LICENSE.txt create mode 100644 node_modules/cliui/README.md create mode 100644 node_modules/cliui/build/index.cjs create mode 100644 node_modules/cliui/build/lib/index.js create mode 100644 node_modules/cliui/build/lib/string-utils.js create mode 100644 node_modules/cliui/index.mjs create mode 100644 node_modules/cliui/package.json create mode 100644 node_modules/color-convert/CHANGELOG.md create mode 100644 node_modules/color-convert/LICENSE create mode 100644 node_modules/color-convert/README.md create mode 100644 node_modules/color-convert/conversions.js create mode 100644 node_modules/color-convert/index.js create mode 100644 node_modules/color-convert/package.json create mode 100644 node_modules/color-convert/route.js create mode 100644 node_modules/color-name/LICENSE create mode 100644 node_modules/color-name/README.md create mode 100644 node_modules/color-name/index.js create mode 100644 node_modules/color-name/package.json create mode 100755 node_modules/dependency-graph/CHANGELOG.md create mode 100755 node_modules/dependency-graph/LICENSE create mode 100755 node_modules/dependency-graph/README.md create mode 100755 node_modules/dependency-graph/lib/dep_graph.js create mode 100755 node_modules/dependency-graph/lib/index.d.ts create mode 100755 node_modules/dependency-graph/package.json create mode 100755 node_modules/dependency-graph/specs/dep_graph_spec.js create mode 100644 node_modules/dir-glob/index.js create mode 100644 node_modules/dir-glob/license create mode 100644 node_modules/dir-glob/package.json create mode 100644 node_modules/dir-glob/readme.md create mode 100644 node_modules/emoji-regex/LICENSE-MIT.txt create mode 100644 node_modules/emoji-regex/README.md create mode 100644 node_modules/emoji-regex/es2015/index.js create mode 100644 node_modules/emoji-regex/es2015/text.js create mode 100644 node_modules/emoji-regex/index.d.ts create mode 100644 node_modules/emoji-regex/index.js create mode 100644 node_modules/emoji-regex/package.json create mode 100644 node_modules/emoji-regex/text.js create mode 100644 node_modules/escalade/dist/index.js create mode 100644 node_modules/escalade/dist/index.mjs create mode 100644 node_modules/escalade/index.d.ts create mode 100644 node_modules/escalade/license create mode 100644 node_modules/escalade/package.json create mode 100644 node_modules/escalade/readme.md create mode 100644 node_modules/escalade/sync/index.d.ts create mode 100644 node_modules/escalade/sync/index.js create mode 100644 node_modules/escalade/sync/index.mjs create mode 100644 node_modules/fast-glob/LICENSE create mode 100644 node_modules/fast-glob/README.md create mode 100644 node_modules/fast-glob/out/index.d.ts create mode 100644 node_modules/fast-glob/out/index.js create mode 100644 node_modules/fast-glob/out/managers/patterns.d.ts create mode 100644 node_modules/fast-glob/out/managers/patterns.js create mode 100644 node_modules/fast-glob/out/managers/tasks.d.ts create mode 100644 node_modules/fast-glob/out/managers/tasks.js create mode 100644 node_modules/fast-glob/out/providers/async.d.ts create mode 100644 node_modules/fast-glob/out/providers/async.js create mode 100644 node_modules/fast-glob/out/providers/filters/deep.d.ts create mode 100644 node_modules/fast-glob/out/providers/filters/deep.js create mode 100644 node_modules/fast-glob/out/providers/filters/entry.d.ts create mode 100644 node_modules/fast-glob/out/providers/filters/entry.js create mode 100644 node_modules/fast-glob/out/providers/filters/error.d.ts create mode 100644 node_modules/fast-glob/out/providers/filters/error.js create mode 100644 node_modules/fast-glob/out/providers/matchers/matcher.d.ts create mode 100644 node_modules/fast-glob/out/providers/matchers/matcher.js create mode 100644 node_modules/fast-glob/out/providers/matchers/partial.d.ts create mode 100644 node_modules/fast-glob/out/providers/matchers/partial.js create mode 100644 node_modules/fast-glob/out/providers/provider.d.ts create mode 100644 node_modules/fast-glob/out/providers/provider.js create mode 100644 node_modules/fast-glob/out/providers/stream.d.ts create mode 100644 node_modules/fast-glob/out/providers/stream.js create mode 100644 node_modules/fast-glob/out/providers/sync.d.ts create mode 100644 node_modules/fast-glob/out/providers/sync.js create mode 100644 node_modules/fast-glob/out/providers/transformers/entry.d.ts create mode 100644 node_modules/fast-glob/out/providers/transformers/entry.js create mode 100644 node_modules/fast-glob/out/readers/reader.d.ts create mode 100644 node_modules/fast-glob/out/readers/reader.js create mode 100644 node_modules/fast-glob/out/readers/stream.d.ts create mode 100644 node_modules/fast-glob/out/readers/stream.js create mode 100644 node_modules/fast-glob/out/readers/sync.d.ts create mode 100644 node_modules/fast-glob/out/readers/sync.js create mode 100644 node_modules/fast-glob/out/settings.d.ts create mode 100644 node_modules/fast-glob/out/settings.js create mode 100644 node_modules/fast-glob/out/types/index.d.ts create mode 100644 node_modules/fast-glob/out/types/index.js create mode 100644 node_modules/fast-glob/out/utils/array.d.ts create mode 100644 node_modules/fast-glob/out/utils/array.js create mode 100644 node_modules/fast-glob/out/utils/errno.d.ts create mode 100644 node_modules/fast-glob/out/utils/errno.js create mode 100644 node_modules/fast-glob/out/utils/fs.d.ts create mode 100644 node_modules/fast-glob/out/utils/fs.js create mode 100644 node_modules/fast-glob/out/utils/index.d.ts create mode 100644 node_modules/fast-glob/out/utils/index.js create mode 100644 node_modules/fast-glob/out/utils/path.d.ts create mode 100644 node_modules/fast-glob/out/utils/path.js create mode 100644 node_modules/fast-glob/out/utils/pattern.d.ts create mode 100644 node_modules/fast-glob/out/utils/pattern.js create mode 100644 node_modules/fast-glob/out/utils/stream.d.ts create mode 100644 node_modules/fast-glob/out/utils/stream.js create mode 100644 node_modules/fast-glob/out/utils/string.d.ts create mode 100644 node_modules/fast-glob/out/utils/string.js create mode 100644 node_modules/fast-glob/package.json create mode 100644 node_modules/fastq/.github/dependabot.yml create mode 100644 node_modules/fastq/.github/workflows/ci.yml create mode 100644 node_modules/fastq/LICENSE create mode 100644 node_modules/fastq/README.md create mode 100644 node_modules/fastq/bench.js create mode 100644 node_modules/fastq/example.js create mode 100644 node_modules/fastq/example.mjs create mode 100644 node_modules/fastq/index.d.ts create mode 100644 node_modules/fastq/package.json create mode 100644 node_modules/fastq/queue.js create mode 100644 node_modules/fastq/test/example.ts create mode 100644 node_modules/fastq/test/promise.js create mode 100644 node_modules/fastq/test/test.js create mode 100644 node_modules/fastq/test/tsconfig.json create mode 100644 node_modules/fill-range/LICENSE create mode 100644 node_modules/fill-range/README.md create mode 100644 node_modules/fill-range/index.js create mode 100644 node_modules/fill-range/package.json create mode 100644 node_modules/fs-extra/CHANGELOG.md create mode 100644 node_modules/fs-extra/LICENSE create mode 100644 node_modules/fs-extra/README.md create mode 100644 node_modules/fs-extra/lib/copy-sync/copy-sync.js create mode 100644 node_modules/fs-extra/lib/copy-sync/index.js create mode 100644 node_modules/fs-extra/lib/copy/copy.js create mode 100644 node_modules/fs-extra/lib/copy/index.js create mode 100644 node_modules/fs-extra/lib/empty/index.js create mode 100644 node_modules/fs-extra/lib/ensure/file.js create mode 100644 node_modules/fs-extra/lib/ensure/index.js create mode 100644 node_modules/fs-extra/lib/ensure/link.js create mode 100644 node_modules/fs-extra/lib/ensure/symlink-paths.js create mode 100644 node_modules/fs-extra/lib/ensure/symlink-type.js create mode 100644 node_modules/fs-extra/lib/ensure/symlink.js create mode 100644 node_modules/fs-extra/lib/fs/index.js create mode 100644 node_modules/fs-extra/lib/index.js create mode 100644 node_modules/fs-extra/lib/json/index.js create mode 100644 node_modules/fs-extra/lib/json/jsonfile.js create mode 100644 node_modules/fs-extra/lib/json/output-json-sync.js create mode 100644 node_modules/fs-extra/lib/json/output-json.js create mode 100644 node_modules/fs-extra/lib/mkdirs/index.js create mode 100644 node_modules/fs-extra/lib/mkdirs/make-dir.js create mode 100644 node_modules/fs-extra/lib/mkdirs/utils.js create mode 100644 node_modules/fs-extra/lib/move-sync/index.js create mode 100644 node_modules/fs-extra/lib/move-sync/move-sync.js create mode 100644 node_modules/fs-extra/lib/move/index.js create mode 100644 node_modules/fs-extra/lib/move/move.js create mode 100644 node_modules/fs-extra/lib/output/index.js create mode 100644 node_modules/fs-extra/lib/path-exists/index.js create mode 100644 node_modules/fs-extra/lib/remove/index.js create mode 100644 node_modules/fs-extra/lib/remove/rimraf.js create mode 100644 node_modules/fs-extra/lib/util/stat.js create mode 100644 node_modules/fs-extra/lib/util/utimes.js create mode 100644 node_modules/fs-extra/package.json create mode 100644 node_modules/get-caller-file/LICENSE.md create mode 100644 node_modules/get-caller-file/README.md create mode 100644 node_modules/get-caller-file/index.d.ts create mode 100644 node_modules/get-caller-file/index.js create mode 100644 node_modules/get-caller-file/index.js.map create mode 100644 node_modules/get-caller-file/package.json create mode 100644 node_modules/get-stdin/index.d.ts create mode 100644 node_modules/get-stdin/index.js create mode 100644 node_modules/get-stdin/license create mode 100644 node_modules/get-stdin/package.json create mode 100644 node_modules/get-stdin/readme.md create mode 100644 node_modules/glob-parent/CHANGELOG.md create mode 100644 node_modules/glob-parent/LICENSE create mode 100644 node_modules/glob-parent/README.md create mode 100644 node_modules/glob-parent/index.js create mode 100644 node_modules/glob-parent/package.json create mode 100644 node_modules/globby/gitignore.js create mode 100644 node_modules/globby/index.d.ts create mode 100644 node_modules/globby/index.js create mode 100644 node_modules/globby/license create mode 100644 node_modules/globby/package.json create mode 100644 node_modules/globby/readme.md create mode 100644 node_modules/globby/stream-utils.js create mode 100644 node_modules/globby/to-path.js create mode 100644 node_modules/graceful-fs/LICENSE create mode 100644 node_modules/graceful-fs/README.md create mode 100644 node_modules/graceful-fs/clone.js create mode 100644 node_modules/graceful-fs/graceful-fs.js create mode 100644 node_modules/graceful-fs/legacy-streams.js create mode 100644 node_modules/graceful-fs/package.json create mode 100644 node_modules/graceful-fs/polyfills.js create mode 100644 node_modules/ignore/LICENSE-MIT create mode 100644 node_modules/ignore/README.md create mode 100644 node_modules/ignore/index.d.ts create mode 100644 node_modules/ignore/index.js create mode 100644 node_modules/ignore/legacy.js create mode 100644 node_modules/ignore/package.json create mode 100644 node_modules/is-binary-path/index.d.ts create mode 100644 node_modules/is-binary-path/index.js create mode 100644 node_modules/is-binary-path/license create mode 100644 node_modules/is-binary-path/package.json create mode 100644 node_modules/is-binary-path/readme.md create mode 100644 node_modules/is-extglob/LICENSE create mode 100644 node_modules/is-extglob/README.md create mode 100644 node_modules/is-extglob/index.js create mode 100644 node_modules/is-extglob/package.json create mode 100644 node_modules/is-fullwidth-code-point/index.d.ts create mode 100644 node_modules/is-fullwidth-code-point/index.js create mode 100644 node_modules/is-fullwidth-code-point/license create mode 100644 node_modules/is-fullwidth-code-point/package.json create mode 100644 node_modules/is-fullwidth-code-point/readme.md create mode 100644 node_modules/is-glob/LICENSE create mode 100644 node_modules/is-glob/README.md create mode 100644 node_modules/is-glob/index.js create mode 100644 node_modules/is-glob/package.json create mode 100644 node_modules/is-number/LICENSE create mode 100644 node_modules/is-number/README.md create mode 100644 node_modules/is-number/index.js create mode 100644 node_modules/is-number/package.json create mode 100644 node_modules/jsonfile/CHANGELOG.md create mode 100644 node_modules/jsonfile/LICENSE create mode 100644 node_modules/jsonfile/README.md create mode 100644 node_modules/jsonfile/index.js create mode 100644 node_modules/jsonfile/package.json create mode 100644 node_modules/jsonfile/utils.js create mode 100644 node_modules/lilconfig/dist/index.d.ts create mode 100644 node_modules/lilconfig/dist/index.js create mode 100644 node_modules/lilconfig/package.json create mode 100644 node_modules/lilconfig/readme.md create mode 100644 node_modules/merge2/LICENSE create mode 100644 node_modules/merge2/README.md create mode 100644 node_modules/merge2/index.js create mode 100644 node_modules/merge2/package.json create mode 100644 node_modules/micromatch/CHANGELOG.md create mode 100755 node_modules/micromatch/LICENSE create mode 100644 node_modules/micromatch/README.md create mode 100644 node_modules/micromatch/index.js create mode 100644 node_modules/micromatch/package.json create mode 100644 node_modules/nanoid/LICENSE create mode 100644 node_modules/nanoid/README.md create mode 100644 node_modules/nanoid/async/index.browser.cjs create mode 100644 node_modules/nanoid/async/index.browser.js create mode 100644 node_modules/nanoid/async/index.cjs create mode 100644 node_modules/nanoid/async/index.d.ts create mode 100644 node_modules/nanoid/async/index.js create mode 100644 node_modules/nanoid/async/index.native.js create mode 100644 node_modules/nanoid/async/package.json create mode 100755 node_modules/nanoid/bin/nanoid.cjs create mode 100644 node_modules/nanoid/index.browser.cjs create mode 100644 node_modules/nanoid/index.browser.js create mode 100644 node_modules/nanoid/index.cjs create mode 100644 node_modules/nanoid/index.d.ts create mode 100644 node_modules/nanoid/index.dev.js create mode 100644 node_modules/nanoid/index.js create mode 100644 node_modules/nanoid/index.prod.js create mode 100644 node_modules/nanoid/nanoid.js create mode 100644 node_modules/nanoid/non-secure/index.cjs create mode 100644 node_modules/nanoid/non-secure/index.d.ts create mode 100644 node_modules/nanoid/non-secure/index.js create mode 100644 node_modules/nanoid/non-secure/package.json create mode 100644 node_modules/nanoid/package.json create mode 100644 node_modules/nanoid/url-alphabet/index.cjs create mode 100644 node_modules/nanoid/url-alphabet/index.js create mode 100644 node_modules/nanoid/url-alphabet/package.json create mode 100644 node_modules/normalize-path/LICENSE create mode 100644 node_modules/normalize-path/README.md create mode 100644 node_modules/normalize-path/index.js create mode 100644 node_modules/normalize-path/package.json create mode 100644 node_modules/path-type/index.d.ts create mode 100644 node_modules/path-type/index.js create mode 100644 node_modules/path-type/license create mode 100644 node_modules/path-type/package.json create mode 100644 node_modules/path-type/readme.md create mode 100644 node_modules/picocolors/LICENSE create mode 100644 node_modules/picocolors/README.md create mode 100644 node_modules/picocolors/package.json create mode 100644 node_modules/picocolors/picocolors.browser.js create mode 100644 node_modules/picocolors/picocolors.d.ts create mode 100644 node_modules/picocolors/picocolors.js create mode 100644 node_modules/picocolors/types.ts create mode 100644 node_modules/picomatch/CHANGELOG.md create mode 100644 node_modules/picomatch/LICENSE create mode 100644 node_modules/picomatch/README.md create mode 100644 node_modules/picomatch/index.js create mode 100644 node_modules/picomatch/lib/constants.js create mode 100644 node_modules/picomatch/lib/parse.js create mode 100644 node_modules/picomatch/lib/picomatch.js create mode 100644 node_modules/picomatch/lib/scan.js create mode 100644 node_modules/picomatch/lib/utils.js create mode 100644 node_modules/picomatch/package.json create mode 100644 node_modules/pify/index.js create mode 100644 node_modules/pify/license create mode 100644 node_modules/pify/package.json create mode 100644 node_modules/pify/readme.md create mode 100644 node_modules/postcss-cli/LICENSE create mode 100644 node_modules/postcss-cli/README.md create mode 100755 node_modules/postcss-cli/index.js create mode 100644 node_modules/postcss-cli/lib/DependencyGraph.js create mode 100644 node_modules/postcss-cli/lib/args.js create mode 100644 node_modules/postcss-cli/lib/getMapfile.js create mode 100644 node_modules/postcss-cli/package.json create mode 100644 node_modules/postcss-load-config/LICENSE create mode 100644 node_modules/postcss-load-config/README.md create mode 100644 node_modules/postcss-load-config/package.json create mode 100644 node_modules/postcss-load-config/src/index.d.ts create mode 100644 node_modules/postcss-load-config/src/index.js create mode 100644 node_modules/postcss-load-config/src/options.js create mode 100644 node_modules/postcss-load-config/src/plugins.js create mode 100644 node_modules/postcss-load-config/src/req.js create mode 100644 node_modules/postcss-reporter/LICENSE create mode 100644 node_modules/postcss-reporter/README.md create mode 100644 node_modules/postcss-reporter/index.js create mode 100644 node_modules/postcss-reporter/lib/formatter.js create mode 100644 node_modules/postcss-reporter/lib/reporter.js create mode 100644 node_modules/postcss-reporter/lib/util.js create mode 100644 node_modules/postcss-reporter/package.json create mode 100644 node_modules/postcss/LICENSE create mode 100644 node_modules/postcss/README.md create mode 100644 node_modules/postcss/lib/at-rule.d.ts create mode 100644 node_modules/postcss/lib/at-rule.js create mode 100644 node_modules/postcss/lib/comment.d.ts create mode 100644 node_modules/postcss/lib/comment.js create mode 100644 node_modules/postcss/lib/container.d.ts create mode 100644 node_modules/postcss/lib/container.js create mode 100644 node_modules/postcss/lib/css-syntax-error.d.ts create mode 100644 node_modules/postcss/lib/css-syntax-error.js create mode 100644 node_modules/postcss/lib/declaration.d.ts create mode 100644 node_modules/postcss/lib/declaration.js create mode 100644 node_modules/postcss/lib/document.d.ts create mode 100644 node_modules/postcss/lib/document.js create mode 100644 node_modules/postcss/lib/fromJSON.d.ts create mode 100644 node_modules/postcss/lib/fromJSON.js create mode 100644 node_modules/postcss/lib/input.d.ts create mode 100644 node_modules/postcss/lib/input.js create mode 100644 node_modules/postcss/lib/lazy-result.d.ts create mode 100644 node_modules/postcss/lib/lazy-result.js create mode 100644 node_modules/postcss/lib/list.d.ts create mode 100644 node_modules/postcss/lib/list.js create mode 100644 node_modules/postcss/lib/map-generator.js create mode 100644 node_modules/postcss/lib/no-work-result.d.ts create mode 100644 node_modules/postcss/lib/no-work-result.js create mode 100644 node_modules/postcss/lib/node.d.ts create mode 100644 node_modules/postcss/lib/node.js create mode 100644 node_modules/postcss/lib/parse.d.ts create mode 100644 node_modules/postcss/lib/parse.js create mode 100644 node_modules/postcss/lib/parser.js create mode 100644 node_modules/postcss/lib/postcss.d.ts create mode 100644 node_modules/postcss/lib/postcss.js create mode 100644 node_modules/postcss/lib/postcss.mjs create mode 100644 node_modules/postcss/lib/previous-map.d.ts create mode 100644 node_modules/postcss/lib/previous-map.js create mode 100644 node_modules/postcss/lib/processor.d.ts create mode 100644 node_modules/postcss/lib/processor.js create mode 100644 node_modules/postcss/lib/result.d.ts create mode 100644 node_modules/postcss/lib/result.js create mode 100644 node_modules/postcss/lib/root.d.ts create mode 100644 node_modules/postcss/lib/root.js create mode 100644 node_modules/postcss/lib/rule.d.ts create mode 100644 node_modules/postcss/lib/rule.js create mode 100644 node_modules/postcss/lib/stringifier.d.ts create mode 100644 node_modules/postcss/lib/stringifier.js create mode 100644 node_modules/postcss/lib/stringify.d.ts create mode 100644 node_modules/postcss/lib/stringify.js create mode 100644 node_modules/postcss/lib/symbols.js create mode 100644 node_modules/postcss/lib/terminal-highlight.js create mode 100644 node_modules/postcss/lib/tokenize.js create mode 100644 node_modules/postcss/lib/warn-once.js create mode 100644 node_modules/postcss/lib/warning.d.ts create mode 100644 node_modules/postcss/lib/warning.js create mode 100755 node_modules/postcss/package.json create mode 100644 node_modules/pretty-hrtime/.jshintignore create mode 100644 node_modules/pretty-hrtime/.npmignore create mode 100644 node_modules/pretty-hrtime/LICENSE create mode 100644 node_modules/pretty-hrtime/README.md create mode 100644 node_modules/pretty-hrtime/index.js create mode 100644 node_modules/pretty-hrtime/package.json create mode 100755 node_modules/queue-microtask/LICENSE create mode 100644 node_modules/queue-microtask/README.md create mode 100644 node_modules/queue-microtask/index.d.ts create mode 100644 node_modules/queue-microtask/index.js create mode 100644 node_modules/queue-microtask/package.json create mode 100644 node_modules/read-cache/LICENSE create mode 100644 node_modules/read-cache/README.md create mode 100644 node_modules/read-cache/index.js create mode 100644 node_modules/read-cache/package.json create mode 100644 node_modules/readdirp/LICENSE create mode 100644 node_modules/readdirp/README.md create mode 100644 node_modules/readdirp/index.d.ts create mode 100644 node_modules/readdirp/index.js create mode 100644 node_modules/readdirp/package.json create mode 100644 node_modules/require-directory/.jshintrc create mode 100644 node_modules/require-directory/.npmignore create mode 100644 node_modules/require-directory/.travis.yml create mode 100644 node_modules/require-directory/LICENSE create mode 100644 node_modules/require-directory/README.markdown create mode 100644 node_modules/require-directory/index.js create mode 100644 node_modules/require-directory/package.json create mode 100644 node_modules/reusify/.coveralls.yml create mode 100644 node_modules/reusify/.travis.yml create mode 100644 node_modules/reusify/LICENSE create mode 100644 node_modules/reusify/README.md create mode 100644 node_modules/reusify/benchmarks/createNoCodeFunction.js create mode 100644 node_modules/reusify/benchmarks/fib.js create mode 100644 node_modules/reusify/benchmarks/reuseNoCodeFunction.js create mode 100644 node_modules/reusify/package.json create mode 100644 node_modules/reusify/reusify.js create mode 100644 node_modules/reusify/test.js create mode 100644 node_modules/run-parallel/LICENSE create mode 100644 node_modules/run-parallel/README.md create mode 100644 node_modules/run-parallel/index.js create mode 100644 node_modules/run-parallel/package.json create mode 100644 node_modules/slash/index.d.ts create mode 100644 node_modules/slash/index.js create mode 100644 node_modules/slash/license create mode 100644 node_modules/slash/package.json create mode 100644 node_modules/slash/readme.md create mode 100644 node_modules/source-map-js/CHANGELOG.md create mode 100644 node_modules/source-map-js/LICENSE create mode 100644 node_modules/source-map-js/README.md create mode 100644 node_modules/source-map-js/lib/array-set.js create mode 100644 node_modules/source-map-js/lib/base64-vlq.js create mode 100644 node_modules/source-map-js/lib/base64.js create mode 100644 node_modules/source-map-js/lib/binary-search.js create mode 100644 node_modules/source-map-js/lib/mapping-list.js create mode 100644 node_modules/source-map-js/lib/quick-sort.js create mode 100644 node_modules/source-map-js/lib/source-map-consumer.js create mode 100644 node_modules/source-map-js/lib/source-map-generator.js create mode 100644 node_modules/source-map-js/lib/source-node.js create mode 100644 node_modules/source-map-js/lib/util.js create mode 100644 node_modules/source-map-js/package.json create mode 100644 node_modules/source-map-js/source-map.d.ts create mode 100644 node_modules/source-map-js/source-map.js create mode 100644 node_modules/string-width/index.d.ts create mode 100644 node_modules/string-width/index.js create mode 100644 node_modules/string-width/license create mode 100644 node_modules/string-width/package.json create mode 100644 node_modules/string-width/readme.md create mode 100644 node_modules/strip-ansi/index.d.ts create mode 100644 node_modules/strip-ansi/index.js create mode 100644 node_modules/strip-ansi/license create mode 100644 node_modules/strip-ansi/package.json create mode 100644 node_modules/strip-ansi/readme.md create mode 100644 node_modules/thenby/LICENSE.TXT create mode 100644 node_modules/thenby/README.md create mode 100644 node_modules/thenby/package.json create mode 100644 node_modules/thenby/thenBy.min.js create mode 100644 node_modules/thenby/thenBy.module.d.ts create mode 100644 node_modules/thenby/thenBy.module.js create mode 100644 node_modules/to-regex-range/LICENSE create mode 100644 node_modules/to-regex-range/README.md create mode 100644 node_modules/to-regex-range/index.js create mode 100644 node_modules/to-regex-range/package.json create mode 100644 node_modules/universalify/LICENSE create mode 100644 node_modules/universalify/README.md create mode 100644 node_modules/universalify/index.js create mode 100644 node_modules/universalify/package.json create mode 100755 node_modules/wrap-ansi/index.js create mode 100644 node_modules/wrap-ansi/license create mode 100644 node_modules/wrap-ansi/package.json create mode 100644 node_modules/wrap-ansi/readme.md create mode 100644 node_modules/y18n/CHANGELOG.md create mode 100644 node_modules/y18n/LICENSE create mode 100644 node_modules/y18n/README.md create mode 100644 node_modules/y18n/build/index.cjs create mode 100644 node_modules/y18n/build/lib/cjs.js create mode 100644 node_modules/y18n/build/lib/index.js create mode 100644 node_modules/y18n/build/lib/platform-shims/node.js create mode 100644 node_modules/y18n/index.mjs create mode 100644 node_modules/y18n/package.json create mode 100644 node_modules/yaml/LICENSE create mode 100644 node_modules/yaml/README.md create mode 100644 node_modules/yaml/browser/dist/PlainValue-b8036b75.js create mode 100644 node_modules/yaml/browser/dist/Schema-e94716c8.js create mode 100644 node_modules/yaml/browser/dist/index.js create mode 100644 node_modules/yaml/browser/dist/legacy-exports.js create mode 100644 node_modules/yaml/browser/dist/package.json create mode 100644 node_modules/yaml/browser/dist/parse-cst.js create mode 100644 node_modules/yaml/browser/dist/resolveSeq-492ab440.js create mode 100644 node_modules/yaml/browser/dist/types.js create mode 100644 node_modules/yaml/browser/dist/util.js create mode 100644 node_modules/yaml/browser/dist/warnings-df54cb69.js create mode 100644 node_modules/yaml/browser/index.js create mode 100644 node_modules/yaml/browser/map.js create mode 100644 node_modules/yaml/browser/pair.js create mode 100644 node_modules/yaml/browser/parse-cst.js create mode 100644 node_modules/yaml/browser/scalar.js create mode 100644 node_modules/yaml/browser/schema.js create mode 100644 node_modules/yaml/browser/seq.js create mode 100644 node_modules/yaml/browser/types.js create mode 100644 node_modules/yaml/browser/types/binary.js create mode 100644 node_modules/yaml/browser/types/omap.js create mode 100644 node_modules/yaml/browser/types/pairs.js create mode 100644 node_modules/yaml/browser/types/set.js create mode 100644 node_modules/yaml/browser/types/timestamp.js create mode 100644 node_modules/yaml/browser/util.js create mode 100644 node_modules/yaml/dist/Document-9b4560a1.js create mode 100644 node_modules/yaml/dist/PlainValue-ec8e588e.js create mode 100644 node_modules/yaml/dist/Schema-88e323a7.js create mode 100644 node_modules/yaml/dist/index.js create mode 100644 node_modules/yaml/dist/legacy-exports.js create mode 100644 node_modules/yaml/dist/parse-cst.js create mode 100644 node_modules/yaml/dist/resolveSeq-d03cb037.js create mode 100644 node_modules/yaml/dist/test-events.js create mode 100644 node_modules/yaml/dist/types.js create mode 100644 node_modules/yaml/dist/util.js create mode 100644 node_modules/yaml/dist/warnings-1000a372.js create mode 100644 node_modules/yaml/index.d.ts create mode 100644 node_modules/yaml/index.js create mode 100644 node_modules/yaml/map.js create mode 100644 node_modules/yaml/package.json create mode 100644 node_modules/yaml/pair.js create mode 100644 node_modules/yaml/parse-cst.d.ts create mode 100644 node_modules/yaml/parse-cst.js create mode 100644 node_modules/yaml/scalar.js create mode 100644 node_modules/yaml/schema.js create mode 100644 node_modules/yaml/seq.js create mode 100644 node_modules/yaml/types.d.ts create mode 100644 node_modules/yaml/types.js create mode 100644 node_modules/yaml/types.mjs create mode 100644 node_modules/yaml/types/binary.js create mode 100644 node_modules/yaml/types/omap.js create mode 100644 node_modules/yaml/types/pairs.js create mode 100644 node_modules/yaml/types/set.js create mode 100644 node_modules/yaml/types/timestamp.js create mode 100644 node_modules/yaml/util.d.ts create mode 100644 node_modules/yaml/util.js create mode 100644 node_modules/yaml/util.mjs create mode 100644 node_modules/yargs-parser/CHANGELOG.md create mode 100644 node_modules/yargs-parser/LICENSE.txt create mode 100644 node_modules/yargs-parser/README.md create mode 100644 node_modules/yargs-parser/browser.js create mode 100644 node_modules/yargs-parser/build/index.cjs create mode 100644 node_modules/yargs-parser/build/lib/index.js create mode 100644 node_modules/yargs-parser/build/lib/string-utils.js create mode 100644 node_modules/yargs-parser/build/lib/tokenize-arg-string.js create mode 100644 node_modules/yargs-parser/build/lib/yargs-parser-types.js create mode 100644 node_modules/yargs-parser/build/lib/yargs-parser.js create mode 100644 node_modules/yargs-parser/package.json create mode 100644 node_modules/yargs/LICENSE create mode 100644 node_modules/yargs/README.md create mode 100644 node_modules/yargs/browser.mjs create mode 100644 node_modules/yargs/build/index.cjs create mode 100644 node_modules/yargs/build/lib/argsert.js create mode 100644 node_modules/yargs/build/lib/command.js create mode 100644 node_modules/yargs/build/lib/completion-templates.js create mode 100644 node_modules/yargs/build/lib/completion.js create mode 100644 node_modules/yargs/build/lib/middleware.js create mode 100644 node_modules/yargs/build/lib/parse-command.js create mode 100644 node_modules/yargs/build/lib/typings/common-types.js create mode 100644 node_modules/yargs/build/lib/typings/yargs-parser-types.js create mode 100644 node_modules/yargs/build/lib/usage.js create mode 100644 node_modules/yargs/build/lib/utils/apply-extends.js create mode 100644 node_modules/yargs/build/lib/utils/is-promise.js create mode 100644 node_modules/yargs/build/lib/utils/levenshtein.js create mode 100644 node_modules/yargs/build/lib/utils/maybe-async-result.js create mode 100644 node_modules/yargs/build/lib/utils/obj-filter.js create mode 100644 node_modules/yargs/build/lib/utils/process-argv.js create mode 100644 node_modules/yargs/build/lib/utils/set-blocking.js create mode 100644 node_modules/yargs/build/lib/utils/which-module.js create mode 100644 node_modules/yargs/build/lib/validation.js create mode 100644 node_modules/yargs/build/lib/yargs-factory.js create mode 100644 node_modules/yargs/build/lib/yerror.js create mode 100644 node_modules/yargs/helpers/helpers.mjs create mode 100644 node_modules/yargs/helpers/index.js create mode 100644 node_modules/yargs/helpers/package.json create mode 100644 node_modules/yargs/index.cjs create mode 100644 node_modules/yargs/index.mjs create mode 100644 node_modules/yargs/lib/platform-shims/browser.mjs create mode 100644 node_modules/yargs/lib/platform-shims/esm.mjs create mode 100644 node_modules/yargs/locales/be.json create mode 100644 node_modules/yargs/locales/de.json create mode 100644 node_modules/yargs/locales/en.json create mode 100644 node_modules/yargs/locales/es.json create mode 100644 node_modules/yargs/locales/fi.json create mode 100644 node_modules/yargs/locales/fr.json create mode 100644 node_modules/yargs/locales/hi.json create mode 100644 node_modules/yargs/locales/hu.json create mode 100644 node_modules/yargs/locales/id.json create mode 100644 node_modules/yargs/locales/it.json create mode 100644 node_modules/yargs/locales/ja.json create mode 100644 node_modules/yargs/locales/ko.json create mode 100644 node_modules/yargs/locales/nb.json create mode 100644 node_modules/yargs/locales/nl.json create mode 100644 node_modules/yargs/locales/nn.json create mode 100644 node_modules/yargs/locales/pirate.json create mode 100644 node_modules/yargs/locales/pl.json create mode 100644 node_modules/yargs/locales/pt.json create mode 100644 node_modules/yargs/locales/pt_BR.json create mode 100644 node_modules/yargs/locales/ru.json create mode 100644 node_modules/yargs/locales/th.json create mode 100644 node_modules/yargs/locales/tr.json create mode 100644 node_modules/yargs/locales/uk_UA.json create mode 100644 node_modules/yargs/locales/uz.json create mode 100644 node_modules/yargs/locales/zh_CN.json create mode 100644 node_modules/yargs/locales/zh_TW.json create mode 100644 node_modules/yargs/package.json create mode 100644 node_modules/yargs/yargs create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 public/about/index.html create mode 100644 public/about/index.xml create mode 100644 public/access/index.html create mode 100644 public/access/index.xml create mode 100644 public/background.jpg create mode 100644 public/background.mp4 create mode 100644 public/blog/index.html create mode 100644 public/blog/index.xml create mode 100644 public/categories/index.html create mode 100644 public/categories/index.xml create mode 100644 public/css/default-skin.css create mode 100644 public/css/default-skin.png create mode 100644 public/css/default-skin.svg create mode 100644 public/css/photoswipe.css create mode 100644 public/css/preloader.gif create mode 100755 public/css/style.css create mode 100644 public/index.html create mode 100644 public/index.xml create mode 100644 public/js/photoswipe-ui-default.min.js create mode 100644 public/js/photoswipe.min.js create mode 100644 public/manifesto/index.html create mode 100644 public/manifesto/index.xml create mode 100644 public/posts/apple-breaks-privacy/index.html create mode 100644 public/posts/index.html create mode 100644 public/posts/index.xml create mode 100644 public/posts/main_street_against_big_tech/index.html create mode 100644 public/posts/manifesto/index.html create mode 100644 public/posts/what_is_done_with_personal_data/index.html create mode 100644 public/projects/index.html create mode 100644 public/projects/index.xml create mode 100755 public/sam.ico create mode 100644 public/sitemap.xml create mode 100644 public/tags/index.html create mode 100644 public/tags/index.xml create mode 100755 public/tn.png create mode 100644 resources/_gen/assets/css/ananke/css/main.css_bb5467e0521bbea6b1e66429f6ec028e.content create mode 100644 resources/_gen/assets/css/ananke/css/main.css_bb5467e0521bbea6b1e66429f6ec028e.json create mode 100644 resources/_gen/assets/sass/sass/style.sass_7642ba43b3212fd7d7ba324df3b88b0c.content create mode 100644 resources/_gen/assets/sass/sass/style.sass_7642ba43b3212fd7d7ba324df3b88b0c.json diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 00000000..00e77bd7 --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,6 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +draft: true +--- + diff --git a/config.toml b/config.toml new file mode 100644 index 00000000..f79066fd --- /dev/null +++ b/config.toml @@ -0,0 +1,38 @@ +baseURL = "http://federated.computer/" +languageCode = "en-us" +title = "Federated Computer" +theme = "sam" + +enableEmoji = "true" + +[[params.mainMenu]] + link = "/" + text = "Federated Computer" + +[[params.mainMenu]] + link = "/manifesto" + text = "Our Manifesto" + +[[params.mainMenu]] + link = "/access" + text = "Early Access" + +[[params.mainMenu]] + link = "/projects" + text = "Projects" + +[[params.mainMenu]] + link = "/posts" + text = "Posts" + +[[params.mainMenu]] + link = "/about" + text = "About Us" + +[[params.videoBackground.sources]] + source = "/background.mp4" # Your video file + type = "video/mp4" + poster = "/background.jpg" # The image to show when the video isn't playing + +[params.videoBackground] + overlay = "rgba(0, 0, 0, 0.4)" # optional diff --git a/content/about/_index.md b/content/about/_index.md new file mode 100644 index 00000000..c725e4a4 --- /dev/null +++ b/content/about/_index.md @@ -0,0 +1,43 @@ +--- +title: "About" +date: 2022-02-14T14:12:46-07:00 +draft: false +--- + +[l{P*xs*!Tbo&<+KCk6;;r9KQvBx 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%0DlD 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%0Dfa4ZY6aY2T;yGV&7TSBxyQZ3+ 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

evDpz_h%oY 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 ~D zjso5YBqvT=8OKIDZ@3K$Vd3%B!k#A}^K4pwZ7vGVa89f}#g{y)3nt|pA`;f7Y&qzg{ zL;IWsVT)s^WwMdj%Se0MSLRRkiv|6 zVoCT-PBPIJ7Ug`&Z`+yU(!&;PeXV(%9GmKYZ6`zrU1sbEwda-jFcF$OHBxq|)N44G zxE?KuBiwZQyYVz>wdl0w9on>Y*)~iw;>@vRd6MUZsOe_Sa|u=E z&&(z+Z=Bl^TV=le%^JJnz}F(_kQ2>_hv7dJA6XQj+WMVw%Sj+Sk!tiFh?8eAzx3hD z%slgKZv!cX=rNtfe;KKgea%{r5w@mM{3yOn?k=V<(_ih2E?<(&JDuTV3>^krW)2IV zH))rhz19B!Vr`(j$zEZW+_qT6%Qj(yC$)zOQ#;5Q1FV4KiAOh>_}fO|i8@xwHaU~# z%^2CGGEt4C-G^HbGiB!NxaTs-tNM}d{TE$4M>`94mLUfua2L4`+t~|ohxcj6`dhF2 zS;cqe-wX83j`Ii1LEC05iUH1hm*vrEIppzUqmG~nUmOz;qlh^BusQBYacmnPuecmP-CO*9vR%=BR>97l`-9UU;=**pfam12 zW9vEaBaNMT!>QH|{3AxO?d!(i<{)Z6Npm#YCqOtQIWcAMFv3)EnVZ2T=ezMbk(UQJ zy~OdFoVcUi@UYm7W^K}y`Ynq9+U z{4f5NhH@L!lMba}FeMZK-IdpzI+w(ERLE;OV8}!A}r?w z{KfiRfdmIrClA|uJxV7$NEz3Lur5nTnwi=5WwinD*raoNvo}IheZ;u#LCAimfQQ*= zbqLh6-6AS=I538HBc5#=U?iy~EJ1PB!c!YAWCD(&6m5E)jx4fHY~U~97=PH83qPje zuO5~p1;kikJJd4R&V1}(VIP@2_WPLAsqoBPNuA18h{ATd2EoUH)yU!L3g2u_VcCNs z&E#h-y^*gE%FrjLxW0N{a3tGv3t>7+T0T4vp5a5Zb`hNQF9eGdBhh_a&(!M80egYQ zKji(Bc4QE%w*^@CPLAPah(4nk>uf)gc2{Mqy-B?zR1eoKq`zbA<~c`?yHNiCs4>*} zB=|3x+CU!c@ZZ__T>L{IDT0#qB|2gcl=)c4%j!c#o8DbSfzOx^IF_fbdzKQuW!WaO zj%8xxVUReLIkZFK^&WCR*bU^gZ!!ZO7iXl0ANvmz#Bn?DKJRdV_ZI>DL_z-0o9K!k z6FJ2mbKR3e$V&A(Iq2c{a3ijF^5+D&xx|bwzV5QZn0;7olZx}ZR@?KE9k*Zr3jIZv z56KBEcRGGzJOiCO7ZHq-mS=O&hF8(rfLNIX*kChfB=YeP=YEj|#~m(NgLw7Kd!Bsd z#mC@m%yRsg#mjLyC7Ka>pFB<2Jee_&@5K5?+r`)&M=%pu5KPgNLN0XdX+y+}8U0Qz zYrdiu@%s=d&oEaWryl*nd1-{-OEC`Ki)7=2x!~v2ry06goXRtEn?@ZT;6G?FeypSq zKH@aQbC^n7`!a5MNKSJTzeDP|h^>LxFA>W*y&U5O|tq_ z@dA}AY=PwSF`(D#eYgi?aAA0He9=&9qDn zkpRPG4_Doesr4^i${u~q9F@z|we;I!Lf<_PxQlLSWv}@c3#h5M9;dIh?BUI}O1KBg z)j&N9%v8e&cFPhIxi&V0N2_x8=tY6A{>x=>$Gb`26TBI6Jt=UqW=)-sqjN4v?0d;u zKts3!T4%%@I2`;&C!prfLEw0h0H1+9sP#MXJK1;F&9nhVPG%1CXy^R2;rc<9I`9x% z$TgXIcG<&G3T5fnyOVu;gn&5^V~mOMd`D5su*|tPBdY^rchrV0pu)_`2O_`yK{LO8 zY=y>p;v6U8%ykNPjAC#uEuMpLJ=&B*g{HN`Fe$$?&jWo&0ge`ek;=-k4=3s&9eH9M zyf`7|fH{&1L>-b5_Q;9H5hzCXYTINv(o2Dl<=;hJ0Si}W1haK{FLB`F5Pm?D47sLG zyluVZHv~M@b+5 z08n5b+qdp`M~C7AI3B>~+1rD4ek4v6hC5zX$_O4C3{?mUN80nt8xwQpTK9YECtoW? zg!j9fl1i^9?Zrk1mc@?=OLDe1`h3o~_Xmx#;f~h9LtW{$M+AMbizSzP+)nNsgQTMl zF)+2;%&hwmP?* zKzsiHw>QQ|PFTZ<&ds?87K3BJvOc0afMMtMa+_+1WpHPA)Nh%IRv$9S#WoD_*wA!}8qcZMA~oda?HH{{UbjyF;9Y%kBeu79b!S{{YP=8bk(m zSg8^oy}{Ho(`W1n^n)k`Ila(zi=)FQ9J>}aSub+gG6TQM2apqn-2)FdGPDJeoO3zG z(}WBq$hha`#ZjjuN8Wi0hX6c8*cwpmxPNdOOaA~Rt8BkvkuHz+<%ARF)9pPr+#36c zpDs6pZ3uAW&Y+FL;G8zx+eMMmRgLbj^~u>mu~I zyusQN!M2;H;&^05VWHE0Bqy!%l9RbGVKk7{=%yvZqFt z&f`P?u0AF{IAbkz36j?5SmHGLvk^6%AUS?vM#9ktoq~hhk+J1C6GsD^eAziO=n`qt zPksH$=XVXm>^ZQGqv{T|=F7O`=MfezHwigxgt;DJ!_O0`p5zNIbJRfg*lIbkxD9iC zNhrW}N$YP?E&%r!&tI!Zf%!i%o3B!i8+QZ#TFJ;VjdX5C>f?;?hlSneNRO;KyMp3r&8=wp>vzS}Wm+NlpsJ_JL`IaKKEV2$w zw0PNcNuv%U+Q8?vy52#G57mz?9;OG}g8>`Gwo#pL)U;ICMzhED8|l|k7fxZwN1PMfcUfpzo7PD(uhC+k@SVw~*iIuLcWlG0 zp7QZyx=rQkMrS^V_pVv6Knj_d%OIJfPUiqv4QEyh0~y2te_^no4EV|U8Qa_Npq+UCW-^MvDHx zi2nenfV}m@Z=UNC+XEaH%i>@jHsK}JwDWM5XR(>#wr6boO-AIO+8B(E;k_YZQ4SI}5g#aRFX_i)~UX4aJ88A(LLr2@CZiUsoPpxa8T|0lw^-`MnFDW~`&RU!O6h zQeG2(EJ~gO0pVuTGQrZp#h;dj75ad*aqO{^%k^L_ABAiO7URU;<<_z!(fhF@d3w3; zO_aAEP~=S6dGHN`EX&p#96@|QWa=Cq?6qT-E^dTIUf90jyMJ(**7NS+2J~<)bav^u z2^uiVteS(4dNSO!XCCA{axjJvY{@rmA2LIBcr%Nj^CRPi&09Ku z%U<^#j~BWdcr!=}1913uJxtpX9O_Ppn#V6(f966PiqRms-&6n+1 zxMqF8hU8 z$s~AUO~c~U4gmiEBifKcv-S=@cL&uMEtK`6lH6gg9KFNeurMwbkaHbz3Qz9GgK5Tf z0nC@F^Lu-c@B2*KGVsp;2N`2+j=*mI(V<}ICII8|I8F*a6B=DpZ1DhhcO!piQML}` z>|i(l0N%vXpQODS=Amrn9b9N^WBGG4JI&54;r9{7-vlk@%WU;GFJvTZGvej@gKGWO ze(k}rgw~oaM$G4M30b{A|9gLUTLWsKW%#JLA|dcOpbT|}_nE@&KCg`2kD3?~ii zVO%`zCk%1xXUctWYz85t%a>GZ*hqLbZbzIR(lxyMf|0x%kmQe%n2=45USP_1o-SVk zK)d-ScMqAhJzr^Tk7Q-2NV6c3^}h4+Z5+{iJ9@1 zyL*-y-oSG9LEJ62%J`U*#Lyksl=Tz)i$csCt@6Yo>MzL~*o5XG$zt7*_ILI}gBj_` zUCd|a*X$_&0P5ign#6cLlNq1(1UcRyda(VByUfFbBR(tJ__s>Vr@55U#N^U^X0GT< z!Qr0aBf2c@vFmW*-tC!?;v^IMTK5aGDLJ;yo_8}rTrYse$q(CZsjrt~bnkp@ zi>PC6{{Wh0m=E-{F-Q^l4_w$1g>^)WjU6%|L`2t)Wd}uEdbB75%DTO*))$aQhz& zTbCedvLrnL#enUO$%g^XLuRw;?A(6kD4A_3d-;`;2K!)9@-l;|#i4NhiS)qvmVwW6 zY&wSHIk-*r^EUH@B?FW*sj}e%@ZZ~l-%|9_Ygf2)w^PN3EOtn4GprfUc0EW5va8G! zmv^Pj$t>=iq7-P(=DPFn+L>w)BwLM{*2wyZ=ko#`rLEsF^Y=bPFKk-0Ta;G?nwZRDKAc=5toOuX zbV?{FeUPekBII!)iK~t+5f7N>u?ZIM(RTD6%Ry%U08!>g;efDU@LP!9(Fwv7`3tdL zK5Y-BWreWv<$;ZIzdKmzBa8@FI5iBa508gXqR-{{ZE3hyK`q{YYT7nIlU_Hl~O-LULykZsz1| za3Nc^4$p{4>l+qg0>#1$wZ4VA1gj@H_4fxWn^-&egI*`x%0@0bWyqnM&A`#mcQ=>W zkvVY$@BX4HqAo7oJSNjFEAC_mQ`46TVRxUah zQ;(;mFRHQ}%aS>P&HRRKJ6qpCp=PcOAJNp2*8*C4_gA#JdZXfa#{N2n=r$;lM z?eX;P5^Y;D9PIA>&PN9}uwY}W24Fk9wn(GmG5|YsVK>n&jy98n=PcB7IYB<*f$rcE zW01~S9Eo?~=*_8po0R~4vINuVov?>u8OXK*AKV{j`)b8M*waM+0B^jsV?Hhp%OrMv zB;b8E#<+>cmnImWv!yZkx=2Q2W#H@TUQz!5FI4{kmfq(&n42;p3p0q}{hI@!tb7)^ zTn=OpffT`!VvqZiD~14l$UHT_m(M~{&bYX!R~YcDelib z&zp;f^AMAd2BUp%&9lJ$lYtU(F3-3va(i>!a1R6D)DK^5Ezadzvh;YJiKOQEGUTu5 z#?%R(p=oR|>Ge8-!93*vqFARvQ!LkZOk*=a%Y8meFtM$O>Guz;Th%ZNt=L01vFRZNkQ; zQ#nE)m%juI4Gy_yUdM@>p);vQ@juBD-0_6RmtUBka1pq14aOsGY#{2bWdsTGNSvPU z%DDir%kg46+&GiB+>4z4NP*4uCLkZEhjeUB-Gu7e4kX#{?h;a7W={@SuIT=v^8Wyf zAO8T6vdjAorEM-U#wFw8SI|;K@!Q|jM(BN6c(HRFn|Yd~saq~NH-+s%4#gOD;g(Mu zlNn{bth5Y1O8w6 zAqLcBThn5BxfEQ90>ji35OKoN=Fx-Pv<&;np>}ZwrK=%&q5a5v-^l~0az`}Ts52() z%=a7zt(aHm3PNMbH+iqSk!C)yecKFr)yIJu6{SA@Af=)|5ID7)T%39C>mKcR&#%~o zhf@7bzuR7c4~@HsKLwnJAGVk_8NcZ*2P_%!`+r!DpYmy-whqs!(9A{ttcMfymm%gu z+xao_{{SLY5rG5d_1S7a)Nt&Gd&{g5?7731P_2v>G&6r@Uo*S)bA%^oKwsYAEDNb_ zSzLLtZ*z+Um$HsqRq#FW%^5~@d^TE*#dx%b?ZW5t_JGObVX<(w;K}10Zd;Xe>`CT? z^8p;?)zex)c>01gc=@zsqu$!NZGGJB#lYs!;gw){wzQYjE36DC6k?hq;onYItrwbcC}!^4;<>GdZd@6D4J zZux{k^my*YoVEq(z~Wk5>xo2ma-KO%J~9U{z0n;~M^>{@a`t9fIi@}RMzv&Qka2R^q~v%ozb7AeB;RG4 zd}Zl?XSuC7k5${yGJ0f;F6I9KP@NkGz=L98Z_F|xE0WRNw3bF=ZG>Gi=x&nn3OAgc zYTTvRlP;I%{>0~rWC(-g@jH;4r2Bi7D5ef~BOf!yN166`lXlO&kGj~a{?->>GXrzo$KY_%!(Bcg;MoE3a04a#Ca$;lZ7(Sg+el!~ zY@OexHx_AyNBfd+f=-QwS=r9T8ViVOJg=rFyvT5P=2VSH?myn493sY+9yly%%h{0U zA6&;c{PQaZM8)__$8)G@o~?N!@wwz5WP{=qNi^BcRs&v}Emqbu+<`_g=vaNSpmp`l z%}hR-A?7ve#Ex*y@vRCL>j^d=Daix5MPd`Vd7H0!k+nIUDa?+y^r6q2JK?n%Z{Km& z2uW@?3+BPHXC2&w-P?5+EFZIOdX#fM286=Or<;C!z%Vu@2&4=uUT^=-+wypzqihpEdvK-gi$iOIjRao6e%ILz_A zz&`LCf9wkh;l#s|;Ra;`JM784D&ri(BdZ6}Wa7_EVb+AJ7Z1@GSDA>_)>J#o!qb+QP z#-}z+B$pHx+;D!&gaRPpyt5O(mcusJ1Kh)OGzbi!OeeWFIT;dXUdfVppLQ&#q9ELs z{5CyjmDDZBa}2TS^;x~xD)nS?(mY+(;lUWtE^#$k{g=^JANI59wfBOs2}GF=v8n?3rW;W9{{E1~NOv$K!7a#>ci|JAY)`M~_h& z9Xw15eZasOM-7dKaLCg4atZ4_%#r59Gge-UlW|_q8C=?Jjw?^K!SIJP?p!!_8`jaO z2*N;aUczU%*j=#*g9v6ng1dPmKM zJXwx;xC|BpnD@$dAECR=f;;(oG;Lp54{`Yn4d2^;9{!AARJ;4{$2kR7GN7Migmey6ejOxxlVNhX8 z-`ss?e@L)=T$U1eZS3c5<^IXoze8@hkvBbONI4)Lb{^k$A}4VSkjR4&%l(}QQi=$&yd!hfhR^2rM#$IVB0d1v)}ZpsLT;&xh5Wg^56M%5J%#eh(Mr3vXTsfud&vSi0EV6Mb1bPs@e6J}p}YGVnNqSSs&q z$+Pag%h@=?U%5M#`MWL+z$_MHFy_ZLfGkGb9Dcz#<&j4N^>deMu%wn@H+Hj?SR z!&=X>V8D)ruMRU^8vMxd>gQD3E~|7dQsYUv^KS>m*g4JI#9J6YQNLpl&oCJ1SdG{0 zBhNFIdDl`iI)YcAx336ZBb5*@A5!sLT=5L`dxeBjHg=Q-GC z1;~+Pj@y&V#qnA4!s)PL=0^h584I5YB+Y^NCiCz1X*$aP0Bc*y`nH(=0Na?l=eE@r z34(KdVzFV>#{HQ%vbzL<;&U9Z3+6+FZ`|N(e<$f2fDU=K$;|t(juv2C$hoU1^hK{p z5^4J`5ptIhQVlY6y(o&(&kzS6+?}(WwANo-y9xfo4 zUak;;xg=Eo0CI>tTsHF+UAoxg<-V8_5;v}{CPD6U%{F+BiE--Iqy4iKH}t>`{{Yz1 zGEnfclD3@71i24TlY#A=p;MfP>zKeVv0$ee7#$-y1PH&2Zk%*CYL0IS&IDZJQGlu) zZIruqY@CzdEUU31yhu3*-PYLphMx|s>*DPE!AHzH;M9~=a<-@4hm?R%Hw?fB&6-bN z5E-Uf(3lYMCKKtVJYB9nWjrzXZg@INgNbry#JNLXWF&S-7ceHk!28@u$94f-$-+nn z++iEZ#kIzVx!S|%E`D*QLU7NSBF8@Ce|~*g9dh3S{oHAL9o(nP<|zoH)(v6F0f;p4~JqA5Ak9T`EY(8k{Q|y=XOeb zKyWU<58sWseXsOFe86`DaKLeE4mK40%(JuZbAQU^u@A^2nYvcjz*Sr>fPI^92MP(p zJ21C1b6`BhqH=R`fLz#@cyk<bIbwu z%JLleZ&R^~cMPy^a`6~!$u|6(iJ8z}iEHIagU zrK=7DGdD-%{WiA{k$(aHl1tuD1_NitIe}v>^GQiZGn5jc>NMY*zlk ziF1}yOqA!j;HAPR^#IQZLCOBwUjG0m!UfEXzL|Mr0?=i5Ar2Te+)cLh6E7{yV<7?% zeB0ZJFwOk7H5~hrJa=-3M`C1toUCA{Gl7>j!(e~QDu2RR%V0IXQpa#4POJ@dI%&9&p=)6RUmBnAV<1<>2JKk^tber@nN zmUH1rpXE~jzsGItt=0;481|t{{SSwck=q5^Z3PY z;j+`+uCooJd)qJTE)4VN zo);1qeFc>#>Vmxz;DN`9JsANRj{A(|;;JNTYyfuI1CLRJHTn*>c${FQj>+t{UQ8ek0wZ}jkdWS4 za~srxEBv%$_*m^X{m#^5z%ag^;_xiN~{_X=yB}~3hwSjsCBO?l zVwJ(y973qSc5{QDkm!r(zmi4;^gbNk0_Vq)< zOJDZF-Q)Hr%Z3*3cJe*i1mT?{iGxd&bM>*%ixr{WlB*oLSi|Dn9o-0I*Ez)OWcKm;TD>%VuT5xgsm`Cn@3L?6~bc zT%=PCxi*{1WO*OdVRpdAeV0sZvD3SaGU)`asfnC3{F8Rc{{ZSiwat)`Tevx}fAEdK z{{WJ%4H5=VYXd?vmudI9@s9G~0NvhL{1a_{Y62OZmVdmbPItHfj-0+jR_?EyH z=1e6S25I@k-1B4oMkp`{Pxj|$KagfR>`Y4fns>4z51=w6ohuqsLd}eo%*iTR=TY=>`doDvk=}dldjzz_$8yF9nN8P zNig~Bg8-;RBdAUck(SQ$^HtxT4BAv@u6z4{~^>l`hCoIOa7zC1)s zPPEIN?&CL$7C=X_J*oAD#}CfPv(EfZ7i{-S>Qi|#^%oO^TNgP4Ty4!V%|>%K;y&SE zk1GyPGjTqnje*cJ;@2Vi*_!_Vq);)3k>J#vz|upgNhLdH)&UeA|7Q@emf64{@^P;%V9YabC^3jGk1((Be4zB4dk0yhs=eVB$zVi+h=$ zHrDsEfq91HCUj4f;nSAphdUdwk32TO7wkpZ(gSIF@oj*);b!Q^n+Q6&575{!a$R=w z?!{?7+xI@F$>`6M)WZ+^YTU9oa{HW1Nw_kH2tRBGC-<=+bp4ib9iL2p%iNIx#bN&d z;zzr|X?_0K7slU6gR^7;zlmoLe#;DwXN2(mPX_EBvo0mismNFFKQ??w9t`_m?}LUk zx#gbV+ezY7fh>19WXHR4V5WCrJ=?cp&&lC>{lj#FtxRy?o{|3m$V6l7W(FkZ$X^T z`vu_#rsRL>#eGT9!^cs4g4)ij2QO9(afU(9)$itH=dO3u>_@RO9x{Dw*dqJHJPu9u za08Qx6S+dnG>mhUc-t3Asp9#VxE0(c+K2XT)S2yxCsHn4K)dmC9gN$XRu+eRLKoe> zPT>(|OzR5(A4RLtRyU#BLO^bI3H6`Vk?H)O=>3!8>1^Y~8Vs!)TY$V^s=4_$sBLZ!G`|a`8W2(z<$`*kM}zSgG}sL2M8`VE(OCW z$m1aQ#1zbJxlj2LU*Oqe%srADI*11ESIg;nkDH1!z2XMl92)A$8j#Sk^W%Xjhl#{h z9u4kR@L3idcet7W92wPy1PG6G4pV4B60H0g_evyPA zFfDdJ@nG6q@0ppJ4ngEE)V^~#fY|1|2!2_G!zcMM#gR7=>L8!$aRj=`eX?$!^$!<+ zP`3H~xAt2%nD+N>LjEI%1N^@~_r{HsEU%1YZ+2X>!UbWBX%f*V8M2+p4p~>+i=S`; z=-gnN$7!+d;(A<@CP zicyG>bk{sbPXfd6;~Hkp#fK|B2Ja#1WFJhjGT6&`eqtQNA6BpJvOsY5Oo1*sxo7^Y z;8vag0Ngvz{k_Zmumx?qFZMyNub727YzpydYKPe+>1(NY?jA>fkU)#L@os>7%Tj4> zS33sju9TR2oJk+ zulox9CVAlYtp&CvNN3n{FMA|ot4h<>rn zkNbAHAGT=YpD*NSWBroRSU7WFJ>Q9P!~Xzn2`e+{xV=!L1w)v?Z1;`u^f<)K=eQTJ z#DfRbiH9wS&Tb!>F$pui7fx)9AJB}Cm&^~Sz#0>dng0M^+gFe6W|($+ zGl}~SRO@6MaydjknBum)L$9kSob9I>pAD77J~AgoyTLYxI|ms2tQNM#bD5}jsj>hc znobu_#k1B+XLaPgn`*}k4psZM`E8*yZrwt*CnOgjC`8As!E_3oVH*^UXTmab?<=@<4Iq&p-7mEE07V&n@hKI6omk+3mUZgNG!BOa!KHp;q{ z^QfJl@?|nXQUgoQGRJQb7qpK#ed3poR*xe5GEYdo3@85p3r=I7cJMp7b?|w%&_Dbb zUW~r;;va*5V_5fN5Y$Zs@zNZTJ!IQ4wTFoEW-xw@*U6Rqa?lNQ1+X`T;zG5dI?JwzW(u;@w$yn#|E8A?%Olu#({{STDZ|ny_ew%}Boqy5; z%k@3d?xzF@!{-3m`<7gQ^?o+i1hsZue6ida;lX@4WIi(Mz|G4uIG1_1NC(p$@CT`{ zxE-w*+ia{lEUvw?=&^6j@_M^&rzT3F=Y2=6T#XIKEp9`8WV^jb^5D6I!uWv<1k;B| zK62cgbr|(QLe>lGkENS~Gmy#_cmWB)EW(*Q8 zVIfC(Kd?Q@S_*% z*Sk|AXGUCv!#zwq&DI=ww|aw5ws*T5yiU5o!c@{=eZ*xgea~aZBFK)(a>8$lCVAjk}ma;;cVFSk}HIA zeq2!gEPTA%uJXyAma|)G$+I?2HgNX$H$u-$UCndL-KAxUU7s>^o(8-YwdN!q?k-{0 zmKuD>6@k!H$an{1HM3hSA9u$mZ02z}folH%*zlGQT1rFDKBCyaON_qm6GD7k zsi)oU%KTd%VJ+bEaPa>C+opM(Z!L?j7ZUopUlYFW2$~k1$R^(eGu&!i$-Q|Ee0~XD zp&OExTH7vL0QV_nj(ffOIO^E+Nz&&(_i%3)Y9@=t&8^&x+pvk&A^aC8KjZ_9v%!uQ ze`^OB!Lh?<{8_sY0vC46*33g-OOO^=hY;*!d%_Wgu3^65nKR^DJk9cu8l?NSE99y6_@y+b*S%rp!@LYReq|WeGM%w*=8rAob z!^OI@*N%&{@V92jaz;p8e-jIF%w6w}G}092XWD$W@~~s2xyde6?%8n!EYZy)`?x>) zT7`CNsq6z#SloM+hW(?Of9;=Zbjxz&Qe@h2%9`raQ*@T?@h2;{C5ss+7-6m4^>8bj z0@f5lZ-(Lp5EY-1ZaI=S3GP;$E_do*1qhhse&Ov3%cm7#8q>>) z)q?anySINK$Gr2*v@;0>EJM7n7{_v2W0-+nC7KX8AM!h$T@?z#&|uF1?YmiHiD5o1 zI)?8_80;R~2OYbVH#rDo8pX}SgLj`3x7+^!WsV&6xPxR!gKa1@Ex2`a zz)kS4<;LC|@ejq$F~=AW2It#oaqHCeIOUxk_Xu|VvrL&(Vc(lV@@K?n^*Ftwo{jmA zN#*;TeSNZ~C;K7l{BE$nSke{$0B(eO__eXcxNxn^t=n}hO6`4T`QY3k&9v|`(`B%0 z7@n;gJ!7(Gf!T4j8$!O};#W&!;(9hXi%s zy~V(_)y4c=j{rHnB5}_jRyTj;$M#o!O}Wxjj-{r7J|qv?LTvKqC!9#!ox08Mlm;EJ z#hd$T03XSAz9gdeYr;T)mJkp!xR6?LEk%55mZbB0T)?tW=H_uMud4=Gabs(7Ik|{% zmPXGzXs2_x#8Z+;kt-W!da!gBfxW|7@Hl(B=X-UNqLRmBOD}L-yNqu4rPl!_S_$7yUR=F7F#yW#K#Ls1Q)6&!zR?9 zmUYoj?st5CrK!Ebjs{%a#~j?4M_l&U*Z%+z7@zWEosWkWM^o-KDYIIyXU)T3;Wgp? z7hTnXfN$g{Q=f@5G-q11^*E$GJYQ-4-2N`xl;_`p%T3+|F4A)iaX((Xj_1D-raO#h zLJmf3f(o?8jkS6A3?UDK_C&ZPVczW_(fY7*Q~v-vTyXO{m~$k2{{SZ3gE0kzhB=Vf zJ7RzJCNq;ex8b)D1XG#ZtSln4Vog3MTy7KY%7Md9Ce|{8XL#x(sy+74H=8+on<8@L z8scZn#_=e;CmOj^XX1wk+?kTb1Eqx0UTq?T=1Ew$8!tBAEsJZ@+$=vt$&y$SHuoUO zNW9xOZ^XbuaEL__uRR`{{Sv3+1_jpdHaM07}-?+0BPMs{{U~w@ByTj zhAoYaa*^m9uF}*ulpXy6U$|<3xx*cKh)z%{mI^c)bLp6%R95g`fex41M+u| zFFoFXe#di?;J@K5Vq;@I?l?EDpj%G-LxxY;0L}WJS*{V~^JI6Q2{>jSaV}_kB9>pv zp&zUN0PM@|UGOO>wzYMhtD=534#3WSlpM#hj6rterV+VZ8W`-*V-A8pE=( z+~K$hc!&-xquflK+u+g0(o74AaU3_}^NG}WwB_zw;bq6U9UQ(?%ye#21Tl^yz~@>|Bzuoz1b1h4i@Zk! zlE*hViF7{fo-J`bGG_M3J>8Jaw)+Gm z9b8^Tux3Bxay_m9nfr1<{>41=`C*h~xIlMZJwkEM##!1q^C!ESOgeWvHQZj)lk4m>;!JD)+3T4L&haVYZfBcNW0>gt#2=UL z*Z_UPxv!&XgZQ{11*#lBEqcniVmVq&QFp6FX79}C;KUAcfE+P$;O83$w=B_j$a8Oj zu#1G6o}rNrOIUK=CDq4LB)PMR(}_Dt7oEFH6eN+Jk;>lyJWR^Ebz#cJTSJGl#nhYn zmhlL~SaCUZ>#}~&wg}gV9S{A01+h4f`E@{j!Qyf89=#_P@iX?cu|gmfQE_QTJ>P7`R-rg`73pYl$4 zGGWJ=Ov7LVK`gYq{&l~w`K4tpANa|*9-iU1F!1tu(=0zzc$5WwKEj_x%7g91lXljQn=WVmT&rwxHk}~p7<;m~=gS&78-NGaK!AtjWBaju3vbf~ zK+o+m2OIHfuF!}?x~SP37mlR5tEW3U{yexek!$hU!l|GnKKT zg2`=s+Jy0$Jp z(mS@SEgv>DUlvCq7R+)xiBCvp*6JBB{o3G?N4suC8+_9PE(QJ|V;V1?c;=sE@ww zbBFAOKlVvT#Ikb#0J0gH-3+b+Y&@LB7&-6uBbhql(18BjPjWPMD4T8e%kVJaIt2sA z#JEBJNWVW27XAj8~JWJfdG5g z>`_X4kO@=<= zS^aV_pB5q4?Ebk);Q;)aI{hqMLWg;TesW`XW&?rsA!J}SSUd{*+gR0uB)#GcF45o{ z%y_t6&Kd4uvd1oI=Z|93mN9+G=6Er-GL9J+aOsjJL~3?j`k!pa{KjR|b|~?H>R-jA z<1#G^Ruimne#WGKRx2AYgT~L78P^{Xq{HgQPd`x1GTD7Yn=@jF;@q`T+}a1vi3U;oE}~d%s~AT%Y=H41 zxR4hcI<}r0L>IW@J2u81N5z@TKP`?R@^@nIVVog0Ueav*ZA$eHn*=V#&zSg^!IEi? zt}V&P7{?C02$y`>$ihRp_J;l2#&_!3E4%Y9PRo=LVvqLa2>$?Z32YL1v$zZ9*@LN( zIFo<-O6#=scLFC+tK0_eu5sLD@Aqdre^we;eoMOUuntDfY=p?!^$_79<-|eDSzsnw z!q#X0UsIn3GWLmB;zS z^G;sGED?jB9Ny<`}>u^uL8Sck)@oC&){RPt_ZwUT05If1uE!VfpEtB~9ThBIbs z3yINwB`EUPd9g5HSX;%ulc12C@nD|^%#XCAVCEbx`mi~aX3YDN)^&V2rwx(JnKGZm z0pA}M1pffp=c^ex^0`E>Gn;7y_$45V(U3d7$!>a<&M@#=ZpOSZ<0I-<#Jmss+&F)- z$1Q%R0EKaRf!oB#eAt?{GKV}zP|AI_#JIU`={c(my~u6Gxg(GLur1S)4a<%7Ck$n$ z{{ZanAc}Av8$Jt}b2meXg!Ol19+t$E+rbii?nPDlVBgvovMdQaJw`eHy`axG&fYUFv@xtcpLqhKuEZ}2}@Ek#sn`pCL zl! zl5rj`(!%49F!y&|?w44Xj$>!5u`U)+&8u{HLv1El3N6GQWeaAgy+&HF?m{^50rMVr zsc%<$G|8dO%%nVb55ggPWtv=m#f5+D%?>RP!OqE<3cg*XrbA?vw^;7#GEUiN=_B!A zk>ISoY{c;WEWIuL!ODMYR`vav&~f<*wl5BDe4yiNlGrj(+g5XPxhWp9FT@{-un9g> zKV<@QE_LyC`4*9#+_u@`0|^e?dXCG|Jn4h8xbbi}; z@M-Q66QCSOT;HUE0<+&248OK*Fuzk2Aq`JZIxAPnPqfim5_6wljV z4a9enWWNMkNA z3ki&7o03$`fn_kJJ~gxjJeoeD^gTvneZXEsmk~EhemH?% z;cZCeV$UX7upM1w3LPz2+2dt&ZuZ>HB5zR~4SVyY@x)bi<`{Ot(-!+kMwFZQ(D6D?*F z!w>mB;_1B2ywrpy409^tE`H-qW_7>igWMt9eU}#8Kb7*^b$4V^1KRXDwZs1aU~>$} zt{;#ND*Cmb!5Lgjrgsvdhy#p+Xpk4xr4iy4gRCr$2ke-w&$#|Dd~tnv?Um?TYo6{g z##AuF#F_)FoUHw^itp4BtL@zV0}i;JK+SttGrsJi=RRVx9ms#Xfdb|d+#8nQ7p_g7 zv8%k2clE~*PDO`)eb}ML(S0w0#&9eh>Sw8ibVRZJZu#GdrhG1Cf?aLPOT-w@sByC; zlEC9Vd`R`-a$SQjLnIo9nnrI{RoQA+so*%=;Nr*~u`JjWhfO#Ecs=~dV?v$P>JqZ(JJIr|ZGmObk$i2WAbt8DQyxQC$yvXBk$V2C^xvZI+ ztQ5U%iEeWa#?55dv0ygc!(uOp@8n(xeolVjhW>Y8(>RRP$9PY8P9Yq|5ZfH$KC+qa zT#=BhnLjIr!;tTjZIwPp{D2+Iz6)@=Kn&8^+kkp83cs4fXEp`6gDz6XG@52{#B=4u zEGN^@$OD%gTmit|X3$h75{gBs!5&yhKXU0nc+GD&A@-fmnFQ>K3T%dSxR9M`Zq%$p zp1B}zMp(k>a<5FLHeA=-kZC-*krO(FWJ+gHTsKMsuQ13Nu5|)sd5Ut$?;C^n(3uAx zWUd`d_aUOdI+rILN6*Udh;|d9z)p%gXY)TLZ#=|(7UN;a&37f*Jmk-EIPqs2avWN5 z@ElCo*7Iu#m36lHr>SxA(i-?~Cos_F%xG`L&@=jn-Oj%KP0_b>BH_B!un@6o-*xUsJnE17MoWe%>1%zmWcN) z9%1S#(SUm#pHdXe5Fc>Za`h8nnrV>$?D1u^^*!BuZJHVP1Hsg7d`G7_JbX-PJ0$mIJV` zYd&DKoF7aztFPQ}U^l_OWbqWi_no_7*jeQp07ekF5@;l4r;eT@xk-TQW(4y9rk(dI z0OkBLB3sIL7Uj(SmTV~* zA+{MYKDaH;CdL%ci3sO#BIIF_V`y;YzRUfeZA&=d_hy&Arz&`u4+)m}njN}v3>;*~eD z%B^fcO=5gNf>7{zuh*p4=uU*eeAfiHDC9d;1Fd>LSwlkYFDmITV(zn{Ca5Tzk5@4& zRl)|PnTFt95a<2#Pi%8W&@QU9soo7KA_r8^#JFL~eDS>iW~Lkf3F9vlBuB$GB5E6v zIfOmYtLJdkebkD)Q$WX}Nntk4snqe7*8cbJsGoINNDnu4H)k=-G1BoVwU&o;(dD4? zMP#3O5#WerDB@M;A0vIMvbCNJj%4z+ z3GJJ9I1(bDMi`>q%S_*&byMr5{*2ZbI51dyXpT7&Ir$&6wy4%{OY7~gmiPS*L~8J` zjFr)n?jj%~CV*Z!74NFgrq}dBi?LHA#qK^-0BYCVpu# zi9HG{;tP!1lVb!v)M3CVYHG>3j6mW*Lzr#LB7rHQ0>D5zFYeK(fXAv7x@tWxd8e_X z0A&n(_{D=RC0IRy-8Uor`xQ)H8us<&4x|h9ft?|@Bp2XPkB`ay>l%m`+HnD@GYzk( zMASL!0m)h1!uQm;pE1pn?T8c4u^x*(brB4V7HE*{XJo!SEThn20}3!Nnqjh@>9ase z6d0>b*u3vdPw|xE#!|99zA+O41Mc<8ut2xLA~~WWep^S)j#JJ(m0w@ zym|BMapK#7!)f`SStmkhPpg`TeG^*R|8k?gO>xl>g+V!utK_^7-3$U6TN~hiZ~1>H8T$19ckK17_fy!{TPMq z9g%SWV{z3pba1RfJ~!*qfVbB0ce20pCNn2LTPx&7s=Y|Aww9@<;-2)rWH5MvwJIW; z!Pnd(iQsVwEgnfAI~Q@gLn9Pl@Oj4i=D>=${O5>BtOu@}w6e!3;Y`OO(i8 zy|!a8C~gtC-ikt;=I%F?NRwkB;Th0&a=&vh5^Lkd&M#s)ai=yD+0kTI?e4lyHR*tz z>JyZ9@%`R*4rp5d_i7N;Yhsrt_O`VR9hapv(_@K+mC(zjGI@!z&Z^`*RFgY8nHX83 zHPR$olC^L(hY+ep|k_R!lh~zi;n>+rJ zBAs&4WTI0r2+)yvuk~DWXdMEO zk(^X2@4lOuY~ueT_#B|2rMp1>WfIDDV`t8!2khu%ji4zLNGq1)+lqoc$Y>8TOTV{f ztK+M#k~|PuvGW$QQ&!efkEK`fTI0J@?8(Ih(@e8oYT+bg%u+(^px3f*bV`X08_L?*neJ3>O(uw-c}3s)-Z8yuZIQs z0-*0uM^K5swJ|%TO>p2lY~UxPh}Pv-NTrXu<}p%yShU%z6(xw)X)sCYTbR4oH7|aU zm{?K!V!3lLR^7Xs5ge9xuTI-*KC29+yNT}d+Vmb4DVf{!Hn@rzbk9BP2WI!gX83uF zk?J(pDQBM?Snh~_yi!z(sTnTUDAKOx{-lb{*IGuID@5vjZn=x?E`s2+M zWnAv-Wbfe< zj7*gW?KuE#&Z1vDlF26(|xaC zZ4Wtn!L=LkKcKQcAZH{a5mJMtn8tJ09HDHh8xyMr;~-2JUxMx>heoQ>GLu21^EiH2 z&9V?v)cSkV(O=8Y(GXb2zH8M_B-6+IZZ^J{e9`tcg+hHP{5Tw9Wro{c0AdVKf!O4M za$w&~LX-@EGT>o+-NJ~>IcUq!dI{{*VhNrS1P03X?JH3B<069)5IDzv0g;6Q(o;kw zv5cg~ukgB~Dm|iC>L+BN=-9;RwQ9YyhOqC9hq2SwcKG%eXPFx@oQCZo9h{k-U#pE? znTKF8fbki&Iy=XN@YWTo7_h(zw@$VzApz!`S$M5>aMmG=5^I(@soR*A8!4`qR? zP9}x!$d1v=05E7PLG*Z#2&IJM{ZWfGKp&tMKI#yOUvEp?~M!|F<~}tRa);Y!&DiOEr5V zMsqC>@BaX49Syzq$HeBlvdkkau%?m0Tqo`9@q{V=C3gzJnzp*ALd*X?NBn=_Lds7t zd1z3{68e*4wSMc;TqK-fK6t#)K&tNoIX$8H>t>=)(Pga5ac7@V^b zM)!+uJ_Qigv8;z#U!8vP%LAwmn=b~viB3YK!a1as80*~!uN z(sT0HO<_?q((!g(tKLH$uu7bRX8nAndE}<-D#0aH_;Urt@ohoRyPVgoaSAU z8zbtF;Dp>Bx9T9r5n2QGyI?;hIbEx>FYmJq{SALFbo@oV+CkOJV;ro+&{zW&y?ic2 z9-W=(^o$7R6jZF=Ichh=9vV>05vL}@*aTEI<1tOIz(I8(0E>eMM41@nvYT`6u)o2S zc6I}6w{l_h2|^W^5X2sFj4$0;sH9N0kLI*6XVrNJCF)F3>b%qs6<6E;NlkxQ@IAaF ztrWkJ{io*m4l8{9-glI!9%#KSC$I`j@M&okBX9R1|GkS629N4e47A0Lsx+mLU3;o! zj~$GeUG=3`{{<8+yQRDURo)}LjC_`t(pDa(^7mB#h>p?i)a`w0uP@tPKUY_J6c$;J ztry5?G|A#=&h$+6oKU=Q3Yol3`^y86*k9!dbW)w+a*;YPp?tz2Oxyj@=FS+xkv>WO zZ)Lr*+^OpYn=T#Xf*DcsPBb5eQj;cF>*G4qdl$f2_vVsd6K(YJyV1<)L+4#JPhLLX zMzk{;cqJ0oVc=5^8oe0lp77cVzBBODTI~Lam+t*N$8T8d8?sWl%z!D;R zrcCQW0R-=vWsaGzk7NvKSNED+&fO*b%Y$j@MzlUMaFV;6?%LM@QD_&9Z<#y_7yoiW zaey+~vB)QgZM1te@lc;Xm$0}weD4omIz9?q(IOhx-5TZgqJwDUso<}Z>^*}E0H{}< z4bsfZu2Fh>S;{t&y8z+*;IWrfjM>yAw0#hwD3>mQlN9mS=n7_B0qkG4+`lh-8>*e& zZIYJ%BiB@O`5@-Wh^(LgoUPBRG#nM~@`fLCJFHkW^kU$?hDL@q5v9#0fU$oKy@d|T&XNeYRfu4O7ld%cgW#Px|w`*lI5P(y=Us!pbKbN&cOBbd(6D~8{&j9pB zw@aU-nC<1TiSwN|0B)ax@girso^Y|s#TTBJ?GXk9+wN$L&WNS#bk#?9C{m6SsO(bi z*Ly2IKu7@p5Yc78Q(XmHE3R9i(wA}dX!%XT8siAw;ajy0VEeGkHH;b!*7IHx)tn_8 z;DqOIRv|T&`VmiN>~8mimN$Xhauz49{XZD$?}P-JTazd>d8;|!o>MK02hzJ`HLz!o zlPF(86MJFL4Sz3}sK~|%qtsUGhcskkN6`&I26v)Txw6O^X#tw!BBJ1^ z0c^kqQqmxVgay5(r8N@TI|p@a6iKx5;^7GScgcm2!a0}b?;=A$1e6XV*AUxI%JC3O z$j<=z8Wl2xI-&mVSYU_B88>UUP?nv8oE|XgE&PLa*1E4X?}|Pd5y!=1zmAdmerhqtJ$ zindQDC>d^4xQ4ShA)+m-qQ$3#ir7vgIrkqcGZ{0S%;QTCt-qo=ZD6|jKYl!8^Wc(` z321W4w@qddx!_u^ju=6sQcmF0&mF0zT-+fIkstcb8(3jcx1wEOtN4OXTKVj(#NI6V z5H0cHlPTFdU|*4f2#Gz&Zbxu>H~Ve0F)`%ll+SDFD$@sgXPh*#|MaF*{a?Looj3|r2ifK3mPSNk?$n@Ycm6h>&Cg=+SsLCd zpJ|j|Ba%QV($zE~HUD``lw?HWfLs`s)K&Yn{2Ws0N${pw7Jr6<=n(o6r0-J?u#<`Z z1A`&Ky}4aQysy|XW_f{cBZ~MdfhCKfl;U58$9L^7DXIf7$LN_xl=_fCVhHNwz&udF;&`5DTO?R`h}kzLaoxHwAsFg-91EgA{9a7TsDnuljC%jOa3r7X*oz&+bySxGj3V{WT} zDI6jtKlG;p2a){xiEuT*hFCAxzCDP?mre305z+(Gs&r_chKEiew@bbMB+LuWy-zN* zmApMwt$|Oy4MJR>={*XeKE^;}DRela)f6uI4`4xV{o>&gy0^N2tC*M>NR>d&htlDl z&Qs|#>#%d)2I^T@gF05uh2~^JKmL~QNB@zWZmD1kso)l8=I2Iym%RV^P|;8X&-8s) z>1|DyL(5?3&IyWt8iK+Nq|Q{pvNAh4#=3ij;IwE2*bpFJg=EJ;6lYzE zzjsx6lCQsVP2@$Ry;&yj5~74cyl=B^kj}a5fe?N~3P17U8dQx-VDSTa!3pX0Na6c@ zJZO80$tSf0OMZ?qPRWN-_}l9D)NkUUb1`+_ZDXYx;u3e-yo4njqZ8-sYOO(kuQ|Lt z3KmdJXt}}6lvns$3-%st#C8POzw+Ee+}mCEO>IA61ZUY^9dbZHD1EyO)_^mmstzFZ zWDn`s1rN}Of8zJT6bI*$wuzV>&KPJi`#PPft}I3AFw zJO}4>=yAap%IMBiXdQmuU|;}t%~4DS$AW+zFBXdwjl*BLWn1ZF(?r>DXPcaFybajn z?RNl4=C~_6A+e5K-klTSXRRHYh3y4t6E|~PVA;SuW~mI^RwIHR?SylT>wEz*3!Z5W z&5hMoc~V~Mv}k$h$+@0fCWp(i#`?^a9@cw%FYda{tJ3_(6{ldduz$)LB)k6~xNdZ1 ze@t4gFoF~GPgS0v%xt14!GEa$@h2$5Z~hq1@jvoNuwvbNldVS-5#W?5ne-N&ln&?c zdb;x;>ba<10o~6$vh|H=vkX}yNkGho-eFF(Xz1ms z0$%NBS+wc}T$RK|UuL$S^5K^oPpRKCal19b={$ z{tWL{dbRNaU~kqR2rUv>2o@dNLMB*)V9B(;vV4lLbskT{%Si@vRHcn$KAqJS?6HCP zF?h;=lk>s=aZr4Y7esYm7;aR6io3PmQA^)C^YIUv#QBqJPhN#5A2ZYOPgtmA)H5A7`ekywYR`Y*6UcBc0%dIQhj6 ze|Ifvf7Mzea|1aCMnSRRq{b0hfxOYWVA&Aq7OEGK(~Ylp_?tYxlux~lOa^W_V`G^B zsGPn9+bEU>(MB!(<-t4tj=&1>)rAhNsz}Q?&16_EO2l~L?E#Qg zcVysBH(A^(#2vP0Asq4t-veZpdKAiFgmkBF4HTDl5JFXbkg8O!!uXe;=P8&SVK)-J zr0?m7eT|nLi0HfYT0+-8&Y|>QmiFZFb&nk}ak)Vm@PCh$WRtu?m_bvQdx(y7TrbpJ zeQqny=c^#cGE4W7Ay`CbcsP6f?v_T!mq&QbQ^C;CDr*-x2^IWa z=O8#P6!A6E1U@)6BDBPqdio%r=?DjT+2aD>Z#|vWw#XQ1Q>HTVaHhKRVZ*q_`Xcqu zSnjc5LCk%%;o>b&P`pO1_L6QPXWi^MWr5u3ndT3<<-dT5ON9HvI&mK)5$foJ`O}Mf zx~#RcDWI*+mmw`4DrwK9Fho|stb{r*N~E6pjaUnL5GB{?<B5Z|J~wsr9>pGtvZ8p}unX%RT93euK1aQQt=M?^R^wsH8N1%yfubg`VKM*LyK% zA1&>IB_wsSTb~Lk2>T($l_$I0%9-vEj;;emLQ>2KKYnj48qRn`kg%Y5TlpI(`2RWV zq}}vO&jg6e!gqZ2{iy_rd1Q0X%+5oX*@?+>owC(Z)T}z9_0_S>s4Nj^*3VE7Pf=zv zris!cH0>05=V56iXaX@qQv+8t;+<&laQ{L{9)|$%djqUm9wxf>&>z}=Be)q6x3Bo@ z92=J2Du8HBNc)EINtUX8HQIVT7sJ)~b#P9J070wK&j0en1_=voC<>D$Ehh#C(_mG# z3Li$f?(_dUBeQbqLN)7h0q|rcRi)+=hT{gk-SYdZH{jWaMG*i2KooV$g+D&c#z^$6w#^}(+I%mA zD_Delc;emi>(MhJQ)xGyVGseNuaQ(F7iQm+wA3<^=_f!pUg^qx=d;i@T2O^HO!wUo zh%At*%fYoUmo!JM*@`|*GdBv%Z@Rl9YmtZj!B)e>iO{sOasT--aNP(tbdrtUndc4r zVv+?L<%z385>djEAVYEkw3A=JcpK+QrKxmg)*q{;G0-NO<=NXEN20<~bNY_%O?zLx zJ1gA$1lCp)i5u!kDy4y%D*l`xI4Pd7u3nXxHm(|O)zwv6mg*UL`JFh2UW}=w(J3PI zgDOH<eOUD!?lb7Ex zxID^%maB)Gr5D{!lt9M&1WD9$xB~F0zm(N8kvj9FWdE2S!ao0eG4^y|R4aWtX2?zG z``7*_;v&a$6+x%*3gIC$vlsXX<#RZTh08_sSBmPl9p)*dvGQ+r4t(Ld4cF#@<-}|I zF5W1-(nW{7VnnB2?3ksuRN{6~IE{Bps@`y|1tN(v3M;>uK-!~OSB~Qv{@EPRIIJx@ zDk6X`MA5@Zf$>dP9hFZG(yRZ{Xb%r!1$=}KcbcqtRn;N$tAdC`#&DCeV{3xA-X#WE ze-_HCX_ujzRoP=-(L4_JKfY(_ocB_3O!S5KMOVKlvAK;vaw!Ps$7ccAvs$A%lS4M9;+``RAfWLRsA6zAD=!fGQL^ z`eiOZpaUVUM7_^uBu*{2&{HjnsY%FgD(Kb?y0V_g!Vt4~jc6n`gT5xTVCMTk_9xe`g2u8am5QKWlx|cUxm3)2Z5v%uZdd&no~D&Yf}A*X4fRZ>@e1$M1}G6})$4 zwW-Sy_ta<_^TnW7(@~8eCm#C)3LNtKs5%tmo&+o|x(b%0Z3(}Gb8^xjCIi@7MR`+M zN?l|2x#*fN(@MrxCApl=qYS{`zd}20c-bx;Cz*U&RxI~@m}X&BE`2x%pOgLQ^;55! zhp6>)IW2HNnokiN{lj`9>H4O1K{jOhLB!8-By}h|~yuO4j zMst-Rh!bC(Y$)$}n0?>rfP(c}Xsm8RVIw5V=AXt}5I zR;Xw#zJ@qNO|v|*@FPBqqN}h%(1o^><^>|DGJMN;)dX@)sRiWmzF(cnJ_Q5UD)(On z`rIqeZu6-GHb~mV`~&(&17x%K6!sD}F#6s~85pHF0EWd2CMZbxfC<(=!zaKi&|%MT zL;l?745)MHVb{LpryV@lz75O^fy+l`&-@9q7eV7;qmH8-Sl|q3NT)a&;tWeWmgRNy zxwKxGM{k-Dy5L)@}q;sus*DBwP!uLB}(|E!mn zeu4+ghnV)xp_(23f=1%7%ijIgs`08jWA~Zk-O)gmTDf>{nm&5YqK{cK(q?zZKR`sq za4_gB?5O_YU9{*02lg+eV@n=Y!`*@v+gw`S+Ci+D3eg6XIv=O6oDp=5V|1`eSiVu| z0w5m0(S2rh~J$S&qi^)d}9{2*U2J~OfD!#dq zIWub|w5d?9f{6*7IO$DM3cb~*i@NYDW$DaCBU*`xY6_&^zrP^1%HtjeFu-2s{Ich6 zR~EW1svzqlQypnY-L`JR5eGJ02fgc%ky}^5DVe$t%;)eoen%^?_FrBC|N5wjey{vtc_Lb7r9MZ}*;5B^quyPy;+66xERk4B+^>b4V|guc4bYarwEyZr2S)%GPlxvl zSEK@rS9KAclmr!d0;t*SLIqP`4aYY^cNB282{|PgHTc>DyBgyko|mB|E&5Hd70#iv zGs%9^k~#QD?(&`lGOEV~qZ5OK_>Q>rva{ZGCy2HbK^P8lE@|Q?`qvtL3aCDH`Tb)@ z_n6NyWPzC3n3tY$6RAW3EBUK2_M%4z+cIwrKfUNw2E`z-kLIv~%Fn-w%Q+y`nOw#xUvwTErj zYBp{Qe;1+DWKxi8`uz>=nk+8^U%6IX%qA;8j*)dv7;d=~G?`|Y&x$Yv$YN(eM(_BA zXlF8aE_G#TMru#sMVq&YiFm{=7!mKa%KXS02lffY4;{m2$7d01>E!L^i@^>z5csmM zQU$?BJD^`X&s$whr?gf~(_pVUi-tK{ixeZ2=ZDNs!et(6T;TQmV~1m0g=bR@(MW0M zMfDfRhREY^6q@Y2--X3cTvWC8xm3cU;Wjp1kAfo{j>dl2{8sWqZ2|za_5}s;TTSuR zPT|*dhCqwGyar4A*!hQr7Ykh2XK8x#I6K%c-!}%;ln^C_>UShi|Ef+C#4;jTW#Lh0CrY{k6&-Nb|^OwAfuYU}2AR}cuz zb37AB8<}qVqn4z1`*&wrR-ui8Tx3e{X_stWfTe()S(SG(C^mRt=a7G_7Zg>4MQqZ1 z3JrU^w-~K>F)g5U_s`c#AW3jQXzZa@?YArMT$@PyA-ADa-f4p!zjWcEr=_ z0#9ldHgGkX3)KZBxkwYL;38zhsGGGETQVP7dn9;*7mPdZ8AO&-(YX4Hn$*6Pi$05( z>cE8+{1|SB0)EuUSV>NrQ?NG%n(w@-eHC_^!_H;2rw_SQ`_RsE?}4Z)jCf@xT+D7j!z>UM;;u)U}l&se0g z+Iz~KrwSz;qjpL*Ut=M0@K!ub5B|9o)tsx6g-gB#q%t#}5erZH+1=1-=w#?aG}D=b zDxiUh)m^|qU@@^Q`xpnLI|kmAUdZ;+9l~oLN$`))_!_&M&qfpNs}k98_&w(?|8rb_ zY^2jFwa`EYY&}=y#|>+}lsnF4Abcp4s-d{Ltm-{r88vb;$X~g}LCfsR{Tb*xsl8Ge z#&l9rN-iVzg%o-GtL8%Q9k6uW`Lj&KEwi87_Ve$6e=c@VW^Pm4Sp;<#m^&bDwD*R@ z9|Hjf&G2jT%r#Z}#V5gB%HEFkj(UPeGuf@y%r;%_oHxS?=7-FTcaCnEyj%JVmo-+Y zQGl!i(qymnQi8@O2hgktAJ)94$^5{U7{Vn7Twu_suoQ4(s&Ftv0EJbznqE6C*Q9_) zx%hkgG6V!MA2zI-=RErPQ!ErM5W^o=D{Vt-1cu;z8Q$jYUh3$GKKK%NLDEY8S8q{a zk8FFm?X>zj;P%j7za8_j(Be=LwP1Ko47}s-43+NjHiOmRAhhLbhbGU(#Ml4YzOy#8 z5@SE}bBctCjxwi;*x7D&)A1Zt^AjpemXN7Oxm6te^r?@?E%2b`k?`L!m~)+@tn>_M zXSH@w4^Un}e%{8wO9m>6nvzPg&l|{va;Ob(P^qKXIP@Yf5##%60p;W#}M;S1fXJiY=>vPF?D9Q4z zLEez4waA1A@)Iq4eRH(sZCVZ&aF4J+DMv$P$s?o+_Hw=XUPAe_FtfHnV9H~1FRe>+ zL)g-6UoyhJUSXE0gT-x86Mk?#K-&zC+N+R zI-5BG>A?)3vWC7w0w+y1N#rBHB)@zT4^%Lpoh|J_P%p;)9Nx71RTJfC6SwoRLQZO&Da$p1CJ z7tL$pJKFUWxHHRmG;DQMd~HLDd*p?ldx~#ECW2yob5bjzMSL-Pvi%W~-?dHUr2NyX zGm|TXQ38}TA_8$<3noL`IGj^iEtig+_yNuZWk^zoN*y z)`Nnda=HMz2}XEva8NR5RNzGEkTCCd{N{I%&-=RjC7r&%)4V#$rsC$H_c%lrK6|$y z&9RBEDo1^XN1=$O;J}$NX%7;b-lTvu`c{zrkDK~H&Q38m2QrSJp7`b+*dmePFI3Z3 zn|wXcDm57@@DS?gH3*%!?IYu?rKr|-JN_gz!3&8pimn#&mmb_gqpB87d;tZtL2i3L zt2UR}N@R9itqJlQ3(MsrA{2L@P*IVwKntI3{ZeIB`KaGvJ2OMISXIh;%#|dO%-90{ zTebQLneO(Y0{EhiU~!d6C!FMjbWB4NDg>{a_|@qH4A;u?S^pRElWiErSY+bKOCh!D z-5+RE>R$(h(nAf*R@JkLi3m!=CybcV5DIwg3x8}6iEk}jH=Ei z+?Tl!*cP>$TRged%od`fZl!mmk+51Ux`8VE*ZC=TaiE_c4&+BdygtXekb3il$h4h2 zqiw8|VjFiP-qE~MB=T{yNG4|vr}(-JwH}MFIGCe_DOk=8_V_lJv5I|Mr6*@~{0S&o z>#l;bmKVee8^Rgzm#?@8W?7ylPO0xlrID%(qbz7lzf8E71xMw8~H?Zu?W-);U?-PJw@lxIcSQZ%EQgQhOT$Jc3CCnhva=!&*zcY+_gCniENXP z0S+Z|wwV8=1`wTm_?pZ$nDqUkonxdU9mxl0_FaWzfNV{ge0vQSDCTr;DHNHwYs&_E zcT#B`2LxM@BsI)h;F>s0?KS4duoR$=T!qw{{5eIA``0@>GeqQ!Ed7K;6%=#Bp-_R3 z0th2m`XDPQHBB#;%<_EDd8_2}{oMkl!zr{o2db+pItNxv^nf14RP)sh5$qk%u>FsM zC)^yUn-CY4#Wdp!TDk6&ty)n(;`^WV78?@*@X?nRQ&%<7HWI=kj0)9dI4xd7nmb2} z{#+9#t+&brwBepWkkK>?0f@ijz#tDbL4zNSv~J;Sc)}`u+TEraLM{Ea1#y#gV%O`A zqe*9KPpaw;|A0Ein?J2S$VLH&;FJ*TiR_v<5(bBLO!T*4;Z&4f0%ou{1}yIpUSSh z)e{2=WC;{0cD*;iWsLty8k#iIrKGvlhb9d=6Os*Er&(|%hBqPuc>;i?G1a|&GlSas zI-A~Gw(6b?3LP9We*lWb!sm%YhE$T8hhs8iEX0A(3L!kWKT2GQyqM(s-7YuwPG zV(hYcB{H%@DOG&QQv`Ny&fiwf20OJ6P6(B*@2*(xQeyYxves!{k4SM#t;Dn(3 zH}46EJy;&WDDzT5P#{Adt*sud`>wUu1CWY`4~*en62Ph5+AztiNT2R$IE8z zX%D*C)4;A=PBPAI2btaeKPIu{cEu|Ao^DYisy5mYZl^0hF)q}BWut4J@Fkf+6u-}nG!FHG~2c1QDvm&d8l=4dQw{( z1DBB2vE)r8Xf!$aN57ikKoSd!UKC1hWyF~5d8P;&ITKwEdn>wjbCV%2_3{ScijF{( z&B4x&7{aXMLX(+olXo5wK$lW67?dOcTWVmpUG@v}u!t~MK42CP zYtSGu4+)$^DY7qwE^)|0Mt_&ppXS|GlkvlRX30@Lh9Lkp&!^v?H~1XD68xzaq}S_9 z87$c-ni^Q7u36^y1<^QtJ)0KDL%hT{h)Vv>?#oY-F7xWMq>O2XJ0}1iRtJ0bb zsQ9NjL3R(i;6Jr?7~e>WA6|EBCh$j7NaSBaeQT99^)=4)0V*gFxqv$CXaW9N3yQ;xYhC;Tl zppU^Zez!K#;T+wb?)@@FOrTPzEpi7=)_Px-C-Mdastx4z(!ew1w#tnsN69Si0!QZ@ zi^l#?RSyLPLC36i-g8on`ODX2gt6dU z(JWDSH_%3(Y$LczL4u1i6<(0{fcxS=ORhCik08I`_3b(H?4!Mc)t*|fKtDoZS^Nb? z7Z5%l5-cr)6|)q4_x2)(`jBFyZc5fAIg7-~p?eJRW+o72H4lZn8Ey`&C_15VzQT`gcOBp3L`M$l5gOmhM(uia$g}m$6k+;I!sQyVI<4K!(W0@tE-S$}1 zOzU{h`&6;+qQ?=djfjjonw<_eK*(?{AE}JMI-M!pksmBabX{~Oi9|@Z5zpxm2p@Cm zqzQ!LOKEGonFgl@L!KD-w^~6>Z#nd}mz9eOO2Ld5Tz(txsQv{2BahDq9AV((+&A^d zgYa7ls@2ib*h~Pk=s=_lJCfm;|) z{@P*_8FOKJA)vK5Tu*a+qy|8=8zh)3AfzdXrgn#<()N2L#S<|cG-UW15P+(w-Ad+H z)HP@<%sWC3X0;E~gGuUYt~_+P`q8{&F0~rY>o<)F%T%7<_=lc+dUcpS6-!Gz97vKX zqODn-HK3s%3~!;|McxJG`}U5~r8h2I87dFxz#!Mgb#eyF>Sbs>(_8X{R$webL(I6^ zfkxO{Why3uda6}IMue;~dt|E4*G7|M=qI^+(EwMcaTeBS2?%&1<58xfIci{YKzXpV zV^?jTDu-4A=OHX|OyI)JQO5>upG?ldclqKeF3SZ%k5x$ygY~!NRce&y2Z9EhUd9?5 zGgIc%2&y3&3Hl_#KtS-Ld+puVgu}N(_4O6~jqw-)B%`ipXoFP19z1V}N!-*~RjF1B z_Xm}t@hdFMS6Qj#HY%NHhBSf&B(+V0BwgDJz0o79bP;1qc#I%=BEA1NEt(O4iR?(k zS_t2lK-1zW_HNJdyH&(N0rb`M&8Cq%VjOFE$46#2C>O50`XxgM^(G=1o$t{)qh9TZ zI$%WG``yOA!<3pD>uzgV{!x*$cSvx^9n3zT@BH{XfiIs~n1%r_%~vCuvLLq4D3^e( zGR2H_cMrM545ZDL!GmfgzXYub9vBY2xm-}oq)YDVQC$#j^mMDp0+;lEPi^hn;75))&GVUwKE^`8LlCgi$ zRCfV2w_FDZaLgKc=$-m$+i9dhhbpyv?lfJc31>v%t(1@nLU3Ij%@(0ZqydixQjpZ) zWun6g8`o@S>IYmBh^@td4!?U4_cL^#LN8DTkItidxjY@cE&m?9$7^K{a~ZhlY}W&~ z@NPTTOlc=Q$TfdU2<%wF(b>U#BHPPN-F;3=E3_Qb42j=|Gtwd zbW>phxb%$U=L$9o=5E8+@VNED$Nk1sORx8<-_HcgM0;r`ZhlXey6;p1{E@4C-(o-_ z$;P-e)>@6;t!kh`qe0|pf8fsl{ZSxy>uec!C2u>mui>x+;6f2jzTh4dw^W!lmqG>d zIT0dQ5s|#(?}a8=2d3u98N7u)y9O)+XH7>IV(CXf&(pY6kvKIPyTO72fbhB}9SlTrIXr?>4(^{6bl>CGtayV($Ln^^b)ls4I>j z9qv)x$SSW0{4mA6fu_;?#ZAe(umbA_F#r#5cN*H>YHM|$mwczH3_mpNit9b+Q(dAt zi#iiP%A}G2mD`AEo!(Jj&=xvDM$^vOmLAof{{U!1(3S*$VQ5}yhs^y+x>a(j%_4ux zvoIOutPa_kp!Sf0>rQDiAa==M{g1Dh7dx+_ZB8U!JQ%o-;H>&LsJETC=RBl*`kbQanPRD&f1GI9xI~I_Ga#v6nP}&&YHEmqgX%b%Fx%xKaC+5H%c=%y88| zvhcbSeDAJ+4c$s8=7>`nxhgZILN!ti-^@k`%MS8~iFLBTy^Ua+r0?nS2@&1tSG#s{ zzi0IVCjRIZR_gc884#?!Z?Tu3O%$~g2{d0 z)s{<0>??Hd1xQ0V!M|;V^5ht!=16mip$_J?xH5+;r}q%iK?X=%^!JGvb#^8tg9R^M zS!WWtjDahjQ_{dpC-|?1jodkMc+F*a?lsvGI4mNf>X?JgJOqye*Y9+|GtRv*RWZFt z7D(%k#(H^9BY`30=(*{&30ZwYeN+dH^Ze@wGAHO7zg6b;32fC!5M(Mw*9yMJ`6XEh zi}2p+&%kJQfMxvW$7iwsHjfz-GH4i0^JV^j6he$fwN%FN(rCi`@{2NOpWE42oPn z7S|zNY={jmyu`5ak9j(qZ%-!r9#NXfTbMxr4YC0=+hY4slJK*Zvet0HS>H7t&@rSY z=$1;7CGS-%4SRb}P&JAsBmoH&uYLAk6Zea0)RkW>Ky@EQ+SW~k6zj;Ol`^pWBgm<~ z?d})OY-Pjvfg6`shnSe`g#+K5+|#%f*i#;e<`YvW$p{ScYELQ$=Y;;w66pPaDc`=V z%kN33jF>ZbinD`lyheqBIP>`k&gC)#L4)}_=FS^~*5*e`8r+Nr6N^CIyAw^d8|$?5 zW78={WFk7Hy_ABS!8%!U;y!I6J2lIlZ>>9@e87T^BUBovzdKm~H9*S0kn@8p z25IWzqvm9y<3U2=@#rKmfO92lvEK6Xbp6IFgLNCYCQ^fCdKE|Nb(gt7v;|McZ*nz{ z88p~Ey_`wZZxe^HzX%G6ZG=!3drm@N z*vWO&tLXaJs(fH6ZRV#1kLf$%PZhAOSUBxzWZ`&hkoWY1pTQgQj9PfeS@e_!eOGy2 zeo1DMsL>4nF~Ui*c-wzd*7Ye!RibOR7bYyvw%sM^cT01?B1G-JH| z3Uc&Q0&w>-+SOFf+lPDMF%$xy?C=vP2faVQcCjP>j<6SV?Aq0UHY z6y+fe8l6^ixb919XKs>6D~!O~w%2%Z3cNeQ%l?nZ(Aio!7^>jV5*Ei-?a#!k@TZjU zO3rN+C-R1coBU>z+(skUzxg>rI+;GHkpAbWB(C$qe-0@9Xm7!W@+mt#tu8gvvW-UF zGIj9bOA$sjVFcwelRO-c7&G_}thX%WSpuw){StR@ToXZWs2cucb4BP7wn8#Q-dFUB zNb{Kc{_ywyb^3r~*@co?F98ayS=-?9LY}ua%*_RD``{IzXaOzZ3I3#H&r{!$=Aqij zUK|lcq0(7z8EMk5C`2>y_HXtV2pD+4rz2cYm=$d4%}0^h%FitoBb--_bgz(D!WP@` zJ+Y4tI=1C`@)#^ZL}GSkeNijCwmQuZ01_e+n&+e|=ob76_+bsgmWvw@axHrr6aox8 ziSh_h=}MufR`w7;hRxGh$0xGlCqgs>e-Vp=-PFNN_r{C`h;FWk2L+f10~nF?qe8BA zo}`?m*}4S0-gKjXSKQvqYH}%c&q&)axU!r1AJZ#u3J&=NqW$&s`8R_l|4AUYFUk*< zA1z?S)otYMJJQ#?yQYIRdT7c&VHFTL3)G-=4-acbF@oB0ZR$3rA*{moWhyLO@ysu@kx+72T}?3%!2{Gd0^=6mlNis_!}0y*N)Z-cMDipBURF$ng5c z4({fEh@(kmrNJ|IPd=s;GYs=>2{r*SJ+hN+g~gxZ@r)ztJ4x6*>VmHy!AV_U}gyi8jviIz3?{|SU& z@cQUilbCIYf%P5DBijpkolDlgoz@v&+ZDD>YG$>ze!ba%Rae3TgF!kOUzpkMR>6$V zz-+*8b#nvfj5@l1aKG6g6y?)NHat$*nwE7PSGd%yf1e01SLrheSNjtnh1)Fsyz#cR z@kzeJmK^bT+6Do+@25qv6q*U}_h!o-+j+#PL1UJdJqLa~%N`afC@;#Q(&^^3%wSAQ z*?@df^IJ&56+;FD`d6MRyKl|6{*Bc9m0t6XOhi5s*$Rc8Z}e$Ne*785+IE$A3t&{@ z>?6EX^P+aOD{X%8mR|2K~6objIiwAd>Mz}+xp%l&Ks z;0#yhRtmdY5`-oN9#~D|4%hgf&VgSgon&!h7;K(K*l(dk8Pae`qEc*lfk@m&A6QIReE-x#g!A( zNZ@$Pm~2Y@)mMG*SH{T67mjEgD3jf?YA4S&r)tU|z6x|V2Bl`7KhBH&I3uMyXZ-ji z)^B-mPeJ2lvgVS3+2*!%1DRa{12=)^1eKUKKlfM(=*HtG=;;UmTD@C{v>j5cVI>K#+@{ zN3mv4HcNKE5jn<;Z-RWc>w}zF^+=%{TX=NzOn_1X;m-|<6q!hWkU4I8c*nIn*$)IB ztAE*jHA&SDm?}46N)`)W-Gwfm?Uf`}7utpWp)+T*MxX={0#VZGbu-8yz^b5)8+}y{@sz+lUcDjR#~c`q;{2^T1SQVrgaCGQly3S6lu*1H=otdHq)#sxU5|vV~x^)lg*td*k)Ij9$cOdzY zq6{u#_jaRcnqov90?p~xa^;XL+^jP9@?&9uOE9OequQiA zr&fy2A%KBe@&|E27HH+4j$}p1YPMmze#QohNIm?WYnvxVa(m&%&neMeWs1AAGt#AH zGZCA$>c=e>U9k^k`$5O8{MIeG7*A5vUyjZie$+kktZK}V#JLSUCMsMWW3>) z&@i;#~4c=Bl1nb*;?rQCpZE8rLQ4B2P+qNn6D z{VspB70ts9X@PlaG^N(krV|AcHp{BhFdg~kI46+DXSMroLgvxi><~Hji4WgHO5*Z- zfqoOFS^g2X9i^Y=p>-A-o@}Gli=tK#pykCwh-RW?BJdrL6v`@$JDoBh;MTnJMb&RQ zssnqNKc;zg9pN!3jg36kM?eu93QuUS?N%S_01~o`4rfdY7;1kRWjQCvnwPz4JyA`Z zROrrb1;^2!PdmhZ(!s?=diqANwJ4tDDAvZ7q(`tlyrx%$%?EAV;OCgn~ zZs&|7d+DXA32$+iT?e3H6HC&3t+(~XqEdsVC7g}Ey_=0v|BQ>5@@{*qTlBe3#^2$m zFxrR2w@{KzV7Ku>XOxM0);3eZW-dUJztB1)onEh#;|G5z|HNRwh~_#Co219dKc|~) za9=%fBins3vmA|y)zzhrr#se?TZKahR&`$;`s?eZOLu{5_dPDpzss?2!xN={q@(!F zT;L{}DLYQ**{|gfyFEr)@z^eN*{i3!c8>*LXRjEYZA@8>OZc0l>|Jflfy&dg$Ijts zATP8Gz^;jFIjKT+mmG2fv!N*_yQDq9CvB2S&jD7_{Ku*a!?S>1L$qlM$KX+;!bAmS zKAQ(Y-dvVMCX2~hzLcTN(k0@#cn8>ED+Eku{r74ww9EI908eZ@j6MBfcV=}*YL75D zdLyR*W>l?S6@5dR$Ufa0U?%zIKg~i!B0?(5R#9x$K!dL+DD?liYN#1UsI`R|}@5wJK#baJ_ zCCU56H`A#E=RL%j5-IhZ){lb-4xVLv%U2Gy(`v?c`IU9rvjQU@(A`+phuYZFt}n@AcG}qr6+LZl_h<;$L&gU{Opn#^%aSxZm`VI73lnLy zG)||GV8Fg;?UL`R3)*p+Wx7_6^>c(u9>5U%044yzQ`$I<&ItV|s>r$rK77@n4?`&h zq^Gj|`YhuyyAmypTzo7CaQN~FIJd(oWn0ru7UEq95a_?`p;~G%!?It?Xnr6dkAU=X%pAqp3KU;$s<_imq+#r zQ5(9nX0<>poqE#cFxa+%j&&g&N16fST$&e{iI?u14GSHoay(itxB zKv*(lUP|dj7gF|UO__HSGe-N`3`j-_bVLVSB;vKREhHLNV)NyIHj`x2WrW-wm}5Gi z26$@HdIM$ta667WN9QyNOC0z#hb#p$+NJGX_S-T?LT@9I0wEmAyetUrEoY0|IJrTvxvRZ6!v8UtaV7AFM$@Ol}VlHS$UouxR@D1AZ z7U|0L7pes|kL!{uZs2-2Mbm9LV-efV;s%+TzIH`ta&3rt$^X;O?u})p>UVudDKHW^ zznv!eTqaBLFs9`ee?X**uqW9cd04L*h$t;Zu3iVlKQQFeBhEmJ-hPc#4y>9==}Cn7 z`-Gj*Xk_<~2hU21`E~m+%gg+n#hIVfsRM{rR5yc0d||=Hxs9t-EvBi*2|_i^w7Ay< z$~dZOkze3nZZLVUMoHtwro~#X_i8N#3;nOSn!4`<&Pq`lzxgwXt{DATb2i>4@vS28 z8!77wGof0KFzo_Wyl^WgPIHDs=O|`jW{`G}A$%!8X;H$cWCX+`W|W>qid+8cD9Il< zn2d}xK;uv*KC(-E{4-b|d9f{Bn5!4Ce6r)YY^A^^(Q(x{{}Zg1v(7<5=^gG8k%zPO zOC6FoAF-wH4t$vq?-_hEOd^>MZ^v!mt)^*@&uP0K*vwM9r(=mEspCG8SDL^10pmfm z+@dT`1x&nHcm(StUMSij>=RLW!(P<=i)0d{SJ=}Bp9O{;g$8Wb#+-EF)s-r*)+#yd zf~spCX6dW>rOab^2Ai@O6A{H{Tab0@pSs-~aX5NrhRuZ1Nlul&C846sEWW9*G}JBU z0v?(rG5I5Me2yw96YCXw8wF=cY9q>QS_o->0`jJuprt#|31^MU2kpeQ^n%*Wp472H z?~?rC=nXlt60Uy3kVv7B`rGewLMV6dqyO8^5vV)t}$es+5`;Nkge_-~htXORg` zXERMRU>HjexP+@8^tv$Ik%7gugQa{!%fmoOp%R;Kh%HOK(GM_|fA>tvDv88>A^;@Kyb~+CeEy#ggNyv@)Wl4Z7zB0O+@Q%eZOZ zgI68?v=CZ{nfeUm1Mk>1^v#1S1d6}mcK81A^*jf8j53f>ZtT@*M%Z%^7edh~V^AJY z-5Ev3in+wl4vJHh?jBY9WEs9ScC|;`Cb$7|_+5!i_5;3^b`2z2eE3E>)1RH-^yi&H zG0QkJzYj2i#{(hbS+zPFWaiEz%IskkF~rSXBkR7Agkxx4OI|We?jI1$7M!QlK1W|Y zNSwb+$uun;B_BZCV=fU0mtXPsO`m%ntPy#^2(+W~h^chS-DW#VTJT1?uryE4qi{%0 zX3IVlP@6&6*Ak<7;pKQe=>qwx1P=qZXV{G({%I!n@~`pu{|HD+T0j?1ClprqYMVp66oPymPrvBLH$W?L)NnE=tDHWxg z$i0hFOi%2V#sj{xr@2oy9lV=9NX!+JO>UjS`(_!R_f&UZCoYHE-D`)i+3?VC{fUJ# zi;kYbXWjyD+vjISWhO3KNe8ARUED0RKjwQ_3cjaaW219)uQ&X{>71lRcrcc1gkQ?} zi(f1f)IIwUuC{y}*WH>sKR}+NaL2VVur1lGB`Y}yv-=2V3VD#RixGNpk_f^pf|2KF z#30rG&dn?F(81c(&0hnnk-Kp2Vr>YD1iIk#&ovco2k~@~Y<|nB@bLEzp43o;w16S3 zqBhXa%RWu7iP!LmZ!?w%t%KKR5PhYgGz4hCdXa@x}stg(5Ldv!~SXQ`np? zNL9m1YTB~fgYqe9ID;)L;Q)g0EmSW$Gv>Wf-*kFguY*6r_2i88#{ptykGfTb9hTJU za01~HJCJG{$CpOhSDmtj!mnNekwHszvm{av8j02JltIZ!;~xTEeyJiZ6)N8zw=7f; zkK7WmX$92)=px$1@3(8}*a)xsx$q}1`uOy6ToX}iL;j_PV91NL!v}S9bs>RCvqlga zmpnbno7#Zg-F!sO!=@z6$T;Gj_##D#To4414ytAwN%i(yMLOxTNZq06=ik^ibGvpfn)8qZH3w+1K}36@NUf!wLMN(o&(Ta+^KJE`_^S$EH&n6ra6{b>eOhYvqn(^IP>`>wEQ}O~ z(19-WIelSv3QDuR#;a@gtE#PT0YXqhu$xyjF3$JWpT6=-_6`qGnKA$bIwqbWRX-EP z#zaH*jL1`{1&ic@yr?S#+y%?I_ED+mm6B>`Rp11oSoMnZG)Tt*ONIq!EK+2lg6V%fm?Oq9kSPY}+WVxC(NJsU`f>eG# z>}Z42v#`b>Cem5Re!jT#v?p!IUf=9T(Yh)QfF0oocR`j8ae4ttEM#I z4P@tuP!TUn^?C8K5+`+(iGv%J=~5k?Huqw)ro zB;q3uH*-i9PFF#k#T9*QlegGDrL#b&S^L-^w z#6h)nU~5%k&~x=Qc#@?&vxc->u0g53CD`3t-ljHI8tD7)PN*{g`IYyqCa|c6OU#@2 z;JgAEcG0@_td|UtmpWa4Oa0fv4*~Vah(jG zdtJ38ZD*ZCXGkEI1TnTG4DSsug6S6i0Pqbjh`tV9btgh{@X?`8*SLf%LzH>={=+U+ z7VSbRm<=~WZx=HdFQwy8>{ogmf~e1tQ^x!i7(+ZvMZhx}lyoSw=XWgZtaB1W@YBNs zr1g57ylwFrlbug%>mbf+gX;e*@D^b=-B+4`M^X9NYbms{YLjq4di=!roaTm2@)n=P z@#LG~kCm@BHxPV?NmB;o zjOKcLNm-4BN5+K<5ysP5*mpALdG$}_0U;rQ+inKQv!^qwm>mAhM?rAagrLufQP1aG z6z+_Yto({ke0(zs17+HpY!0$q=uHU=vj*vHJ^@Rt0>>TYL#2dL&b793XhH*#ajX>R zXqR4zcNy5^`>kdP94g^7(6^U#L5G8>5Y2AU^ny?zTx z*fw3Ic$L7+SbA4ku|>nNW-zU2T3F%%^#stQz=~vFoZ8$Wtrx;(B(Qk)Ipzo!gQZeA zeshs5TT^PL3Pm~6_6v`7fNf%?n`_q73I|!*msfEqe;1;aNrJbt|3`QMWp3SO>T-LC zzK3|=b-Rq?6lgB3=1Z73A$Qt7#Z=1=vzPKT;@Bq1sK`5HcU%xq0s++0bJN~{2!*y_ z>l}Xq?L23z2g{QfSI!ciWi<><3?jGoJQH7CDMI4T`2EW(@jgFLDVR*Eh5K^nlU)rs z`9}p(Ecc8+7x@-I#_+t&wx(Omj{f1A?{t ziJojt(S63_?A1y41E$xCyGud@#?@MwSn@Epxtg&dP{^ znYoOQ+dU&rj~KNFSoz25F}^JQeAXh!;F(4D%wRs_3jrH0ImAc6Az+I#uL)LzK&}Qb zaIhS$5e6DpF-`g~*-N|52JgMI*T%2fI30-CIiY=Am+2L#!Rio8`2~N&DUSk61;*OK zTfj@g5XxHDGTL^0xUjrOr5v@khSU_TkUX^3mKikr-^I0v#pm3-a)s%ZozMG0CYPgB zgKRlMqSES~j2pU>q(VdJW?lSq-WP@lFfby!uBlS zulbYNaa#1Te?cBa*^uEmbVdvKP$L#ncW#@lu3bS*=Q8D98Wwq00OX<1#@<-CU&Ng- z*Uq;NuIl)Nt^?wl?!jklgnMo`B;@z5qCCCFgZlIz)4k%>T%-QQ^Vpy@RG2X|Ih=jg z%dh&R`8w&ddO1Xq(0( z^^-R?A!g(;$|lN}9ZE(u;~9feD1;uxBQ#kQ-0n^ic9CqO0!*MYcVG#>=K*F?q8j@b zEISaU65N6u@*!7~q_3)gBW|g}=cr{W_XP|ICUJQ8)w5)l1Ya^{(Q9!Iwb)Tj8bc^< zJ7-w`#_octJOyBmM&Fcm{$ zc!FtS_*5PZ9HPY*H`?{<_K;;db@)V1#tc>RD3+Hro%}5N&ZqHaQo9`CAX^Lbh4-j! zsBEhs_Uc?fRt>^XlpSTtsml=1Cwn{k-x=4OH?R@4d}%sCBz|t zEL5Ia0YsnH)(W-A-Nu59cPLsbxfK^p9Hhv9rTs5PzvPl9I&b1>* z7!r<#j^f{DnK2Qy_*5g z8ok2w@Uc?PhV?21+!&mVhV{vI>BF`vda*LX&nxi9&#cyz%BYo!_8R>jM!0fJx~5Jd zQ-0WG^57P|6se{N-65H*(lxwbiH|~T(NPZ?1;@+dlJkj=6;zB$t{_UQD^)_&sISq+ z=7t%Z6@fn(9UP$``Ozq5b_cu;=O1+KHs5nMg9A<|yD+Ho$M2TlTzVpsSPo$Wh)`~` z^7zN6>XqKN$=i$ACma8l;eUwC_arCnU&J0qW{$t73q|S+AIz!`R+`JpBX+b8FKlT~ zSB{Y=|EJw76wSE3z^7!<+1^T()&~&QtchTJNNN%P=XIpg%<_nNz11Xqf>^%~;DE{1 zAi>>LZkix;f@@)Sd1>V021whwn0Sgnkc8h>fykidZQE=;#r6pJy{91B0gbHL*3Fm`gSfe=GOiTWK4d-;c3d&Vu$EIZnMkXNEI8U1>qw zV_{zXccCN0n5<)2y(dKnkr{re2ftcbAJTI4@A6v-b+(SQharx-apP2)g*+YBEzy5D zYh7_7AoR9*ghY&WgQnk9HxyTN`*z#`K^C(7wj1)_GLlPY{*-;-!ljI352E#%l{XI+ zf0i3qhL!EB?X7}>icngAbf$UusSiflVV?JSd%c$q z+j{j=RAcH#|H`}lDj)*BC2Ij?4eDSDyfoIpR!6jm491+P*iZ1xdzr+)>J=QZ3=Q%z zTeeNSmL*MKy)?6z(hRwI%{I(^TF!z$5YM3L2U09c@E|IG-Py;cPR{>@!3hqKhVAi2 zf)NO?eL;)E0(6x;9kPxdw}WOA1nwTAHz4qwX#3*mEnUV(ntW*ciyA{>ro-{t=8Tu2 zv{qy>9qJ*3Z)CSGY6)VX*2zy<2P2riwOSZ2S~*a zu6~fYR%<#SzMev9c6tN!S3XZnfWjEArzkN6Z$T08``K`v*5@vNI!q0= zV06L5Rz&2gqYGpBVw_VWFz=Z9fQn;G{)juo&Ih1m_l-ZVdhDO^>K015g#6^EwWxFx z&q}6VQG4VJZ-yq0l5e>TYx*zt*$ijK*>K6}gP;J(4dB_* zoqmdr?m}h?YQPG&m6PoQ`wZ}OKw!H(F&0#|^Q|$v{HzzwZ^6gEn)}%1oZ;v9cFgwo ziI-}96}8o&!G4`XPbXRF`jfzF${n>OL%#P6TL_YZ^2IB+G{UhM@!zf0YiRtKHoruA zdOIc5jTFB$?hm@j6dgQ7wzbqUm;ia>NkEh^Cmu}gsg?f%bV;_2bSyoW zkqs-$z+kSKdgjrE9e&5ljx91T`B#wcIz_sLO%;xcW57RQ|nb_ea=+XiL z!;BlHs#wStFz8-kac0*rH;SkF2%#WYLt`Pd|@ zP(z#GpUS4}?#Bs%AVFIxCwe~3aaj6?Z`6a2vN3`pj4QN z_OFu+KK}d;;w|%Y3ruKsXfP<@>@Qz&>-GflT6L5CU1?-=F@PC7lzLlM=UMB!FTSX+C z(|d)d=YW^HW+HTjDHr3~tn@laa*j*$+?%%_SCht+&&Mvpwh&38knsl1?7mwvz>2s+L}@F*gJ=d$XGMtg*q;Ct`1!2*@lU{GXZ-@rJM1{LEPC22 zO+(OaV7SB?;Ud>7Hxd>0vRgZGOLfW^Xg$}x2UNcu?v+3(NyB97U(!xVKc%|nMl^0@ z)^D40`}B>25BOd$#zjY%E$!x{wn&4}S=5rl0pg0m#S_TGoyxUr0Bb;URV{BtF|Sgb zI9i#M14F@LKYZ9GN8S@!Nw1JCulD%~n1L*3)L})d@AiXe4Sk6ZjjzfdY8GuOp#)@Y zI^H8I_P#;-qM^EpLyTMb2M=t4=7$EIytii6^(q^pP8ox}cNeM)HcOj+^hdFAY#y?H z{LEB{PsN6~A?7K3 zMmCTQbdD&I;KB-qIAnNbD@ZTYxtv(X>yF?Yz@_%2W+#jGM&pG1;@R=q*TFxZOvfT# zKUYK6Sk_TEOTbEmeh|~f`wr>p%9@Meao0jQ!(;C!CDTw~IIKgQ zK}x(Ua|k%x%GGtFl+MxRLvP6rdun{ws5OEy;pcgMi+2yn=S)hR!ZfSd~A zHWbTdIlcp{D@T)OYeK3~A{7%M+8OVK!VdKGU%mtrA+r$d*nN6|t6r*NEn@2*sj8E& z0O~B7&5?eb;&wtoF?#y|#80&-8Jleo15!|8G?RvjOdvCfuP>h2?{lAu2LZ5>{F&uZ zLA$p%nU=PQ#G*P%gaKOL5ZeEGxkkA45ifb1Qm@b{Ywr3CM7B(@m=&jERFU-sY3@b; z$-*60+XFeRe|F>C2S1WFRJ+pk`=>y1O9IS5RW*GsCdb)!@51Kbu~u!b1N;MyLBFFU5h<%F8b6Yi&7fg(H17mP7{3;?(Saxas4>&JI$H6z6nVY?h zNitR#$%hFR!cdIpH2(Lm@0-V)MKq-Eo>Pvk!M8Kmo&WqIjhPv2@Z7lSd*?~3m8zuKoS-__=v2*Wjb(sI;6%UW(BBT4hG3*bTIyI^8-HPZem?NqRB!@cH?Ofz zhdILHGLTkw1@Q-H2`@(2`(D%1njcO|dj8sQ)Tt_P!8;AL(^Qf zBM2W1F)jaW9UE*(G?>G^2JCz#F_~!ckbz^`-0ad1MJF?)BF8>Os{VjzJ`kqrgq@Q8 zt_;jm#WjZcZff>2-|#Ih>?r|YfxMwlzCdCh1L5K=4f!FuQuVr>B*6#6)7D+(uq0f; zS-!dKALJxMW}VszBSL&&il)AvErSSY%y~y4?xWu=R*AGj?Mq?sS*kesbsl0j@<~j< zTl9B&!P;8SF;yex|CuBysr84ERfmS>L@@TU@<*GKi~fHT`ulT^2UjyLm;j(Ki)Pmv z%%}BlDe{)i?{FU~s%jHgmOlRRDJ9%;D}f(fow7R{13#;$mt7wWnJKZJ=4#lSmDBH>SqlfcUcfRw9dS#UDM8}B`T-7zgfXsVnq(e zsJmgi#yxlIMBhY?{GV+TzG2*k%=w8Pr19H$VwlOny`7nDB8%GmBhe;{h;s-paan^1 zek6w~S;)6SK#a-nQQuC{mR+}{Z==_kYT)Z>X1DTAQ@Ae%$@#wCYsyIgWj=OFVYmq7 z&y{@acMwL@l|7gX4t&m3NiW0+cb=owZaMdOaVQh(t6E^M?9H?R+*LIwVMOS1787r*KD)1#!q05Sh@s zJ}#4SbCTrLwUbh|#ux-0^4`)q4>AU~^I8`7_JMEivvyZVZ`Bt_(hrusZr*-Gs`t2) zTVnGyhMfw>M12%iS>C&tXfgMQ0Cgsy9@p*5j{g@;Qbg!`q2esu-skILe>xlsN1$$Q zG?Y%g6Qawhyl7Fpkme6XY`pkNM&MUoSpzRDB+;ODglV_Ce%E`w`Xmh|cK78x$T zM>y@Z_$Gyxx1FZNM)Wkb;TKLrv$_JpA-#~q*_mjSAR~JbjJDJ4#lE0~(&E8&)hYf2 zOT?U-EDw_TkEq)?(o>sCQdG(YynB*^^+5??B%#wf^C7)|vDS>lf^xXZY@ka8Yx$Dn zZ&*(z(VImbIM$6b>yu~E>rEdSE?J~?U>C4GJJr~3iI=JUL}~y48F*5u9Jhn3K0s=j zU;Wx?;YhPZ=6Q5$4gCZh`*lc)ehs$C%m$ zttNLL@L^p(!HhK|_A%6TVxqvxCA`D^q{fjy%_#$Y(!Z0z^L*x3 zJIaB>(T-+7jnNGVgk$d65vW(A{QDY%PWdFI0^rZcH!VpAFgFA_P> z`jaw0Dy5{UmdpmJBut&rnhei*87UL*={fu!bFj9{}+M6&VreB4=3Bv!Ft z!Hjeeh86FSq542j^Ci4#ivWN|`_@cV!spU5wZNevE%|n%2iGG?NFP{JGO$$ObZ?Bx zw^+8LI{G31JvoW<>Q@o(WPok7^*hbp9d5HwhkcD2!2MZnRMyOeXM^m$f{f0%BF-!* zAJsPNhy{=dXi(T{vn7-W#|+0VSu)CMhNywPN5lI~ABMI%NTYB-s>piy^SSt!BVs@b zlMEQ6pgIzd-(q_!R5V>OkdEw#f|z1H1EBwA{3IT8E|vjD3G@5&dz~DJH9oj=c`_%tkPHJSW;bq?Ir?3SqT4+f2|^ZtR&gXj%)OCj^kQZ zPOt7wS9?M{%I>jv9R4!Hpr0&K=$IaVzqxR+rQve*0FSKs7IrYMihhQ6LteCfPnQ0*DlesCnT?UT(!7i>vVr2R}F*?*@{=}q-EYS9HRN=qSSL; zy9ZP6q<@74mbA`X(bGOI%zD4w(pn4Ea~wf&kohVuuv*mfS}8s#Qyy^tL69$XxN{cc zmKnc+VF0?D@6=g!CB8@_8QSN4;Swp9Hxkm9uQ94RBs?7k{Ldh~I`-myjKYVgU5vy+ z+(Oiv_Gto>Ta}ZZNU+Bgx%I}ocoC<|&6mG(EJTrwyTpBHdGbm~_MVCUMqa6249*X5 zBRCVxAhb3fz3EtcozHgg&13z-`-^0X{^QYJWokpoE=fupCXe~1MY_KBjAO3nHD^v$ z5-7hlY7e2r$cmUEbjbmgVMXKo{k(3fSNU1t?ue)Kp^_J#(GEEG>`}~`BBEK`3g(X| zUi-2g65`4xSfDL&Mv(J^L$`C@jz%lmHiX6gzu;qkR;((3vsxZr8I$u(rI`q=Mck&o z84isE{AmlW&;e6OLKOnV&eYJgoB2HC!{2n4d)a9#dE0(H^3y*nFWx)cUTH(wCtV`e z8;W#H?tl5UZ;Sd z!mJ4HXHq_!&P`RN5Oe97e?uEfXOMH1fUGWnehIWRgo$0enyR zw|1qpKT*71$+ss{dj3RJEh%IPtYMI#^_eJ&9c2y{Ab?0vN)_Z2s`8>M z+gwViX&|DYgow{!Nhq1%9puQfdh`T3YZkg{msD-^Y=tB0`eiIY9?0Rin@r{ zbD@Z-4GTqPvVA#|E^2tvVk#rJQPY6*t&Nfiy7?G-KSKYEK%8@?X#_zskSX+#>fxUO z&yISdw}loWcq2NEjLRKA)WnWvu4BuV+Qv&xP-WOZHUj>lS0(JyJXkVUn6%TYqdyF* z9KdfX&D+hZ6*@|Q+bcxQ<7g1es`9ushr*?=+twPjVighfiT1BNLiMl5|qe0P&;-&tt))Ym$~f3LE8N8E`<8JUSV%!fA6j#3E%&(P?RIa6*NV+>S!RU1f4#ud<-cCd(t*XeiWPMbZio?t zZjmuXzx4$J>~Gv=j4>9^IM;ZOadW5sNoIPxA#Tj!&UxQ{b`usGLRFjf4ILiL_z$LB zw3)ncZqpb9O@H!2Po{O+F$(`psajun*Br6X?tro@f7*5mdn7>)RUkq8w>-}68MULU zT({4Iy>lik;J1`O(B&7vjms&x{S1p)k2PW5eRr%$2|T`CnLCS%y1e`v``)J>gr#oc z7=BPz%J*>KuaRU*OwtlhOcD+qP7$do>K*LFuBM7$6N#q;ybpa&Ct<0+UI`J z3q;3S?1&3_HB_d7OWG|z02l{FML30kO5B@`vTeB3p_4)&8#<; z!gDd!U}ee1fI!=snq-MzKXG_p!$;vPo|sWVdeEX&|3Cw2GhCej4(H$7sRKKG}{;xYU`R_2l^g!e^o1JOr z;B@Ai&|r7m2PTJ(<&oD7$65*9P)RGXmbfS(hctJ`CH4oMpcFfjDK8h}jwRVS2)QO= zSPoS(O?vZQy6)jnc&;Jj=&Tc` zuZFMeRVZi90rNKJAz}B|7Jsy1*V*u7FVaDX%!EQuW%~qLHR+x1oe3IWl3b82>mRWt zqQ$7sVIn_+UR=51c?&;SR3v{pZkuudz4yB{0lv(O`J2a1tuM87Nb8i1N(hmiv;cuK z-wJa156YTtly6a3GJ)??GeQmb{#uURWaeQ_!h_HIteog*x3q`Id6`gi0yV;|r$mAi z*E^uz+i1Dpfh$#1-s@~GxiJk4C9BLh;LGL(oXGX^yJ+*Dn^|jd#Sn8V|HjQMx^4Q# z5Zw*YY)S(#0$b-2usNAr< z#AYilEO6(6w69a|Bt-SqT(4yPaza^1$aOy2*=_k<*If+bp1zQ1Y{a~J+qhP9kroFw zoptp!2<@+U{m%|aUt`NT0MPvm&ljIj_6TuR=>x{=GrlcJY&sNYdJ@;Hjs7B|Cj?>| zez6SVzErX3!3NhZ5_z(DniP0ZM~wMaL>T{Uy<_CTC~LsE(;)ebIF7_v0ACmEB`2!dDovPK=gQ7D2DE>`56PL!8$^@*tDL71e^Y{|z~dV=+*UMkfh9U4mY{qH`i)j83JhBj@%o7hznqUK0mp`r z*%iPOTfhfTPudiBfiYXXJ*RMIJ_>xLyltr?(0l%|Zm+=T@q56IPkP3nnsLc8*d zTrj!)A;OdA2fZ0-5s+R}rs+P)?E{!!GT$T1VE4M612;4Z(`x~BRu)vdXEuSiP7$K! z9*2fd>xtXvNZfQJvv=Y4wcm?YO$RlB&1^$5(-EW|nA!}#ifex`4 z>4%^ID+iA9Ye`E)(fk@%MRV9=T{4BMBZnLBEewN#=SFQIoR`*|F(?fvh(`rc7PI8% zaj>mufQL%FGx{W*GnJy>!ls)r)c>#iuxY@Oz$z5AuSL4!jsRd29YhI zGlRf<2a#w#WsZH;QnUH!7igLV*b)|7tHAWhv>HXiWfHjFmRGP*o){O_Z88-UpQ*tG5M)-qDaa6l(Kzw!9 zIN>~Nz%*Qa1sfkdb4*X4z=NK;PR$hrd^=eZh|WH9zwxo#`_B6T25S>r=x>G}?r*fE zmdZO)RP71GF)LIJvc#1R5#02@b)k0>=gnP=QO1;o;(BO2lKnd>^v*ZYgi!zf3>Z{h zL8zjk#WQ1P?y5IcUo-trL`8tS_Y|A72D9m9B5Bqs(LPxnqid z_lbBg?F{rJ_tNCJ6Cn}}H~yfA79vqB69WCF+G6{&OD=jRbk?)b)xnnqi6G#d*(XZJ zTO~6XwLuw7BpCQ1IrR%2C2GS3>OBXy(xIr~QDC`4B5L2MdvrW<`U#Vz6DUFnb{6!E z;3ZaG%Gd)*c3_+W5^M@2ISWgdOhM1}SkvWLaU=u9utT+1t$yjro>v@9 zTOvqab}cMoC8CV}7`#mFhbov#(MyogLcEL!Vm<^74;U(bDD~T?2e6YeRKPm$v(^?) z{!{Gu&@DxKt{oA;wmVVuBas)WMauF9a-^E03EG3YOs?o zawm&_=pDVo==53zhx{6T5#|~yA#FGKl_t(-s@EV10VSW_!k^s#i1h z>;L{--!P@cx&|ri@<0^Xu_TJxFd46bS4R$2mHBa79rsCLj;4?>^cu`;1_0n6i;O@w z(~0w;nEHxp3<=X-@xUGQ&uo$wn9ST?V_n-PbWUg09@(pU6N=(s$L}6$L8DW2jHCIvB zSaB)Z9D?`sCT%v`MWU)VmER`K{28i6Z{qZ^5~{m=;FM$IW3v4C_YVT)Wh^4di~k;& z=@Ma?^7HovM>p*HTcdYF`)OX+^@Q){TK60HMO%j9;Yr&iI&U}^_l7c|n0lv|-x)5AuCX9a&GI}({SNSMi39Xxirb}C*&zwGgnbYU(4DsU) zWh=Blv4Vw7Ee-Hxx<*=I)mbbI zR^o3E>krTbM83D@qqq#1X&aZ0Z=z!rT_Z*Y+P~JbTNvoB$;u-(m2;16 zvwJ*M3Nq<1H1B@CgrutGE@r%+Swcl{lYpxG!%SYXK_8ho#aJ_3k+3X<6P){EyvZID zTFB^Cu-f6QT_weg2MRR(nTA%0f8-1Me~2ik^tzH{PoG+3h%{kJ-i<1#Cp~_nBLu+X z+g?P)?7ru5%f6mQ(JG7?5afwM=lPYv3++!6_tS^(e=d-AQUHT-`7%q}lwu>i<&eRI z)1zT}Ed`V12U_%BZlsi$!|iBCXbaQbI5i>aLr;vZ=C5s8Id4GtR~R~|k}K`|n>bGG zR-$EUX2H!6fFy@Lz6=o2<}14Xwvw3rIKb%))Zo?V*&vCNTcq?8M|6osb}E@Ju=|*) z0znZLyZULu?Vx?sDRlzV8=2^V@?njsWc}+V@&L$&GyO68;P-e{33`MxS$m=H=$C((ep|XXp?U@K5~YzNVu1#t zBNF4#!(9K&X=GM`{@j=rg{q4ck-d880?ZT`JV|(fn1PLZpDPDWCGcj+{wwI_5BT$z z{7H44Yl*kNk@uYd_q43(S4}B(eh!(mW;MB8MpL$zKq*zTu?}JZ=VD4D#dFjEi5tfn zel_KMIkG5dY(u|+rdg?z%dXFB7@7{&&?ELMAO1}mk(*X`L07Wiqq*y{4;CehSz=f&aT49+ zqb@n1E`egj`Hy1Kj*0vXlS0~ypyGA^ejDeR$3(_S=B|L^$WwK|%q+xuSms6$lJmh{ zPs^8?@W&J85&*_}%(Y36dZW3+*MoSF`nMzAvil+&M@van9@dP2j3AHOu&dlicX)Bt z)=Byx9D@hmLjB}pWM8(*n}*1(%mF}u80?)d(;s~>>F(Y_9l&p4R=I5y!rJO>_XKC= zv%;`5w#<@8s-C1sGi05R%^uiNN-XkS;2!@=s(nZxN!vX$Zx0b#UypZ@)MVpk%8FXm zs-Y%~wQ&_T4kP4JN{rgfK~S;>)cfS_q3`v*>WoH2IA_vop+Z4Y)n)RQ1TN- zZ*d^_VSZRdepXaJPp;%9QG%gy{?YmX{v~nU2V3K={zTxR&NU*G<$_L6}@fPa`;1#Ruj^LHA9g!D@{ zU~%tX>7Y(?T&0)gQVe8JQl+0%JdGiR@V|+0_9@%;!Mm8h0&R8QKnpLGX7bppKXAs= zFow4=@2lgzlh=eTyIyecf$Wwm`6b0E1Wg%~YIJakT~9NT`KDzg=b5+rs(W^EmG>3? z_Ugyo?M`fcUihleDdzg1g$>rkwW@07yhYocwhOSf+RA#BW-L*u*sG^9H@gEDf64wjA-%b~heGvw`ect)On1HsB3MYG zg0jzmQqJRB$$E&Ujf0ctYv>do=IMm>kceE{Gkl1Ua5@FbN2&ZE|Grwuy2u5k&m3>p z$&a!2wx*Hp%R^=gYuFj)ceR(!KzAs_+Wam3ycbp6b`vIQ3ai-(pX1|;Jo1}^OQ1og zeb+UYiHh=2qZ`-FF%FetVkDwI=lHH)*JpN4$Sq-AF300~=Z#E-OR&5Q-n^HZUtLyy zWfrM(wAM`1?$bED`VC?r(=L~>HHGIQxwm}p z+NzH$&~8*&7+ywU`JyNFwNpJfpO{h3mWn_gz$z--Gguyq0U}i*mq3qhJHQW*5$CyI z_r|b)?R$&m~@ zu?_@8YX06B-{}U8Ed5gZ;qPxgh6emo_p;eTlr$CrDG8A0GIBioM&|*fK8pAF+m8!& z3(3Jw^M!LfQ&<|jW-rL64SaJS#)U6yT~q86TXS*pw6sDEpd3}_t@kK{-?su{e7^CNxR{jK>26Ri+~ zm_Wl;wrVgm{)O|?!gvMv&zsdE)J9=R9|o_m6)WnST*T;57$Zl(p5Km z5ly%wXk!+wzhAfJszozcJV)yQ7kSB427+ z`7pXip&ZD#d!n7GJ4b({tHHUdU?Hh-&xfr8;1&*0uN95`%sK+6@nxGpG@H{rTKK-y zN9S3LX$?)>bOGB#++j6Za5xgH=V^Q6wNS-vouC~XYbuz6BC zbjzE@6jbp;Iq)w8V&y1aJ-22K4I2{hkZgp@1V;WRW;?1L$`U=04odIJ1ljNmyNarT&fFek{6E=G+j*N3B;9)5- zWKV6F2M^DSMS;Z?c2s54oBiX2Dl-nbqj&yPLF9onqQ%Ff(6B=0D+h1+tTfBx0WZOF zzS>a>db2@eT^mHTR{27h9>cb4YLcTD+JV>k85xMu`;ryAajJYQtI3V|J`pJFt8ZYJ zG7JkiSS~}|BerkUpT+6Ws+=?~kR9BWr{re1&_3nRE<0IUUO2geM71RFVu>QT)#@u~5cgqj1%@kJwD2Mngn>Qg=&U4^={Dw5 ziNd8a=_379=2U=G<@4MZW*wg|lB(LEC`7J_@{uB2I9cNYEC zQ8x<6T(oq#N#D?DoKlw6&Wl2(zYzssK~l5kI7(5Kd@e?-FXmn9Q!0mkpT&us@U;gE z*lh}BVGkQ7lr1#TVFmV9$|w-;dPHAZW6gVKn%%O(xnv)QEi>Jh=XqQA%wGMEs2V}w zi-p+1*gCgT3?N;IXb^Gf>fmEd6<0KvzosZ)M-ZVwU=mZ}03&$s+`s+>=a5hoHqL(l z47QgA(Zh5>gg<|Aa@G{qp1Le8~o^6Y+A;`5oy?V|2#7jz!5p-y7Fs;~(L6(9Xs zne34ckQ%YdsjIq*VU?!Y1b9?(`N;*g?67CFVX+W<7K7h#J_&C~j?i31aw#`4USX_y@Mm?S@CroN45*(sGja+j7glJeMPTPwY9=3)3FfZ3!Nw0I}k>Unm-9ml{; zJy6a^4(!tZWTssem!f<>I|Tu%r0435pGEIEGT)WfLq{@P`w7T9S(w?I3ZyEOA|)M? zvUoWvB}LgzkGJsx?1zy8Jcv-QO5c%%Lhfj(nh*c=4y>OwYuqF;NpJ7mR-;VzJI-AH zclWrg!#~}YO@47X^Z+MD#f@KWW%s%g>WIxtq^xA2sOi?Xxo9p|Ll-_6jOPBrTiEy= zRK@ROGGVF2G3e0I+YRbliH5?>{|SNCh$By)L7A)JE|~4a5G$A_o1c=?udD96%p$`> z4hozB>u+Ji%`rmat%gbrTKCQOi5`HXj6Gq~wH@tB&AAO85(K?%YFSh2y#~}EhvEEH ztr#S!sLSpl9nJggTNrgMJMfN>3d9Rvo9 zF{!hI^5ICg4E;Q`Ud8}m{bfjpLvxR$#?jOej~hqaTIHHMvG1u-+n!`;u+zp8dq}7J z2q&NCkqh4+Xig+B_rjr5(#QxeyjzV~J9IG}%A}>QhKBXb+Qe22@A0|Fo+0jv4jj@= zq2xv4BsL^M-r5ne=q-cQa-5bl5-CP9#pcNYsL1@)MB1WF&c1S~`u zNp>lThf(*Yp_8=;LMP!txg0p;$11|3Ja5F%6b(`j0-Q7*L-5NoYWf^%d7 z?xyIde+Y1+dCk6;W<`q!LCaki{1!luKcZ1<1c+M&GXE1y^zQ52oO(FBDK(TL6Pk)z zSK!&C?vNhtS>9llA5S|R5uy!O`vYM>072!=pIZ1fZ*-z*9G1e>>AZcl2lfqd?m25m z7zee=bgQW)+u?kb_4g92jB z8;rz*G2ahmS+T3aDj&6Nv24cqrD%fpHPs(^?oi>1g8erh#S(uw8o^Z?>@3E%5{k?hGsQ7R4H3FOqW=vc5 zk?p06dr`OUDn=y=a`0YcP@=f<7heraWFi8RCjU3 zLegu94$S?CX*%03%6)Wf2r(949QM|w)r@eR;Pe0_5SISIl(@x{9k!zCH{%3#&l`r) zgd@IpS3~bi6!x=@_6};;Yd#^FOrete&M?v=Z7afPVg%5Edf1p5bD)LhOEiP;GeK-H zEN$Ar8$$;=%aNI$K?D~RU0?a%EuE(cn8%*zwW!{@Dj+Kd%#IpD0urx7m7E9_2a|^Z zK4bvp1n6LmOY(^-e9OKO4?_t{N~NZBC*R9hGfgJ;w8U5Kya ztS8rS#r_a?7bWv21uAIf%&qpwDxL;%qHrTKvD?0nEx^t^xcI;>dCr@w`-$EUM`yfgEgfdEMqX{Ld>b?% zms-)-YAKH>b=sy&mkVk&8YOp0QE_Y`yR?JZ9vm-J0W%9fqCa#q+o;gh=j1~xT5zwl zjzqAYm1+S|r%MR)2-7%oFP>wso7{a%m!2fZwtyk z+&VuBQsjllE$Rj(eseuY7P0#Dm_&V}f5Cs9n@@QRbGdPXGl%upSODOgw92xHPSsk} zslbp!o<=mEFp%3pIp6suUPeTXLa3S?t#UScNZEOl` zuxr|ryc6w6Z!FybcMUJ<#)}IL3Huy=k55w*bQEZ4^z1Vo-EJW1I!7SwPP<2G+E8ru zVQGg>;sn;0NTLFl$0!0=JwDLfHu$1;H7==zH3$r1!Vazh4rZ(u;5_$Y^=C0nEvMXW z08A4egm_i(ltw`=ucj1gIWRNH5vy^j205VyrFQe;=F4qt=!dNZpsyuK`Ry^r>1N!C z@M+5`3Oe@jft%je@;epNCMajO7d51Ne@hb+fo=9Xeb%uhI%G0Y4<|jrvbiSah8K;F z1zSj$V?X72C%g!<3`IFRcQSVuz{iCT7cpik46e|s{ozWqzGT6a%+sQL|0VQe%tgLj zOUMo{ygCD&9?7^ylc|TY6a2@4f~I?WFl`&nUu{{C_!32t`|Mv|TOLRC8P{0%y{06( z;yX>3AieC$nw@^It_YZ(+PQjEoI8)P)EdH0@8c&9GAoCO!`$Ndk-lUK(9MrWg!6Gz z0$tViV=V!9WxukQI&0KEgYU40HqY-V8l>+QaK!1TSZ)9Bi#osD3413WEj*)o$EwA1 zpFExtO`UlJ(9LwtC*RVmHgNss*~lMC1^B{}K#Hrpw?BG-_&W0h79RY7o6w1$1n}4= z+u$VKs1!AhVT$=By&TB``p59;Kd>FMY~byaHM!Nlv$AD0oeIqwUc??zdl`ce+c^2) zqqi+gR758Y)^@x7DG2U~DBCwG`>8xP!|xp}9sWitLgU5qoT@UoihAq}t(P7lEI4i~ zMMZod8S>JfE$09gvW*lLCb!2H8F29hN~~` z2g7Un)BFJ&3FxNFk)tq{zVCy>+D~RURYm=vb7Mh>&Hj>m+BU+HAbZ~vVuWcSvwsfK zan38nuOyW#e2@foBTG z2a6$2deqv6LYRn_=1L<^)1(D+f$t*z9#2d8a@jxbj6+KR*FrI))SZw%5Hmgz9IoAa zNu`QSNeFuUfmE4c0~EdK3Hazql=sar+ezVfLlxx?Ir?~v?gjRe7}FMEfEi!+TB_C* zlBWhsDjL8zTc{qf@&jTc8J-W_ZpM-*wq9kwDZH<;FZa_d${7MZsl=0#ebI>h@#SUI zbi;5Ijd3>9;$vdYa%`;)AU-{VL{Pv_uw)|eu#jUHk^DQsP&e~E8Ohrn^njyZCd#o! z=o1GihTk4<6J}X_+Ghe0t8d6bev2(Zc~3=m-Zr8EChDL=Usu549qQRSSOK7r*?!=c zMewsm!1v3d9w>21K|d&Z@RE1)8dI@fDHR(lFF60G9%HKohkifXiby{V}dYtOC*ee4|P096vhYGg8(${i37 zxsq`{W~3(1_w;T&O-`cl2T2)N@_T8e8ny#!KK`~k%}J;WVC47kTfNe##+UviodD7q zHLKc-$f%!{=H<%Y;41G+5YkWY%%@HZEuy5c&nR?;LjH2jG|?r$sLeu7EHx2LVTy&E zuTV$7?@!HWuV(tVv-nB#pHp3evA%Z(-3bMUv8jFu6WWo9(6qo;>DqAgpIId_@HW61 zx$EYnoBiRRwIf&3q7i4YUm?MKxQ~e2a@zpi=m2`ai{}P7$Sca$W}^>NKoW(UeN5Io zBX79ynA7f|HO3j!pX$>kQP?)5<11rN#`cDv&kMUsw?va;{Dpr2S#@Q1j^~16N$^#A zxv0#*hMVF3tB(NJi!HXq<^tKTIOeaK+AQ&Yztn;GS+kUWO?}OK0P&j88`~LDuy4PP zHDr&2-@a|GV(lk|s^4{2&fRaDUUEJp1ric6iILL*F7$p|nDBjUhAnI5R zeBdnz^4BP)U^2fK;E*D83~WHIWmQL*KrL~I<#v(*2f;hxHcfre zVm24c@ndRaphfPHnMOR7Y{pp7JyrvXc+VCf@?erkJ#K;D%B_iDn#^?&bAF*NYEaAc zTtj*cn8z6V)gnR*Rxbs^i(NxPtuKSz8#5m|F zCn54Ez4=K>M83HVnM)xq8Tb69hMzBe!d zKF+FL6HWFavON(8T>|89La60$ zNvr-;?r*wO@RdT{#XOWCC5K8z;;g~u(>Dv%C+Iy9rhBfCg z2J6O4NBbey-zm1Y1+;KhCu48m|j zXY=rLrnVoWyi-IKCB7fLYjjHj=ya{Byob=DWd;1(6#7njs}Jp0PPS=SEy_*hZvOT~ z#X{t}aIdVpY^*e-X}>9|1j~{-XFT?P;i?bGrvud8C1mkxfvdduSN>wI`m09g5AU&DGWYH<83oWMy42#Z;}uq1E_+<{8;?$$`6I)Bz-@VIFtAzpw2d{ZF3qdL;(P)bjV$khZz`HZ{XZXBuavwoZcnyKYaAaRu3yRJU7sXP`$3HSg zl_s%81-V3FtI=k{u!Z{3VV&Dq`JFWl05mJ6U9Me8!?Ns?ug}EZppXg{*_TsDQp4YJ z_{5m0k>S6T_wa2Zu)#k4HLFxJ@eYmJ>-xdrx*8B&MapiWQ*|R3V@q_rvV?KJ7Y|?&WU zrtv_y~^Y5t4v)IF@rXTO{Z9HkY8k8tGFR3b> zveN!|-K32jhHE-UBbnsn9~?cL)zo+fw>5x*{i0k&5UYDX9tTas$wp>x?3wT=n-BCo z+1|56T+-M1?00RP`TPK92!!{kdET$HV|#<|GK$Q&>i6TE7SN@Rp;Su+ag*ls&oKj+y7q2kU`ld?_#I=mNQ6ZjU&a&y49`-n{lrQU_VJ5WSGki5av zbL-}7T9j^B%oW~7UfFy;GnzT{a65~8v6CGK7)H{HC9md?LprP!4I84 zEdVx;D#<$H?=AiF;kP028#nwLX15MpoYkpTe$eQWOi&8}6JwzVyLD5)iA9#8E{Lid zWlqrO;d~E}aj~NAZL8HT#&5BDx;Ay6DormAn*GP>OpIPe3~}VQm2mQhw;Sp$t5*RY zJV)xb;F}}KWjEqn&qW%9$-TSf_^Hbg{t zher*9VF0$G(c*WoA?uxLG(v*=zJ7$lE{lwJ9JQ>3yIkY%-9ZWV+&!P3>lWFYjmdF1 zuBhfxO6lQKwwANTKXKu_EWW3v<7N@awtO(H9ZD2mdnA>4K=xG;7;!Eaa@ImgJqI*3 zP`L(7tmt`Qgo!_dLQ>TzbbTGpJjJN>(XMNUi|Y{$ZdVqm7aG! z(3o;jgLqCpNO%}NBg^lP1G1x%a%asJ10wKUBNz((^E-SSK#Y=M=GQ1Sccua}ZMl%m zOAH!5hdQwV!Es0gp5xIpu~7;9)8i4D7Tpa^vq5=EFm-y*_=y@fs>UPid>tYf->SD` zHbfrVs%jnkLi9X(s1^JNSgnM>fFNhp39p+ExC6r8c6NgJEPjgd%~oG0AgMr;qbQ45 z?HBRzOmUlc?0_n4j{t?z8hEq4zzD$K(CmSJ7=>Gp>v|J7H}g0q8O-~W(zV2I8Cjl`t`^Y*;B zLgbM-(=gB=FXgMAwArFL7n3}1D5&{mAzTK9z3-mPDN)5DuF{a3@O+m`aVpK?R`I$U z?bLVTy?twqCi58`#d_5pmCz*S|K zmh({Rvhr3_JykWD&t|O+>&Zq$QJ7k$sONnznOK&SUSjB8FD{bZ6oUKYC{OKqyv}yh za^eqDzoin*0rlTSADY2mM>H5^kip0}&*E;WuQ%#H&(f?=sjursZ|pwcn3>}1;?;hr z6bvViQ-y{?gLM~r18Cd{eMbmkL!$CUuEBy5IX#iXqj@<-Z?XT`KlN2aS!Pd{_(d1f z*)#ikpUlNIa$mK5&zNvD_c(&<^RS2G_JTHy$)os9^lgiQzUK`{b-DG}dJ zk0rXReGtiFKGwrtBVQGfpov+*PuuAy1ONrd$NugAx10Zr|Be7#k^lckEW8L2{uAr} z8CbUB|GDyiGj{_307(|e6m}OPQ-buXxuz+#-3>$g^C?09r5UMDlt^&E&6;R%JCL2Mk~jQ(vAGN96srkgDE@#neJv|p}Qx)k_>Of3f~XY{mc zJQJE`dP3O_A<=oF*Wia%8aXmh)_Mn(nWux=`%)Ea>&eGtJ+w4MkW9&&gm)>M@#2mt zU{A|$1rQ7Unb|SQemn_KSl*vBg02Y@qhT7n;4`DjVS#(r^C4fHoRiWggs$G*JFq%x zP$&ap(h)+&BR2aw7w+9Z$I5Ol-9(H0uPsN8qUV!+*CJF7@ct0h$DGNvtfI!QyQ@vy zPOnrwQFf?cwgip#yE*fr3Op8Nbp>+YmA@DDn~+fFb}q>@)ot)b*%e^93NFR{iD)p$ zS2*48w7uP8&`*r}uGPo)0Np);Sr+S?5^`pguVOc26~k~RQ2=vQDYgDFsGV^UsDo~E z4~JWBax9-iywQX<_1LZmF9y1{9=jV{Hh{&<(As5HKdp#{Kdy9RRJpx9;6wNL(!(hP zudg$YID87j?Y*KX%zQ7Q=z?4VCyOCid?abe%zQxYiHhFAQmto_Hc0)8RJJ3cb3^%5DhtY$#LJ*QZ z2DfW6k<@!?hIJKKgHEwkdt8HUdDL{3EazEG!@|I)f_TM10nO+~pP;u&0bOp_q!r^2 z!9>pSBqIe?%-D@21g~P=0lvU zYVN@Y^n8>%uqL<-&yEN3&a_#}+r2n-OW6#rOTYB6zGY1UUtWTL9ty&w%#bS zI<4GwRA0~^l#jTx0=@&5XFYqU(_8px7jpj9O%)Ob(i@It4oJ1~q0yN>dpUi53_B_> z`_@K7`uMC^-T?{;UX2HgMip)S+oRD=y(dL%Bs-dA(rUG;nWBkT}6P1 zn=;!Y!`9_if>;!js~k?|oa4H>Nxp*Wg2<fKP`RMRL>-*{`a0cihRQdVY!@@qps14@Ob^5`qxhhsKc-UTH@9{p88!dezv`e^Js zMhPWJs|r%`f%v9_EiKqjeBH7xw5+^ps_>kmo1!30i!iu4CrSlo+|}G)3#>(Ho~ptf zZ-*mKG5}@ffci%<=0pd?%Y2R;EWAw=L6X)6RHzQB-%rZ)>Lr-ErL@ zN-F2j=KNFC#^Ydij37M}tC^N2Nnej-0~`Lj@DAw;=E|8@b2tPk0>9;c0zfN%rN^LL z40H$-JEu?(0Cb~S5-9uF@D>w)Cz$S|`!8=LeMB1YVjs0-kJ)Ti<*! z-HoIS-P1QC00pszZ(C7xO*+%{j1Bf@MZ!5w{%)6e4@MOoHcQ>#p+GH9P6R2nmA9K| z4_%|6qCx*q-)ib|LkF#O&8~B_@hY>QEAr%r{kcIvOXke_2T46g?acjgaVfJrK@TD+ z2BOrnGamp8wbQEM?(y#|e6MLpwUK>YTt|P0GjP5XPAni2CHGya(h~&*%U2$lZKm0P zh-Yx*NZZ$bT2S0RC8q@22I&`onM@3B?<`_=batNq^;V3M!T2^kC^0_-z`lko`z8KxX)liU#3ucRKC4}-+Y6gRxdjBSaY=C}gP$RDr>pMdj-&?S;c_)8)0l25wu z%S^0dI%@v@>?s*sFV{k+{wkME%%1oV)Eiuznb`+9l##9S@zn5s|LTR6V(6#Vw2*vA zgefrZHqifiIRjp&`9Hss1KKl$ajZCjT|<1nkFmi8P2(f8Lr-SKr8mQ!DpW1tN09r9 zVBjbH^*vMjs=ZQsNmo+(Q(brFPf0~Ay}z0uwwG9G0^e=++3KE7i?wqR993U=o*9VM z%H_q9c8-i47EF@G)*6_nqv?BnW0OI?X^aMVTEe5I!SuH2w z!DkWYsWChMAu62cW8n|^pq%|MJTp_Sq)BBgKW~{~cM3OH6;ZfMZbqJab{vvd4=>QM zI;IdLGoe)>pIN0q4ECcphD*v*(99@x{ww(E8;!gf;|ey#?=+yR3}|DrNXW6UA7!l) z;#`vy&-Fz%rd#92(FKd2*7HIK|F{s~{(2VS+tpA!21l4v4ra}-XiCe*PL&cw!B{2P zT>p*WIKCS8wSHhA^7M%Rv?FXtnh;r%mLZ-Kq|rgKDO9W;HV( zNkg_&@e>i~dAP0jN4z=qFEzT%Kpvr*qt=pn6|#|V%a0`wUZ>u#JV6jmrw|&v>k~|% zsn9AyIXiAU>}l3+8VHvg5>_9A7kXxJ-3a3+q#>^-F)VVi7mt}E`$jxZ&UO4U**YZ- zZ*kpxZwlfpv=uRi3Nj?^I5aX3^)_FF1f4E0A26$qmy-?4w8xuj zem@nPB`%M1Aof-Qat)!J5&#y;iCD(B?sBSl%vDNOuk$_hbitQ-ret8R{6=DErEgF} z%_aOFwiMx8Lz~&N|ihZ-8pJtYrf$2^?``(Hsgw2QDoY6-@85JaL=P@%0C;* zgsxW>WKsZ9+3wPTP>@KzQiKTm@nwEd2K)6e-{ykz$hS*O-!b0T!%UrT=<|OKKnT~Y zAt5k=u6|Ddb9%3(*yB&ks;Do2`wa&uy!v?U=$m^|E6eD!DC2+)u1~pUlSV=`Y0(XHm1m){_Xp ztki9zC#0W{=~>i->&rrXW@-Sz0)eixH+5VNw>qhW=AJZ_cOd)uA(a6^w{8~2oeqg; z*F!Dbj;}0`YOD2+3f|vhR3VclH~-Z2uUMbbmN6n6hL8#6f1Han9e)%7{1N8W9e)r}+%qjZS(GEZBPlxTvN!ZX<$ETWqia z1W@qy!5g1K-%X4crWAIQ#pp(@aoqz4Sl!G9R9h<~Q6Qs2gk54pcV`a5v)gFK-Uzqh z6M;W$SoQBDfB-4RjFdw&P%JOvzu@(P>|~=nEW0vjC!xwM`KB08UDpz)gs28RXH9mA z=MTW9aNZHfh+CdOnYpfES8}>u;`Bk%7dVOJEg4r$3Y0!&lh1+;2Gi7c3o7K~qNKD# z5j$K0& z4#&}7I!HrFO_7)pI+=DX-fUG_YP5QIqVl`ITqU#YaOc`h9gw9}LQy90HYtw0GX%J2X#Yls8%CflI2i+(@l zkJ&Seu{@eb^spK}%i>)ZJPR+A7!@n{(eeQLfh)n!FYv>d*$vI*Y*p;bB|ij2qBRj$ zXU|%3lM+btk+r(Gn2g{MrkbB@@+^#aIIMN0IUxCBMGJlW7&FH01s9sDC?UKj>669o z{rK9`3{jm1(%*F430x3fdsG1-t#1^J_ShX8z;PFWtk%eayqLApjlQHBAz()t2%})8 z(C~7teCz^f2oYJF6-f$ibcP78gDs~HCpTAR&w**YNZ03K`4#f&I@0K^k*JOe2|@@! z`9CgW9tT@wvQ)!FX%1;O!AIle4pC3bl0{EdoHTa$nLNb6DFB5BQ zIxfMxv!+J9Ck);{`C5}KUAP7La5V@*It(c;HWJYey<$tlR|r-ruy6OTecVd*VOu`} zxZ^b|S@(@B1>yVw?hFqN+mDT#3MfpsorjuWG*6GNksj$8T|O?c(-H~xZ6#h z@iT+}O?P@=;Kj!jUOJ}gS8p-?OUfU}lAOkl@1q1Qkgz4lAD_ z7P$x&&YO41zh`;VGKpn1`g$*baB1Py7L^qIOZ4fT+Wu_tHDgydM|e|hd~rp{DiB&E z=UQ+Uqu3>1jy3}K^pYn@3VOI_<&YV`0pQN7C-H;^rixFohQ&Bv_4U$lf?8sqw8!yh z$YT-WgW6PpLGL`;h-xCdQo09A zzPXo_1NF~>s#o9$ueV{U_LOPrwB`hj#8%@@^$1uIf%t*UiE#+Ug8(0YFLh*3O`0b_ z?u*|Dq(waFCvx6WtUCFq?UY`G{tc?CR$d%=50qE9A^p426j}$VsXVUNp1|BITeH}J zz{z#KQbsz+7HvVP<_!jHnrMi&@JmDP$3UR$3T&#`@L6`j&U#KI z?nz=X@BzMr03la~9cpJ|5W21gv@7BkZ&W59{}r=rxJB$&q_No^PD3EZW4JcV=m_qw z!UG+SekDBn#`TqU*_o$qZ$DrPhXop!2At)Dx+Aj`_M?)ZKWVpxjnaqj+9>rouPQKz z1JeGt)Vc*Nv=Pt1^Kb@u{%mvV0^tH#olKzX>o>%!J)^iBpc^lot~UW zt`&iR>XFB-=iypBxhzg2!Xs<q?+TSMJ%s`3}!B9cD-T{uY~~m7y)Py}B--={;}5 z34w(jp|}EGy5uq7A>VMD4#eWm9lOz(=-)I1tvp>!O9#vY^N8y5o|~MIEDzXEL2{s6 z?&a)-;)zu0X&1N`-C?ax1Gn_MQgqzllguysw|21UNYc~IF_s3EiwMZzCjVOimZ#A zmZbJNty#FlF;=cXeM+*YMUWFCI;e^}FA|hXdKDB{jmSnnFKcmgLf1R~ygXE;NC)I} zLiwZ76;3z*#+6$jQ1SoL&Hq6+{~^Es^WS0rAH)97ET$a(Ia!BbX88X&S+z_&&sKCs zXyue}1R%Y?L%9{R>(y>7d3YG*&h@BpdLrX71lB%-|Nta;ipAmrO z{*k(3Qkm1@>j0&q$wJ-bl&Ky}Bkmxp+2_Up&0gex@P_83|uCtgkT#%e(`B^&uRNMSQE?dTB&yq(?V% zjO&U_16|PUZcxf;CorM=ELl2(|4x$7C9Gjeiz!LKRLuLG)YrP9W=_ojVN!nsMLs&_ zi9JbRUVH>?MbdX`*g|KJsKC|9b43zelOSxtvpL{Q9J#Akx)QQUil6dRZ6LCkSonOy zNkHprz11!gW*0g+aZE^#c2jg`sZW6QP-&cf-Scr{_$o$1s=JuG#&L&G>sEpF?St%o zCU3?~Q9@be&h+WKc|6AiE+2|M?LS;iT;^xgX({hKq4zKHvajvaTs7<*9p=mysTX_j zO$5Nm4xT(Zkn=8(rm7tS;iMk!$RuBgByYzfp-Rn}-RlnREXt#NFinz@@w|AjKqnk* zGM=k7h>zZ;3%z{Nj-o)bmUWYb%}hhQyDh3d>#=7-4A6^0VE(v>2fKypSz4L&qtt=$ zg_^H;o}&IV_2zSo$238BsUhM=OO1p2gvK2q)53QRs>8ZCrc*(RAzbNX`9%=+90E_& zqpahJoC;kv0l`V{S_2lNHa6GXNqfo!^;vlL$x>5?Gw|LEbKl9suuwJ!q0zdn|CTys zv(Be|+K8rXrs{w}Pf$eR{lPPj_t(H3A_!Fqi=%=~U%Q>yQ0=D1n_pmu18Oba4plrn zv8(cJ;U=7i5s+^z)?B_(#CmRiQoK@pF)5+f`8B~xE})#P&L~pn(!0=pL~Tw8 zJr)7xL0Sl@Bt<<(fq&L&vVO?>R;m7>VIX8OR0hnh*|d*H2bfO0!_PY{XjKsw2hmsy z9fRp9or``*D(pD1Kd_z41bWIIT3LBcwW+J+$V^dFeM?q{3g4!-kegHBm{R|D|L5wO z9B;|M(O=C>@?Q44aX^lM%}pG{Rxr0@`V zM^eiI7Na9fyz&ZL3rlZ$wGO!!vON#7DdUZvX4nDp%^3#3K78LXjXHi8U#GDG}3I;0&i?2;GMDZBu_0?pc z#zUqE>^j4J3olA<)zA^@NHoxYClry)`nq2n|G}S2q>OxnBBoT?(gLn^vkakOUtiU9 zT}m>*lp~*O^E`!nK|`Y!KVts*wHvv3$?IMYvD5s=xzqmM8lc`2i1 z7syyzvW2&e)Z_YEyfs?2B}Al4&@7U?mTTXdWN#7)5M|l6b|Re0X1~LU_Gy0LOvHU&G9=b^4XB204~B3^p)G`uUfnWTNkirU*C zobdz{t?CBxYYx5g!pja8-ueq<$woA*N!Lolo8PJYjDu!2`y$f;I6kjws}&BPXcHBhWiJ>Q?T$O3)P1JXQN-CAj@^hAKwsD)cUkLj1e^sx0CK z@oRi~!ugI9WoZV(sG)I29Mxl%sk_nIOtslN!O#V5a~(UJTHG)2g(M;DmHe441f~aq zYhAYkhw(E}E|RfzE$N);NFJo>OFlnq^XfPN=6E3b9&_n9QgWc8a?y}&ZzfPME?%Lw z`(hbT9=_L@fUTKuB%G~q#%b!~uqC%>f7N|{E3v%G4b z5u$1Vb74Tb&RJ;4;9~mWX{|6O5d!e_lnHK1k@-&jMsd!VQ?B9>6nuozs8i)&mL{zi z(%EBF5AJ#Q)t*X@g~Mj;FHHJXH72D3)xZ8PF_&Tp5<~(|xtB3eZI3BA)(;jgjc1H( z#_!87lOBQ?7?kif-CvN#1`e)uRQ~HSKP3Xzib=G>CH&?5Yjs60f>5S60)Xpg8~Ts@ zqWa@P+BwZVfO;ufa+aR}1NU=Wg%#@b&Mh1p9&(;cn|XFVB)=^zOlwf$M4R4DQnVLA zXAJFXXG0lf74t$big(W**$_WrO+x4c@`qhd8mtL1#~0cp>)5h6jPTgwn%y9jYw-LY zZ`kT+X=lCD6YUzZ3!uiXPsgcUe^TjfzYh%{hw( zcW~9nJC5*C%CJXJv$xs9rbm{?1MCzAt8-D4>B`}+6PC?D$t)*hVjS09z*Yol!mWWi zNOm}b+NVYX@R1oWCO)TTaEWgGFOhE88Yv#63pjbah;JszKU>=8v)`8DuxM#T6_Cht@l-e~m=vQH0aHpauKG2$3LAcuOdN)riEmV8M< z_ETl9c1@F?Yw_n0=8MLo-VoV$5Q$Injvq_B{OutB%rlSQ&1nl|h8(bOpAQw@#3kkf z;%%O>$*PJ2A~hIh9?k`Yj|M$4xOcx|T?ddzy_kh;>*Q7Vs&A-l1goGqgP_a;GUg{#VOMm#W8Hke>G30$5oH*Ys@YRhh zCzMYLDn{oXfnU&>?1N7&<{FR33X+VDo;MMKBDk3b#J! zL=JMDmzpA-uL>YIydaGcjE~NFK?_AV8SUhFsY#wl4R2jndV~T$%*YyB4}i)a2Fa7V z-F4Y~F+3%?dAiNrGnTSShfa;s>e(c^IhfK8x90r7zoFwP2Sv!fFEi2n)Bv(ZbMV{) zk%3UMy~(jg5M+=p{b4GUZOv1X$jpM@plyrAr`^U9dQNgLLux+$>l(JerVQrKFpbfc|yB~{vVD2lan1hWnE5mx7 zk2D|x9G~;RMbm7`!(^wZV71Q4_yGD8_zekB@MNQ_0haSfFcN`C-J&8r+?6tp^mZ+3 zPz6(+9fF$<40lgDx>Q#Wef^|!+8{0dy}xT%$ruUtPu#$zU-s-w{T_R;H3WPGY#Ief z;%<<)Q38JIobv+!nP?z}wVv!Lu}gA2m=Bij{xSOJtqu$S zO{0c`X9Oj{BwM^f1~I=!&i-<$5No~h0uY?jXPPw5Dho9zX`7?`lAhmzAl!pOsElnI zVCOPAf>;;~ZhCMb84^webhKX66@ZHyI9A@4IMevn66p;;#(me>z2y2bmYqI zDtmOHb^L}mWLe?|cZm7vM2Of+9(_!9?P9JSs*K60kRbskiU@E~*|_cetvd1lV%vv8 z55|{GG`+@dbVHy3YLPM?K30Txja(n>q~Yvii$=I)M5A1q9xX`Eubt^IvG8zLNoN_6 z=f8Hf&a)V4nNegbXoFfF8I4E0mnRokq}ROe6*vjSh&yJ{SSLVEW$2l1C|bwwnW_?Q z$h`1rTvT-o4rdaMn|h&#dD+q5FKefon(ty`Mld^6&1o~1>9p!}{}AQbNUjBCd&OW( za_Ntke*V7h&#cW^(s3pTo1!d9@Go$}KnEW{?hw<`U_igFz|-VTc<@1LM)64J9kV#| zamIgUxxmeWuqvE)PuGy!4K@oOEu@hw|CMj96i#7=+mG7&Bn3*$@H7QdU||hDk;)pl z>?`O@P{1kFw({4Ar-vT!@19sA2 zKZGDg!EqOB-kVlL+I1m)P5nb74xj#2YwFKt2X zjJ2vBe)r1f1M?oXH%p&xGt_xg#<3Aci;G5(f{BT&Mx4r2yg=-<%a8|xno`<;WOk02IkKY6WBg3kU*D zE%ujgL<0k*;dL@jc)RI$BNc*7uS+A`Qmkhik$DYG8=NwbMQKbsO`TvmxyT=}htFp9 z{_TvOZVNbtIu#FK<2x*W>MnC6j3`?^@lkG6QS1TVUai?+L9>*MU3Jc0P3}*QN+|kF z(f)s-=>LGC|B%Z4eirIWuPa5e|R7xL0ZTp+uz8~R-p#@l8Qrz?`4I3Fy8yw*ev zq@Os_6hGTvH=;_(UP6!N3?o?KtBB4>u2m7rJ!u=%cM-l~OHMC&DgYcFfL~*eORI|q z%7)I*?LuRYM{A&RH(c%Qfw|AE%9kCN#FA@6>A~SVEy^08SyMp+>$2E`>txKG=<{N~ zYBCFl{!;E&!7Dm9rrauP)!*8WCcYUa#8X%Yr_Ti>OGo;g%xdxi_~nFz|2vZ zayZdg$nH;D+rw}EOA;x9Q5sLRPAo|}2F6ESNduMz8Ijb{^iBaYn^~%P>CXH*&g;OR z`ss$=}ru0`pK%X){U8cF7v+=|MJGnQ%HaPdVe_+#xc z(2G6{Zh3M?&Mq%l%+9|rQnKHvHy4SZ#88yznZ8T^8F%zc;yD)hf{Mz^xd_%2tZo4&TuP2Yt8FkHqPhLNg)&{8mvlnjP)USu4wetQ{h(wBkdbpz2TxX8`JnB6VwJowRTO z8fglGRNHyBBMZz1XT}ss)RCd-(6bLj*7|Nn+jGv}KGrh19dd>VLnH-{FbCVOm9d1C zx^(Cet4j_#)9_ulu~#;xG)@d93xMrwCcrKjS(Is{zm~mcYR=bWo_)*j3ChYmHfXAX zKDDdZuPEjjjl)!2ol)sf{_{q@erNPlf3;0<%O)9W#oy4lMBH%S!b>Vs%zB&khPGQ7 zQ67Yw&c>`7DCT1L<+a1oof!4PTSUZjkrADjp5P<;RLLBi8(mt2^rPkBJkcPsCuQWR zax2qPv=}DdouEqJW~$7;+$pftSY85ze=^3~#+_NFL-juR-y%;R6M}&X%0U#2=o}otJ$q67AskVxR zXN#1hQrz*{FkFi3Q3Q)7mN0&K+}P};r0#MK@@_sk2U}^^xn{v2Jd3Cy>GcWbE29OA`~GJj^%Ewt#ALs)%DH14x*y+H( z3vZFCRRlFjqAl-*>Y0Nfc+h??ctI0@sdYOe*YfF&Mj} zaH^HQ)uhqRhCvy>?y_yQr$(AQr7$v13`o?jw0;!ua~~h0!eV-_V^%$WB)wk;xiJq& zMcDQ2?b^!ipnZ%lMP4^vO4$)IXl5f6PX#;WcCxfTuzLLpRULZ;F?mj%&*0?txaP+C z)RCK6*X}?G@%b`OJ_NW*^RoPf=u$}%Y{q0TuRpq91U>5;Vd}o9MMCUdHOGaT>r?s@ zdq~|mnl9yd=F?>2nuPnOuVRBIi%OU8*mEkT98tK&exT?mS~c3nL{fIvL1$e|Zp&eT)8n$kn$%eVkPQ zPnkWreY(0jx$0PN5TQDGdD=M`o7R+_8|iTT8fv~cS;DVJuj=+DVCIM{BbA;);o%CN z58SPIJTxR3L?{U8Ah{gmsNOuI&2Cr^^iwleQ);J35RJR5hWaM1;6q(cni1x6HH;_v zpfpr&%ZMr>>}+Y=*b;|kZak}LNXM_8i&$MDa~y>ck}qIWAPH?=Fy!N%9?wbav{^{F zS&RbN8hJf+OX?q+gMdl>OPXjj-q_iw0AR|s>k03nFNEZVO6fu4yBUPUCnELS!{rpM zT^pQU)q>`9eF8*w2UrT~^@*xz(-z2fZ{tAEQg@#-WX8Wy**Zi6&FYmHd-5INpQ)6E z@A{WS_*CMv;v-GX3-m>LNW|_C^En9_3YNg-oCG*7!hr>IrQ(GWhdghQkx&#UL(r;qB zK`n4X*cwn+^BObv=F%%Z4q9NY^9(_cF&hWzZz+Q_cnfoA&3LW`s`+OKh6cBrhf-;G z)bO`t2DoF*OM9DC$L{QbgH4#%do?a9^PSXg<%)P<1!GynV5*2HD=2Vsgzox;-T4T3 z*{m@}g>XIE3}kn`7`FTFB@O=~vU5)^iNhe+hb{qyYI)}mkCBlBE7l%VxvWDo)3AV- zI9Zbs+GgaNJ$6d)MX-3TH3#K2oHZpwq_+>CIbC4B#<-HBq6ZZd9m3%{H|^~!jfZtg zK3qIjfl75ivsgyTyN3y-z9tJf7kk|!Eg_VVfy$8iey8%`mSL70=k{HqUS$9I}LW=OIR6|SySMi^d!*Kmcbqe_{4{&d~fRgq3tgp>_{A08{t zf_w56bH|MFHx@_n&NYq6K6EJCGa8{o$ZR0|Qfo~-N7db+Rv=*zn3uR}eAfHIB0E=)F_v2iHa2xWGzd=`NI3feN zz6po>$zvE>VraSGu9f~`HQ$>zu%gjhcQx?nd3Z3$TmiW+U{JQF-gBnA8G+P1oi(Nf zhu5aoE$^qm&gTRn6xT2u187F4=%{gksz)w#|G3aRx0XBS`@2=o;p8+YH;ykncqV1w z*d748B-fX7p<;Sb@82zC{wezE-MxE!B?RSN2F8yLO`lQ+@D(ysv0a-!h#QAdIwDCvJ|*l_371 zV1UTc{#9ri+qNKqP`W2~dNKAVNRF{<#VyH+{|BDiZI9y~%JjFp&+0R*N8Oh9Xhjy% zgrd8B%n3qz3&p+1#xHr{tyEI_C1DPiWl-x`Tm&|jBXpISG{fYxJ)rFKT|pX9>wzee zbtvWNL!UD*7eYv(A{i zibx^&{HLz`@&)ePJ-$ZhOp&;N@IAo!zq;1jI5DmzX%S#^goy~BdukPlw~qC$K{7at z)7?P~E3tYZ%V*d&K5~jwbgZIg0JQ^ZcEaR+sLH}AGg_K=oE<5|XLTjwl?mk-n;7GT zmdThR#J3qmjUd!;q*DxJ83^Yi%0G$stjhyIg%D%Y6J6am#4;i=CCtY43wup`V2(V- zqFaGSWn>a+v6LyN2y4Z2`3MG{ zH0%ylB|rhrycBJ=*^#Y@3}DNv)8AS>@2##RQ5y{Cndr=1^{cUB85zu)x6+BGL z4{YUPd8Q33??hI`ze4BxdnJ7H={?VfY>a>bl#e!Ud!|#+I__tG(UgfW5$7Vg-?K9x zj`zO@tuDl|_4F0bs(j_%jExmqr-fei!2)bO8X-qQL#g9ubYw&>L}A2*=frF9MyU z0t-h^3@IVEPY^;yI2%pYBNcCf8Yr~I&UwmkyG>5qG$FI@mp)P(WIeQ^ajX39Dd)!N zm;4wN6KCpjX?$o++*!Y}&4Ib6mAR@?p`}+;C6PROO-sKZeDlqO5fs>8!wPUsDor9@ zbHcmE`?{hg6ztP7YCi6!W5`ioP;7(R>IqzRhDc#)H&IUwFO;g0N_=R*G7O~%=zt{N zhuNog;fxLEs=g4P$wa%+ErIeKzsoK1?8A6z^n3~ z&;fF?lOQ5Boei+AdUjzc;DcgX)>^e?&g42llke2EBb8=x3}+SWcYbjT^Ih-GW!8;6 ziwdOCY^+`+AJL&)E(mD?XoaXeTyg>Iw+VK78{O-}yEMCvdFiJ`Z!8{PWn!6TP_74h zzCD9UU@nn2p`_?dKhO?^oVbY-&6;%`JQhCpq!#tP1wUz5KZ3doe&2C>&v|ETum_rE z7-gvgvCHD+5cdioI=T7Xim@V*6c3D6POW}4bqLQF-Pw5+L0|Fgq8Vz%>adbc9kC@- zxuc{Xe)C^;wd!gLX6=)oJHp8cJ}z5?ihpXz2K96#CIlE(=>W)gMG(hV2CRI3Il@6i zu4H`uy$q0F|GtL)q9*Pj=$7YLDl+96?>TxY)ThTPO{P6#9_IF z{SX4(4;Jn@Nhs&8)O1?g-Irz>D`~T8M~5z0$0Wq;tR>Xc7x5|XtRq8&e%+BB6Z!%e zpZX?WdjARqG5j)b&e&o074tU_r ze_UG8_wn~B7^yK*%`FmNade5ZlcKQLEel8_xkh6dp;?IoO(&Ebh$ut@NsYM1d)5<_ zJ~rvx^G!&*?RW_u10hY>xV42F_I`~qbEIxdj)!jqDmp*k#H@M^lx8~>_1W=(I+7h1 zNEhJWKjDO3a!5xbmPIOh^0~VL20Hm33WE@@`jU6BE+%l831c>yfjYPBnMWP=0XzoT zasfmQ7OT3!8)h%l8AMB298lqL%@n2dw}n{%GS*3Eb6!7iQGwr&;1uKo*4p{|Ja>)p z{BKztx1E#p`+m4dRzeA^AG9XmlM#*QlQG2HHaVvqbH-VhBB08T6Clppdh@RB+20D0 z-NIs&6$9h-b+THW%fJqSN@?0b?=pDxCz!xrd1LjX@3?!CV|2eOxik;{8iWU%+|11< zp#kDwU^+BGlejn^0M!-3*{D@r1No{kK96<_xoezbw9dv$Bc&&QT95TLdRV#)$@Sp}By5}E{j1Lw}$yZdW`Q7%~>_WB+JtS_L z8}TD%r+J-b-Xx)+jFYdKj|9M>zv~9ZfubhkDj?X((4&0IGl#*fX5|6ftEQ`bzFJP< zES2bx>3>{Q_U6klHMvNHq&^BFb+>i}FHAIdnOeSgh5LJDrNv&!f_&b+*`WbJyNxbW zHyTYr)(Hk#TIB+Q?~zn1sWDGmwh5|_vt0@pjT=NH!HIGd775eMJfrqV*)qsfoXd zJmP8B&{mX$F$+@RYgPI$dlgcUXVhV$rHBG-Hl1@Ox>-Rn;ZUoHZEjBC{!8*z1)7d zj4I8_bg6gEfEHHfmZ7LvzeQD`u0Ls2r)o9zf1FJ!HEtnxLQ+9>hIZS{(SIA#kg!Nvu;F|R3EdempbZb8 zkv^R*dvs%##z#i9+$;Sa1^CE;MoyiZfhZ6PgKqTPth~tH-RHUw@CE8;>)eH>zGEAoUa+oa{I%} z*-zl0U-93}2jZq5R_Tj69$@8!#}pySX}sX~9*Thi+0bTu&ml$&br(-%d5kp6sCvzJ zQ{b;}y;*H%^yB&w(U?o zN>B^LO`vQdJdq%woV$_+1sjuN3bs>XzcpONl~X7Ce`6}TTzEU445HOi^>viG1_To3fA$ih#!Pxb3ujfku zv5(op|6=I5@s-9y$}3e!K(u&ryjLVPE%j1u;7z7DS)B&FZj!%iPmoq{j->tD9TjTL zfth$doMSx#tt|g>3Q=V_fl&n9l*e*Qn6@m%Op@y*i?D)hwalG%R7dM&raGqz854S&<9W(d8O9C zeHu?nxsmqIp-FX{CUXcjEk6?n9(>)(#qIZbHTr{1>^5E&^2gFW#Gl^cpsa%hvR;QO z!;!J(Vx=ZR4Z@VB^p(7<@0$Sfgp~l{HuDXE8<)p-ylaQmYA1d2nJYGV0A9!MtG^=0 z>H=(c9o$e}ZOh=B!d9WnR!nvmS{mPJ;_&?&!ESP|5-XxlN~9wj1g4H^H=5%uabB6E zd!!%p{$|q`Oy0}}zxGFOwW}0t8q8SrJAutiY~67cW2pONaf-z5(0-WsMu9sO;=t-ZQ|PJ2FZDWg2zXlln5} zcYVnGLdTk30=VHf%Ht|gP)~w}i`pS02ScDkxHvIT(ARr21b{# zUv1J{YsoA2GKjAoyADdD;vxY-A65)-VTjdtKn9@~9_U!k*^3zDOBDi&Z|F&`<+#oj(&9AV2D)KKNcEp#4vgy|bUr&jV~^B*q1&VMQ+;dPJnpnnS%=3; zjr}cw?|uY5N6TriVkfxB;IzAE?7f(`C{w>VW>rS0Z!YR+{Zce;kI#s|o529b-|8>) zV#Gn;Q~wAZBZggRH*i0#kcjwN-a>_${$R&B#fJNfC#nYe4ZuIN7caz{#OfWT)@w@ZM5rF#ye z&RTk^oHVu-;A=HqArNufIhSQQIun1r+7Kxdcbwj%l1K3Lu8%dl{?Z2-Z5eq)6*Vh4 zf-86<(jd&`x;Yg4M|OpQz$dgyBAqA3-L|*@i}EK@TTUZ!1kP!gMQA9;4r153_>s>l3Oz3jR0}3E^`0LtXB8SZ z<04er@CRLa=SadWGROhTeQp!C)&RR5$X!u8iGJ9Do5O3w?@|a%0Qq2uX2&y~)PDUf)^D1?(O480weCyQw4kYG|!G zkYCMVZtf2mr|9#h!KlxUL(!DkW8AN;%TZkhMPM20Wgsu3=y2gohmJz$HoHfZ*jU@M z+O9<47ggf%vYLGJAiZ#e)oxN&Z1Bk0fQxg<-f8J%H)=1Qvn`z%UKcNr+$;5mxz_zp zek>&83r4l{51(z(r^s^L8R2OR0yW<@?b~>mlx|wv_oy1THM8;cs zmecO2u}q7m!%`gr9&2r&1$mX)hX$b-tI~4KQ*u0jP&%Q$`%bWe+M=!bcb@YJ zyP;QYxB6AiJ4w;Z{>cLqT&v{Erm~2kr?#Z?^vnZIQY|jxAN5LYxAH>jjHy(k8T|C* zcali98Df3otNla?kb@&r%rtcndnRiu5UCNnr@r$K=B=enhTq^H1_)#Zn_HGmn)+Zr zcuLOpD^pby&n-1zA^y5KYV5Q^h>j8%OFKjDiA5tQSVxIHfBB~bX#$pLPL<;PdI4Z`kJ7823e&!)}Ngv3j41rsNLVeX3XLA+xx3m;?3 z%!^~?^!`4O6=JC^G9f3s2#sMVKkh_#^b{PB3*bKPqIa6K6~)k$q-Joq(=3{_7oi4} zGze|gC>9QtCWx)cUsA+9pzn=sbmopiH9MfRa$?ULVTFK1qjH3zqr5pby+=d4@u4;; zjR+^7tx5%B$rzCvm6;`Xf=z9!8sdYTfh#X`3FGgH$|{%pR_J8~cf`AwIV-N>9bsyu z85WNo>tSiR{9tM*mESXFKn6c|6#GnD7jv-m38IncpqZ9&oqh6KOE$9pX{EsH#i=3QY{~MAnDVpfoFA0%X43rmFF0Xm!&vsbALRSPjr_?1;=WqNX^bwVw;~ zlATSf3C7}uTwnH^1^{p3gZ_~XabwKW8zkfu@(C~fq~BpFkVy7xY>e=?^+S3C)~3Cj6(Dv+ zpe+x)k;-ZRbgw%Hy8R}j2~c#y3Q{yezG}JgeJObXearNhuGY`EaXwInOqJQqw9c<% zW)-zqs;1G8&c)h(S|3?(F87}rB#$K_a8t`&(9egu)YJe_sfrB>ZYDd8wX@DqHT>-} z(Y?W@>g<<)X-K^eI{=LhWL9dc{8SG%! zEB7%uD&X58yxhe)FlNub8Nf-%q;h3ZnM=d`X^8L1qLR-lcIMdq>uj65&4p5J5Eoi5 z36G_6_;fghm=fc*knR8XG$Mbb~OU7&%mA#XC=U^5k5ZG!LJl) zY&oA2gs!ytuxHSEf^_n=2{aHuo-8om1M}^Cnwgm-6bkA5)LTESW*#iaK!+ORp}ef7 zD?TV3^*rJ;)Cfv+7Bc?EN+P5QDU#2SYkR5Vr$oijp`wsCOk+{3b7^m7mk*JBrC>^4 zsQ-P64qJ2J@Mzwyi=vdC$riEF5Ku2(hopR$37f?FLCjW z_A;+i^VGW&VjQZI(U^fThrR`b=kov_QnAGNUy}XbPWT^sbLIm8fP5*KdGkM^yyoTE ze$)VPX9GJjwRE_LgvCojfh+)?WM9eNkFjVJet_|0VaCZ!GGVGeQPASR@28Z%TTnwY zRiSNaYLEmlXt9wGiFFZVD5kgKp+Eef_CnWhYDfoJvV0SuqDb_JhqYEw)^$m$LibtJ zDRQe6(r4Q71OPXe-D!My**->oI*!E?>r_$Bo5b|1YW6-nJmQ~d9G6?v`xdfb;v%n% zGZZXfHqIZjY_+1QtW`mRVlM|O=V-mF*Z*EZ&X(olNCfxwL3jgOz0P1h&DD!HR=e`~ z8VE&WL*%8cm1%?Cy=b$Q$J@zuUkBR}Dn%|r!@2%khvP3W;KLv6g3+Y%>%}@oq7jD% z8BgltLCJdF&6$D5S0voUewL-DE!6eEzi-8oeqHQ*i$-+bmErGu^<*obb$M=Pf8q&?LC z`|}ftxU=h;$gN&X`SU{fE&ho0`oZ9~yPZgR)Th*8{qyQpQb?oBhW5kNNPxhLDuaid zgj2b~F$WcajvinH8_k1ukNsgi*?msLneN;7V&7$0-b7P`G5Z?{_N6&n)Vnr{W*$OR zby?^lp383l8~Ow39`8QG4t%%4S=j`vVy)#jNeQEkJ2^-JtjBRsD zgCYSQv}za$?RLlekx&Llfp`Xg~?X^5bFP`SbRHDNoqLixWYQZ6al-)a^ z2x@^hZ?Bv`TE9;j%^HRbr~3)x6H*5tnaeWc#)oaElVzb$zxZNO^+X2qOQq5c3piam z`b1W)a-DIjoxYA3O4ssgiDP$UMPiGED2i0dWBH4P`y&dcX(*`QDHD zN1XPRkyuQ8f#r^%5zi(Ck%@oKmU6a4E5pd1hA>teJLXC;Z3myvaVf*MtrfR_0~P>p z%FV2)sQ_4*EQzw8)IwbHvm8^8%p*K> zZ+RMRmv%LEjWXC2W-;PZ@&kCqr_`kR)u_(GcJC#y5!qlss$X!I_bp0(F0dLc4Q7t8 zPc@h)io+cr8+6eStkp@M0=MbB>6)fYBY4~2=!X$oGl|St^+{`mS@n~JxU1$Ml&Lma zA%pjNe)Zlq>@wVs47<2;hLc~R(bZ=?zJGb4ph+yh>D5%Ae;korNr;!rV20tgdvGy{ zz{!2g)RZ;=82!>hv~jDs@bLYEP=2+cu#p1$l!2!~rfb7!x?Ps!PsEhYC^198moS>~ zKb`f~k zEXmKM;Br_AGi2n@%!2|;1uxD#pHyWy@+!xwU%MTL9(u#kVQ)xn9UsZGV27Z{WAPw` zrZ%C$ZW;nQ^8{>lfrVxG0G;KXP;;HRX=PkRyjxU&>4`}+>G+|J2xZ3O9!3~G{OnGE zJO-tY*Z6sTGIeYQz4&0IMz3)u%8rZ19ciTMhyx+G>RaVGgmS!t&T!0?1JNau=Q3TE zTEhTU7i+}v3D3~NrNE`E{>?|?Ue2~PnmTGo>&|mGh=!oFw{#4$S6h6r-maX}7R(eR z?RlwYcWCs7C?jGI-O%2RM0ZH8WlzWpxBf36@iOdk}A_qh)xzTd+t4pLV>r0!xbd8 z>JsPQykcoC@^1c`HOH{k202A=)bV9lK_wN$JAsOeE*c_Ct^v5xWV_e2Kn!MK%q0#J zwwzhfjzfYKo&UL>`q8=h*9R6=l=k=d_Ay*n{Afn5dYnq(RIe9#c9e>IW0GK_MqsaP zr~0O{!`jr@4CFf7qGlF^y)&mPVo^|0TkJ^J{Yi30B`DJ}Kv}1Yc9O_a1!Tk{9hG7u zdUj>!L*t{<$3>h6k`Z;jNB2ryf-qTG($>iCceWv&XW#KlA0nk*iU$)W7j>s*GF6dM z`B!D#ceVf>ne72Y)Vy=(Y!XPxEm|@xwk6tkKgHVlVR_%1QvKy>(dU24=27X2%9BXD z=Vg$ku?yOKYh$mL*(h#eTSR$R5b{@6BtQ!ap;R~lw>p_eh5l0DQNnD2vlivvzl;rLsY&(T4u51#C!S)++FdXE;gH^8k9Z{~=-__zZo!cN?rE4^CvL3Cj zvu({jWc6?^yi`XAD}vqC3yUmKOY7I^p9^9}J+oGV(nzM*>*l^P_^FNJBgcemvt~_UVdmx8__ocj(hh6~0c0+X8B>^h zl3);YG1|ft&iO4@=`IfII@jB7PxJk36SGt)MEU2wan5306O5#K^l6=YFigQkC5&jJaA}tc(^D`3uqbp04hXJ`pbdZnaFN=6dregFO*p{dNba z?hNFEEX{ejvn6NgG*9tp&%}Up+&&UlMVwg3D$v)XE+a3u$+s6Ov<}qY8pMKxfh36< zV!z#O@?nr}jLPL%jj^8XQBWP1$gk0wwK@zsKg)bDsX5_SpuQ*Txg6zeZgHZIy|IlS z3!tYu0?@!4DOHj7luxOpT6K+=Bft89A4B+jyRr)4Kfgq{h}hfn=V9$VIJ*-Xb8dtM zoc*Uhl64f|D@3Li$9Rd?{6Q}9bOklH9Ing+^p}PGO%e`@` z!lDgokvgKE<;kG0a=3Q*&wW~7@XvqBh%i6WSt1mP*e~lX$9<5KYK-Wyde3;QJpasw zbKnK43n0w1NDKn!1>+eI8pmPwYJ#o$^@2564dXOfk6>6s+ zRfoYP2zN?}rk;0!YaZsp8&_*K*<>IQI)&&0k;-3#5Cci42z%5-8TdzG&&zcIHg+=? z{vlg>mJKN-d|Qb|V)w$nb575kAzO$oaIAtF3*mzBA#!eYlvNT(zwD^<$^O%iUfrh; z{0P>MZbiySHb$OtXa*e5eUt0Wu1Uk5-zl79RP6b|fpLx*u_nPCgF#A_^C50-?w=Wb zFvc;*+S)$R+fX$l=dz;Kk=0((+cdepx*1^FXyv(NHqO?CQ2cJs zHbQ^I+UpYM9iyIaN%N3R*&Qu|Cpcc$0&(Q$$-C)_Ri0G|{4!4d8eoBcJT)Z*iWE}^ z1%kpCvFOji+j$>P+(>Yi%%VmH)yZ*jH{?i9@Z)%355hS;GOu52+9eYi7*~hK!-N}( zFW?{f8p=LQdn~PWo6sq)#)6SLPXa^C#%cf%dHbW7_uf$ZFkunoWtwSDieDJ|HwYFm zQaNBzMh^<3l-cm6hmY8*R?#2cdj*i?#*59X5d@gw_~t`Xj#q>+ZL^Rnx>wk)V9$n} z18u4s#wT}6*=-ac%{i2zqLrm^pDdKuuGk)tugz($Gzr=dHQYoBT3A+d zapa4=rT-=EOYica9OOomX(85rK9*V#Lpp&o0k2}W?p9mJ3!%xgY&DAmRTdh@BcI*n z!;ao43IrMSvFc>=1Z;?EB*B7@owGeO_TQvMXL%a_iXM=#D-D)YdqY5I%Xzfari;{% z&D^pwECv5P$gyT%U{ByxX(x8Rmskk!yru&$A2pJhEmr}n=5N|f;P@)hndNs@G(+V3 zs8EC5E28vr8r4r>^d9-%u5%BT!*wG@vATuurfq_g763hIOnYBfM&Ot)I5osGQmcCH zcG@>fZZ9nOw7UfGOGZ=H(4&rJJc!v+v^q{nBxy;HThr8m(Wxp^w3AgaIJ^^LEk?sSz{MpvJVzeq!Ee z{Zy!y=>F12iy_bOntDT8b+y26nZ;aTHCLZSsbRyh*6eQfFk&ah%Sfi!uFXG$gwv+` zxtGWlZKfamGnHY?bzgK}7CJe@Pe)$VPo~3-dq6K737G|)SFm^l8d`jvNZ5-cS6%(I zFD_Ni;Wyu;cLi~FPCdIs(VeelZz{AnHTLvYY{#Gn5Voku#a3v9Rm=VQZHO93-bN8~ zJ>*%2&cQsKIoyx9GkO0sIYzBwY-?JcS{_WKCKthY45zXCED&nxr^VH7jQZS@EIMz{ zKDpFwlS+D6Bx6C<+>o6mU12*6!skof7l8Z3yFuImCY6i2o^9Fzcq^+YM2a;&jwdd_ zr6C#8ken7PZc5@XYgMkOs+2w>*vs=>ti*qX;iVJa%F}ql(RO7L)CZ!To1TPBSEvk% z2$W{Gm!nlou3$5`6q<@g$=YEinf(GMK3a6}V4PVTe|zH|k`b&6zqO{&*`48pFb66+ zbra^=TV2FXF8pJH4M#ZBdrb|(hHk(D!RF8IV25Gx_x{>(Qf1tbEK3yYXB=oKR<}8t zXGlg-n zj3aQWqIvi}T_gggL=PpEc0flrnwwH);M012E&`!2_XF^vsG4+iWI)Cn; z+am{)fxC*rX^n#tgF!Tf%29{ST8(DPzwb`TkYZAz8;Q;CI6*K=yR?ii*l2>tj0D_p^!d9mhx*U#839&}FY zYKqnc3usdyun$`WpBjt$Jj>*aeo{O~X!hb#^KDkIB-Lhr1V|;mq^B#OA}k;!|Nb1-BQzUE!Og;I zrvA5pQP?UJ_aU9~&%wW=4`YR#5D-~#;sJdievCG=hQE0T*=V?yDo7NHNAJ&KTb%Nh zRw`tKTd`CfACc73Y$44`>J>E#_v<08t6}R8dCImucz-2ABq{C6IIHMH>0<~(%y~t# zHjHiwjZ>O#qEfj*k}HAzTVT?GxD=l3OOdEIWaH+6YKV|-145$;dRYVO4hooUf@sa3 z-LI_{uEkRHxO!t4?!@Y7P{ZnVJU?)*6xO%5vA4AjZCq%HToEq#|Dx6ZOIH752~5}j za_s;6w*NyM+wou8l|?WU;eXSv*-8Ye^oFsr6lGdXg^6ceVdw29v*{c_H0pGwc7|v> zT>9C2V00JwR~Hwa@xtmSgRx(yW1zYi{!JpxZ2Bb?a>A^z0>mJN(`dyIqiG(|Sj)~g z+(fE8^N2(Q)!3l#uAEe>$4S$9m&1i^s9Lo#KlT<6CGNO<}u}z!m-#% z#YLp2@MlhEKtFp@A`ws_MiOWhtjG}aSG9!O;bImuolW)JT6NQ5+}gpS8m&`-xW>h} z`alNbs5N11Gmqm(?M0M1$3r>s}6dZ!Tvuw*#WO%CysQO?3* z#_7lI)aFBb=Z@A97ZpbLj_z9DkDUIM=8o_Jr74qt=mOjQz+pinS9SdR!gDoA(W!E2 z2=8};*VI2|3$myEq}uZ6=xxnIQu3tA$iCN`d>^`*PVUTD1$Qyw|1Bx(lLc45NCS+> zB$C$S4->W4Di`_IUVkP4{aOOt5I6>;jCClyR^+MWcXa>?+&INR=|6i;0$Xl>G=wZ? z5&HBzWrrE78lo^`*HprT!cx!V353Izw%XK_Mb=*U&VLRv3xVGa1McDM=dLL)SjtJp z_MF10o4~$2FpBhC6mOK4OcLYmt}V=Bm#6JgrAzf)DmmGVSIFzqv%S|bN{E=~BdVV@ z#=vs}0qgK3@kxM8eJ^O}6g%Vw(Kx!<(phPi)R0VaIuWb{DDysj&>We zF|nL9tc!xD?inK*OZ5|FMiGJiDHU!>GC>-VY*G6vVGIbrFEVW8phpLk2|ric&pGJ^ z*hs<=hlvJN$NSl*lbq{nUTsR$xc90r9qi9hjfD{+h@-%F#yNfUXpqcJfO`)ctDE@> zi}uKbi58VIr7aX?sd51303Xg_Rikp|!dgY{TEIeKFLfJSWyBXe?U`Y9k$Vc=*sh&U zNeGDei)xD$WpS(KZfT%cb3BAR#8xh6waiaqK?+>Ml4ztYcnle+oYZQ$yN3d+-A4hS z-NoXgJW;ct83_DQ(<;=ETYJ*OpQ$l&5{1P?F~HusIzet!ocnxQ;F00Mu$PRbrasV5 zEzC?c97A*|Zo|>#1bTh>1Ppaej`*)2Wsph%H6|3-vd>fz%$C`f&_06SZdx$w z58oeC!GI!qV8?e$`h45H??ve(z4NC#!rMv0F6us)&Mp4OOaV7i(^-cQQJ{T%b}Utq zN!_t!w}9b6RMAcu9NI&l*A5@mDgd0VO&ftz>A9%(TwgvsTn-lZWTuSo;sQcW0siFh$1dtk+R;6A!QVwLW`_w5RuuWn5G^ zn1{IuxpB$NL589pyB7+LH=nss5A)E0+VA5&Z~4^Gn+Van%C7%>hepf>2;#x+v{EK0 z3~(Ureg<<)%tPBR%_5RNXQn03HE|g~LtIKltiSJ+wv2EXAcKq|yKculJ)!$74q;9J z9tS*)GswuX&LsCdP^ zxRH{Z)~H-1W@c)WGIo@*R<=PTB?et&Omoa&wxw7vW{GbIq~+7GczrY{+#f0uB% zFyY%!$V^JjE6pFxDtbSV!j82W{zagjN4Huwmv>jnyCjt@nb7Z>tmC7)OTLBVtqAFP zg`}Sx4*qyyiavWR?JN3OuoI_8!cMa{x8N=n?ONBKseHxvd`%aCHTWu3$Ri>{>0Zxk z;VFUu+P?YSXy%7jK@ z$#gV5CJd@&DBW;Jgrs>DjxRzmt#$)& zGz`i?F0qY;=~_W@6aW~*zx7&sDD|nGM^Df58@3=|=+`G#iayc$ZIGumbzgSa&JVT; ztF!{H&)v>NR>!M&Bxw98#Y;rU*?lA!1bbg{hO1Zgq1CDoVJ-qBUw+^mm>w4lxnFR7 z(^nY?CoHrjeuTJ4ULmG{#r~HJ5Ug`_mA^57R(zyAEG&gxT+iiOnjK=^nBr7$WG^fzB@tU??0`KIpJ=53)VrU-GAn?e2X}L6B4$Fqk_N2%4`QH z?Z(`U2?^lOZYggb-&&wT00v5Mq&~>;NzA;_)XVOThpXLv3Gb@Y+aW8%5Sg!`=>6(v z@y^8*=O}^ITLcQ8jZo4PL@Gpjjm%y;Y^wh8i51-w`9okYKjkW>q^q2sKbJa3jbu!lw(ya z-V(SE(-7ss6odyJxYX`_of1FhA-W7D( zvsR$u$aA!T3Hb>V69AtNkD6Hu?$;w(va0^|NXHEG%lF%8fd4Lqj5V2iJu18$KY(h zOlCBeb@?!>JSBQn!pUFEFDxN=TWGaPtjf=1E7w}N1oC7JnhgXkH%_To( z#_`zlHS4$AW=hOKN)ZQS7ZgxGwi@OGB3(UuAz!UpsT}GuDQxC+4J1r#Xnud2<^o!; z!TJz+kaME+21XkXoLDnHb+q?z7r%Jo#Wor&-R=X}{KNGgKCCZO{NE*jjj%3MNRkpqdn6s9;{dB> zHVWh8aomdmfHimDt;(T7(Ag#_n_+QtLrwA0Dg}0f{cFf~EE2ZXJ`j_<{^Glu0}z;7 zeJJ1&*ws)@ch;916}A~fn4GhLCM5Zb$Tyf$jJ!b#pTnFOm>6Me_u*blJ(|^#3Bs;^ zU6jt3S1zSO@Hf(nAU%nTTTL#jl@`sSYln-ii2>#v z)pCw8nIS3{BU3GSZcRFb0gs`1o+6{l?#>rTk-Nc+Gp~3F7U@2IV=IkI3gn}i4-ANV zz#zsUH?PCC!a4mr>lq((6Q-jp`yhdgDox+c?uSu`afxrtUh)9}v$!>eAVQ%XZP61O z9Mpkb>2>98YIeaG>)IZ~eNbphLy#7_v;$QWaiVG5zH2?t=G9cOnF&Vm zRf*PFu>6L(x0QsM79scu1 z9%<1AImHB{IJ+EU;CPkPBSRVmpdb>fVA&6DQx8^6r%i8pNLTT?v9cmOzqGaV@xeq} zM{RLm;{g4}KMQkJjrFA8+POZkL4&NAsCqRh+q?0N>wr|Y-a3)Mxl@zSfuhOZ{_Pts zqUv1HH(q?H%b2Mo5m9qJry;T?c<0b(;|M zVE>x-zqXKP6nGAY{@d{0?S_)>%hP$~x#Q9f>fi8g3l_PZ@t+iVEQ(`8K)G)68Qh<+ za3C`hkESoa+Q{s*G(XyQgR-R;p0cG}>z|(JpJWC-sinq2R&v{4@pxPO(Icw@>zF5ZCl`7m zeV|%d`vnGL{Y<(FqF;YLbB4wXlgrzO**lCLS!SBtqG6GGb*SPs7aQ#j>iB%wXSok@ z4=QPhPxXD+zklYZTJ2vwcnH$t!Q>9lyh;|lqNz*;mr80OFj?YnT=>|>9`YwRf-Wmk zs&lfG0AQH%V;Y*>d_>{d;0mhzVVZmLM~3;mPWPu)n$``0sW51RjRY2CN1l4=@>boE zMR5~(*xmdEY!=M+M_767%fv}4%zM5~@xkU(LU8<~)H}X9<`gadS!S+ZM)@d9*Bh2%d5tsb= zl!e;=Zp2VU_zVPlrfrA5OD=y@A~UTGDQ!b5=jF21NQTvyWEA_if!fsz&BH;l!2*~T z=Ujy@*ezEl_q?kS+ubD81OBW4hBzoAXqF#jrg86@-yjvhrri?}R1EonvWT{nNMXGW z>c}Jfbp??KIbZ^Lmz=26Uv(N!l*v{;e&>$DidCn+Md`L&kYhC|Lg#*x(YGahwYkK;%l`!D0v+`RA7&P-EN={Q!2YaAo>93vr z732z@2F(Mxf72VN&)`}&qCkz~s62A?<3*0G$z|c3UodPh2;zLJvQh3{)F>pZY9;0P zL}q;NWYaO}wH^906=diYUwuKMhA#JS0icX>KJXXC>JPxh=VUJdcw`(?07x1D2R2bgFu4|M&L4;yE%-xv5>eG1&s`<*B;)Tg5%Ck8>^z_$ zyZVa44_>ede0*A@`sxsn>(s$ z(gy}UUNBuOERyZYk@Ad!#J5o;yA(CX=995UAtdo#JI|m@wDp_E;y5;;(d*q6{mpS> z+MA54n2417<&~-9RE7}^1q*6;b&!FqVGH1S!K_QgxHWcdj_<(OZg?|KauWJ#q1|9Z z1%5$h{I+!aM|58xt%aj}^ixn3@T28y1USrYKj_otnnmuTZFFvs)!4Vzjr>dLSi-cy z@z?$gr9!-8PZF&ZT&2Ue0^MV5j)VlCv?sBCJ5k@skbCi9f(%EuWE1)OuKzN+|A*22 zhYXNT008jNf|*SJ8#c{Z+W6ZBy;!9P{7{eAw}mQn0CS_<*n>=5!GV6p4G=3 zwt$>e?OI)ghqXYaZ7`_}``osN@ilq{97qQNjNAPP-2kqzo33^m`>=`l@>z;rp{+OA z_qIa@EtU0n`>t>X@)UbHnNn3L`l!34>P3%fySiI>!NBZMT&`x_>n!Un?V&T){mBiJ z3kra3_jI9qQLcQ@Jq`biwS+23y50Eh({!wzOn|frNug|HGzJ|;5+h-n&bcb;le)`c zu9%=`w|iTiOQN3c>FR~s1F>pPddmrN4pmPy){|yMJFU#!FXft@?Ud5QK%_A6N?$<~ zG~|M87{LGlD)oo$70cE~=Xyl^0qM&FvNXRpV_4TS{nTa z#H+h6x0?Mm{)z293)zn9L^&2H+zkC)E0=Z_{d+f4yDPS+*cn&2@YO4qaMKS- zN^kBdG5Oj{ZSItF=7L2gg8k84@Anxg$K7yS>FM}Y&hpa$Uqq3*9Pk|rT7&B;{_DWK z?C4C+uc*J+r#_a&yIXPPjub=G_)$vX!_c!0NIJj1p0`GS4>8O>uDLFrMPc%d!DLUC zM-uK?*n<4R9yC_?Uh@)ebbR{(l^9BESvjzoEHS{1H%7xRNG-Tzgm%I@qRW@Y1t|-ju%6t^qnRy^#>s z5xPcuP7GfI#zD43tRF#N0n(jiT+;* z?l2De%0OC+m`t#GjA2%wBwpmX95T=KLw4^0)uO~C{wbd>{qeLfq*avG5KtK-l~xb%rR&$%Ljf}=k3{M~EUJ6OR( zH!ft7O+v%8@nX>dy3Q8rh7nYJyPABAa$)MX#+wJR4}oIv#p~0nnwqxgU5aAs^isgB zQ7ufxg?WF;KOfYrCG@f@q9k8p_Vnrcn^EcK=Pk*Bm|7S2&)&)1LtY1qDKi&^9CY%S zqf>701E#qhABs)5+DgReX2M13rCd?T3D+t5WZgH6B=VRAvNgv4y39w8>4M5XVQMI1 z41P#Hfn=K60t9<=dJ&rH6N%%f*4K|ZXt*?pBcJgp+gNR_f4=Dh_dnfr{wN!mXIljt z&f%*T*!=_m^|O)luGanxXu{GYwy?Il?a3f4HI{mSk7ww@mO6m<)6G`SFGXVPM53IQ zI3d{VDipcL9rp$0`;OaM>?WP zC>_v2!gcxehN=sQoN-92*)_E%>%uX>^Xxw&-I9~lY;1Gut&bK&GBoG!4 zefCqabmJqm@Dtv4mUa4BD^vC;ah=aGhGqx2AWB(S_<@mD+_20OZ&;m=?Yxgy31~)#iP_3@zY=6pyG~ z)gi#oU@4~xv?)19>?DEWc7@x`Ea7|kbX|N z7S+NO>C5D5_zOjH zO^pWTIH;E$jONzUasI+@kcPPWbBZ3mf6*XFJ!(#XTjP-n?{%XE>64Q<#s&`DXO0&5 zKy+mr{_Xrd__&{mpT=`tzn;hcEX$DtlI}*X8TvI-yonl+eCiy?4YzJ;2Juz{;3fl-=h3BO0*wPMqDA2cog0QYLe zA}iJwEkXAQn2IeXOCo4w+N;UU$PN~R;SQnYBe)D8V>8!bwnjRV@5S|zYrlMKPMDnX z0oWDAQTBuhek}pOz6f*q-NqRTa4naC3(yHr{)RH-(VJW8amBHR;sF6uJ++EA&!ULE zp9JCC=i~_RNP8py2qb>hGiuQr5lIHB2)M;z_-U>gb9KA!QWWlM(d68ou$5{Fb0{{7 zN#FN!MvXV@RrC45HbWemRz>yU$C^Xk3O#rWbI=0gqzp@?SgdKbY6>vq8s~ryfXxSw z`?@I#N_b@qZP6UY1O-*e@&eKfR(k-0Pd9&KF4b~snS5@XFV+h5PXm!ppS#N(Yx=E= zIwR*`*~yMoCH3dz>A4lOyRjNwi2$0Tx1enJfS>_=5N2xKA#p)fRyqPxBp8HxS~4VK zp_5Z4CAxjwW@y*%R*mJ;&C3=XbllDEJVy60PTD<6r1#GFi*1-J)Aw+?KZFjQiJx6q zVx2wR*;=O*EmAkO6ZegnJy!yaUt6~N5Rzesl9Bh_$IZ}x% zAU`hws`#@ZI+7BI_Sj434Osx1XbEjwd3F&CGAr)ntU=H3#kyPTS}7;+ez{l0E5Y)sz>9HrE7TZGDoh9}6O3e7`@3VaZv8 zsaIvkS#NKt2o00$K1n|nGK!G1E`UFf%#j`87u;QU*&CcH-CW&_;IwU(=k~YHpM)c_yyI<05i%al z`MDwG2swQalT_O8bE&R_{S=DDc4DPlhsD9B>9sdS)Bk$hc_J$er!5r1Ogex@#3W(( z?|W2hs7`cm054AJ0Re)zuK5BfH5Q4t%$uo{ge^AAny$r0bVOP@3x-p4n}TiTPN6?M z8?rIO7*FPL1oH^D1t{Fa38-!WZ(aB44=iQ+un@LD&MuIGYlnreH<_`}IOA1a-wUP| z>cby0v~^OBb_%KM78O_%y^ZSwe`QJ*j4|uUoY!^ug#I}+PY2QTLIH%msX{}vOb&Zj zNeXRJtiUt?bU`k$l4?NvcEo2*uztN=Bpl`-D&~IENUya=Z39iiUJ7h(p4MBNr1;=s zc}gi^nD?gvEw4mj#_Ts;DqhD!OW=Z}dET0; zUP1+rH=nr=kQD}3GnoO9Hxr%d;83EFR~?{#^O{Xj2>lx^on;4^j(^UXF8X51m4q!e zw#lz3i8DaC!-{7g<)024*5_(KoR~>AE|aw596m_>QuoYXE6^bos(BROgw! zOv~W$M4O}wKc70VLE8brZ^`aLzBnV=uZ^9qNaP}| z5|)~|+Z*6=;>DX8&3g}n6pZI<7@X9c9Hi?_xRDA?T@^}(1w2vK%P=`leU`fU_p%6V zOt&tYxqtHZ=Ewfa9{wNp@E=kS0sx@a3udbRZ$2oqCCe^i_M1pbzU?WL)MMfWWqiZg z%$6yGh|=*0G(AJMd(f6MW4^|D8}ZYdefPYP$9I&=)GnUYs}}Q8B=u*#$P`l%YYSMR z=XS#$4f}GaUU6&^`7$gr&ZX47N}^HNU$h$pa524yyu-Y6a$W7U#zeyJRX2(Z%sU5c zGCdZcOAQTZ)Lzw0HYTFEF3K`w^MLkdsn;&bLV|G;2w`EEY3#W(G1vM?`g1UhR*V-aCQyFijLZ(`J9}s1+ib;rj&`dZoLf zsn)~CSYvs3QzP}n40d#*89<)48*4K!Aa|9HiT6U z_DHHybX&3hdCfQnNckx`&0s&YBNKL7$5k=K#4Ld!i~W|j>A5H{FT~zh5^za&Gbj=UdZBf9Ptd&%TrN}x%^x7Q@r4XW9jdA7{Nm1okDG?3DF)2~dUAEM*vI;N zv0deVf+Pzc8Un{TTTk^vKdiqYAiG{AMx*Ax3;2;66*$G8IvfmS#)%eggfGr=fwi7c zmkb!g3O7yIl-VITx9a6@N4O)+Fzw{#27B6|l7TLw-uYr%Q->AO+zv*HCiK1KuL&zn zx07_1=!hJ9hrtB~L|@Mxa&Wt^rbw4)(0}f`lIX(E4|6m%d{a#owE+s>Yw2x=;ur(_ zIjx=Iw~|^4XXD7VhP=_*jlt6kRF26ERp_SvhrpVc^jKw~T=W#LH>?&oA_Fhtb^a$K zO@N`bUm1jPotV@AZ}R=qeIYP-uuC>@2wt46t%X=_Zum8v_LC@`)1ywuj7ewButkJu zG~h+E=kc#7>x2R6F9ll3aNJ+tq~Sk zS)-43;U%G?zBzVhTz6D^T0?fkD@|h6VkQwN{UQO76e%n>Zx_rj0${VkP|QvSjipV0 zH&&i2dBTd8#fmPNE;gvMAA)iIuD04#L6nEXxAJ2Wo@9SIgJ`&@?$Hvl?rK?$AQvQ@ zl#ZJ!L&Gl|37NZF+=RcB~J!(+99 zNIs_d2KGcDj*UMxB%sfH@z@?t7FSyy#-en)h|-|8t%v|K_8#(;>^haFBdw4EkMnr` zhBW8Q)Qp5VpzXlVIf)bqPniCdEyzIf+MBjox(9*bLb__2(Q3J>ohX~4hKc;yyOeXC zlDt2>t>t~^xkQMN&ifL4;v6G##LnlI@rxG723VMH?~V&b=JjDf>+xkLfDhGN-QFJE zwSCgrelcu39@vhoX7g;%s!*q7>yTKb^?gR3q=&~qBaDde0g<1k-_B^QqT@9= z*OCd=SHe)O3O6{e=jGPZFf2)CD&66UD7!RB30OrHPHeI8$d1CZpg?w&&svtTV^M(0 z(Z9K)i*e`AR2g4E3I*oouD&U#o^nbo+|r*}zRYI3pEHc`3?Dtkh;L0GDVbZ9%nhKN zFvl)vu9>Sfb;?xNUQNLq7zd_c*}~_owhPF#LXQCWZddyE-mg1C1D5r`(F=l6Q?Bii zKo()~l8QqRdV^cLSwLAg#1PMX?!(Bw!h%#Evm4Y61H>LjsLfc z?ntwP+Mq(?o{R7bl|KI&#$_3byK9%35IORs9MdZjk4)4)>ShDDRf(MzoBl z@j$tvC}pQD6jLF1B5jAkJ)K$-Xm3`%aS`H z^y#tbj0smQ58HpuHE&1?@=jp@6zmZn1i_VqmQZf5PPC%);PvfYblS*(@MkDsZudaR zhNpX2d+BpGo#0|ntvBRxk*+;PR)m6%6rl&qL7+tr2Lk!&eB}GX)`4^)8F`I2)5(ak z=h%~?jh|@qBv@E!FS!#jrc@Q0r^qNMfP9^{7P{Zk&7e0bGBq2Vdxqtqw*y1_p7$Yq z8E;e_cB+L__^syV7&$Byc=kn8_sOlQxo|+dCR>^Grsx+!+I% zRM@zDZ8SE6L*YTti15_o980*6U?WBP`+7*tE@7w*fH^cL$I+C|yHUSTu9^c<^4hyW z1KD-uoxc(X*kP(~PVJCu7WoEgm-ODGcc4;h42P2TOcrHrGI3TVIJy5ud@TR_AUfay z7UKgmFZ^sp!p>G@7d^4>I7SP9lhgTm(#qi)xeeeHpInHp?dX$k##_LJpu6udl`=yM z^*GY5#HXMk>{2}ujA+0Mxwi?BrXIE#>A6fEHe@M6>CzD#`nU~n#~bh${^n?ve5=0x z!1FBuM5I!HEf|1AOW=OiV;7*(Zd+B*bDGS6MMTL`!1r9$5D2$V4!O4(=KIC5S?Cej zOkJ^^$>Vic4O7_3A3fc+-4q-$wf=2E>edxf1EA@gFN|_Wvevo)?yp(IWJym7fi(l2 zkE8EqMe9J0d|hL{U(Dd`|4!4nM_imGwHz13ps3gJC)PEwOKKV)mcf>s$X3juP6{gqElu`MR07U7O{1 zttOfuxjGprRz=lP)P636QAS$4WKnme43u`>Y3r;GZU&2Cl&~eBoHyF4W@FlaRgZJO z@l}lci?VAYq8nT59yKWQqVD+un9X2QAjGAXzBxB-70)P_7}N^UVIP*2LclA7YaUk} z8!er2BUlMNul8t!Pl?r7?9uc^+U2{7ry+eot1SstD@cJCK{h+L>s$LI7F?-Dra6jS z!lmv(jh%;;kO$z0rEF+9uW*%&y_$`6s+v%>p5zqc(9A;m=I2U9ABY+5(5K#225p*@ zLo8rf9Tcf;ZoRKhi{uA94>;Xcgp2EkymGEi>Xxa(is-i=n~y0G zBaB-vA|Q`@a}+a+Dz^q3@}fGP#;K9~^*EguPr9xN@P-a$f00v7%WBICwwYNnNzjtS zrKhIV=!~zR(CkH!NTgWo!sEO2%U!c7)EEiSnE}8xg)EHqD?CtGwYs-$RL$9{e}lhR z44jt$4-Fy~A}^Zgeoh)&GyO;hI)zb|Eee#2dD=S@40%y}_x$_*RQfkt!T*2QdxtL3 zg0yM0Y`adKvTfV8ZQHhO+qP}nwr%U4!FNY*PkYwCAoq&(PR(p444LaB+kEUnM%lY{qddzDLSav>9U4Q4mz zkR9CYEg;u$ctC_b@T4~CCXr^IY0%TVSPVUHGihNNM)XQWl#((+qS1Kl89b_@HG+0n#PBl*$`CHZ!r!yQeO zFQP~-vh2Y1$!7c{<8{z|vrJ>VD&xno<5Xga*;0mDL)<&XQQtduvD8r?I4{v}@KJB* ziBMTM*EP5IMP?6b*qbiY%}B+$(BM!4?-l1!t-0U)lCt+`I^-<`F_4z2Wu1zwkE5lE zf{tekQ_j1gL+b^je0Y9h8T0VN`uoZRk3K=sHNk#rx-hEbn|$I$Gc|pv2FqMA`TST3 z0rn%uf2^*xvnt)*d-JM!N`sc8Na?Ng;8h`#?^#(@U(qGvkwZg>UEm!y$bc+{5B+A<#4fU zDJ!(SRol6XZc?Jz<(-;Wlqq(=9E=mZhq1T^C;$yB9IY8~#358z!=2>dZ#5fG?=T-z|xd2ob?j zQ6dgP1$mQ7QvJf9kohnv@M&1dJjA`#*_*gx&a*c0wbErJcdU`P3-J^)|3P@L4|h3X zdjt9{X8KwZ4agJ$j$F6D2$R*E&~!P^~K;#M@xp3cW6x9z1t>3)PL1qi>5=Mj&)!g=>ij!;LbmPazTGz2N} z)|jJ^2+LRL95>liT?9Wm%Zm5VEX^CZEmB9Xxjy*9?KPVxr~2EZvob=TZx+@>`4bbv z4X~ek-Bs{o=y3NQZ`@MzKQqhoE?d!!d!~jCL+ypqvtbIIAK%Qis(ak6HL3M0+C8Ge$XaneA@vSPq;i#7STxO=Iy^p^i4R&3L zC7!1J71iihJic9Jn&wJ^fa-bRz36Tgb9Fq6+{zkSDUg+w+D#4d@$yJ-+BUgbyM=(s z*E9(arqNq_AnNdz8lwNkb%Y++JpYIqY}}*!fcUTr-)c4;`t>nM@)mN0&(@^GY@6Yr zuj{Ft{5>H<>PNH1`EsOKN~Apt3XCSu7Ph-St6w-TxoUu@G$T7W2QYxF)_=SZ4SmGy zLH^D4Cc3Pj{_tVv7&0%j#pvqthWN-#L<$eg#QtLs>o)Z9q=oP!#J~*yt|NjW`|3Hxcx6FC}1N%RK{ohd|eEzL82AJ!#l=`cBF6`g*Tj1fCAN?B$ z2E;CV(5;-C$>pJyVIFr3O(G#Pzg~~Wb z_=ErRD3^knb(7+vDv8IufM(=+4&kx=RX6*P3i1RCJqRMXu5o~DB))kUUtjKoV4@K? zotxu`+GdTmj;(SHpKxr(OZRHtpS84O9vs6J(LHFg8R&%xC3}2{?Ra00Cc}393#m!O z0Uw!XhBYo-X1=6_#uFpbgWiwBL9k%Z4-_D0{6n29!$>m+Xg2dL<_FYJ_Qm1gD5Yjy zIDE}sc{bcrOa2+l7c^Q|y*b*UN}Ns%@y5bq)~SN6TH+!E>4@I|Cq(+ooFUTFPe|sh z2zdC%c8gT!a7A;^((Nc>tQ<3sdC^?ml02U3kTKIdwWVBOYm$Py=;$5ML9P6tJvD}R z3+93QJMOW?&8s>7H1Uz<{&7-UQo>(q%zq_wzg&?qJ{kh!czyx4`t-2%XCv~&=hiv= z2lR@qpWozKNGip4N1?U`-07UgYe=9f09q66Uu`qVKb=t{H z8E3~cf&jdl6?s?w^e;5p;gV#B^<5`%*x>v}Da@PGUAS$kEw!d`bKYr>7lG2*b}=4eqVyw5bq(qBEalnNz-d+CC)K+-=q1!BvD_0r zS>*e61sgK%=wS=}BFNJ%viqo23qx3;2CEn!cvaY5SgbRw|K$;^j2C7wGa`W<2cyS>5U z=!?g=ZoYj2k^KE`Ya`g%1?*x^KDZ(X(_TQ6h?1O08;-0J{vEwwsHE66uhx2H-X#UGWs)20VP)xR;T6DrThB%8q4(VQxV?ny1S98 zsnXqNC4BasyOD&;+O4 zDJ&km6uxum>fTfm__utJo=8-LA%EfO6J-I1C>-)AmI^=ApOq)=81wpuGtD)>ysD#n z`QoK)Ppo^wd`3Akt0d7%6#!*ae8Bhl_Y9fY{Dz@)9znmYOfS}F6noqg7iwO!_>$ag zDeQk~#i5yv{84kS{%c`zA56lGT-tF!Cr1Q1b%i#Y1YNU2IAS~n`?|sgbR_F3sRNgZ-kH6QQF&4cX(FQow~B;_&8|C zf8cr5lYlP2kac6a8wA$K2;-Y3gEB7;2wq(DUaXn~2qrsR7ZPQU-`0ABQ-B&qND?@U zZZT5%rF{p36#|vux_aHOLW`794A>Suk9MdYOV|swu%n`w z$YYyq5JOOE5B1x6GUyhw;NCH^A#l-UVHWc)JNguP=Pfm_dCPosU9+CTv3^1cI*w$> zb1p8C9Gbdxf!0YHNw1PhtalS#3aOi$zhpk%-+xiM7fZ1Na@2pUYx0MYz2gF%*L>ZE zL_M#R2aAS?e7qcvPVx%R*q=RT`ie7nw{(x;`EcVSEq}mUJY!!YIsV4npJ0)KNK`z0R{8(^wLZ!ohD5QQ!Q2$wJVmcV z&t){cAyQ#s(63@qu7v!YHxHS+o;>SLq+&QVV~NtwbB}8Q1njQZIGu}@TDrmvag)7E z79v>F=iC((CLAY2Af(xiUZDU1S*)tUzlRq$!nj|?do0^U1v~+VhXh+Ohi(mflrT+q+MNBq zmCk8Lkp%6$f4drLg0DSMK>Dnb_og`lw{|cXM0b0bU>6zx5!W_YPz*lQ%@jj29CIEUyTY0N0{*O7c5T@`nN;g@!u~9* zV>kG~*D?kpSbLfeO3z}sGcf$$h+TR=Wo7nLKJo}n#(eL~dW}uyjv+U-eWj@Fb=UEo z!K50#Qe?@TtSmsIjAOgEY@u_^KNa97&CG_~2zMOjK9dk(`{ga|TZZTgt>V&~0i?xD z!W<+d8akP?PvzDg=#3=Fuh=GuX&Zzmz0aulPaKMWzEj67mM1TSv$LYuJW-p;Tp3;U zBx*4w8xGx4M&r5`=C~D9u4Tqb;!~lq@3yqmA_rz#14uw%fY2iGo;dTu%hm3kJ+A}h zO&pC4Br-acWp@9zig;Nm-}djPQap@q{gE1N&~7-kp&>@ZKchBSuhbA@wD3W%kh2#H z>jGu=O|XC{tM&oTwg(-B5u%xvb-CMBYqyHl$klAcYHGRl2K{xh6u-m*ZfN@+cOPBq zrO)gSpli}>A}iSWYMTaOkq_) z5E-&H8E_WofM?2_FQ;wb|8~7;`$T!yAyZ;UXF-e+y%u_Lj^m8s3fUJMm(>!h=-T7 z9Fz{ceH|IJqlE=l#a~DIs!JyF*z;{NV5F^>yyvZk&(Ob2NH#~ljn{S<1@!&x$BH5K zfO*#O96|{Q-#_I5tp`yja>eM5zeglusH!OjgohWn=XhleE^=whY+XuK>n>ND3eHX} zaz=$hhj6+|qE)sm{BfFMX5?yu9M{rjn^1p)5`GkQhYf9Pk2?`?7*v}EoW z;3hkA^j39b$YTr7xJP=WmT#{Go(b5x4{gU$GP8Mdr-N0^`)+Eq zfk@+V`LTsX)YVs^u95tulVg|S&y7qfaN>r@cmwmwES&9gjNh%z*gp3-Z-8 zDo4Cq7GAChG+&SbU$}+FwWlBRIL>)f`7zBZZf)|O(W7XKbr-L3<_Q3A2^^d!UJ8Y| z0KziwG;xHEcjIFQ|L2%!+)OAv#(J@6#8mb({wV1KX?gCG_{ai~&i>$dhOo5KvA-lA zm2xVH4;V{O}W?JkTNJ@r42;#8MtV}(!%89Mh_p!Y3?kotX4 zTxL_^%{gcXRs2+|=~v2`sVLY+XhFT?*Xd}!Ic4*nOo*ME`0*p|5xyikuOwi~7RJ}r z3Ea@GkdCjk12%oj3Y1=#=pbu$c(tr|#Lz)_T+hy60o9Haf0gfZi3~xtbXqSI;MoUd z3uAIHi{H1sPr{QOkedN}O=~V2CL8EyNV?Aj%-4@xz%R(SpjP&dHp+&QqOYS;01KRj zoP?gvclgy~Tq@{b%o~44Rvv9jIQ|5ftJgckWW7mwVO1&#eeX6a5>OdHEKd}mc7eJQ zvbpbx>8g%vej43uRu}3-_*@paQgECCc&9r%G(|VwzllDNo(G+8#3Hf;^P0?} zT7y&0O}V=?GwhC;>h{YhY=X~j=hlE4xakCzcoQsQA=nFM1E5lO{`mH>RCG7LlK?C) z>2E=Cv<)-Nc&k;XOsAldoP`$>oAEm$mXRC}n(@2DEirOOMY|(HGe8nPQj>bcIexXJ zh?e%c9H-5)=xQ3SkWaRrt+6+l6GB`GV)@!ykzQ6&L-AdPnWBlUS_LT|-&LuzMrEfa zDYq5zE-3;yONADC^m&n%i_YPJ4%e3Hw6Unk;YEfp z>;JI+4_N>AxD*r#{>-fZ$E6Gw@NG?w1c5^Jrzm_*7pCjcqv{VlIj18vOn*%@cq`n` z&>>+#^DFZ)ERnw^W?9_!@>WGAQCu`Cb6&pb9q~sK{{c&wq9T~kJnB=bon(Acb-k_g z+eO4gi7s5k1n$4YI30(jea@fvUT9J4Zjbf>PPt0^NGhptw|wi_^i1_0`J#g%%C$&+ zxVhujqgG5-q64XEH6B5Rp2W!5ULd^jC%IW`;06F@|Bz}u1P77+bkURe!8~dizNf!c zEqU7|d>*V!fxz^!?D6soSe!hUoS{gK|EpGFzCV0iTk(8Kcd=w=P<&`=t^p1|037ov zu~{v!E#)Dbx)2SKG68AsXV?ssGk0$750RLRoc2tm{HVBL)@#a+$5}~z%DMh)2mh(6~F5N1Jl}tYK&6h)HNE$NNN$7m!sr_0vp668k6g<4oB?I|E9hh zC>F3x-Lb2W*zl|{Pb^u{js0g~3lpC``GXleTQoRaaw&5^lf3j;=tKZ(4G;%Cdu>kj z)CPKjM0slCn3BgYw_qE;ophdxhO1i)}-f`r#5{X5aNO{LmL z!J56Gl0;-V(&7qbkwAYR)0MNu3)@}X0%0#(^^cQVjWjz6Er^HL7yv*7UdvOz@){WD zKUL4AiTeX14vAJ@P)O!%)ImX$XXhi*-W zUAk2d^Suq5lnkGKn~f7V+aDc)T>!{a8YE|Ug6xxG%ccK^pboH6rp|Oda*;;kU24KO zmIUC)!Ju^uM`l{1{qL}=wn>$9J}E_s`l1&_5~heFQuaIy@M=5H$u7=K!9)X|IkR^P zN0kTW?Q!QE;+bcuaR@z%aNIYs3Hplq39`;cWC7gou!N$M=3u0^C zxy6D|3p<0gU=jMjv4wi?B9AL5Ef}yIEbEYlSf5df9>6mNos2EYsXg|FR*wN=Qw2*i zE16CQYtNtG8r7D6Rjlfk_qmkI?0oiKubR&#h3k=k zO+1s=_J6FpzaFx$voO|RdJFhh`BFaXOEj@Z2MOX9N9IrJCLeLX?@WIlbG~+v?1Cgo;x$~j z+Ld+rq93Y-{;%rie4MWq8vhhQT;Y;gI3X)ilJ~6?Jw7R(`v$ph`OS|+~5 z4UD{yt(c%2@5{sRMiGpv}k0ax{#5$g|gl(bhy3<0Bg)TJ56$s#;*b;&kP&3 z=4A$FNre>R_g!FWGM>N&#U?XNLP@WlGKcGdW)H&XqiR+b$NN||?Y@!o!QuOY>lUcG zxebq)P%3cW(be*@{)qeqs$TCf#0A1;xLoAZ=mtr2Yfi-LpSZ3#0I zLe>N2hbs@QV0{Brfd@#IK>E*z_ z>aC9oj$)0!u8Da=0&9f2FY=aUs&Qmhn9Kczn8=xu7H3ifX@8usIILg+LI{z_r$ z+}F!lp6VcAXyKKysIv2yntWawF1ah;9NN0@6rXomOGD}Na)vG`*_K4T^z1V?~6E#w4eQjruIPBpcPHeX}kk3G#_6NGMll zpk2^pRq08=u?hUX(PDi_u$XOLmHFde=OQyZ*Rl!q^3a;5Dz5oE*~<;$253v2Wb}pF z9aKUjKp;RKC&j3b)l9sdRVS)jgMQ3zvt7pE#EzT}i2w09>9hIyz#=yIL>%PZ#VyJ} z4}uE6ydP%EmG3jCo&&H7`SaPb0PzBVYrp^Ub+U(`xIPW0hQq9(^S>uEYrTgFLrL%G zX_7l*2EX@Xg?K$;&@mqQwW^^U+BZ|C1L(<@rl2%Mdk-q?oK|#V5SiqlwK|4N2vWwP z0^LtwV=!<_bs<02_j)74Qj-+J7CnQ5Cs(9N_|mYdzyU8bB%b&fj>CAsZCB+e2mVJd z`r{@VA8Siup4J^v-DsVU)1hOI7MDffpOt=9Q>xw8yO9yva2x3M{S)pk?+l!|+R0&w z^;0R~9|4`w861)rGx}DnMiH4BA+3f_XMzekOg~l<9B=tz&U@B~D*R~h(Ro?%{&9G2 z;deWa(Ey`=LbDd$? z6GVesUN|1cACnO5SLk;=_knoNloj3mHO13jFORYs|NLsw2^J(oQsqiioUc{&BdvdW zPn>rTuxVJd3b~ChF^_^UyaDr*G2S~&m51;Un;+J4g zBUDTN8i%I?Y=UC#H3ssv2eHR(r$^Ytvp>$;Y3ePcA)|z-lw*R>r1-jAvZGAS-cn4JGMEubrIIIUI%U)Dx%Q(Nc z(-p4BR4D6%kun%fxSG#dbm~{Gv-Osx3mY6KE1rYw4#jnJ@Db zbL+?sMQE(DiJ4T^sJMeHaQ1!Z3=~kg@key1GZzYzQtoqKx!OMqHsocuzrPHmS+gk} zDiWl~Q;bG8jh)F$-y)o8o%Fm~#oSnID*vWE zzW5geuLTys;o2bKfgth-?`2g`VDv)UWC{ z5%Z@!9M%7F2_^naQy;3iT&YuSSCz~SBZxm&Fp~j+xfE>-Z0o$kwAyK1{dvU*`>5fy zLkFLZt${5@n&7<}9E34l9C9{mqV{wZHN^Jm#0#+p6b@+9ljT~`rA}_!r+H3D%Nygc ziLj6;s>SDG3XgMXm%i7gQaD+^)p3)_-Lt}*7T6RJgR7fU7?3T;p?sEiJVRL*_h$Fe z0wdJe04`T^)^fj};^4p-XRh|H5gHq;N~j?!CWu$Q9Cv~idWthLbFxE3R)@lsCb@BFpt!GNBAiK`lJ(?+gu!t?zD+MHrn`oy^VwQspwrF3 z=YBU&f)u*~-1IGp=t%N}(SHxGg5b)qlyFls$lj(@ z2Q#A&*)fBF3!Jig!gA&YE7`S^jJQQOuA{v9#IO@4b8%bmD21HVdjg`g!{7qVwR3M< ze!I{%q0cu=!M|+ZddKmA0li{aihVz21>8VsE0}ia!wI%B>@@N9n=xh}{E%|QEjh<&(}g<8n8X)gGD`pF_D_N<)<3nx*E0mb2@+!0 zpyL))pJks1~BG4D7GwGS-ccKO>| zOp26#U3Y8=bVK67rC`J)dSxTMos(L@cp-*HU*a3Bg!QS|g8^F8rtkboML%TRUri#8 zo%ra>{HtehjS(lcCarL^eL?$#e0F8v4T9{of8>gY;oY;z!YR1pyRzQ2YqIseTPiuIO6#(8n>hjYG5Tr z^EaP@F`Ne-1&=(2cJcJk_T+v7oagp#^4W_VZh|IV(dSiOpg) ze-mupBiV^3zR%IS0N%$kdEAW?p+{UoMyA0? zY7~x6?Xd~mdls6-oT61zL;ZQ@C1@`vM0py<%BYk=J5vAFFi9!YDRs)n5k8l!`y#X1 zbpGciOZcgmi6NF@i$`-cQ6f_CYi%g3>lhOrJR=R7Tw4skwX;ghGL{ zzLP0)Q{`sso>m(enaqz2nYG;n!MCbVW1;BFUTIhVNh3OWKw0#Ydu0^>g&IzV(mv@G z+10Q)f%ku2)&I-f0{oZCUjDh@08#*RJO0@x?dLHBL5$rpKxy*4!2Pt#g|m|G4oe~< zCt0IyU=A#+?&Lg2c16JTAISB?Zbx5}*KS>DvPUUPhIv^mimUe^8I+qyXZwQ#!|h6+ zi0coI^K+W2{~%sid@j4Y^M8n;PS>&w4~iXLjUhK2*~g7#V?DN6 zEa$sZ$_vD1p^k7}q-{Q%D!2WO?j7`Tbo`7|yB3nPonJuASsymZ-JI(dT2PrZcqc7>R`Gz% zKcXC-HYNa(j72Q(ZfL=#>mIn+Swp0#U|jj(#vgQ-9lP0`*8q@Po(($6#^>^Bryu$E z@xgv|id^UH5b_)npL6v=1@a6EEO4T}P2dXW9n|AH#;aF_o&vDagCF99oZjPJn(-Hp zW7_4ON!UF0GKFKI^XoZlLJkum%Yj#+6dkbPGJwATxP`<=$8Zbg>rTv(U}tp{LcF6W zYch*K+%Yzf&s2Ys0cN{QUBZztngbSa7!oGvq@ru3fa5N`!n~Twv{<$9nCFcS-BZ54 zx`*<@XBkW|WeQtlp)|zzkM`gfICRLgn=An$Ukbj#9OjA!UKm3o$oaXd@pz9z7L8tH zny1T>)?y=2B!=>A#y!)Q&m?0=FQY_LfL8iCvzP(X6 zToWIVczP||6du(M{F_n=8_x8aK|nbRg8)7oO6;8r->^-f|I33dld7Q+A$GFO@_c;v zaSzJvk?iM%Qf2LHGalOOT@>b*g=QW`EX0M%RWdWQZ`g5~&5jx0?#uRAqjouK)W3{; z&EDNjHTdqRk$$B1{tx601r##hLE7-%I9{6UTbI>~-^2>ifM|7bg|hZ0&>ZPh(#3iK z*#0O{>VrVtcx984n%{q>(ITL=AXN}z_`J;;+Q0f&}UVA zxL?V27_O(WeDK;4qpei&Qf3;eb!(TA*R#uDLe7GYuYBJ3z^0}}Wk&{>4nYTd%1~H9 zd1B)l_cQgNqmu882Wnq`KAX9}XP?0xqf;iYf)l`gD|=&V%x=_()9>yXHB+w-PZC?K zT~-`Cpk^OYaA#rw8}n1kRiEe_Bo0c0sGEEXoJqUz)`V4&hSV{vZs`IS#g#?BidTmK zZ$q+~O!0|kag<8OwG_ z0u4|-6KS-&=kqBoZHc4i`kt}M?+>)5wN&|GJ^tg0>Rx|elsdq&T(m?h3Vj-GA$Z`i z=t{IF_&Xkmt-1F13)3$~C({L1#J4Z=*!VtEn#>rgW@%#dFqMU7)gRMXBP>e$z;JsdYMj(G+M)B9I}$UFWe5Dr@xq&EEI*VM z#B~)_a3^r5M(&=5_U#jQJgYYM?ARk;7#;WVhUgQo=b&eIN<{M#bf*M^En7l$tP1Yd zq0fjhAV{(JSK6IP_H&oWLXlC-Jx&*#G$1#LGTTa2wq)aXh%kTs-lgV?wel?rh4vrn z-t~?ULJpvG)D{N2#z-$%&f@pS>rqm>EbNB(0(^mz$TDJ<8eKyS$Ce_Kr)zf&4zJZx zLR1IZ_!7;UqGjo#v#Ve$$o?5b)_8}-DN#yW?LZaLY+a*R`{Qu`c_G8S*>CT%dssIX zJh6>xqmt+C_-m_k3Fs>yXOPyqt%gT03kZ~pq#8F^hg+FRQTcoZD)_`Fam09T2z7AgL<$Pp?cqhBN{iES5I#I}ia75sD06wk$0Vzsb?)JLIhw&0?r6 zB^cI$W>_l!a)j6G5PBMxQ(#Y-bNfanO;d4z&EOV_klezl2CDDV+L0(D_D0PdF%K4= zrfV-$8?U`)m_0j~V)7xWmq3pq5sk|L z>I&YOC4hS8_z^Bi6)z+cGJh`)!vnm11NppB24uhq^MM@&dVoTK~dm z$Sy*--RY>D)Lb0NC?PeU=Fdv|9dnYoixl4xGbTJ-4al_a@bNOWdUo|}4wuz;h&(J8 z<&z~WXYvwwGk8^6l6ie+)|%IJIzc;WZF9#7c1T3>@}%*T5UL*JdzwICm4v}_*^&`Zb$0{d~FJW5`y*BgZpem)raN2mG;%qho@6W20dDj)yx;0s6i)M zds==s{^+UM$@*-KF4gN^Ip6fE!tGBl5D;v;ry47a$V+37E<(Rn!Qr=ZQ}ajCWktzU zQow!2y*S3wr*oyNeR}A$ikH>!{eVVc+cB!RyASI-Xf()-W(i;E8;UnogI3=RP!Wy1 zTYLpddg?R|PN;-Cq@H0|e~}ikZN8Nw8P06JO)qCm1W;tx$MkP%B3ZSM;f;+*<=c)o z%{3!cmA{jquH6KQ>=7o;uuo^n5)1Ey{C)e}!F!in-mk%(F?ezhj8-?0r z-fftww=*8<2mx+fi-@1kKGddLk9?huD)LUzcK+NbQ5%XCj^ETh@fJ7*CqRjD$ihPz zVXWWV2Wh%f@RfXu8m1Hr(N zQOg7Q0i4gs?tMq!ZWl@_vS$pR)s{56>kkjgP}w3e>35{BK1EV!xyDSTNRLDCHp`Py zYi7nz3IN?R$rSQFCq; zoy1f?NF0()eZ&?YXSD9qUu=9B^Y!jt-ZtSIs|gaLExN6SX47!fKv=|IMw%yw^dT0a~R((1(V1;0iLph1-Pa;5u{yB z@?5QnClT@xoP;r8&oA)P?sD`k)x8eTpW!N)zD}GeVAyW3PJNKVenM5!I%vZ+^l}C! zJjl35@f%?4N?I}qdMuw#>B!5K+qClDvs{^nGY-#c|2?<&B4Vd*&ez;-qr z1hmu6X+E!Wbaoc8^{Iq-{nGRKC{*q?v#2emm3=a1@Wh|Xd2=mEpoFQ3UYXq3BhK*S zN?1&GpM5}iPx)KET;77%iPpl#Vfu$YHywGQZac*@3STSPCGl72%1FBV;yNtJO}B(SEn+E-1b;JV#)5bt~ivR4bk1!r#84q))iAIVZc)XbKJ5 z;$=tBq>D!Zppzk=1Gk`6`!Yu{i`_H-oTM5G?4GusGU5+uBPf@w$s2sn$qRCl1oe`P zk#Ju)Hk{pKv)uDAQ0!W0=51r8#K$1&(5Km<$i7*-pkuECSF`!RR@rfB-tGWl{pD1saJ#$HKW`JbwA2 zY~s0#IlMe2p+S@&3(5aJu3c+UC)m)~!vV}uEEF~313JF6Vfu!X6`QP;7EsnZG)D+% zM5gMmh{$c?#15*b)H7K{Mqs_JGp3tlhGHWk&)&Ckm2sf|FR8VPRa18$GKV4~vH6yd zNUJs2>d1-`C4v1C9y=$-Me?OVK)_V}YM8Ydc4@pEK)B@3u!#Xg$`M@XqUVrU58H$S z&vPcpuSpunptDu|+2B|`wniJsjUi%={G7&}n!PgkPDN-&c@Rjs)E^)4E#M9IN1)0` zo#@*@PK@oX1TK(ecL)bT^_fOb;;W2)wQ@R3l^cLi;kyDnK<&-Hgep2E2ekK_#{iA| zsi-WCn!8r{1Ou;$=f%dqg=V(M5sfwZe}sd+7Z-HUv^y;n56_myGUL!FgS9)+OI?Y# zc?JZN<=gPzfl}6`k}Ov3oBfYaWkXUnAbMNkqt@Wg;ECVFKm~L<_8`Ck*J7Qf<#Jqb)GtBkic1dJ*s`PYbj7ybf1wKdB@f+3o-7v6P&Jnk(JAR}B?7M2eD3(=3O z&tu{PRT7j^8oYRTcj^QS+Ig}3B>yBlI5T-1OBX%Cs-1xheRInF^Go$-(E=ts1TS9K zjlqU6@zW`zDE@d}A2A;&k;uIPtVxDylO*$760fA&&sM8^W)vgu3?8AZkNMH+OkNd& zP4KlAP}{=NHnam@r`wQcUPjj5REC2PKO;~_ugGrKK#eUj=(?QwK~vFIp!6+K=C4z> zOj@d_7w(D*1F1QH1Ho|heb&xGnAeA1AZi0dC z(C$OEVt~yDX_0#o3S)1=2S|+UdQAUPC}|7lB8?hhpgY<}GYsEvJgFHqwb(;^;Ze~Y~w9*$OJ9{+7CmresRR^LiFTQ+YRFt)2R}llmxN)zetbk zPM>VKq18=QBEAfC^cECSgkj!zfl|O?yt~5Ubd1}zp+qjoq*MN`j-Q_y5x}v zmA5rmSz$2b|OCg6f&FukPnB zvckM*^KjD$m2Pf>I0{_$C(L1>*>J6aIh{Yq;}z{)tFA9fKMZqT*t#I?=@0pUh|@~|))qq!St`{@s+iu~hOiZR_dx~3NReYR{JxBk^BXdo2hwaFlt`k; z4}alCeJ{=n?*7SSRl-}iPLy~#WCHY~?`}pX+eEOJ^!;x(Dk(b5tI5IKJJKr?G==sPq&q!ph~nRGwEn#;J$4?bL!1BAPB+1&-Oe? zf5G%eCyxPaEU5K=geP{$Rw3($An0)|iFVugkdaL9*;L{>zJdjJ3FGchGg^CLxp^Qn zJJu5dWxHm79^#IZ$NTexw?`NEyFwg5;d?!v{GDXUKK0Gabue0ODW^ENZ88=0#QqQh zBeFQC56G~3EkG~u`S(B!<_k1*yoH{fksI|_X;B9W{(tPfQ?p>v60Nyy8?|lQwr$(C zZQHhOTeWT5w$&9K_dfM`J^gfk!Hme6D`KoKbB-}bx-b22R>-G;op0cblrgsP8S$hb z-Xalam(l8XQi+@^nMVlcRIH+ju4YczADe`_WNe)!j#KsR6#Ab1FB6QcN4e|+4W-$v z&^m(Wq%yq4`)ZEd5I+t^i$_FqF`gYou*4ZAKoDmBe`x*xi+lfDXx;VSQAL1xJO8gi zh3d=+vUEc33xw<%e>3Gi4(j5?Iic(cA+)jTbd`7;rJ+7f_p@fJWzV-gMjnDLL(x5H z3nrt?eqy(EIGLg9Qm%*jlT~`n%n0swX{zGkdLDsVJgbO>V>v`^rqLd>ES7`6i0f@^ zUKs0g~tePOWGsA=$DmD8%HNFLfH;-~V0Lf4Hvy(saz_f5rX}#s2Sn8~^-#Ag2Vf zhX2oWEC&r%OnKbnDO4=O_cjqFGG{#kr7>7OTY5|OJk-uQ$0wX>1qc-eu#N6&=tYb@ zEYIXvVaK79*a|Vlbz=eGg&UZ0f9#4ak?-kStb7UujcBKhaHs7)8Vw0$5l*NU(wMAJ zwoXfwFDJg~&kx$rT`x3S}4kTJ?02xK<6$o>RJ-( z(g?NGa}e2NV@6mX7{f&vE z2796J9csB}kMo{vFhpzxf`*$kBGJuc5@XT#b`vyYv^Pi4yFaX4NWBuAQxY9PiOL>K z|DIhsGox>DEUN(OAaZ{s=+%bemiZH z(*XMc)Wa166QmK0?l2@%_!AX8Xz6Sv2<2d$Y`346dFN>#-zsiYZ1ky1-;No8R8!ts zC&k^?VAhqH0gA+Se}h*18P@*8XQVc~7+1&%ZQe0tg$;~4!Tfi%ZPR5OaW+Lg#Fzvp zd4CSh>zX@lY{TmK?vos#K-X$ngCfTj<&Pap8euA}4w@UdgBzD3&dVLMgt7r}y`D)P z2#nsu0@p_K-I_-w3gl#bK#>iVa3i#fEuRMQh(N4vlgcRTx-ugh*r@SIj&ZOyWk|3lVo9+>Jla7VZcG9B zM3TSqpd4bHS`o4 z8yV%Bf5%`lFaCHS0xc)n&?&;S8?^`J{@+bEQIh@$$<^U}7>ZD+&N*Wv2{C85=8rPl z%he9So8CA`mQ?ezau8pPo??2lsDEK|qc9lg2gIl{M}RvMb^89ipZgn9RlEBF6hDbm zWXk#wwm86Ck;oBhC1{r!hS_H=w1BdW33QqkSX6Oh2cK>_j0zXvJ0qOeX(e+5v^;J0 z#6NaReLpK7P#_y<*q*(TWx;E-^sUfV6j$$KVn*O$UX8c-R(}xFGYAa~`Bm#~^{vhf z#R^S|x&i?=-LB#E!vc&&QA|7W(sfv7%{%D_ZC8zWxS{(UB-u7=ngUcTlSmqtZtoyC zu@c)^(O!@?M+u|kk#E0@UuS*j%3YO+c5LEx6ZQHTvx%i%m}g}z6)srTGJ=PNx4P<% zFlz#!IIy*pItcNEgm2;zGQ0Qwj%fShD~84~bASxU5il-ihim9;Ce-bH<6+-9dcOkP zTeaL!p17qw|LHG29m7xa8rPj@3o&v+53twbd|(-vpFk>UMkGO}1f%=Q&&{xp473Qv z-iOV)E4~CIZJ$*#yE6%Eo|0C_#+q;yE1!Cin=X8G)29 zEFgPGb@ctE5Q3siud+n2YMbn$4|&T-4e~uR1ZmXjU0-ctW(? z@yKSXSm%90!vwgrI?rEpfeuSB1S|*hnm~0`$ai#50O61J&pJGU2eK z`;jeav6|_)y(^+)9A6&r^oJj>%joZ>P?@OWnpLPvcPllyWm+VbY~Qj7X(o0xH>fh7 zCTnG%JjiKNS!NA_<>hMZ#K2#{Sl6!ZUu=JQ`}L-H?d&|a8h@HJiLQMRwXobsO$~X@y*tYq6sKdt zof|NKD+f7eEL%hy-He(XU{9SmFDdc{Dr-n&{3OVg#a?G~|6XC{01O2Zcx!JcmD&gz z#<^70W;m76ER}*iY2S_PQLqvQ&TG7Z>2OYgld>FVz$IWO+i{%P(C?>Yba%+6yV+%D z+kZy5g5y%^Sr>LT_;!z_lsp1B|IF8mHj^l`C7g=Ke}+-Pw9;kLNXZ&Vmv@tXO7wXs zzve6;nhu|go(ZRwWeWLKC|xblq#>zc78h@#A@Wvy&9&}MD(ht>4K>Jl#_UcC^e=PV zfejU@(n6Yt0Gupl8Jstga}L2k>Bt>yk^|3cNFGI6Gh!0J$2bu?BNM20Rs6q9g!^1c zi~bniGG`)AM=;Nls75BLl7kj*8H}ts5p~d}CiA?F3cuxW5w}2OnVjhh!gf&Bu+cgr z-`6pnJd4l(g-6b_6DLCk{%TGqxG>XS*a4tCKK8G2>3V;#$o#$s5sdofS!20T-GcA= z!b-XGvbsn-EZ_vh5d^C0Bi7nWjD?EdP7#HBVNNfjL&P7@h6t$pfw=meZ=o`;qwO-- z1nc!698}MZ?KY4opFEb-Y{WL7tcR1u2N|)8p}EWwS#Vhu!ow1;)Hl9st1P$}1!BH5qQYhFWrT zN9$0yxkQSKJMus6{2#RQf9Xf%-!>-{tU%Vu{}Io{joruOK!gbUg%;;0CA_l1#Yd?r zC#k%~Zi}q(zoU>)XjG0|21)W(Y+~D2bNinbzn@f*j~lFFb@je!fp;}l!quOrg5R#v zFEz@dlwPk{&s4hTK%`uRvI)OVyw48s?I-(1ZaT}RecOLZjUsBd71fIEoWtL`Za_kW zqruDG%0p0`pDLEZTg;&!TVP(HI^H7azHx$C2?d*Z6q6mZ;KX zTX9Snt_0`(xi?o{Bc`uo+cwTxw_iK0ETesT31Q66)AzFn@w zj8wqdfX(~4U8`p*J%Qd4%2YS;q0Li>(e%Z_n#>#Rg9sOm+dkJlc<{tAf2&yR7r8h9 zVNs!72TCYp__#+ka7wsDV{*x&!&Y_FD~Sxe4B?Zd2d3fOf9VO4A)O};VpL%h>a~wv zs2`v)?Kt6q07XZwDtn*R6q`J1Rw{Kt12)NL{C<*dJ%;VG_KOnimO&EdwbJV~!8!>c z+FfpJC$eYz_RT5|hB@G;T$YCsYsIv>z;ljz?-4SDqu+nplKECr3$OFu?vw|{KZoKX zZt&)&^i~qqXIS%R=kvfxEFe#w9BHJLCnUxl2Cd!Dl1AZNb%=@tPmY;l?3l7y8dxi3 zahyXBSV^wHWXP>+e113=9QBwAJ6p^NQm1tv`Chs1D|Muogqc))XN1 zu_vi&vNvp+F*zlHJU1g_DzC^d6%Nh4HwWZD`qatLA}%6-D{G{@f_rQ7$CH$i$Ey@6JTEH$8nA zd*f~QQs6kmwS>bAh})HHEZaOBhQ2d^MqhRTO;4Q5Hw3A!`J#Z*5(E*6J2IGbO5|W1 zuI$6@E-%C}l|)a7gTAW5q?2b&t&)Kuc?SPQwa8ep#1zbL7uHO=ev|p-&ZCQ35`bHH zhAm>;n+ZFs*7>j%adeg#e7o5wUX!ptkb?O?J zaoTk8*yV7vdtT8&07arPiJ*@5OBFAlx*<}XFT(9{5j+Xu+V)0*kuF(dnN;qzo5288+FM!yPj?5i(RIF7 z#*USLrA;`Nl|XG)(Bg%E^6Xek#xI6slt;P+RAx*cqt`Kskp-8$UV6I%HIK!(f2;}y zC^t|19TbNM?&avl))zOPA~}cSN6S)rw4t3HmV1@5h~$7a$83YKtN~1R3xzjof&heq zM6P!qk~YmWlz1pxrEpfJtu9;9UC;bbj z3^mo5$!>awy3-mcLR<+<< zyKN-|!Xsd+M$0h5r(b~2^f#+o1lIbRplAV~e+qM7mQQ7dkM!FI5x;ASAUAcPQn4Ev z=3S3v0-1m;+*cM=ozdmG*To+s^L&{p@4ZJ}@Zfu}mcKqy4_HgNwY+zGCHB70BL4+$ z3mXaM0W4dFt;-3Ri_=jdV-qbz-X_RJhZ(if2f5~U2-b5hD7IOsa;p|rZ&v$SJv+CK zbl(TZv+hD{X~|l2h$>(00XmN$==(6#-YJD#?mX$@dVwqV18UjB^>%?`d=8N+QI-aN z2zR&^VMvsf^EY5lX8*^d)zxYlT)^+gkZ$8HoTAPgzlcUi;WhH#bog<^Ulr=hCz^gI`W5&Y~ldZ&0x67mw7l>Xs~@-4Tb!Z*C1GMVeoUiU^pX))ffbF^vEaxtWn?HZ;f9m`H zKlSbRzheJ~V*hu>1YQ6D5Z?ls5J{K9gXvPgIcOS)nIv55i>T|a$^?wFcw))(q=zC0 zv}e&z{I>N#!GI6C-o0#?U)SFdE;Hj41>;T}<{JV!>aGpkgs_Ns zINWS}e5hCausr4r9Ghl7n3AzMnPPQGz(V&4A$)Mx!`WUQOSx2yY+GhV&6-DT`1lgN zXP@uZ^#o6gJS4N1=TdFsy5ny0$Wpv;*``_QLsGsIM>VEZdppia2roIK+|-&7&qI2L^)1J5Hk;8)bO*79S~F5y-%-kO z*niEsgsLz%ds$hxK*3I?KUCoMOs^{am_goN+*0a?!{vcN{ z@_vL?6%r?15THR#;xAZHptkcy#J+hg!izfOuAE}RkXq=4fKK~ZV zy{=O{k!gB<*M`i^7_F4sZZmH>fGGBX!1;GDY-*E@;4@j^%KQrcZsVIcoJ$usp*$+2d5-zIe2BT_$!N_?YEOTB|UH$a0E?B*-dbn$S6mes<; z5|FOF_q(ZzIFG29Y;500xW0KRp6L7(QqyHB-qL5HH~T++b?rCR9B@VJr4iaB= zC1B8AF#yWL$lwePjL?!JxUzM!4{tBuPPM~&Nl!rb@f(gA@pOHV$10JOGc&TPMW}a^ zW=uob5P6Ncm=|ed^CLwibO9>aT-EWEcQu?R!jqYY7^u*z(FL5W7;OPivaT*PSAFI_ zav8%O;xHSn2Czv1sSA5IJFdx!r5QAWN`0P_Z={%I*hgyhU{vDYAiwfYtV zX;cn|;GsaRf34;krzu+*%D>20P@Adm&qS7;-= zVrXo0Jp_WeX`S>F4~a^_eUHBj`3o@;LiQzS-jUK}r%;fC$R#Erl|z!c1vt&6l@1J}Zkh*a3|}@K@_!s4?9@;)gouc%CI~jBY1ogJW5+7m|bW zuO-3w(xpI!Ja%nWoLI31B^dSr^*oY21#B_+hS!Pl6ac!Za)2T5!^9xB$OXJt_!o>F z5m9`9v9@KG0biEsh;sL} zFdDg1HEzSs{&k^QzzBBJ*&$KMd)l?vhXN zqfj;oS;m93MSS-64g%a#w|-votQ`z1ki z+Kgst%Y#H#iyxyR3e2d)x{{P^Q@S6$!qm!zJyO}5DG0rZUyjb4qSSpB1t*pFUZ}j` zZ{b5;hj0*XSI|p+L%R~y46U2TI{;0lsBmbR+#-B?iY!%w_SkuQdIv$=Z{!635|X;i z=crY?fmG}MMBeNt5WT@ME!m~{7T$#@!$x^7G@0HdT~aA5L)8h^x$LE+cuiZYTMET4 z2GShRbNc)pADi3aZk01s#Pq0moog~?+GWcgAPT%OnL0N8d~XF!H9sVuRGGS&7%{v*<1p7emLBTo!Nl{6@vU&pNN#t7Go~!T?bPyA z0w8usyuQr;pu4oVtpQeh_zGq`LdH34e-K6fUAUT=T>%kt}nc+$Wlm!c82G23n9T zWMz6&<{+|p{MQJ95Ro0$ef{N_F5Q~c@x;LO&tPfO5#U=M=LZR!>#D?)8ZEQ*;CsI) zZD!iuLV*UR8U}eVw_tZK%7!hmS-?DXFOQ#t< z6(*~8^hWkgnkq)SOAG(!k%b}@UaMw#WAfg_=R-399;Y44K$EW2cIDPB;p#<|l~SB~%y&*iU`+EDVGca^f%fX~^I6@S+5<(U|i5~=L{PzMcm z<`$n z2Lr2HES40jETFJKG}zB@9(tmsd+f`^n5mV%Q#w(lVk)#q#=JPb)M+Qw22%P-i36Bw z6C@xo z43T+pK)_<`E}>hs5Z}A77$-_*MToD8CpDZMN!)^e#jfSPw0K?odQSD8yW*vzFN21z#CNXxIk{4Iml@h$To%A)V>XD8+Ma2K*XAovpd1!Yk}>wbn=7 zCad(y$^upX$d8PVp@NyTo_o2s4cVS^#i_+OV)j0elvf(@F7F-;Ke=TdDQbGdm2C9G zjAk|o9v+GnAGYuJEIQNx{T!TZGIpjP`MwRTo?30fZgb4oLL$=2H2TAPj%T;DVUrAw zMl$u!#!WyBd#cM>;;26PNfG2der zLu;RX>O&|Z!;L>gWhf_SplUxqBxu+kGk~)yF5+jQa`bZ=wOcc11>+b=BQo#L8&<>e zYw8t-BZ*OJmO4qN_3LLDV7+{|g?3imAQjK|s6FimWo(K56idns1n`ZC> za!q&fr_DbhTp{Zr$8u9f(xRqqscSvUX4^*D{nE939C|iuZ$D7YYtc_)iX3SyUTl+7 zcYrj3v9AQ}O-mZ8b?!vs>2E)5t^u*Vk1z69-j8JEj>A>Zz)C1Tg-_o|^t#8wY{k7w z8!e;JVIYrOk%8PkfYd@F@Zl$|EK-iQ`_8g8Q5%&LO5e`n`}|QA1-MZ+gRTE!zyKrX zQ=^_IVzqdnK_*@NCCu)7fqIX;17$nHk;E6E>FAbz;?Hlb{lbni ze}x~^P376~O-P5lg-kSi&8^%!%6`#a?LYb3!7?DFwCN&n3ji0Mwp4Ykn)-5r&;TcU zVYwkB8(hY1qDBHf>fEJGhn(+74Pyfd)r3j|d%!Z~v% z)qTUZQD0rQ$g+%ztV6JXrdEQCcHm#Vj^A zm$KN--DdT2ZX1XDx!7lYaJMe48RiQ+>t_IKmnOxFPYk5W`a4Swl#6K$R z*BDY&BtViS|LCjN5@Pj>KSzh5MjK!^zXi*cygT=L79?{=eF2h0@#iY=PFFif9 zWrJN1_0~#IhqN4{8qgq&kHO?bqhL<^{k=xt(>XDbL;-c zt-kfCbp0}SR!7bVfV=NNK~B=01blRK`3952l!au9#Z)`}A+)#)81RRqC3F7pH;6fY z04~KP*}5L1;!%n$mX}Guf?6%FQ;DTc6ieG*hv;lrgpvAs%d(?na8B>})!@QVyjtx5 zjy{g_oC9m#=rH`PI?Y!O=}j*BN(QgN-RO0q5z^>PBM=;^S{x?>_*xsG9U$Q(na^J9FKyV<@21LvwQH(W65bQ)`(V15j0N*4}T-E=qK;0#^U2Uht+*;5qDs9@LA|{ zBH9IQhXUc|t#>NSZXIH&tL1!Vzi+7IrL_zREp^45N zizEs9xC_6}T3M{?r+`k_A9E~PO@7}UEbmX+Yu$9ay zLYjc=^glt>u}#NrJ*&@!xodA=IabZL{u9IRx8ycJWM>!~8Pcd~MSnlT4Kbrht!S-- z(}viRu#kiYdVWYl!P`yGL6mJ;iTWrb;SQ*CI4{too^$s3wM~zen?0yKBZ3VC!vU0h z>Q%&V75jo7TJh)OwGRI+Gs&_UJA<~5_saI@hCCk-FvrPI2sgQ*b$dDA)=4)?Y^3kT z?p5+mnqC=(VF&vb=4I-xkr62X1L-eWf-kN$4Fzz;-KQ4 z4jVw4)0ahosDle+d40MC6-vy3GlG)o8t=c$Wps;S)?r?mPo>QfI)G&+1s*y2GmCAC7VX{tB&bSi2vkj0vo zxCs(lPjKWe2ywHt@>-QAo4|L6+$HaE6R5~}%moeq*dsQ#p`@q0R65>BgY~bTb+NZE zI=q(tl2go$K6Mp5HW=d)Q(O#*{A#F#VQRddJG8PolkI_n;6$zaH{?b>awZd~A*>3= z@3XBd6IQrQc0xY;KIENT1LXe{;eSws{~i43@V{FBhg$!a)c3!YaCl0AOzHo-5{_!d zz_sycuG_9ZJ&+Heh$gk5F=NQe(YC%`+c)0GV?>2NUi7CdKir~wPucn1kEd^uz-LIK z(d=1yQSjB4smz$ifNCxEQM=}v44jeEBBx>{!c;jfi~_HAU7#q+yY#un>H$jzq4!&D z;-GE#{%HP>^g}!SY?)I=?)c}QL5UX)x4;oX5si52x^AwWv(t~eI4Z@D|FIxv8%aQ zjIe+h!)x@|XF?0CC2r+0Ll)3cM#Wgl)Tj~&k6@b6~{ z9tILOU?RE0lsoEK?Cp2pbn+9dW$Yf_cmDyyz$ zn%q1bw7}UnM~aigVV&of+4l<&p%A2&Hj(HB7dl6PM<4`Y$lq}oFY{`Ch!eH&7SC?e zU{-74BK|u_Yz82mjq3SbyTkKS;essnaVcJrjX6NB%M~Djl8qBH+sKUba^YR)ZrbJk zZf@bafqjSNMsAmNvW{7V)+@3K@QHpQ@98=yd9NJu83m13f^w=lTSvH+Ru@@7V)29B zz=m4$~x8C?_DL^=?U5HH~ACI8wYjGF~+`=&;1w%z`hlKEJJ>wn?t4SpHr^K;!fq~qe= zu#e8N6*TRo0!Tn1Q(-`X!pp!$25HW9Z)Udt0@(k#8EHrw`9Oi9TXs@7ngjSp0pM*O z`#KtmCHhtWr9`?IF~fO4V79?T5}AW|t4h6u*A=;QKS85)GFwns)vohiVDU7rPA%YO z(nXl~ZaW2{&mYK_}DtX3ytEAA?M*Lawp&TJ_i9K2xsFBw2i0Lf1Xre z6!gkYSGvIalWGW)k67C-Y2-n{#WOL?;eCs_{Uw*Cq9LBC)-|0Nr`(u^YRJQn-NpJI zUNe9-^dQUmbsrI>VHMlW`hAY1?_+o@EeVTJuQ%;8@X{oLq7x^An_sg(tU(W-z?S$% z@+GJLxgB91iE;oszMPzbTN^woABy_do4AeP<*6Qi)AE#Yy<6ku;4f|@W?z~JJM-*R zQSvQrBw?s-=S+UI-z#=Qn1c%Jc%tIZpFS zJOH%qIyRyRz!1x*iW!+Ru%%a?Fu=b(mK(XBsNg@vDczdV_{z|@?P>bIydk8m^Cu@v zbY#GP%`YqktVTp7APwY4f*yHpRl@R>X(H;^o%9J|SihNr zJj?dDLL$d+%zEU)C%f3RS{)L!&+J3j3$%B4u~HOMY{J@_jqGM`;nlL@LdMa|PiBuO z<%e%Wm^Gv-rnyH;%y%lLP?yL!ns#PhHjZtlV{K@S{!~-;3|ZAaseD}O-Y3TfR9n0Iw;GAXQOEsl{aU7^S8TA0B$wYyCZ z{p7o6|1jAT@E1738uiuHArcir<#j8@BD7lC{RCtBvf}SHs{aoKu87um9O3Z~X#2^0v8u20 za;M70k?9!0hPm~yN?z^P8o7HEia3&2zz6*~DpE9MMpH{JjA@TimEc70@HHz{U{@p1 z8t@QFBcV-UN+1$SnLUvx(&k`yRFn+@ff*81SeL)3+3I65OIu;RbbXgG)Bo@eydt=&W(k$WQOi z8-FUHIdXiJ-{5_i4A^J_@O1N7vD+v8xN)LhBF3Y^-w7EtMVY>FqZ!X&%;4wF-$kJe zKz;vfK)q@u1?;8EG&&5QLMl;?}w>$j_?3S_y%ew{^fI~HhwX#ZPDm(APxK|M6) z%D;@awB^4puj3=6LnGo9$W-U0)o{`~tMZ6n@Q;kCZ)XM{Tn_dHWAeCFDz^(#E{4B5 zIC(5^y9aXF-Sk7Ana}KLNC@Jz+yu{vGp*ueTX?d>Fdtb$9g&qM#%3fXOE!xfVOF%- zC1}$XHJeAb&n6i)!zzNe_&sq1;de7`_oqklxw6N7#7Ux%`R!+9*+NQubv=cfu(?Tg zZx6i9%o!AYv!z&~25)o^Jz+GJuY(*f0PSDqMd0dXW{wZ5bhcI8u$+HTbkt|a;A@gQ z%MyyfI>Lgd`wmOhG2*!A^oBp@Og{uUtI107M7k!{s$>GTt#L0nd==7}U@^p;F<0_| zz|MIV#P9t0*xIodR+9sm#zbFD`#pIKW_oUe#3}U-{aN|(4i~ARBHwdz)(^S!OWTw^ z%r?5#aF-T%H)_Yoa3%f@OMD2PS_71D&W4>rjcC>q)Rksc(!di5v06TJLxQs`?Q!K+7_x&nX{HGL=J5)`~SlP5e;Yk|IQF zjV&@<`2WaGu)6O;Kqsyo=!T@xr_FxorcoC*sT$fv+ldQIq8DEj8wRGP z#atO=_myHdvm6r~5red-(+DGiM|e#QAz&j)#y7gDtY}WmP|b3-oRCs5-xcY_XgA~- z-B; zhCZCU=carpJ~2dc%pbvBhrUaa$rQ_KHbg-bmz;~7Ce}`@lXPCoLnqFAhI1&_FUu$e z_Nv&rOj>3h&U)nIkTGlG;&1&9b~WYo>dd;AXhtuGA|gUcAI;PNf#&p|avm$aj_+4A zJ}f7`lN*qxd(fh&G<_qwtAD6hUaFsQu}X))geq>WF)KsV?w=vgo;}ngShW5Tx>yxa z&rnLJjW$IQP-&*o^37_>AkCln8RxiAEqDgVo3>Psd&2825#nub%yufEy(VY#Z!Rbs&>WMp`@HLVa=SGl9mkkmG@*c4iV4DWmtB?O=%q*Ps~sufQ>2T5Yw67&Bd}588*8hs|bp#c3|yF4*6!liO3jXTb3W;x-+weXQu(A8|U-p4J_lI>UU~ z73_{ASKyK+Fm$RfAQGtrj*DhDWLM)qYv`Ow)1jkA46Hv$Z1%1Jap8owQ6zH~t;opj zf-=-*8`-uHy5s44L7;u`%ZdgNQG!Zc zwLjkN;k&oa@K60fW9rTNZD?~l)j+y@Q{wg`IADfl?I7FCP;3*Vf%S33Bv7OXd4l#1 zpMqu!|)*ym=^#E&Y-4!SoTRTolEsVE(F~Q; zdK%`Ir%{gK(xS6r=6AP+pkRuAPBay#aSl9BSB4k@8%Xa@O4l6<6yyrx&o~U+8DHo1 zyL?c1VK|1Vb=x*V=5=#G88`|K6mM2zgso=Td_l?>^ry?Tk=@BD&0ql32suXSuWo!9 za3(6t&4-{5>rqnxPnRN>xU`V?nidnA{|`<42Q=~D!9YI$$b^AFrtSYB6S>dCaQxt4 zCWta(80B4aEZ-Cb0dx{YrD@w`KH_7?QDmG*JLh^5avSaLJu<48bMuQT3n8Py(ucCE zt-mV)Uhghzrf?(%kjp0~og+2^s4Pv=nWB*lLGa0@-d$p!1x z5EpMdBzMb~^4IoW;s%G;TEUfl@n~t|%OIg^$Q6qjWs!;P1g)}`G-Fb1NQoMYM3~Nn zpx#aLy_(JEWHB~&GED4OTYIlq{{Bl^zBJz9r9NC zg1@u`0-+<5oGh|7Mc@8GD9)`^t}L#uqwS0q1rSb5z^Py}on)J#+HT^ZQg4x=d}ivC zSx5u%es{-hsLM?C{V|+rOtkaOy)~(T;B|mw1pQyA{ORtiQ^sSPgB@@1eM&L7oVUP` z;7IHQfup`4JjqApvGxtr#JXzhyzu1azc+Nv7v0b!0efmn2@Hy6F2i>uHK)a7fxm2z z5euPeun&glWBm(j4mQ^1MkY%1#bA((2gQ#Rg)ZaJ)}SPM(2&5Ie0*2mZ(WBcjgTwi zVujZu>3imjjE~+D7NiD+kIZ~2b?w&$jvTCjnW8w4iM{%2LFxl z8to-(V7n<-7g5n!?$ZIDAM(Nx`BjIBx;d)2p%Kruxk{es4?_NJVZDbxit5UZ;GqLa z=iEVMC!kr5;N8J7&*htTkwr|os}U*^3Drdu1?+{cw0Xqavzw@Hr?TuS_A5pJW2GVD zMPI4+uOjflXk*V(&?=Ja3R6ujA*Eha3}L@6N(?p$3`r+dw+AQ-5Pa;D=|4ZXK2W)_k`-eyyJ#V{V<0 zNRqF{_08kDljpr6gIbPy2p(v!OZ73eH+=i{UKSVQfZ=VKKQUCrv{$oJc(7dBb(fhQ zoaSe#;Ea1wnYhWY1O+Ewgy1`IHZ5V3G9X!Vbzl0R&>bji{&4=D<>*xwWS(3mESnZs zMLDHCkPSY80wu!Xe4uFj3IEfQ9A8wI;uXA!!?k;LqI@aYT9=`aF(v8W@%mlA{! z!(?S9PH4vcg(Tu0!8_zDlM!sewwJx_KnJr0vR|mshSvInP!D+MV)|X$ixd6GVij{R zR2uC<@Jwq@CEqu+H{=&+So!Nu2BCu~t|}><#VHI(Xs3aXwYrbTz;6EEH`BXsm{^m9 zPkd2e?}AZL&;jtA@DyqsEKhjUttF3P#A5vo>9f#g3Mt2O5wPS=c8vPxp|>xcl^ovU zjj%x3!3GN29_qHVkI|}m}%*eLr^}PB5m7F3dsr?4R5xaO=9Wr zpQeB;>q}M90ppgilTl=*3;cCs^qDNKwVm9v$DSwsjR{+{8BJd|lXnG3?!ob*8K=Gwbm)-$o^ z@)u0>Ju^~PzNz$2R2>ATSKFS<%$FCI*#I1NSl1_hrcZ)8;Ft{C3<>?45w zuPS}~Rx1Xn!f8d~HO4p zXB4O~34;y)!*DbgHz;bUvlSjslgqn9mFwRcX(n#MLe z=42x!%yUGTy(R~2G4oSPGGj92LW8e%Oi4@#m*v8Yu!_s-%((r$m!&>@Wc#BOP7=CY zwtDm1Ykh(E$M|s9?`o_KA264nrjxpS#My#QMSQj*9GeI3>|lv8)7!L^o@KfgJZk~& zGGfph%B08E`MpeI-3qLMxENHH8r(i1D~eO=AsT>$2@S6&(h8{{WREl_o$W@k9WqpGXu zGSA4&s%86eJpl|qpkz?3a$$o@8T;1Oq@X$0H;nqvMR3o_I<~Hrq5c>_Cun2*P5$x7 zt4^6ZQG6bn`?6H4+K@$IE((u%B3+*ItAO`9gpT*Ta!Yv2e;MOgS5W zfg0X@mGT1?pCpY{ATmKpGB?Y3?9O;hT1s%E(iX8V)pcwXB2hyxbbn0nv1mb_(QqT= zBPyxsojLMhwl}{ZS`372!Z?~p$`s+JVSwy@4zvi%a`)Dtz=GG@3M_5<_yO)sR3^Rb zFLl-U^BBmgH(FKATwxOMB)^V1rI~{d!q8mns0# z7zQISalqSJlSJ{n+1^sI1J%LU1%zSnk>IDf0leZ{;Kt^BF<;{qT*Tj7WlI{;Sx^@5 z@oC?3x1fi^l@B^Y*^YlGcRIi^7NMww3w@+AK$lIaItqmb;LpO>fT2{Hy1XO-xQ+Ze z0Vn-G-A@6|w3=cEAE6I#7F#gG6^F19uJ!!b(?EvMrDYMmQU^EsG8N1PISn`xGT6p2 zKi*}ZtXK~1ehg^GfSi44Yt$PnlL~6sRY?MrJ@-&iq)Bv7WHFa3Oi>bxy8UTzfsq)s zXp}jz?49J>JKu$-w^hORdCDmj__QWV<{T36`d?JnaINx+Q*#Ah3be2<2!+G+le=(- zeq&z#{6VT{6^ULG_FK`-D33K+`6+uR2+(^l8mvx<-&HwRw|i52nRGNg{`*$f@5F1g21sC z_CN~OcFnDI6H{*mX>f7Ggzf2}QMr8s#z5&686x@Mpy|Ng(REqrJ)yKliU*hP1y?4R}t~G@=wywnQF}jL+1#{sRBibla{ojCF;D;-t^t{BUNo zeIrn8CAM7*=EZTa2lg52ZKzB$1Xd{l0e!S;;8-gy$Tewy{Qt1`4qKu`S+r={cIHXj zwr$(CaniPJ+qP}nwr#)Dc=vX0b*ooj5F^$eF?P(kCbEcAD#Qeq+QnDDaMQ^x5#8OJ z^5^KEEs0e%XHsovXpy_Z)={XlG{C9*Zx?NPR5g4IuL3ts*Bfh)bHr5Z@<52`Hfh{l60M zC|5sgOQUIwI@`9^R;ySu0MD9~o@Y@x-0o?nE2q#Q5*kTzoBB5pj7d2Tv3#cXj*qza zuUZ4?PEc?H!sdXx070^6Jh3fJ%ppl<@bH{Jmw@vSLY1-r&Mi9?kmsG+pu~>V8IsJt zG~@!{JGaGQ9dl_X-#xcoxv~w4a?4C9cpUXo`-CO^K40q-u9J@Qc{Nr&yI5v2X-K28 z;_P2tzTSYZ9$muMxa2l$0)mQut|L%1Cuut$X>t`kSDU1cPX_0}1eE_yse(lazm~!2 zlr!n*@3=#zYU%F0Ns5LpV<_N@y@7_VVf6Dj$6Tm<%j$bIe{BWU{V*r#ioGt?XAfz) zVBFI)L(x21K1}n4C+ZCO!W4W`lnmw(hjm|oY2p`m&7@O|`xnst?%+8beT{~zTl$6t zzv^VED+S%2X`yYvm7ktrW0VZJ2Akrl>&O+@etQJbO-P_KB>Dbp#v@_#aKcL0k+u>R z_;a&WKo-ssEvVL_LrXS+3|$|n;~EsFC^;GBC>D=DYr?Z7z~#JFX+C zyH;)9Bz1`ten#qN4`VydiDYa>HvRre9>5>z(+wK!4gFpqhv()Th`&lD6_Tj^hZf8r zroEesoDHddg?{JthYF>FM5Z15(+s$}Y(Z}-WGj&xLY{NQYIfhUdb@eFQiKjsEIW5{ zzo;y>E4tn`-~6MYsPi!me28Bd{9nZ(9vcx-hlVr^CWt4HH;XX;nUf%0Q6mBy;=BtI z@7_NXZaHuMuluwcy3yw%BKHrLeV3T&9^9 zQNfo*^>r4n?g4>GcjMj2zIGq2v5*j(eg72Ydt33%lvWYEQZy7sXUYSMyJ8Jtl1o2) zANbYJODn1v(M5mD3k{%8Xg4$P9OF(+!#jI6^pdUxZT}f5MXgFF3r3-|XnptqS>>ej zWm`f)Ey86-qje}nxjy_?%Jl85?3eDMYjgRPCdvG|?5m#f^ODL$IQ^u+$t$%lglH@N zCZJV8OfOaV9hd%q6tnf+%=vVMNXU1Aj$o_5pW8OgpkTEZ-2NL3*Wx9SKwSyenWc02 zdSf6zyc`W|+qg&s0@BdZs}?>KRx*vkypO3k-08yv)yTuZHs+h1^M0U72I&Jy#NCq z6lM|SmAJ$Ok0*5~LCGz(*w&re2}_pyXvmWN=ohC#ap_7mU)T6Sx_6MTpM!o4J$UFj zsKdMU#rYC@rEdmT+HbLyJ|Wf>hP`0qNOb|};!a}TPt;2uhVa^k6xSd?JimmwhfqlH zj%pESBrU4~KQrWShyo;RO>hSPBQ*X4q48hRS~&f0*#BYJ{~h+o;a?G0j6g=*|IxKz zvQZp&^<1+v`gv9hEz_CD_hxjaEPTTwz-nIOaKpKy;Dg_Gdyz_;nc|^;?ekB>(F7Sa8gj9C--09N}|sCj@{e1mSHogBi?j*{Y6cDC+xU2r`f< z;2kMZ+p13$=x;ybv}DpPd18jT5uS=$R_u;bE})R_S&cRs9}WnsN;YLBvh5Y+=H-|E z8Z|I9mfd^uDl!h4^sPW|{jOi3sT1>0 z1zwtN4U~{$gi1<#c@-6^y}7SEB5HEpkOxT01Pqb%ov9@<)aX@vY z-q?HWaPB*lU&#?Y+h_04ObZ!$XyrmIx8@3Fi;9)sYv*x#mwTuaQ|@!XLZ>Y?I>BPg zl#g5xx-htypGzA(%gQT{DZgy<+i^%fct5G_iTxJ>bCr8zY&$M5SOoS?b;!yBqpZkQ zLrN3bXL1sc67WC@Y)u*7F+@j4-2^2eZS#rE<0d?Uy6gt|qY_{fWfTSqzNqk=l= z$5zg;UGW&30MAXMa-d{Zkg#~n)% z$p$2SZ)dQG=_8>yGo@bjrDH~t8*lnok*Xc)YOk1I0-&V~q|pHLr&sw-;$!l{%f-ZD zlQ`qmIS6*bMjw?t+d70I(f7%0VTVr(x+4=wSpmOOrfq#a@UcW5!zsjBDsKjiCN46H zgqe3o))E=FpfaMA-3r=ieVhmt*C9k0MH8t0ssIAsk5{7@B?wvvuU$qDTSYd_D6YT; z#7D}_`TZyhSBJesD2v(sA=|WG5O8P9)TLvc&T&8a;wCC}NjA>}vHlKwujz}oIJ=Y4$qjG0WrF7DF zScSjRY*Jd`O>VYUGXRPgZnL|aO!g0TyKVaA%=6hlc53`Gcq{PKT}ftq)DqDqi}z?? zSq~W$fP0b_pN}xBnSVdpbId*m#|X?8z~>FQi%k;Cj^sO{!3}c9dflQ=YkN5;~*wnID6@`muJ}3J-8lsg=qLtM;zsUy1P*Ib5PdZNm?H$&nI-z;I*k_ ztF!I8Ej0L6e~aa@jUF>XWUp{?DfQN5qJ&(N?|+;XKI98fQEOR5s&wE+IFZYOl7*GM zEGab>0Y8}OPr4~UzTy&gBvC}wg41uf&a54{j^2$@T z2aY?i$G0}pqk?#Ve^}=+ej_|A$3Le( z=hhze8LrqqcPTS6_qu~8_NMrb-bKPso|j!E0YOW#IR4&<|4N~4?9X_H`LdLKOUvU% z=By#}oUQsRWS`SRM|O?fd)D3B!8oeH@)~o>4n9J?e?hBNeAn~s%r^B)>e621`OT&a zIiGlgQwNMIS*3}phCu-vwfR?*1=>u{2qydR0m(fQz{SCJnnk7UbT zK*xFO$rwAfV{Q1Zn;>>D3=4M`*2`O(Tdc~#Ny5#9{@*&=+m{K~U_)xkhBMy{GtTgr!?=9Iw*K#MoiA8-8y4%<@O0#75$iQ-~XMw`yIgaR| z@Kl{u;K#5Mn3@8_C71#MrzF-urZvWz;SnR1U$}NM5WSpBo>dbpXy&%KV>r2@A#LVx zcb1?SDlfX5HKoZGxgKX7dPcFNopmRCkIs=UUdCN@nHy8I4Vy^`9bhtl z<)#^=DpW+C7ce8@l#rQ+X(vDQRBH9Jnt#^pRzMYJM(%n*PDorAwNLh{A9!7UsXfliG}a6oEsHOoF9;-4Ox9UvPJvU5{7=S- zD}OT|mrdqqL=eMSgu|V}+FTqBK}nolj`^ex|z<8T=KR5;I9R z<4>nYeg%pK!|S)5)LoVF`OV33veEt)zkr&<83CId1f+%1$USm{;S<82Frl|(ZvMjd zp=OR~AE$x1puyWY2)ST#)>q;Gt9Bt>WX?Am8Oy%G83!*ooEiOqnfum$% zlj^0Ra4@Q4S3wHDYxgjv>~cla$5b^#=n6y&@98Y2nOzB_Gf8fgfx&9 zid^c+8Ag%%k=ALC%fUaEaLE=Sm}_<8chJFVx@CuhB;@jG?B;^&$xjLokExH>wNO_2 z+ZaDeHdVs?B?RH+gK_P>qnG4RrSA^m;L?%RmG*b8bHc)=cK3f*Cl9ac{ej#wBbj^= zMl34xnX_7exx}!<<)Njr#OvbZR9yx1A+KuXV0=n^yM|Y*Ds_!X@NuioL~_(BZg!vC zM?QTB7CS;1*GR@Sg3;%yWl!%#FE;zbH?MRE8t5oXe!6WAo3$jFoNr_hDJ55;$-aQ0 zL(!S`qR5TvEQ5V31#U&LqOmrbRNZ*3HZU!MbU8%}I9I`wx|ss9T8293Z+w!JKr3kF zA;Wg{Y^X8|wc@*z^_B?&GEYc_BO`@(g^^}wD|#*tJVWzmc4F#uoCr$*wuSUtaT1wJ z@;%mj7P@ckqiZPrU~IgLxs+~aa5bhAZve*_1{SLrsUQk!|5cZ0tcJ|{~fbUwK8&R_8_Z5cXHGJfxRBA51^ES&z z3)M9_VXWnYahl1|M-ZTb5hqGrY)z`0o=P7lqa7${Q8^m>=Z|AsX4?_75mSjE&L|&n3`pAWeQ?Q>P3{U6$yocz;A|Q z(m<=m#wDQKU(x19e*jRA+n^1#K>+5yX}58DYTIHTj?YCbcI6(_!LyorUJ@*7A@{$K zt3vYdD14YoAjm5<+IxRbt!VRUr*^?nPWu(7g=Nx2A~>GbG-lxtmp_~B!8QQAzy=(= zn;lA-N~@K5g*KXdKd!lllNKPhs<+jk)EXd+5MfB`)d!oQXt&E?ED7lA5}ThBM$D-w zNXx>h9esM5^M{IN&24S}1!0B9n4+v+k@Va!AkcF}zN!-3dR07QHDBN@K%{%mgG1}F z!ycY-S5i9wGX?Pidxf}HP_d^v8HO@mU2Zm%OBj-PAg34S|OmBmu z#Si9EdV9o9?O_{Q;BADT04P-bDQf|&R&Y#G+JC2d_1$p&qpTh83;Z|DPQ@L%USpSn z!6ol3G_>>}=LBD8E!kkPLfH_`rJ=_-3Zx-CpIudL6+uTN4T0$!IkY`W(xQv0^<`*; zn)>$|W_RAn26_3fT2&597JpO76zB|$fcyMPw3C7?2(z{ zAcp)&Y{tEL3!P%BE@=o~eY;0xJS(odp?tw6mi-aaw(w7@p^l%cf|pud?C3AHNwI~_ z>~HZ*N?eNS^&c~dYON_~Ffi7)s~ABz*=O)|^z~WZEHbYpHWLO(VIY;Fnh)ZNC46iC zVJ@jEUCnJzmcShZFrK1>KbjUV-K)}wvJ01Fut2>-ZgeTRX+J_zvTLt(88I%#Im*0y zh}weez?;2xk|f`h;b7 zShqyCYvv_;v67`RM;%!+)8*mIl~vvn(u3>g3}MRePgYZ$pCGP;%!8VR&r zpUIhhx;3%5i!O+b0FhV{v0eK^?kN}+!58q+!~{tqn@Kb4}=DBgiNAP zRGDc%A_a@yFxQa^i6#4y27z(;YeK%AQ<%tTHYXEHJ!`t%X{(*$iq2!W0k&V}T;y}D zMyQ?28@tVt=*ZWvDH1$7KZZ<6s<>WPQ$EdMl_1S;#vJmL`LBH9xA|`-HJp)XJ>26; z_qbPL?ZvM<3Lv08)Sg~@)1W~dP3ycDPlmDz2wOO2fbvi2=PzSluur^zdrN5FNKr0MpzcMG_ zGrQI%&B?F%u;<2-{Svsj;jE%6EL*0BZNTMM$$_Fj zBO-!icm@GWsuEj5giZRmqm?Wfu(Mkco|sUzF%iB)2mlUGb9^FQ*n#iOdX8juZr{bb z*<=gqMH>@I`a)eEJx*Q{CYd!!lR80JX>wHl%!f(;;zI2%5iKi@*zIN^ve}INZB9M5 z`nZ;?5Y$2nwM_PkRr6kpYLC3H^I5^Q1kC(s;r7;e?05Y1>2@-71ixF^esMG}!wnh} zhNEo(;nlM)M5Pt_UDcP4HRmPeJ@hql$cV5+IJ}|Aa}>}Nl%EIplyme~uO-KI_8gG@ zNCWc(D22%s#Nk@TZ_$jmdG^yjXT_4JsRmc#-RTY%*k&%*{k|(;+M)p-J8hxeoP^K(pzsh`9d{bQ@i);E=+Kt4NiSBzf^TyS~ z1gjGG^;Ljo{qw?8e$Imm8GRIHJ_}s0vrBBD>%u(dn`mBVk*Rqet?4uXIz$|V+fUqL z6hsFzVJg&EKw#*IC%V^jK4C;_5O4Zv#kLk zlxSVBAVDtWcv#?E#`+JE5h}o2Klx)!R(mwne*Qt4Jg zqN%ovkwReH^tPvhEgESG)#|YI+NnYe9A|rgaRwu%fLE5zN>$o*J*jbvNLhc6ZMWT| zQBQ>Ky3Icm(eN{r-l-cABz*SSdF$z&ho7X3AKAC?Gqu5L+02#E#aNL$aC_qGRIfw_ zE*C#gs0}egNSVfjN!Z`$xd}*~j5PiXCsXcBhVF&69PcDpT}BB5Fs0xNG8-xC z1N0(pNoT(cEqjwo`47>s^7HJ_cxT}+wMKYMmsr&_LiI@!49mtSlG*kNh3uj*WpvPb zvAu*wg~A7gExcl;KQW~p*qGtxAZYl(fYso&q(Zsk)!M0`Z|&S$8t8~CuuyNJE@ z+fF8^fHIp({x(yN(mPE$Kvw4o>~=Zd$1h2w`;cZfhbTfgxP6Dgvl6{Sb6 z3Xwrdrjpl)CVTpjLsI@QMn3wKr;c=GgP-AZ*0F1~_4Uhmj~AS%YVT{`c6Mq@&rTH3 zy#~9hif6jGvS4V}%?AMA?;ysdfi?0LexZd%WQh@Fz*J(wmcR$1|&UmI9Ek|J-kt)(JSk`Opx z{1sluPi{?$V9|#V=6v%`t9G+QLpDpUy`orVTa4>VL|q+e3d5AASC(yJdE63Fp~u^Y z^aHo>SB7pQxgu95)&S*SYiXw}D6lJZ%{`>x9Gax`>1ScE)@ceA2cyI3+=K-n&h^`_ zowVewC}szm4=#zCP)}^*3cHZ)kA2L zQxHW}0QZ)W2UQij zIFl0KyQp8U&CO)n7*(pqg0ImrC@tP7|2_!DfsSzL2rTVOfj5ayIo|BlTva@C%+xkn zk*>JN4am1l+Il~i%IjYnPbbAO?Mq4{TR=BlzPwv=jrlG7h83Hgh*L25CIGR~VydL; zIe2`it*BX^S9lZu;tmX6A#Yd7I~BLe)Pe3{&_qbski-4s7f+U1AzEYSEzCHqEc%7ux^~2#+AkndfG^XPvTlRz+rURp z^`cv6ID~iA#V6hD{g8(^$-!}&AJ!6pd}jv=03Drh`3GDuMoF$~sKF)V{169Sk1>+8 zCF+M~amd;Ajn2zyo%`CDG

(vwiT~6LtZk89``H;ofti2_&_vH$>E+5@77&CN1@`0vxYV-T&~|?WQG(iF9C3wcxbIrIs7fAQ^=5 z=FyXzU}`RFNCVxBjW#4g^#qk=P$*p1JsX%ZqLH(ILJ-9K{CnRbzA+d+E4BmE)f;eg zYukzo&*!X;moZh&ypz7udGdC(=nNzBbG;IkDQX_GYLi4pF$`{03Lcgbd}>I-QI8r* zuaT~FQ=2H+Ykue`%$?KkI6D8I=%zpba{2+8y|ePHnktJ~q&!c#JK#L4hwhcOQML~6 zm_0}dj^m?xu4Metd$FC2o5*4VOuHT37#|T`WYEe+Y4Z3gosiG#Uq|sPh^Z>0mSGw% zf*?!|29OAmw%m9msa_B--k5(S8i5-f`OCL2rb> zF-xTX9Mp1sGTYhN@*s)cL%6czJIxD0I6*J*`9N}Om!qT4a%nyX;EBne;d{sP17>I) zM~8Uox#$abzE_0U>@iblPLN7<;$@V8uaMw6}8OnV(OyFW*gH#VkF z1qnBc;I#pJ4c3xO@$Aq*c4{FN1#D3<7ad7UM>)4@L7;-Ws&r1sGg$Amz+ zThhdadAbWEaFR;})1D$8b7cZX-Li;k7k65QvPcr>D;irri&*sYCN^}N72S{}RgB11KKTZJhyQPm$kb|CKEGyTwrQMnK zp5*ycXo!2n?I}7{Z%PuH)gjnM6wGHK{E0l{v|7_@rZ_^QkJK(T!t+?8tCCS%_=+d( zq{c+gSVEu86~4g3o+lqH2K8*;##XP5cP|TGoG(EpHW?bCmS~la~;u zouQn9s3WjU^44$lqscxaK< z%Z$skK^oFS^>&=%2{I|gekspqFxT?3ys397{iry#sgI^tMXv+LEdJ%~78KJob7t(| z+h8jz8ZzbwLjb!A-y2Yzy!Ga($1=7jXQg-otHn$%N{m0$3xkn6-a2B!K6rN#%!w+= z-yhbDoE#>P`DT!4lH}qfcB3&pWiO#H}c*R~9APbPg|264&r z$Awz~s3W6j{4YQ-xU0&C;Qlah;)L*NBDZ`UrbY;R9(v8Nt+$b$|M3J&W8xtSj_C6S zHO4EQby6u7d?~I?KJ6~3X>gOFG58D`s215}iA+NTdUm&7anErbX72e8zgd#HtO5`J ziIclFR#Hz~meIEm^3m?sFyyqQp3B8ZzU>nB$yxkX$@zCJwNtU`bM|`ZNO0a$k4;e= zjBh^n`y|s1Q7mIOx#NfVV081L*)cB}`6y5&*99jvapJJ0Z$~5nA7%q&HUyY(@I4b4 zeM*^#osctM_$~r_#L03j<&BgU9B|q_a;7oq#IkI;XNmoT!>b0;oQ}GvME5eQ70z)o zc7JK7XhvAJe{+4+T*q=+lwbPjOJ`fCvCTVzb`)`8o}QB6k2+qIP^m=9sZ@;-Pf{PB zRE%hdHA{d&$G(&SwEcT^n(L6w6(zE$Rkua7Ti$LItoJ$)!bKXVWdjC(vkSN09i|KL zLLc@bA(ex|-rea9PB_3UWlx0VRcT`E>)bM*gJDxgd=JIBx|j9mfNW9c?=>sFt|f=i zyC_9(-lvGj89W*lQv-?X`9CGzbNpHO;_F-t6X9z>)}$@hO~zG@DF39W~ z5XnSyx%b+p1+f+G)8IIIsM~k+N@|ek(X-6bq`m$!fMmum-ZcF!37y&p17e+B)?1O% zPM(&e$^@n>-t<~n)nW3Hxt{6wU^ZWbT9JkJ->^{1kov!>?ZI&`AKy7pxO`74PIyo3 znx{A00E=XG-9r-#O2R#$b||;BB-@K4Y4A0H@z;u|L23p#Cf8w;(JlKdljQ35jhC%O z-lS(#a{%#k2aXo0W@DPr<_5K@ix$NOF?xzu9paBE_NIh8nJ8=@YY4JXCY}fP1Q6%a zY7I3S!Al>Ac1J*4r!h3iRRe(S3IvgmI&zjr%dx-Or8P|=F=jSO9E8_sE!c$wgto1 z$Q46D`OPhvdc~i-QUJE8TOLXgtO=-iYh-d~bRO9K2*9W8cc7kndqiHlZb*Sy@i^5cYm{jL9L3w5?ct z)pa^6$8O23q!GS_Pb6F-K`Q{KKE}ln=!=)YF~T*vbHUc zIbnJH)h$l$=ybjGj;~J%mq^uj1W;k~C8%cE01cVynflspWJnN8?ecOXU`*WUL z*Su9vDYQQ!9Ib6ebl2^=M&YNA#dL7?xv;PrIVHH!RKEB#HWxQyRH{wL!q@Bqz&fj& zo5QY!VCmi1fbixr$HM#o!D7DFCMio>8E;4@Q3gC8AZ;Xd$GVxg8jzw7mT4nrI^MnL za{8Bci3>C^B2=v!vxesrVv-%R?NZDHzx)^7(I8pJV=eQe(PRW!q5r@{Db zn}a3Bbddmsg72Xg<@aM~$jrB-xkurJN(jkg%8Sr|!zUW)I!I&Pk&iEz4Fi6*&pya+ z=2B3j+1Z(rr86itx^x27#~sVBe>Jfm1*eUV34aWcQav%3&|BD1tYQ}9=@AM6oxP!+ zrwk!9nm;U40@5#get9}|tAJVnglU=P{^B1fAYLA1dpa>w`npf>wi8*TL;G^+L{9SA zo}Xrkt#SG|NXVtK+A3hEg;$l7Zj2pYQTO>al9JhZjt6Gpr4-a6aR|Y(I>W0Pke{l$ zpM_Wpmr!$ezTW%=JeF=P&bVhx7z1iYRd^QDR}5j3wq4@uXHOFMbLBY!dpKF!9`69A z;LHEh;?w5g?P+2ke9SX#Sc=^-a^&8LREzOY&Cj_F=TcgLM?ULz43b5$P?x1}dWFWa z%e83Xo3_nKWp9|$Y8OHcOaU`%X0WoAuNXHm&NCV5zbL}h&#L^I!&6n8{-kjd_Y*(! zn1I;}O=JHDl$V!7^b5IXRCuV#!@I-V8^?`2enba>FOq(MlyTrgUO`+e`qXa;R``*d zw6siKftIbP$MoD;SqO1~iz&HyQ=BxBV1(m_hr9BEG=%GYubM-=9NiI~X&{~dNm_C1 zoUgx6tt!Zp{A-k0uvKa$+c>a|_l3H~J~gM&XMCOnxQ7ik7GW(WnJBe4oxgs>ZSXY` z{dpdSz8_9d`uqJaNa2odv9k{BZOa9-hloBk&-FqLrUF$bysWTC{4z8BnSBY>8fv~k zFDe-O&|qlR$$TZ>Mg#9u4u~BSTeF_vJJW6(J2b-R!-` z{BkJ{724$71)8`RAEZ6xXIrNK2cXfLYj|AFyF#IaG?h?-!MjxKuNbJ1AcNOtmX9jb zk(|3iSmBrX)u(KO?8l1)pFY{hwKt4!xPbzOND-^hGv1tNP67s!_%5Tw3)z+AIbn=& zmG2f

5@(V*q`lW`o6WpQ-*S|A}Y2U5V+eXOn2_r+pXs6Mi|1(H_40(78{;lb8v3 z_tF6k=Lxv3Dd$=kZ*+p?4#om-d!URu`HQS_R~ui@Umtquo&v+WK{JqPEX1-hi@207 zC!qN$@T@&)v=Y?VhQH%4dc#V3^IIMx1t8bdZTc-CfSo+L87sW?nhS@8;6r zbfgUX2JxNt&outvL#++6w`hoyCkF}sUiUdC26$k#Tm;)L!JmFgpYfq)Jz*2;!p+$O zK1l2Qe}#W>hq}E>7KcPNNTV^nByfi8_o9|+q#Ak*TJijjp$2J!I+}izZ`SV-e`gf4 zBWSLx6Jgq`brgr{(LVQWY}6lxHv7zA4FbWa={KF&<5wQv7sTV4q|xf_OEtl+26`RO zS(A5m&@0+J;&;1)ouHV|yb@-aIF%M$)e(_WfIB0kqj+`izj^ScaS~X(^uiYp)#d6G zwYJu=CFk;NfT1cUk^dOlGJ$XQ7r}mOT~8&7zMSu|0IS&cQ9ZI1oM! zjMc>3eZO0N(=thN1hOMSUR0!H=4f!=-s_HG&s zVQqBzA*86e)_-p41`Y_gaIc)ae^x*diqYUt_wNY~foM^AH3u4vDs?E9tcOsa3LfcVH+A$slfR)SRZpK}^a$h5}KK$Hyl`w429W`rz}88*>a95diHx z9unhRkq!~2RlwNBE6!LmqNkP`bMFtStcLfL!EqJ|{%-iocm$pPhP^VPOfjQ38?|Pz z)8P7>UQDC-oBBsht{WNE-~Z97|AAKh?}%!>{yixMFlS*Y_1B(qLLwjk5r&h_(AZ)< z&jwQKs*wVXING5QYj{MJU7jStOY;D>F9AIB~_%3m{ppV5z?RY8Gj@p6cgblfy znf4Um$J_R(0oF-06-7{Zj?qgi3{#T)nFNC#>)TS!E@{L zPUK|~m3EljUzeb|H6+V$zu*%d2cg@>OwhI%X=d7rzc9^ZtjwuPZzMK{zf8}s9Grt^ z7UYt&0r1$vT6pM(Gi)2`u;y*IHhRxjMZ5b`X&@67zQaB><3x{R@sg{_YD%7Lch1jG z@ssE7#WXPyLZ@9%1@4iSZKa0Q1J4>dU8gAn+ZT#u{5%P}_A(ps>ZQ68UYh`zmj4EYt$p+GFqu)54 z7$1m!si)drYC~ztByi}TKJxKKgSmdEZP71~^_8u`^9+yjui@_mvqn^uy)04C4CDw< z>(UtM(%c6aAar=`{;V+zv%Gw70e2vE)~gG6W%*TuF*VOu$6kJDfa$t;6zLVE)r8wz zS$)^S+JUYoP7w33-#6%$?6wWbNK}9#%0_n}>msE^1|qJzi0TcW&wU?}MCGL0u5B9_ zc8zD7vo?96Ah|%Br-W!zNAKRo-xTyISw((mS~BB~Gf7)U;_w~2*~L^zxA|5g{WvZ~ zM{+X@liYd(*0oBTxqL%6z3fDRcCqBV%C{r(YeG=$#tYasmImacWzvUbN+q$4N?x|( zp5nm1m}<;?T-FF041qn#y)h8$j1lbeLEi$e1HeXqLW&F%f%AIW_aHnyU>z28GX&}- z@;A-Tco)j>1|z8VQvJES^16!edXAaIUmHHw?Q9`@I-=0^*}Vl=TM90`_B!O3B-vt< zujl^Br-^donFX$dD2}#jVTShWy?w{gETPk!(u=G&*|rCIUt=rkg?T>E%GTZX*4+Bt1#ZlLI{M!(zta0*qCtrs(07=h?E7DOya9b_ zvz^>oP4@YZBZjqk_w&mc*AO6lGpT>* zjQiik_a834|I%N^zeHl_YJrTm|Jy#7Z_`_F0L5SX&+}2iP83l+=lFOZ^EtbqMhHct zYw!#yIy^s`fs(1NzxXPN{j=TJVSWDO?#0lqrUu!s?9>vy%U_`US#RxhU;B;|Pt369 zC#k`;gF~a-U4Mp_Go=D~Li)yTj2i+~1cLwdg3!9$4N^r)Vb(7VV!NKnHaTu_&oN21 z?g?LyH2&~JFK;5YeCOCB6*MkG>2eFd^X7LrgRdRQXh8Zw4h&D33a0W@uy1Ks9Sln=*05I)h|Qq$vM)e70?^9w{oA%(e&hSfcr!Jh#oD6R(im$ zRFpXrd6|j6ua63~r|%d8Nu;{KedZJzmT2SSR3z}Fi4Zg3B~yeKShc5`RX_DvWpuI6 zPdu!&jVc4aTSryJSQ~^#LI@MGbSKx;rUvNq( zt|@De>a#UYKgR=(4!vX6HoC4|eU!K%tzuAXoKXI1>B^__bnKf-pW@E#`2+k^z$C<5 z`wml?PxqEJK)=>*MNd|ZX<~|%uT`WQP6ef$?O?#J8l8LY3NOzvwqTpII)=pF(;IEVv*a6}5V|3qk`p7lW z$D!<6l|m=pgK}yr2D@At7?XScOphFVeD%FfRy?0Gj2; zEA8a4XAzM(pl-t46I<6fhEeR9lXB0d?^wI|S3L2z5xQqebMs6R4P*;r?5fft(Ty*) z|Er!34?WN$&wb5yi+9z{w5qF+GQ?eoRew`$@O{X~4za8cWwdAwQKk1lxZ(lp`=UoAI?XxIvhK@pO7&{ke+1>E{r>Fa zY=GdMUhArY-$3IK9$|hV0hT8PiT;m>%ZQVU5S`l3qCjB3Luo4Uvfy}`QPnSvOsD>y zh6#sSfGvxskc9|Z8!e=`$sj6EYPEZPvz5Eb-A3>o-`t~pM_N)LcNb|W0%Ed)3#1@p zTL9kFO z1g5Vff&mtjP#Of;YG{$!MqTXoc;Gtwu!&s$WBs6&g%rQawkm49P1eLWc(~VgeLIBt zGS!=9nuDzNQMLt(0f=x{3>F5T#uxK7KnEpRU4pO`yUKn-km>?ps9$Q&Qx>G*2B3lf zKs&Jp)mG)>ul~S_+IcVcQX0kJgs?JLzwvaO5Q?Cdks)XB5U`Zb%;l}mArpCKh2%BH zh-IQe%zoxp%N3M#gZcVPalISH_%%?{yGk)0^2^QXVX54z;c;|`c|f_!opPJi%7M*?z7ai8{?btK~}I|%U8VA&hQx}6c*r@ zu4b(yg30lk+3Zg;;^|e`$#p6Ah>O;7DhC-#Hc?u+!&G# za#7p|DK6Ha-lmsa*0yPV*U5(Rk)ct}FFjlt?_jlfgE>QLk$xvK`ghgXzA6Fqu-9N| zt7rFq8@yW>4|MBEP-4|9)AQ{Ais@I*EXvf3(niXqNw6!WtcZ52s>SV$(2pl*(}bC- zjlz8vBLIC=DZ<3|%!h6p_@1xy!cvJo@sw#GQsps@&RV#(4xL2Cxqq{)HTa};?VG+o80wemV0q{? z9hVC-n)iMFsVRjuz0EyGw7~NsB!N)9@emmjJ;i@Y!j$|7$})<2WU#{oK=Fwb8%qOM zz@3rZkM184ANHF)tBR8LBa4YV3SC%vYcSJsq#%dJa&}C%MEuq#<%qZh<9ZIms)yK& z`%Cqbfj~EDtDI@dCDSY!3f`_SlA}S?(}p{A-rfY8)=z}Ra5!?do}anhF%Da{pkiLs zoRRQAs(&^DR}b%ogTPN<{O-ubA2dognX2lnIAMjQ>OBkMoPGG*W5K5pDK<#*dAB?y zYHlATN9V-sC1X_4ccXMinJG@*pu7Bt@<7P@4_6H>goB2bM8A;FJK9he^IW}gCAtFh zzQ(ZX1!>%v$g!|Cwke zNl@!-CEv*B;HU={t@DxVXlg%u@`zg{n%S#+`v6tXY#vmEwYT@b)Z|i+it?1tz}GM4 zhee&{*o>lvgIMmun|PpKs1nnU*?u2M&4#_X3%l}0&&q1&?&2bFfn_+}DDM%rmH#6m8#!EfEK_Ynx! z0bwDS8c9;?{elP(|JwubBs=CAiRn;B~6#ASdr z1VZ?Ta)z0wm>)2+V@g6IIT(X}*5UBURg~ZWKp-PLR-gvsYQ>P(DenvHf;R}4C6blG z9w;J@Xlo`He>|GAMqBt>aw-r zBf>1S7`PQX6>XTtysBy{=*d6$-4tyQKy=&3FTTB%ItG73e$#g90^12V4)Q5#Uf2x5 zPw_eAkHMy5?g3Kbq&6{q1$Ai7+PygYm%0cgVVm5TSFthFiVcjt9jBie zCUS(fj*7i8cD7NZCA^;jUd%Zs;40Fd%2lA~? z+I&|1Y36_S^*m{;CIM`y0726%)K`!4Yxcxod<;-tH1a@ebl}4E*p|(xm!d3@$}Q`a z>tE|=Pf2H8p1ucE9))kJdC9sU!AV<`Eaj^y|LM^Fdptx259BzW>eqWU$Glaj&a+9Q6J+uKWAw_I{ZqUQqILI&%AKWRsJQK1RWC) zv%t0Hx=PPq(~lwia&vDh5pK>nhH z(@JEzBb@%Pe9h12TO05r>{!ym6;IADlF}yO2%ASI3VdmI zhA;+ny&Z{(WA&nrAQzAbW9I7Bkw3id^6O^cL_q;*cc1g@aix{UOa}rTp_sZ< ze2aLF$HfZHGH zUJ2fVEF?cH-7Oa}l|O}gp_9I;13b&AGFEKUwGN|}x9X)D65 zjnK_X)|lM}luG(3ho_&jpw#km4d?&_A_lPLo9y66HIdb>7KOGH{=RZMS$k%@ z*Sdu&^M~Nw^kO`1+mWPwz5*NF_{IEP0%bJG=SmmIlLPWY=bpl=*<9)C00nlWeu zQO)pN(gCmRxbLLZ!HY~oGtnfGW>}*7m=%8`025DN!js{t3g2FmLs=&nmpy<8)xVq8 zi3;OEEp<+%-Mc32FOZ{d2&DrRAgFH#OXsMb{fi&}6V$N%Gx*U10078YAdCC|LK?qH zIQl>7LRrq9`k23wu(pd952)}vJL?j5lw`a-GN%J-6*xpfW_}K~kXQx>!JA=OQSZ4V z!!)4{|<9OKXsxnAZ=Q zO$Vvo$=A{l)L>k0Qi_6frJ#X?5Ok#22diC#Pk{PQVx3M$D56bZp2^r9Oby`M$}cwQ z((&s{9?cTDd)2>&88FXjxAer;HkWocXtST#6RdI6=`po{_e8om$&EAq-w@kbwFIp)8d|rLx#kFivxt)shWG#|xE+J)Vco zJ6Bd$evn@*ED_-M1MIWh$R7oO9MfKb@YEN7|2AU(g*TVWXE5R=Xz423p08mKvt{8p zv!jcT`lmDyr*kvpw0Rd{n(yvg-F9b-HS<&@*aL*+Wvup=ZNs>@#`Y=+-a^Ig4~*?c z;BX4kcbt3%x8!bodJ7#m7l3MiRX~$I;T9DT?w~-B6YT>6>^>1;W^Aeg%pbzPDM4(B zn`3GKc;o$<*z!~J69#28~8elCV54O~TSHv-lww6wfU6{c$Z9Xecz;{K^Rkm{jgc(lzaWrfQ-tqr( z$N!Q(iaF8krWT%;gj7WrjU99LCIJ4i z{e*r4v$!f3@;5SKrdYoBEMy@LWN7vWQlv|d6GK~&-*cIhL8({f1_T(WQUfd4 z#(zG%?u*fQ@rBLEppp_bQDPbV{T> z|N4Tcggg`#V?n*@Icc)0m$G|O-KSPNr6u9&STc$O8LEAr>{F^Cl7Du$E!%fug-`Tq@D4rU#9ohG1dI zJOeu}5I|8dC6+Lchhn1O&gvasPiH#h;A~xC*%Ko$;kbDIWiCGBuvW2^hwV$}v3xc$ z>Tv8R+*Cfbe|Yx|#1T^|eAHsZoSFS#B2$i4Yby6)2GRtB z$yx~}Oo4eM^-~C;)}cz7uz;|wz@5<{zpJ=GvDTqSQjAYyqpcv#z)ZBz@z-y2PRYF2 zYyEWThh9sdb`Ku!CHgdtS6W(O{)W1|cm92Xyc;_^A|y@tY%|cdsKpVW%_WD!WY#7p zC2_rzZ02WTxE%{IYn3fom^>sWcF|XStIvlAayI_-OC{09i<9VeDzn|#VI$jq>oFzOa*!>1dYgv@L$k-07K6%sS&qTh}9LoWbrjd8>+=nPW8M+kZw zeR?UYa%+)wjCq4Xb_YP2nJzZ0jcn~e$Pdcpv(Zi;;~lxZENaYZ%=22 zX>NRWJMm}{*Q)R9N+&vI9WX)_PhIWPUa6-j^m?KxGCjlvQqv4F-LQBB|GZ6#UvvY# zaXGhlFN2*q*K_+3>(V_Q0o}^0+0$W1_yAf00U+FsuYB z2p?2YEX#qkx?i*K_6rSm=d(^#g_QE=3flDAA23B2y&5VV>l=303?mjzFqaUe`>RYD!yT}-mHJA(az& zj#d?N{#hb& zwPQ!+lfmO;A{I8l^^SGZNRR+sV_9|XX{~v^g@I+mo!jg%yR`4>OznEvi3cIA;BwGV zOD)uZaD(e~FtHOmb&vtlA=CSl5fWZzJ$Ruf*2r>Cv?nGnL3l!2g`S`_#`J=uAIkmf zhbIC>!30XBnW)W_Cl7;1{Bo}A;CkceTU^oMvqsGm=M5s|gItWn80;k)&xe6Qj8f?0_J(Rv-I}Eep?nommz8mb{buq1aI3kB-*v$g( zFtVMzHNZ#)Ks2Al)3(Z>m(iM?@f8tcn5(M}?~U?f_#FY?2gh)H*0a+4$SyRX<{VJr z)?=0=XDL>51~ENSt{$%aZj)kJm&uTQWC;lYPL0bVI=zWw@OVd_Qb=YNM}&xvr|-g25SF>ZD)U@!OUqAAi@* z(1k@7m7N z!bxYQy@Kjo30muh-kU!_$Hc_13M34J`+Om4Y{VHUg|L-(EfA~2@6h8WLc=P-dknpL z%D=NMsu{PhCn+JtF4k2Li?Jf(3tKS2@aIw9bzd{2+l7RN0pSpRX>pb?*EJN}bM(k? zHUTRYPs3?2aio7_KNc&GDkQ+p!=C9FhBLuyVoL6s7;zE1_%QcGN(GkKq71w()OuOV zQnf$_^i-gJelW(sdI4aR@tO@<^}*`M4$|qkcjfw>lq{v}8F*{^??5jXDd%pCC znmAnZ7>MT2FGc$03I_k2`C+2ev#4y1yPa~kx$FuDcaqH6%wMHhak1crYgj>ttO>4u z0nNIo?1GBo!{M)u6;f|WNB#M_gk$hk5@hM7G<%(vA$+WI-36~r{ojE`9noW@ZCYC_ zqB>qrmZf}ZzA-9pBcP%DE4Me$y4}#otAs2ml@=qeX~3I9?SBn@hrWm<#0;immRv@ zLpk^AQOo&Ztq1urL}At^kk#zZ+cix6crlVuo{ z;}fb-YZAsQZ?^B4fqLc0-HTSgPgKvDTk2wJr3*4ScsoDAFi^QSppCBuUZ?x`i&6Y< zTiU=OAS>1%MKvX3LJXk)@Pv&mjsoT^BD3+ipg2&_gSJd=-7+K-Wd^{UXg89|KmR1` zVx&3SQHBW(#;%>D&y4X9Kh&*iaZ&tLa>o1hkN_A8n6%sV$*(ccd7lJz zcm`@+{hsHKs)Amy)z3Az!*1Ia;KWPd%dNwqCXlI}Y~C@RsK$jDdyzQEH4L&49EakHZoXbqQO4&$3j`qagw8JvLU^GsW10G*p9 zyK9Kb*AjflWZ_VHhgcTdnEFLA4yjtbOl6VQzjO#8PzzT78U?9b?zR3V0t6Qv-LMV9 zsF%0+-kG(Z=<7)`ukHo@dxIoiFJP#URiaN6cg=8s&L4jQ<2sGN89Q@pp6SJs#~m81 zSaFV(I^q2zFaxDMBXa}pc>4p_%)ZsV?bGlYn0bS%qG8>4Sj1}C@>}N6g-HpNLd!y7 zGfYEq>%@0WQIp5HYApyo?Au16hKNu^4iq4K^!in-9^BoPK0;Ja}_S4pi0HBuh!s*NZuEN z&86{}hzu5|wh+-jkOd9Pkc#amQGZx2(us340xo(Dd#DP`NK6jjga(4P(CX!gN19W- zOlfBDF<=W|e#xQvyM9Cr)SP#XaNg{%KB@2eF6Yp-L$RX*-K&8L_TNnYBn_1MDUkg!{rhO`NBsApr#63xmG^s)AB-lyZ4Y1I z!c8b@GcgeR#RaR|4P)x!6=Ou|;76VS*bCU8A@P1wwPuexfP=kf1>w!;p%{Wdaa#9u z`?bsoEvry-$H&phw9MeynFQ)pO>Tg+`57Hb+28EuTgNantkfB7iYzRW{%g&WP)?3C zYI1MvQ2H6!W}AXByQa^`Rhq0s<_3OYhwg1)$N%{0Iv+pm493gFTZ?qIDu9}s8xdpv zyzl2xRgLC>Zyqw-Zm_Bj8}e21(s3S84z%l^xzX zAO{AQUQB^9O*g7I8@CabT6ugYMosJRp5prwwj&^ONoC6{|6g|CKPT3I>Q(cvz81h2 zFwb}C$HIH`%WJTF%o6L4cLdhB#iv;w;vso!M|UtW_1&-1ng7AA6H}!h>;O~Szu|ge z8PX8l`LT1)Tu_X+IU@kbg5_-*d&|xgwvle1*0FkfjI7Z3>>PY~KB=IS&m!LnKMbp6 zA1ga`amvfIZJJ%j*osc?(~Mt_E zkLw>39eDkFIsUWS{}6fiw-rJX31k`nFL~Eqp$5JMLftRfhMQzVX+5)&T-l)}zX-X} zl6CPq&#R~lVmRX!J?YjA+e!TEnO8p0!#_m)l0RhTK~c!H*aj>OwyvZ0C^I3vMdzAT zW(ekkBc)Tn5iJrJos+*a3Lv1YRoI>&?7ni1_sv!uU%I2p>R8<{0+W%y>m@x zfq6#Ko%(izq%QCzvUxb zYO+J5v9-BUpEMwcpI)V=GC@;3O;(y~d0>JHeO;a%KB>N+m5@iJtWNFh*5497c#m~| zaC53>_77kz+1U) z4@DRuV=pX#lg5xKq}XM?I=mictV(2-A<(yqyI1SK?OfA`wbgz29?OYM&>Q1>wn$%p zch^E-9Lb_5GzNjBjEj+1Ss*JaDXSPxSK6^-=l<#~w%~pX&(OwS9%2GTxZ3duWUN56 z9tI<@#!~sMuMz^@J+mSAjq;R+ZPjF2FVI{F`-Oku;i839hQWyLXA|1XF_nQNVHwny zw|98qRaYa#qNoN6fn(sAbq=D>EaS837Nikvs^nLVmbF{?975SI8V;8;n`_qQm8o{1eOAd91nD)gC7e`ej}ByH z$BIYLg5K7H>m61tXX3O0icU?bHRRu1D28_7XsX4O-`CY?o(Cb47DwT=GV2UIniDI$ zNHeSdLVZx}WHVu14r#0~`No^ZvtyfqM>4;Htn4r!-Ui3=<8_^*7GZIZ04b(0rHiVU0- z!l45JvR*@)f8YkGR?BX_|C9mBEeOCn5Bp~S_P{;wv!KG0Ia3fx z=BVm9(_Ic(z2#!I&E^Gg@iK4jijMLt&pni%^8@``9|Jvp+k+7W@n7pAqBJ zU9fGkDU+V6EbiPH2b;TVar~*e*4d)v&08hNJq1}dtBsXGKw0E(Q0SasjrYQIBibx@%2EB>9G4Cqjy%c#hqgJ(vwY#uIr)m*8V~Q3} zCKi->n_ZvtjjmixY9(`B@2x1x+?Ik8J8fRk*xrk>jT+6qK3PT>QV9tcaoPjqOu~Ha zb$TYcPxhFUWbCOpEPOu3hY-(vKwrWAeW|Y@9tUijcYsm=q6#~6pG=a9B)ERD2KE;! z)Nmp02dV?99sW6xbDIz3B=?o66>LUFI6kSTGn;plj(NTx4%@TeLn=Q;e(v}B3fMiy zcuf&7Lq@{O#12G^UR+`C3?x9M*a+mqYSZFh%VQEs?rmFvW3=5qLHE!)9CE+C4@s`7 zB6^>mUfqiD@rO(_yJh^D!4K5+8e@W^S%&4AV~QFTZr~}QguW2UJ238Ph|hE=n`lQ* zgrm}A<%nG9ag!ro!k#ug{W+|XE-bjaN=QS}CN5yEss_1#hyNAx?dx|;{#}a4C)3gQ z4&~FmpNvy&A-Z{$<3PoM7S-bywMv;S%E#<;dxB>V6HqYavj5<0ICItp1}#4T(W-d{ zGw+3%L0}+g9>M;tm)OeKh&9s3{yfB5T|YIA2pUQ4L6O)m=k)9=9g29yar0%Yb69wW zCI<2tBss3Bq1G@@!?aWuUJPdF4W!Z?F?RY^dUdkip*-DuGDyutMyhzZR^|Vp$#_xH z$`R3SFpT4ZTFKQ{7?iyJvnN(^FZetrr*6p2{EnvdhmX{WSwR{9M4Fmdf74x;9@n1H z6qy9Qh?PLGQ!h2CAEUnI=&$z$6d)h_r|&;;+5f*^{;BEQ2LJ%VP#`PxeRE%>#~L-q!HCYuj4z+;4xbi8u8+Z^Z0JMkch+q zb(1U$bMd4DB=;BD6Py9pAnK=Gj!KTApxL(X!r(kD!qcVZ8% zsfS9=EYB=?spH%wmx;ohWd!ng_DsJd)E-cQ13U+tIEzxdqTqme=+=*Diz<8GMVDlZxKutUy)gvYOQ|IX7UT>Qnm8QdMuej`5Vl-Fr?WMU$NLYY(qXB zYnO%x*9r@DYW%?LYx66qGbJXH6UKEj$*fijfv|PLw(mNA{?BivoA=Z3G zce+L}kjk^I3K?Finil`0r?B=pCLzo( zj8NqV&a8p&pZj2zY14%urvWhlp7_l-IYf}XrgNz| zUdVWD{RPp&Cxf`<6S70la!aG;6z=a%q@eF;4TMZO-7;!=)C1#$%BJ)2y`op0Hs)~V z$zL5{G_-4cz7rkHD+nPKQa3k)Lay$xf^4ONnK?9!t~1B-0>GL`8>wm5+&Mx}ktIcL z=r&hm?pc&6T{?zK`pTf?FHPcO9?T58T1T{cEw|$;{xQ;;e_XB+r3asUbvSCD~92L@_DAyBLy45&tAR>5vpzAFI2S-y{ z$~G^h2Wtc#qXlVEMv!RB@)RTRW$Cpcj)S{CRCpvmKVC)GQish*e&)TGqnn03ZP3Qm z=bS-HL+CIfY+Nx4OoZtRzN!F4mQH}+Ie9Yz_G$(ZXm6y&v)TCMsb0-{kGOKezS*QG z2bRibMwgGBc>1pA)CCRIH}6OLL^;gdbSQY7g$;#gL!Pv9M}S`!7|lbu@CDFoV#y}x z+;d`JkjOTl@+csC>MxbKmc!9d)hUdSKF18ANsjv@(!o|INci3w-w}PpWC`2w%5XQN z#&Dd=YLLfpmm);=|3;bxOug@2BJ&rwK8H44Jp z!?`|BB>A^(-E*SH@)9EqXC?>omU)NC-;9$ga`cqaR%5iEjv@Ou{+f%22NpIj0YE08fufN3mu!2Ufs@qW2ERQ%Sca&7BmQ9694{X4H~~IV9qO+Xz_?+5 zMcJ_*yQ!C21IM7Y$F>yBiH>hC!PRg%2N#)}$KxL648Ap@V^0!nyBE(nCHqrl)@lKd z_ZfeK|&Zm)CoKiZluIZ^)ySj2zg_4JnmGOG# zd=GGPlf1}*)|xdqMva#};?@Z&ngjBK_o9mPBEfq&qHX{~9V3+8uh*&r#L}|Hhvt)6 z40i7d<_#r1K%mfM*+nHECi82I0*4Ao2OS)|iT^u#tlAK%sDD%Mq$!S~303!V7n)cW zMen_dx=20y)}m>f8w=Ba7{LXGF7!4>a{l063cK4BX6GEl|scb(yfxbbnR!D zQjtVS`Hi<+~yN<|y#w8^$Lu1JYrrs_Je#|O;fS6BUc6`)iy%6f+ zrM9)P)Nz2K?j8K_iW<6qCCDQ{f{*l98CXI&dYwg>${WgVih!Rc&poLRORIamv9yoW z*cSv!p|fNvRWKp(qGURMah1P#55?SjVRzjgnHUaDaKMi#8+T%qR)YrydAY!rZN4P7 z?dKt1-D1zE!{Fr5_D_=k_*HUIaHTdTQv=*Ey05?>l8axo1hCAI zc9VItx$MSejQw(6sINvA(znlniqe!KK+I;)BL6A7j>oZMJw+Qcvm$|FTvk3fq zJdzQ@FN7mAaYuynUzgSe!Ql^u#Yjw4$d~aF4KDHp0=cY7&rEtWjIxra9__rQvD$!c z%=uQt(NxUA4lY-ks!){d2qGIa$E9}G?~jLg3x*nI^WG@=sCJG>-|y|PcQ#KrookKJ zNRQF}zgDw#D+tZT$5Uo}u>#8Gfcn~8wHDayaI#F}lsAz^QibVbH3n9LOgTKmw5#)k z{#27=PM16@kmYiuCBM0iCt?$mULtBv^?ER1FF8dUA;Ml#2Hng8%6HWdS8>>}Nn8zG z(BfCGlZpOH=-*fiA`t;9_FFD2yn%Y(rttVuf1|~+>j_Gxhu)|2(qoQJ(Nrt;5Trbf ziC6Gnd%*_*afnEcHP3_aKQszujJ+E6Ml^n=b4iXA0yIVKuZ50qrlhuRJsDfmyy~it zROWsP0o|(p&<97jWtX>6JBad9b%q0}S~SSWk}f0%wtKovxG$gjDiYU*p_`GqhXzV4 zj4Ns_wCSx2{@rF9KC7L*Uj5`-FTwrGX7%C9{MkWD{Q0~qM=+&i_Bj5`ZWd`cKt#p$ zJlj=|B;V-RMn7|Em*t|(guPB$`p+mm6?(OoYYSzYEo52BWU{yb=;O$U!M2bH-PcC* z9%M`6O}m0-B@y!H_6sbBUM@;o-;TY9)dk`edz8lf(!(1S2aI9D?fBPFxDFTfc6B)t zu03uW=`2j@Ot@I77>1blcR=5j)6x3tBtAO*VwpbKlbyoQ&?OjZX$}v?u}WZp!Iw4= zX60`(xNYK3Q$#$)exM%%k;r&Z1SyqvRD?&;+E0ExRschJN0G{AGV%$ikqgncg37-p zt8k?Cr^h--!Mm5vwCek@!qZ$9S}o;`LW~eAV2I}65cyx%kfRvwpkB?OFivV|qx^rw z)w{}c9S~cJRVE;8=L?Ii5445%Lh(Exj^Ad*5*A!fd zO>@E~eMyhuIaz?55H0=ewnBs?9fXJcvHnCo{j>^UuuTSI84Az3wSe{ z*mR+JHTXo!=I2qK<*~km`)E?JX-2TP0cZ_6<+jevFTWcidF&_EyazvnGAUE(jqZx( zO_g%!GmEwO7b5 z-T;#NM*o;k?K?CofiK}KEbs?Dho%PG+(FR2-4FM!9i5JGGw%@18fFx9tVdsPgsEWj zgZ;qoI2Rc^SYhh^`t&OU{WNrd@XL;Nj9*X$hzPa;?VsiOl2TRt%kKWhGcfukxg#vN z%b=swXLmJ{m+5)?Rqo0BEbP1G49GyuDAxJRMDTdk!F+LJVP7jUnj%IIs|MsNn6u@q zp|Vd*o%Zb9e&lzEOpC3JZGy~};C&wOr(Fn4ORCzbg@_+xv(q@S6tQJb_Diru6Pjxz zHc_fvr80EVr&@&ouFZSicpG3Vo{A3DW>tC^u|x#k2L ztK8KM_3Fi+b}|qf{_H=Y+7I3-sJ9|G_FT09D|QtFg_WMb0lMp+$1PFIHJ!q}IUNQ> zYoy{4kz<w+{{k^cn%`r{at+!p~+hSj#S`f#DCmElLH4-Bsw}Ch- zj9$!IOTqjm^po6OUy9BLvF)wF*@ z#V{(va@oAf;69vDQR~f_umme$m4&xqUWH`kgsMnmZLt9dNn|Iqd$E$G-#jwd6>ZE} z!m{^&1{g{k71GZOJ{)$YqZMIg7RGl0yJyq&Y%=Gtb?c9mH-(Hx?RuV&!f;gV3Wh3W zBeETFgX@S$z7Md>(Y>stRq&^KNDY8wuC?w`7v!_ArYWbt9<00_mXu(eZ8-ivcN8%FU!bn5&>3 zHafWc`g$Is8>0lMB1VzxH&H!3aedZFhaoQb@Mc8K^fc1cU{h)nVR0pv_C=P0uD=+6 zMmWQUN~ROeX)_AnWVt@j#Eh42@<2zfE6~Bl8M}DC1Gnok`%5E|ZByq%8b`kQ&z>Db zh!@xAU0WZnL1opE-S*7mtugxBBnXJW$o^;nEEnZ4 z`)cfNsXUQ1;>IxSY+6t`NrRC_)j)>PxTyx2-jT157!``PX-C4IU8%!9jPs7%qX_I= zn%_X|F{78QbVIu0;F@*kV31MAGPsfZcOKa{Vd-j;%FD&;hs3vw`DiUG!tqnmm9)mY z>Ux148AGJ-C4q#laGK=fJ6DZ*+&KThzHwgPuYb2w4)8gS0f@suRs$>t05+(;UJLhuqVpNmSSLax$;ciEb(QGC}7Y zCacVLl_AQ-I#)bUP_?zoSKSx7WWj$jWJQrmAd%%oOCd_L%_iI=XUa0JyNZ1SY@|@C z6V7^52vOJd?$SmZdC@7r7Y(X3cL`NJHzc_uFsU^*x9K_cOlPVL21}d&itGw1qr9AU ztLcZ0z(#K(N&Sh+K=JUC&l4%}ks^BW=!Su2F?d05JY1|r=o(kw)^1$@0*47!@{>gp zu}r7H=+Z?n&MZnfCJrqw`L20~8W(d=wvtD$#0f*BVoV?DjZ;nLl8$LZ1A;MT)s^u zfm6BYMpLKeRUC)2ol)Q+Ozk?$B*nU>{Uf3X$O1W*q`1XoDc@r=r5K*nmJWXmEX${9 z14j-=RqRQE)+3S!KqzVtTq3m8uAz-F3ELHbN?!4-w^*XDYIKh zn+PZW7n5=&1;|8zl{S;fge(lfDdzq*xzBtaW^eyWxv&|2tO|Cy`uHu_fAd@A+jS|S zGkualC>1G~i|EO2P${<-G|X$0!I{oi7auF@bqE4Dow(gn z@e31FjUa*)RpJ*a-8PkI%AQr&W_L{AEvYZa^3nSwILtr$du^cf+lK~S@-bbFCBVSQ zt8C5;8h~_jC!*G4wf+|Qx5RoFmgZuART9DDchXq9>P}hiCjp%;lZ7{nwj+)e zK383BwY6o%+OTXmU0wgtRX<)D-epW z?Ce$3#9{~LhvR_j-JPxW`xm@!go#wMJx#@}xI*E#p1)ce{SmzNzs-`T-=flM-?02P zdPE}1r+G$;o=nXr@Qw<~&>-5&nQPVIDtOR&D~{G_TpAmMlN3lVb7>FN_WeLexq$_= zj7W&ix{@0BTKq5zYLGiqS$lbRR$pLwPs~lcCKHe zIJD5nh4|70RBlsUyTYH4MasbSkLBX@!|$M5b->WZPB?Nxobo%MB}|fVKl<)yPcV87 z53*zZ@nosVNvuFUIZTp@PJDiX%*iAD6ry-^&Rl`f&#t{1Vj}`h@|6B@({%P`PUL9a z2Ffq>Bp>#n3gmd?;y9ObxgQSOcTVYjMFq-e`p*07+4Mlm$k(`88Jfdg{)C{X8jcDm zjPOQdbF>cZRxeYypR|}*x{ude5*8Af;-!>XetVdoi$D-z-W<(qnB}_A?M@Y%t6ZbNwtk_tY6H%`?vzGAtTh5CZ@eFfz2^vf{@J&Gan(&#nt_LW2<2S=O@2gKhh;2X9$7>t1n z%yV@Qyo-^V(k}}1^geletblaD&NE9HA02l}41Zo&KjPTQq9EIZ9?fONdbTy#J+hPn z8fP$)gVb)gAyI17n~DQ6m!CT*X6_K!$#~>d%OBd}cypwKy8v=%Zx*TgU;^&fT8X3} z7hF}5p}J|aJRMaBOOFzI*%-(x5dpBEo&Tnm{G|T81)woLn2^fUmnz0w_f%3xzjiNp z5Cu%gj}QY!J0pDpo6AAb-9qI}?xVO~nmUY>v??^5;JK;AoqK{JrbZ4)*u`KtT{2P? zPOMgPt&w-yyc1EVw%b85ItExnHt`VU)M|>r?#PP1pDxw#Ydg<^# zE1X3~H0Uu05{(g5T9qZWc^sP5y}NFSXG(ICHyHuy1+P&@1B0fSwXzlFIzILnfFLqL zD8`ax^VStM{+paRaa;R~wW`s|2Jf_odnefQVn4*MR%;q2PMEB^_G&i|Y0MX8M%#eM ztqmj~+P(e_k=~+69P?Ly94xyP@x~@p=YzTixj!#5GPT*6?}_@j-@5;Dz&A~ZOM98v z$OYoQzV~>3ytVdiVD8erf+YcQg0C3bo;mXX)^%O1eiE-D)R`epp`JsPPwylXEdAHb~>F6}*WY)dQc>pRPS&X09v1F$G!zB?pq##4u$g%WT&5I(C#TvGQ=mx!WGTV>jjNV zDYPT$fU3&;njbNNvtYf8pf#184t=qutUc2P_pu^l=hiXJ!Ap+FIba;;JDZ-Ir<~G_k>8F8+j(vA?y9mMrXS`E z)Cj9oXhzcd5%n%*CeZi*?%g>yPbe-&ftU3>82*tJ3UJVe5#|SL5;>`-T@4*ys?T_-6OZGu z=$E=zv0oMU&~!$To6(ZK>Wlms1+dxM>FpJO+H4#i0lQ&2krXeBQlSrEu&dr)!CX%H z+z3d~g*}0Z;mj$d*;S+Du6AMBy15tA{)_?=ct%6RTZOCCN1W?02xGntXXnR2S}d8B zrjd!9(pOH4zRE9+P(6)6n>(n*ODYBYxyD)h9ST=5|A)PQ=n@4=wzko!AW0pnpf~rhN6>2m_mg@2;9RUUIL*I48yi<7YBK;`x z0NMc*bKQvy?JKkDCMI(_>F*Y1ce2=Mr6z84f&R@oqE@XPp_75UZdfi`G@|| zqC1VH!&=adSQ5WxZWY6+in}2OowCKB3TYD?eyQ}1%$P5((6;5_L4PjxY)}FM2;8=t z0>n+@5xTcrHkeJBjqXX*9+|jDaAy>`WXIEVQ&L9Nb|um+TUSBPYfYW5l61iZ;P4ML zDwifTToeU>L*`6O&yd|h@*+90Y#E-b%Hw+J@8MQKw`H{1{$PfvVu7p5)WJ*VZX z5)kDR$2A;GsEIye+x1GsY|#yL0rk#_H#YW|_v+6T2%p}&D4|vagza(3!3s!D&sybc z#FWZlFvuo%cG#3zSK?CMA=2~8`QjO_SVjCEkWa=YJ&aCC~*yv5( zB>~lwf61UmEoWsm8FM~}aIO}Nath$?6w^O!*HKdb%8^0@u6D}T1jB*JW?WVXTu|34 z;HBM)O|EY30|IEW_RI%Y$&p}Ih1#(S-nr-uskI<9XKY(UO&{vj?*As^eBte~$v*HY(nNcFJ9QsIql+j_HXu>>#x;|?^b zOyCb@pAmUjq+rShME48i$34*|BIZiVkGgxYuys&MW5GYXNEs_rjmX9Ni8bHPLCOX# zmP-4#!_aD01o2qPXzSBzk-4X0DPM678i(b@VB6gF)`W|I*eW9i?!Vb|)rt%pRHRdRb@j-#&uu3de%Z8HhKP=`DyGojoE8sAf<&0I8ST<){bdAzS;ZIK;B;7 zCBGvpe$p!pG1LyYBNdSrn3L+|Q=tNo`n)*V%PKxCkq4P^#F7i|I!-e3s2;+ni}ct# zH0O1?K42M`%RQP>=i$3=%NaT=i>Nq#WKMAN{)HnIREwubbM^SBxKah*sbW$t7n;TK z@}8cYTvQZ09s+Rz&;TiK1=n&71l55>upUfnMwM3D>NyTf4&c^h>mwfJ(U-#bi=!RL zx0^;)Kk@rnX?5Q=fzrgFv*oK0Y9r_WJi*0fS%+oZJ1t+;jeyDTh6n)1X3Eu#OkdA6 z8MG^CfG2ZzVqFI-mcR&;B3LG?znm z0B1J^W6SGAdNW6Wu~yn?>3Q=d-a$&3L~TrLy5Fov7ftJW8X2K*B?R0RdO+6Prha%% zdnq1%d?mE4NEv1r>rRx0W)l7FF9h*T3MmCUKuGN`CiZ#SgjUQS@D3H0rh%^<;EnCo zeGjwKFF4Zrw3h1<(+Ehcm4mjJdv3}+jt7nG-FdAz@Nmo#@HOuf`3-%+>M&`?5vjUe zpUr2uF1sxS$)Ab^3K5Qgr%_dsJ9na6;sd2me?YgXzyFx6{MWfGp=gOA3}F6%7jp6Mmkl!lxLFFQD|#;l z+H<2SpNXdL0@fLb0QGrJ?&^nMtE*NYJ372~tl|Pk<0{xxX}&r2x}7JQwcmQUwk1TU zeDQyT!HJF?RQ`TA6_uY#6eUo{$=gi|+D?~Fts$D?*!aDa)aSzCeQI5g(&%okTjPTn z;q=0u$HaOSx5vWfHd7D9H2_sGEMQr;Z$l zS@J&rW&sdW1tnH_vg5U(fq$ZhQ+XJ#^iBBSywQ~fY8%g~?~Z{A!3bM1l#onwxpZrBmxs*@iF@&Ui z1&UFLCq=8gtp0eVU+@wBbPsT67bTqiLw=A?lgFj-l;{vMR7+i||CD8~gyLL5jDlt6 zK+$S*X5OiWjmib|HDFmO6J)8TRhI(!$SjMdX2BpyFh859GX^1R7QcD}T+6s*O05pe z=KiPZIDb?z+i9^edtGDe9w@prGi?yE7T~j~539sOvovMly#u~gx3xy(o^RP&9A0nG zwO`>es5{qa+V=fJwA+WSWDf}rOKQ5bBy{C3@Xz$sLVw$S)i9gjYn4f~c9?HmE$o^e^CHlt&?bEa~Qszd3{Ed2!kZ9gfOH`T&c#(@zvmPFtL8~8`(fgp-Vd0)O|pVtGI7k<2~tU5Qz zF8N+tQIF_pWT8@x-W&Wl2fAUhVaF252f%XS-l$9rj)mO2F^J}@>C{bjJp+5BtgkZU zzYn?(5tGxEph3;4m)Ehy`%JO+q7z8&7ATB#8#jX7e8>SlnEDIGNCm=+a6>~)&Qo>6t*5-V8ULF|aO$J&)Be)hd;visD|1s+BK~13|{_2&> z!~@nQ;AZm&NVXu{oJc6K=s|g#&Pjk@N(ec{km{#;$os4X)TX00(Es$^QT8w*RwR|JT^)-(N0pq+q7f|7jqqIb%Z$sky#0rRotJ zLRwBFOF4eOzqAhrp+yM-12AHP(^tang0aL7=`l&*th5~{er7~^ExY==#VTv zs4iCIn@`Y@FFtx1l3ozyJ8YY(PTs=ye)7i2I0~y)+ieecio% zSwJf@4+Tro+yi`k zpv&|!1@!4uTQP|W(Th`^K_I6KsZlbs-ws~4-|;2x(n>g~9qN1dGP?VA*ewI`#ScRo zo_gybB#u5DuHuS4Yho=nDuXBosyU82=XT^9;tyLT!$Ysu^(NrJM@ z2UhK-2_CWMVcan)`6hSTMv9P(Y!amlWS)wB>=SlBDwDfiB$}*PLJ0T^w?75?l5>wC zIzf#XHr+_u7)>BTQIl?J1Pqk|G4%Sef`?kDszz+6dzWRU5j*Z0J4v|}hqvh1pD_^Y znv|+Wf0$LbMSFi>LSo9+1BuRxS%$oL6=KFhY0C%=O@koq)n_f~yu@1CaB>q=K-Pjv zl13Auy%(x^s#@`uz+2 zHTWm;McFEB{*XPw@Xf#{jGzGEk=V=rFtOXyd|rGMGH2(GtOBkt*;aZ%e~$$bzUOr5 zf0N38zJ33tN#&nu6j+jArt|;3d0;E-izv;KaYX2I z0bA!e%71SVw~ExL+xrzXj>+XqIf=A5nv{1Io1a_voYvV4N@cyJgbgAT_YmMe;V_m~VPn}Ao$nx)ea@ zor9HKYHI*a-5shY+CG9PR9gqTW0k$vafJ3xhrN+%6!_6u0r zR=9cV{`vgIEEDiS*}8#=lqp|JW8lY zT@jEGRA8$V(=!-@FjW7tBD5>@1V*wT;DDZBMLYjTQSv4 zk-q=Q6Q;Qr)Axou&;j=J`f}CDX)}Ycsj2f6B{NWIknLyFc9DkjOYz#TP&M=G6pnPM&cr8J0XQLh%hAn;+m>r~19v;5Ht4vnV8CdUrA8V1b&c zC4cX+9*Sivo~gjX%9Ti0r=V9qpa{El!Kr|k^BKmsAWjcbnRP*p97TI@s2X8h;_E`8 zbbyrHd5OdOh~$k7!{RJ`bA1aS%iiITW zf@0}!Mg*&wK39`hk?|~+QEI_&qbfj4wD85UOym#E$L!={Bp6C+R`h|T5pOva8jQ}L#VIy zreFfq`Y>?z+4lF4#v!+5hs*GQjFr~rn|rt~;VOUjCxLSYKLpkZIjD72k|4UcIrC_3)=%_&nERqq8sFhO-H&Jt}v>^qR zwZD#iW%49h72+^5;Cqs^Dn4JB*e~O(VUsvR9qF4ibYUYUa7n!!V#O~{shji8tO4 zJ8bio*(;X{r&{dz2$r&Z>&@$L^I>0gEY(=N_%#?1!a71c;KeG7s!RSD`lP?c8$zu% z&MeP2OPLBDL11^Hfnj%7Rn%Ub@^QX&o4Xy!xJUpcjeStyTrh9Rr{zRPeLMA%l2&y$ zZg5c7g<;%F+Ak=R&hYccw_kc|CR z%i|O(m5*T($Lq#_af8CJbfnipHEl&GJBo6K6(n4OGp-JJ{5D|Q5n&ke(U$V;D(E$= zD030hK>^`i3`{PQ6W{;t`L7ETJj&u$GpbiX68ZC9W?hF_1|9sl*B))r8eNM)X&7s( zd@uiXZevBVJe6s4zQv%oJ#=;c+*&6{Dz52tI(v20a0T7~(g5Q(C6J+VT8+^wuDFe~ z*sodUK@Bch^^`HhA;_OZ1^JGS203okb=4Cs>;!A0XpiKPnJ8?ap_~uGo-wsMY8h)x=}+z>22oicD6cGux;LSOPzuHvrn5Y+%)9#PR0cl&MQvm?9Q7{P#doHWWe z(aoHKTm*7X7++R=qM+)qJKG8&V#d5EXyk(Z<<7f~6yJz&Sxusp=9rug&|mx!0$)Aw z_(v-eb`uxpE=9uYW|eBnHh!O7CoguI_poX(jjw>CF&U&{A{8Tv%R{}AB+fdKy{CCmSkCjYb6|E&;_ ze^;vzG=iC_|HoT@a2qS}C#w3-JOjFY7et3#!H4)ZfXdO!9e$VaXBuTd5?N?I&c5mK z!f26dFX~hB>HCok3)WGr18SXQLF@o>r!GB4D!aQGGFOPkLo8Q4SE^%dDfWh?cM;y4 zrgoMM5(BXqHkc}pV88eiljoFjP53S<%0CaZi%v@Y}K*3NThhyA#%h3g% zcSa-Hf&Do#Y(gdZ4azy0TnpLhln~*nRDGa~v3I~R%pTV0tZqeNsP3<5mqq`?u`n1% zH$hO+$99*O5TijdYf>EiQcU#xh&FtI?+%cIW5-}(@~`pM(X1TYc$HOIBB8IDzY8}D zP5$DOjgDRq`y!5zjfv#NnwN9rW>0E7PvQL{zkya-p{s&g1~4gb=+(YRZhVD{Tf}5q z&n<8@J^0URy9f2MODYaOow|;xM!*Gat8wv?$lALoOeer=5EO1YH|lmm+7OrC<$)}a zi9_7DxWTj23OcDNEr3pp`yj<+NK$%~>^^Ur{P+I(yPMv@R?x=Z!vg{gQ%q)d<2UJO_xk;Y^# z+UpJ@ToCB)9w0XitVCEmViZWdhkUq<5}&bXgAq>pk&EJG(E??2JP?3;bc$}hqZ%52 za(}Yr|1>FHBKOCz<_P zS#7yb3gb4O&T&W9%NMTK;*FgBroDMdkeCJR9q|C{TWUQ;afau%ogaU-{n)$x*6mldRxRB-lV)Zwsm8UGzxe+{K(-7 z$d3RBv;@yIfLlaGGF2Z`+4ddL80Hum7xmM_UU++bSbT#q=u*u%`SbZgmRCE8AihaA zpltN~9vX>(l2y2ckf$MiH5||nlm_e-kkf&e82e{NvMs1fwld|1vDrwcXk{%&Ru@6EEZVW*It7U4 zQsdR#m|&7kk67?XOwulrhA8ie+cOt#0fCQ_B>KQnoI1kSl707E=<{Zcq+B6 zutd2AOW6ED6vO=ib-|8gT`e&gs-?2+8PFR~A9cSK&5DFadB{#>_!<#?H0E}}b=wRp znjQj(Xw}~Vj-F93cp~7f+Zf%q?cvuMk^+OXv}{nIRw9*0^AJ!pF^!;cEDa58&-;5? zdgH+QZwi4=>GE9B^`GLW7xYsN<8#l8QJ^cIpYSFl9FvOMhmr$}yHBZSv{jERfIle) z89Ri{2Beq+OxL?fb0Y29L{RP-zMpk|0OxIIv^?1RoyIrdnU`E*>S8?zGMfL(a&iM9wFR_aF-Jp_w;&3xt|%JKu++8qO)>K}*PH z8BAAxsPc+OyVX?ZYBiVI*H3i#N2DF(IAPWcgZ?0@Epw1rjdW?U?WMq zCGR%gelx9>M$i*;NV9(2kn)nZKNk)%R5*=cmcZ z(Jhu$Il+heptOtrDK*FIR+L#lDxyAaj8l39UkmI@Q5-zw@B^l@EWVwZpIr5}Q@1N%yO3czuv{aH?gSglrrx;yAncbpTM#N zffG3Up2b? zpvv&1`NZ{aQ^)20Tqvfh_?KhjxoaQ;<3xt@jZuPtd(L^ke^7t#O-l9P&rd{urr5x7 zQN9FMv(W2IG|qfJi~onwy6J=tbBFLu;2Ow;dnO=4054IK_yi%6raodM+jSu874gb& zhMW4h#{(mr8j3F*xYrk4znG5s>8O0WEMtp8UpnE-L1!U zn<;2QSB;|7SG`8xd4qrJ%crw&>F31jf;H~PO9u`$J_;WN$CSA)W~)PJv=K5CCPQfp z(iDZnPDW70nABf@82c+_yW)@K;nLlcL}l-rE^nBEA-ETr1}21)2+ueK^3O47a!Wld zux^C8%yD^xYO@8H$()YZjx-E$KPRNn1=4Yio0tFr0=62Hl|6)Grp$~~xDBaocFw6`Ffk{o<5-~{+o4rfXS~(l$>(02R@awbo0|CK94gd6nct4#N4`Ib~X;j zE#k~~JVV4`4i*(26+B$#sc*3cyw){#iBNk0vpq28!$M{(mXezKb%xX#lZ5zlcKNep znXqk!!-bUk`kLlK6AKb((Qi-R5kPjXR^K4Al+a@b4+B9XQM`$bc*x2_FgkHUVAJRp zu*DDAe)SQRl|t7>;su-O+7QqOd{4D&dTo`aQaV%Qj51mHXbj1>42zGgZ^2HLmRudj z_g*^h!Unoe4LZCzM04^e@R(r$v5t zmvnR6ik!=G_)C4L2iYKra&1s{Z7BeimyZ|jD()XwCmBiW_4z`hL>uqoz)<3>m9&Y6 z)ESLeDk)}Bc0+m>AWZ%v4tnBT87b)_@WQHj`Y@v4pezSDz#erdf#Ryu6+ac7X}$M` z+p|(s15#pmd{I%Oq;#n6HqL1@g;)Izn^l(G|fD)dDSPxpo`c%mR^J!|kQ>|pE2Cnc(>2pk(GEzSjL;IE^Rsh07A1V8m{UCBwqi7q^ygma#Qr_*8&=>M{OO_DT8WC)%BBR3`5==vuZ(p3f8`| zVEsxXMF&(L;>Z}7S+gHm+wlXFRtBpc$wL!)p2KMv?i!Q7S_t<$r<%lI=&f%pl(5LU zz0@Klg>yY{>;Z-_8-?A=aMm{ z006S1eCa2a(cClmDNOmql0l&zOscJRn})iEN%wk&WO8OOuTFjT{pO;IiON2jYYVQ^~F8h6M^%X+e@4(j3}j?>@wB zqR5Pa{QUn1U;hvI`tMw0{Lee@KTG{z)4SOJ^UgaL%-r}t&~1w3mD>Ak_jUHA7yd(a zw<(qi&l#ggq_dE9KFifxSr_ry1*@Ozs$eYXQmTR*lS9pRN~^fi=w~*_YHa0+%{lc= zmTQK$E~BtM!gOz>8|jiSBZ+88C@ffR5O)p6F{6kJyYKw6g!@@ha*<0FXOJ)(e-|NF zD=$qAJuh^&PtBv;K|M(>=;3Sn$E?g~C0q!LEn|O=j=I-vWaG`G>4UhphcRmd<|KK1 zOiNabGua7BoYvBh4}{b429fon8pc{#HQpEZ)Q!h!k#kmr$<1#*^>&qwY2>Jx?-%#;Uajvm6=nC?>N&ITze7)t2)KJ0J8y_9YgC>- zVTMptE-;5^kY%F_4y5e=nxA#AuzHoFrlKY+7hj7$|MdrE`FGH&kg+g=&DD0YS<#i} zZ57*q_pCC=?p>vuJy0$m<)0@%8`>BiFk#J}RQK|Tk|vtNFbcIwsF{XjfIwjmvA zvBffLFGr{1;4bU2@H*h5U`Zf=%Pr-dRRgdDn*HV~W25*hIOFD%_hv6u0I7)yOmJ)fH3Qk>TdHCMtb7BHMu}5f z-vgogT7>%8z;PqJg|syLM=0Jou=Fy*W5NC^sysE&?1 zERj8puHIi-cTKsJX2n)iI{31!eoW_|Zb!4R6kOOf9yLELet}wGNl4*7dR-^|L~HEx zSIb+Ij=p!s^3*LKHC-=3m69cd-O?X<#r1rrk#0X$f**0QWzzi}x~0-XhX>#+kfg9D_sJ%_W#M3ef) z0H?D`5p5A3r(Qm;)58Wv{3!g3Ci=NaQKapd#q0=LEC6b({(uWm^VMetqejy{g`OFL zQhKK$_8DaCgTK5c-HmW}Ha5Cxejbr7WEd{nWa|w2?$bj%$3}ru{`~&Ua>1hk9!K$A zS%66mXkFbzlU8SRFf97aDFqP}J)%}FMM>kepN*jqgenDxyf8&&$y$&NI?fP7*s(|H ztPLa4z%$~d2PYGEV z>N2Q8EK^Nl?qT~ETR!c1YHv#uhQ=10MIiGn=FU+C=0xK4S!oy`FdxGkFWAuz#8A2x_H)AGiX z+P1Xs`9EcXB#gaOcJrt0J&QdN&pkS~DH#HhXK}w-Y0nMw@Y*&sx@gI&fw4)aoRCby z4%^l85{Lg5z@9$=_i6RlR@@>yeFsTn(BePyn;_!z7QohJW6F}2qsUpBDLyp*kLks8rER0jGMggJjE zj*7)QG7pn0bqy)*iOnHxT+|JxHdaI=o{-;nS||PdD%t2<*G8yFn+MtKZ`en(_>Whj zbqa;>+R>V5gC&a-lsq1kP?NB(A=;ZidQs(%CQxo&W(Rti^t&%8XTvmgD>7Az>Jb0R zNl!4=9y6?EyZ++w7&iQ~PV9!KKOk}?E2Guuw$1tc6BtlK!-jasWD5};A2mkZgQ7O& zirJgMzZ(3^U5@dxvvdruB)B5`1KBP;~K&QAlbB?JBe9Np`b?cpr-sMkiDyb z?q&v09VtHdCFgx5K%@koJaYjEQ_l#KO84!#_G%!Pf3y^YcWNAd27tRRsBj~^*CV{F zkHC8lKlqxDum*5SX)U>~+lCaOH5PCM7KtQ>S$*d#n0KdXAFM44==(q(?RJh)g_~0k zCa%{bFGuO6M4Smi?nEIxPZyk0oDz8Z3%l$A-kUs^Y&8?OO2^cEX zBwEaqk{rd`HwLoFpCpAXnXqoq!u$g~fj{7{kDMxBP6g+swW?)%;HUoOwtVLdH-L)!5zj4gtaoba?NlPSp6mA`81!tw%xH@ zyxqFw5wlT&-n#vsneXS2+mU;~b9Hs=v)~0?(@W7NY4E7x&jR+wH>B{aYGh<}0yw~2 zXEc_ntyYn1Z&#i!Ctwu3P0HozCwLcu=h2@dZTQhxx%+t1wEYfl z(X`2mIM2pO154Ee-76Yz+pQ9*B1$~Nsts2}euG($0N zqx;xkx%CK2EeyVr0>f<83>(D%O)>w8*8e3rmF#lvgqmCPE8rBOVN;|XHjN(lH?*j z+Y;Wb20a;Fu8-@tepLGAQ{aN%djw~p|a5#rsv{?tZ?`h`Q}R*ZWf z<{&1s0-LHmtLf8>+Cs@#}Q09GX04?3_hI`e7yaAypda}63o z%^u7ixw)YD2hDsh0uz#G7)K2rgm}`BK(`@PxUUDgv+k>Po0aR%Jx{xDS=ScaH4|13 z8c;X7-Wd=E&pV{kApQ)!zl6Ci;ds@pi?yO2Qk7p98Yq&TL)EDx+b-zHhHs0ZJgE^P zVOK#+Sxz=>DSHJM1Jx+@@NcuqnpB}z^>KP;M&+Mf1#1ar5R2@Y5P!pf|JFQUS)HkU zz~hD3-xLD@dDl<q^G=D#%C!nJz!wWeOo6X5d1neMxHv+r?K{{g;`J8UbIe9<`AntQ&h4lcd-nLY zcDyn9zDXUXilYJ4FYTl2+!x_30FauaAgaYFlP$m+hXM^etuap=3t`F*+iSQ5* zx(cb}F(NQ>SE_*}yzq_^^=4_tQx>rhaW{Ppo>ceIEznOKvdDq$RQUS-Cfp#*(`m+` ze713rS$_lx1OWh%4m_asD0@WYsFCKF0NH>zg|$u^jbjWej}5NsKn(j z>VSi)Yoayz1Rm+@LxA!d5gl8CsxZ4{`E9Pew-)dU7&@0+x!LDtoJ8gf5J^Os`|w@K zI4jj95J(Wy){r;c26hNDzFw!r=k3$(PfSU&e-V9>h(i0CqX5adszf6-vMk67KmH-H z>7)f9Zw8y+n);QRJRF(X9o)lZ?3440;A~A-%E5DLUdc+oz!e~xT_~57FScI>Jh*RL zWx*Hq{2K?@70Y!`j)d;t*g;8T)oWgG{=8{t382^2s{nsjok;NQI{$x)Vo|K)@Ndo6 z7~PIU;GIE{`WzLRUO!?>M9u-_!lrC4_iRhR)jkT};`HX1H3h!xa!T#;v5$)jPfElka6${(fz^fP7v$!pl+6{&|Qe2Aa))WE( zY_Xf$qBy|wf$YRsKgr(HeB z`}fqxu!$H-Q4Iz=c8S~Z%a%CFupC=$)%E!N{(0%BK(iPVDtG{jgnC8Ok-MAtb%}ZL zWWHQSTy`_$(uI53fYH#cm3k&Xv2{6gCe{e^@7M4t|9E#3yfy#4g2 za$|4`Ev|eZ>4(5S2mNzAp58fVW_>GV*7?j-;v74ZJ)Xi`NW!`hNdd(j@T@Sp^DywIx&U&k@vA;aoNeXE(HA6Q$kM=54=44^h*7>O96ev`KY!?R_y&#}BEO+Ob1B^UZRS z&exr3dl|XDuMxfObiCV+k$p*4qplkL6{5+0!+;sJ3P7boh|Fh@(JY5mAn;;RYbJ|C zb+MKYv~=QN&Z6=8VPG0Fk(b2q<5Z342ae`eqslmV3x~wT;18K(ubOBw_|;c4x+W0k zKQI5*SZgZ8sdpS@QZ3K4?AbWB>*NqJg@DL+^Isi}u4cJx#Jj$ABH`-j>s&gk@zpA4ANGF*m3!)}EWJ6?CCG(YU`C zo@dhO?@r)4oL#>RO$0&nYIMsn*_>`dzg%>NOLnJKV!8uqoR9oGc#xy!ZA^~7&jVux!Af`?o$&3pIWo# z42>v^wc<_*g{V|}*PTH|jVQ4xV`Qs-7f{jhrZ0(bik5GmtgsT1HeWD;Umx?d=Crq? zAg6y0q;UTB$N*t)XX}oe?sC7vUINf2*O0YLQ1^milPwzR z$|@Na@Tx$rDKM5`!!ha8j8#7&8D#+!RWQA6*#inABnuUmS_NDzcBx%tag8Dnv(rSj z$RJr0GkJM8HRX{n(RITvV&lYO&G_x1XRsGfdNdg_x|sQt&E9)zy1iG3B3NTiaw6v%(=XQ1TQzm-4`#*bS(WwS7aRYZT)Y{`rYN*dkL_PTL~sig?i8H^{~XWoK3H`I z{_(`F!&DP9Vjm?=ySlYswi8{Fcvi;!A6oxE(E7h5Q~uwE;6H2q-;ybN0RSLV3T6TQ z|L2%MBGQFgYg-&*q7c{R-9cZNcS&}5iQZ9lJnQNimosbf4;c;^;T&W(s>#rOn?}9B9BpUvk1Eh9O#Q7!Nkk zHuU{1tlKWIb;Ux?xiVCWoVpC7A^uWLzvqZ!OcA(NF;_{tGZV+^r6A&d(; zH3I*|OdolErwr849zs$Or$V8j)}xNe-i6F|p?M>CNx(4W0>q$LV!_-M30P@jm5w(U z{*fm$ z7gi^Ha?~hEdd(CsCvZF}79dVzO{F966E1WU72*`FWvyfiY56>zv@QDHQ}EByK&}cs z<8Ua+fTtsWR$}DREWpvHuNvWT8Zv+Z#`!`zbmnv4EaWVXD*ue|eLd=~$O|#byLQab zsG>iNxx(zf;0TWF8Yqy&r;eIF0v7+FnX|CdF$ji9%E06Md=q9zxOxo4Dh-ACbLoLg zDY~BQxdm`h=p_pzvzhodTg5{37fWR;7p60Yv&3;ITE~h9^r*vjt2}xAbB0iPz*G(p zOf?{+KbMtTMTSdQt5v8ENAf7EpAOgq1hrIF~=X>4|Q!ws8OO|%F@2})jxuWQl32mU);orR!Sy5#f0!7P zK!_?m&GRE6dPI{OYPUgR-h*VN#T^_1%ql_GBf)G4l5WjgcSl+%074oP>wBJ(J>E^v-SbW~G0}o5L?F8P z?y|^&4M_2-`aKpHac^w{cra`di@%?Ss%n~f)?pB#7l({m4@PSNdp}##eH6}pITnI3i!Mph$@6t-kEX!%x9*! z`rKM1A3PvA?y?#Az}fF+n0Li`*W$TMe+Y* z@0;2LQGzAgwykN~wr$(CZM&y!+qP{?+qUiA*>CSY?Rh=>bpAqARc1zHRwSK)7 zuYnXgdA#NTrRQSAlHaK)s>uU?5WL2S`8|oa-p0Ok8nLp`b}`D8eFb{!g_yc{?WS|G z>aGzYZ6bTZdGlkECRFufY~9_;<3UAEHQMx)j=5m22hED*p%uftR4He!bN#aQH#i#< zkID9rMS8bQckf7Ys~0<0G~FC<8ADQc4Nl-%cn0BQH)6w3|CZYIge|Z#CE~9$`6h=* zP*B;g&`MZuGqfXXR{(QZDCn7Z@jwPdYD5;T$6>qBZaYsf95-C?z$pLgfhYgdEn<ufQi@5t;63Kx62C8P$eVLu+_crX62(ux zoJ~7rKqS*;-{J~h!ByVN(PjXzZVbhGL1QjMmo~A0NyV?}jn*(KtPTLlTHT}Yf zO4vFKYGuS(2Q>w5i`JAWdH1*+1lyLjPj_XP52z{nz-1CN+R-)d84Xm4BUvh7xAt$UaNOE&#H{iul^w&v)@(^)mOUTistk6Ks1t z8XnnRBD-}mW@3$JBl@b!!gW2qUYvtYONzPQQDhcdeKl!Ev~)%#_=B z3mFyZ>5EIN;xKuxktW8zy0@*lTC|N^e*qKd;Pd4i{H70S7k7dlWY>P5WC>xR#l^Da zlg;h_>rskUF&fSvNH~9ajHfoLCj{bekc?+w$WG01ba(3|<5>e;#67?Q215QpA1sSDV*wHPZ9dxV*s z8o(5A@c?prx%GpDQx;Y%6||3FC5#NhZ-+8}6S}ByqGZ<-u2z$*#*N=_tK(}_ zD=&vvW4jPE#VN&*lB$*e*?X}w3^MyIv>?`>`-H=l*77Kn{rF%Wrh$8HWU8bVf|8gA z64}LcB;(Cj^t8yLvKrvNA0uv6}ji zhM{u|yXH@I(hUEhA~Qw!JNg5 zSGjB4*X|v2z|d;jo!h4N^3nT)-CH>5CFd;5u%U7V?an4|G>H5FY}&hYS7|j!-#&sX z^g&Ar9vTjt5aYb&8Rwul^mq8-fC3Kl2K-}Q=SEzR*#G4=9GKIB>(Sv{+T=bAZ0(sJU za|bTD%z_KmdAxsKxWW2kYsVdPz#44r5y{;^i}yM+o3yZu8l)1@0JZ_pEpq>HH3&Qr z7C?a3hs|Kw))O7Ux4mQD_~054=i*$G%o`uIA^iz&tm+7Vg=B@ODLBO8DjDd06apgX z(pc~(y|yhrmJ0fC;{2iZT<_xX!){n=h$QzQbT%i%b9CvI1t1+(6iKIr&OegxSP=u%VqQJj{yn?}m0o<7L044O9A|^22d1!xBOg67g zabSre3J9T^0EU8xC*jxJ7QAYw+mp|BkoVLeHP~kjg_n8&t#9ed_U2FM(|DfnozfHr znlqKXn1<1rz`i2U5r6@pg95K0oz7)hW6fg0c0bxJ99o6F>x3HkJV_wi+jJ%iX$ujJ z&l4xR=7x}K7k?o0tBSdM4nd+cCqOr%$E4d9%>iuh+s%i!NLMS`E*pG^pMJ@#%UbzG zrhs&*7r2J(A)itFQ5ki7A2l6%leizUEu9CAg=Q721XBY{m16IN-rL7f?Uw!j{Wn)ZgSaJaIL+Pg0Cs`2az zDJ{a_Qz6Nx1S{R%G&*b5WBOkX)J@{vV(dWP;Kw0+F7ay^G%Z)&cps|bW;wcx-)cBv zYR;6o^NkES!A}4LF_%e5iYs3*;3p0>6wMGrv3-#}W}hf}sC~rdttybd?ghI}UKIiG z;oJE(2TTvZp^j11?EJ_KbC0YM3w=-9y0zB$rqt;CFqZrF)=NF8;rbj=5;5{=iDV>a z1*Sm)NO(BXA3rG}oddK*-k`8KkYtW73ufji`CWySg^JYJ6 zYo1%?@^!2f&C;%N2k#)Cg0I;^sb&tqtH&H+2M8BPCR;?z^9B;NNqn5)khRM6Le#^a6{Z~M|j%Xhg)(uo%Z1ywl*>lmKKW8s_&BF7~ z%c8fxIe$7S*@i8;+esm*f<y#Q$GG1;z+kVB0AJhrFCYu_!w>dZuSr8{= zdr+r7(OFvt^De=(m!ABpD&7>`y;TaZIRQYm+gqDq6Wy(PLZA_A6Chld%f-GW$3GBV zKx2cKN9HEh%W}M%>)+Uq$5)PyIN~AA#VD> zxK#W#ah}xqWRhVBrY+`O!fWQN)xhjKf!{TccqHu-G@N2GPIeL%EVm6B0*b*g7_sVl zr0UtljD)xkEgZVZkV{l6kZCDIyn9nxSK+!L6!=&%aWOdtMW2|jhQ$Jl|I2OrcfEmG z>~)TIxz1c@(M4^)TU2?rz_Fl16~fjrBnsbKesHqti~XPQc%vDr0hmp`t03v?jJYPe z-yT+HitjZOhH$@oj+xu`k8KVs{e??n7Ivgl9cc6uBb^w6)bG^J{cglNDrwI zq=J3jTW#AsfN%e&0{@dR`7f!!e@B-A0swP)7k><9sCR<_gl=c$%N^B(uwv`1kmm=t z?J3m20}17`Khv5u2w%|ZZKYMk|$|KR_2NhR| zjMaujj7);^c|nQeEEmZ3c(x`~`M0 z7qa@_1^9;x@Gm`izyHAg2eAL0Z#aKn8?d!NCh`Am{BT}pmx7p_TZ?3uTKwsai*FW0 z*q&;tiUrPqbWL$nqai3KT8Zm-Rpazk8#y@ahP|w5&dfmF*0Zg zl&5b3Z<{O!r&t7|BVkkyJLEpjZxqOtGX+X(zd4ywi>h1N4!3v~q{Y{V|20tGaAUj$ zfxYK)Q=GZYZhq#3?mOL}%fa-1ejolcBwY0RP&0gUVYFiLsaTXRgULn^286z50LZTQ zaIx5vOmB(qK+t>)UD+_i5k?Zohf^Dw(FF$Et39PnOT~XJHVTxW2yNCqCBe!WZ%IM> zd*OsV^a~05HC!JMuTLENu(=sl-c9&eqeM;*6$qi*PGO^bdWIQhFlRx)W(Z#RDcN{T zvlL9aFXkzSsAj|8DAcn>O7oMZx~1;TvvsCC92Ha^+n6b>Th_ z+A(RceCeJ+h6+S-*~PjZMA%$LnI2>cs*YF?5)5LlTdu@Uj^-OU;hA7~y~Xs_zIec> zX&mLO?K>j?{?zx%EX-*q+qAShi*BYoz9R|&-o&4_mE%u)=iWrdWVk#WI7THW{({hs zNf@aRL}%h}Z4yz}N+$Fm&_**gz|M+{2>O)-UgXffMr%hijtUxtN+YuuHP>!29ULl# zxK_t%zf)rF*m}Kq&2Z>|5-Y?X+yp_xzbjm!8A;XOMM1BXm}z-chrl#|o}-n5m|*)9 zBj%uO1Fc4!TC=B|;h;Df68`^|_<@QXqsv1>kNQs>cJ5S_PnV8V_!92QtTbS@LM*# zo@zBRZWYb>FQrk<3ZwASUqYjhwQ^I&H zE*qh{DjW8^bQ3k1j|M(Q<3MT zG853ou>?8USH)#;t`j~$AOOO3R$?n!*>CE+nO}JxscT;(=ebXuPhUso_F(o6O!YDI z-y996V%H*BXC795DPi9I7u)_Jw*5(A?x$V2 zG(Y-4AWFLg4^$4FT^o;yq}+bY@@w-k1wO`$F>RsJJ>!M>8{TqqQSWr-?Z(UY!#g1< z4OXku8l|}5b(}xO;D_N|X(xboA>#dyL43*_E)WyVsT3<=)=M44Wh{CJ3{$JirEUuV z`T}(0mk?WJSKrN*wgV#H-4Pg&84xzIkarPL4^MGzVC?3hiMM1%Fk*&W3pY;mA2@q` zwH90caMe7kYu+W*X?IQ_>zHnGAA2!L5Of1}`GuS6wb$D#uZ@s9LvKR6Uo4_fUU&9b z_@aGJDKD#!QSB{9%e42zk@W~6t19a(+fqhkab8*@jHf-kvU6Egthk>d>Z5wAA{T2~ z%B-xQBPRY@3O*3b1+gZq*9g@`-T*F1GHan2cvPG+cX2yYrJ@QiOo@sUitMfz(2ijn zjNkkFJwgz0$Uv=CevQc!* zjl$f^8K$p_?+4WsMZQ$&8_U7*H7|a}1Rn=*dQZ{2GT!AB^umln@%9zNsp#tDy?=fu zthIXgr`b8lShQ>5qc?9GNvbn$??)Xv6XK5XLtWZO53?VcpPjQh?o3NQHckKwx-8Ks zsVO?~!*Fn+A&)U^g}RL#P(@R1&BDn--he^M*Ge@Io327{av)a{#FC^JjLKn(Xg36k zUYUWJzPUvjM^JmwLv6Oglk%R%s)HJq#b^>Zb`BH}NZjP}sTi&>ua(Q-f&y3~%5PU5 z<^b%_SPMiCSyd9sA!fNxn%1wOFPWg9jl!(mL;e;>aq@}X`K1h{5dX~hDuit>M0VJL zF$%5TI*?r2g+RV{h+o2O3seB+*VTbp#4Y4ZKptiK zvz|U};X8Ik%u1UCm9dH!qggL)rULu|vJsDfV}bZ*cuiTJb5Mcym%mnBgSlto(UZsG z2-=ho)1xiwHK#A?q6fH+E3f3OXAx-0*)5}owt4$zutecZZ&@VJ$rVK-`74Y)U~e8Z zjgR5disoxeg$)Jf@}=#~g>@ymIgzp_TD?cG46_q)X(dt{J#Xnj*`msUlL#`}%sr52 zc^}yGknd6qgr#0#e5$?Jhu;WdZM>r5=T%0(c4kcn_by-YeGP7Gi0 zBS_s01kZmV@E=0pzf<0M{)hEHVEr$po4>U*NQOYB`Tx|?=T0xZx4oPFT$T|&;p55j z(di9JFHWq$s#PQ>k=f8z49Qve@Rc4VT@Z6gcA9?&1QKEN^3AX$TM9%Ati*rs*qTRI;L6h=2dw&H0V>{RV1w@dTyW2-Oq)13XMs)Aztf!L zN1m&3Aw~4QK4y_`@FMMB^=xxouGbRg6Ib{guA-igfaJIRt@!nbqqfrQgIUKe8emp; zeXbVP97F)x3JY;bkkTS)8fs~flAEW2PIGJMZhfR(YtFbGaS#a%0dU6yWI4hZzG-=} zf?WNs36(nTB2OMn!o!wSJAfHKK@f?xWzx6HRm79M1u}}P6-gcf24g3{_@*!0&Q^W} z@Z!i4*_*tfmWdzMQyQt#KbUe$(K4d;GC*Pv`7*~I{9d1PQ@*BQlC(5qJ%4P`7D5$# zYLfl~AJVEf>a5b#nWI=^ojg+@X)#1sx6(hfoYxavg`UJ@Nq>avb_?LD?(jejUd2RP20Qf&n>PX?sSCYt^cyO{`liGU3EGi^F{E-uGstJTMSZhPfWAh1 zr7i9k3%b&Y|ZiS|@@OhuMubSBp|2(7{O~ z#kutl4qu4ill8|}Y!4{n8kvHiCZ!(TH?u=*JCS5(wFkhIico-CrnV^#4}?$b>lN|^ zkkC>~Sbls7(%&>Aa``;T9?Os?ftm$7;-Lb%(g4KYv4_2T-+IFSRfl z{W)105Ny(E%n#baR7~|}VY2fMLZdRiUW)SDc`l6~GsGCFhS9M0RGZ8K>D*-a;fCT( zBV|e@mu@vb)Y8P%6bsxOOi9vtE~EVN4_1nK(`#ZBSc#4BPSG%MHRDAQ{g>(3RK36w zvQl4LHYugB$Dj;bG9hKy=p4>$3sT=dHbj)@%#sKjmquB#(}I_ir3W!l5zb_}*mF84 z4>w%aRTmGfo^oDvYWdad`;eoFN?+ZNr6(gbSBi!dQMvQdosoai3~FA%fUqX~vwdHt zRL_ad>#b$QCh|6&v!{c}B$FiN%y^ zQwmEmxZ_gooT?9jcY>A#$`|#yX)8X}7&0G^!&ZVS=FM_Zp+GG0l=<3N(_9AAGe5}g z+j%<&NE15merhP3P8QZaWEPzrz-M3Hx!9&7FA{T+obM=WjO;X-_-I?38|06c`I}%3 z7NB3p(Ppd%{_&QiSUr+o5iiZmm3=A+v$>(?h(L5;3$zQT!%w^h3<5S^)(D!*K9wFiolI2WNu>;xa9?B{E|OnMsRwg zpywK8CJ0z^$6M@oz%Y->Uy!WA*98m1WoY*K$0(mPrDFjwkclJ$(E6Mu_UIysy$*I* zy}bdQeMzv6dVNeOt0=q`L8HZ_$6nRZr;N_86&|O&U*vAK&^IUgKXNm){L>auX&`!- zB)|C!?|!5Ri*HA6Da;_wL$g+Vve~C~isg(L`1_suEi$?`b0{p_Y(~LfVqQl)XtFe= zQ}r=tAsFN4O*~*0glP5`MKV5iikYOZ#{DXjw2o(8wbE050$Rf53aXr(cTpFvj!n{x5!@Vn zo@A`^Brcqx(N1?6lvzjUNn5bzQ~$oVU#d-65BktU?*iq?99219QDPkrjy$UuM&i~= zRETvyONb=rUEuY4+^zG=Yu_6q0ymB};Y$&67H|^6OJ3)Db}Nk+Xa-ZV#oX;p!b`hX zPM))U-(R&Gh!@FWcn$`QxL4jRIj^$_Dz~WEBFKeid6|kfoSvJG9sjz6mbrM&7lkta z4#3DeftivcZ|;PH$P3vJA~C4I7aq#m?E&W}OX~#dTTEIMQs&2iATH>DU(VbGdI#8Q zxYd7Q;&`u00TPa<8iuM8#J+#(~9N|u!~8o}5S2Wy5q#P`yJ z1U<&;41;cF2aHg7j^xoP8wZ{RsS|t*5u;dt6Re+Tc`Dz=9UL!fN5^WKcv1QFf(Q^4 z@4)obdj+Hpa}0P`RGi@KlBoO!nlzvL zykFUG7L{-S0H9+nS;YK-3wYT} zSJJX?+KX$jE$8}G=L{Q9uJ_tbv52q5<+*X-1TJ5|+`*`LtjqE$cLny#JxUYP^---1 zprG}+vIC5XK80taa!*OOSg zM{JfVU7m`w{F*&CF5@^}gCt6h8D75f&1A8Qye2|3SEFDX4IxUxYNb+m+cebt48m?A z1F{bDlJ89}kq)U0dBI%kb4tZL;oY5Z47`Hcex~Udd*btqIm+O8wH@3B&B^}aOu`z8 zfeNcfLEXzxvg4DVpUZ4IF@6n=9F5nkB%KY{ zOTw6ZQIyacJ)#kwoThrQ!!^f9d4EmTxG53u*K^i9J*uUiZPkgclKwQeGOfNYhmkoS zd^JJ<5jB7tjm9e&*R4g+#m;3y&(DrA$*gNiPvRHH^!-X;qB+9R2%~ae_hB&5!~*3$ zpi&;Zk-F0G4Q*N^ie$ofJJnG6^TWvSUkURMCCtCXW*z?n`yasmck0EzM#RwA0-06+ zQ!m;`62(TfniCG^=UKxBG`(!jQ!dnq!fq5D6!Tr7;f6Daa!J zU1;*)#bl{JBfqB={+m4*+egrH1bmJpm#^zfouOwgtlmb4s9Oyih6iM{)^L^_OT=ao*dz$b=ZYYftX2s5nJ#ZLRl*qwK1r`DSSIlPwmRc@v3m=_%>!0 zD+(jKW{a#S=79%`jka7cd4sj4>9^H84QOKobC^S_sq2Y%1Pb(W2niklb^ z>=vi)12qa(MLR{Ui5q*c8_z9s&DwnxP`Gr%WGmgATx6UvD#bz&S~#BqbP03aFFC!< zp!Wj2tW>~YTiw(+4^{Ga6TRHSYV{sXlLL zw~r(5bkuqgDuiIG%uD7H{CX(%>qXOQ*|}$GW+Y1XR0Tg+Kul<5I9L3D`IB~oqv?_k zDM&W=se$)_p*+g5LE3E5&Dq~N%$sZk|HqL=K{lXiz}Mht-1_4w$ZC1ACdLK-#XR5+ zBA%kvHR3C5RT3f{ljJbSO7k{LkSyu$2Xz_SM&fq}KxpoYCJz&~)Q59eN~$1gi5-p! zp)VP@Ik3L3y$m7JJ)5zzv21rtHt^>TtPWZT+&t9m_LC8(| zMu>tS8zzQ-dZW3JVzV#O5o37;a33DM9Tl!Ouu=9)k@*u;7?om_#vfH)jsR<|ZBrDN zkH2IvmiR=r@rRBt? zmgnkWtcif3wDWX}{zVOTp9a83Q?0#teYYYJXJfZg z3m1pK@wjEi0L#tgwL~-+v3<7&l7ucIXvd7LseI%~0j<)uL*u z#T}L$xdd=Rwj-42CTZu2nQ2U909EgA4(Aq^jzf|_#{F;$$`ADvJIg_yo2XO0&CJk( z;v!CAeYhaLWTlp6vA8JeNVyWvevpT_y^VCo#?FJFK_&;Eh)$P-x2 zvvYW-w`L7{Q z2*RpB;cOxz&N+rX5`;ybBflYjl_%Mtk&gnCPcB&-T#}^pmaJZM=f&j7iwk~Xv12ST zJ9}30%|?V@YIjs91(Dsjd%zz4hMRE|v)fv8R7y zx?asS{}6y`;d^Gw2668m@uA-M{@D)cIEgObWn;JKZlH70XUL;dP~+!dN5d?{K;=)4 zBsgREDiOAUiBS{{opqiQ5^R4UTP8-;MEYwk*?X}a^$Lc2GM&6#02(8=8m1WF<9>VZ+SbBAABCxZJ16_R25>JnMWEHB$Y(H_EGCa{;w&q`)N@cl$hu~xdw2+vT|1}{ zype#tyNAp^XnnUKGQ*5knYwRc$s1&zaXmoE!NAGN-zMni(hk$?uF1sI?y&9wmgkF~ z9RUL~*WblovHn?gGcbB{gGf`paLu|PQXeiC_W`ML+qR#=&;1eTzAInC-SE|2Qs!@{-x~=;!-IB7DFdJHzN~fsKe^GP~=(unH}u zq=?>x(Fq$00b7=wRXZv^?!%=B)pZ1ebU~>#7 z-Xr^?0jq%cqdDPO-uPwyl^@7_hm9s7oLxnHzq?#kytDaW*^bk{=vKD#OR9Ch^`Mjh zwVyGDw0t=V!g0)AbP*m7L7VSPL7=dwv0{q2ez;@E{6HcWSiP%QfzY;mf z4{wh&A^B_bcPTh5-i^lD0t<& z63Lc60Dz(p5jq!qAD`8^DbG+XYrI_+%d%se^z$djw<}%p{z@{(E@aE=Z84`WSoplH znbOF3Pycxj3|_$xFnbmq*ncCjt%Yn#Aqqw=>L=>6wWK*+6a!WO7gk`Nj73`%MRA6` z+JRrI{gGoBEzF=tc%1Gctj2YWTxzR6wu&iZJ$KN^G4eQ*;;yLBH{*o&XbiP|dJD=z zmB>sN)M@G9Z)hK|SL6-pol$&zs5&Q$4Yd?b8lCAyLOarsb&>#G!27NZEvWf$- zR=}!gNR$jpmCyHB+*gIam>0s$a8hwOWPadOHa)1&WVdK_fE1%bA44FN1 zL5Hw`y#)UP$8ASO8Qh#vEPB~(qR9s`tVzZtS#eex@ zO0jO3|E`v8iLz@;MTO6aDtSkBV`T-q%EQJ*hWj?pv@>L26A*HogD4VOUPW;9NBEtk z$;w^kWby-(=OF+?kTCTDMB310H{<%_kW__H^vgbpaa za}+#DQ0Tjcw72MI<;dvw>>Ovfim4;HIK0zJB25?zQCuiIRa~*b&PD!E&7%H zF6L?)xG2?9I?5AP1-6DV=wh|nul&q1b%H z0*MBBP8{T;PPO&Xlm{kP(g*YBRt94mL)!UwVCNmdw#mDGsB1=IbH>ykw}cJ+si~xB zfNSd(XO-y+t=F!6_)YdiZ~(wP7p{_7<_yki2bdCgc39F9S%s;ZY97BGDD2%a>uon^ zWtekU!u~nc-x=vvCh@NwuFY}!)CsZX%?{gS2oMiJY3g1tqh|u1qnM1g`Qwq?C1220NFl=O3i@ z*e>dUW=HPNBmH<7DW&}y+EOcX&%%oF{I@xBxsu7`3mpclqzv10jn&@nTatH95;-ei zx%uZYUoYzc>3_meoR8J>jhNpb`TqciHwJg$(nF?G20If|-gWM00knWn8HET=?e zvZ|AoGhdC9(fs}Oah7W8>I60KS}RM&%f|#rB5`%^hu=-rqdfJQ0b<@n z0&>!jMy9lF+9t(vd^N&fL$~D|UIeBaZQeJ9JToos>W~gGgTvdQBMZC}blHzP`{Mg; zGN2wJ&mu73>p~XBkE4kh13vQy;e{38TECZLU8h{x6*98LOd9djhQb6GM8ASBr_&{` zhIV|`-)2uBVC@DD7-XstHUl26le*t|j_oSS0ikcXU2JR_omr9hNyd%+dQ1w$0e-;I zERc>RCX|A$x98H>KnDaDVxnYfAwes%kHCv~DfaY6~AlSvbon~3i{7y&ypc<1;XIfbaC z-kSACx{x13y;5}k8Yyem#0n=5UXm8eLyEfg*SXgZW1x|J1ZjEgkj%cX(QfW3ih%B1 z%(Nel&Pud2OGNuwevz{%cfg`#*Om{9Sh(X z+?8itG_4~ais{)8dTonOF6o=6+2f|1h%*3GJxkTP#!CNy#BH&}g&h41hX*GG4wa?p9~^{47b3@rwJX5f$$V7S{?a&7B? zJ|4Thp5N>8TEcu-s-CNvXSI9g9K(hYv5|ZYw>-aMYaxo%C+jF)9>K@fh6L7{%4hzz zH5V2DnWM8&ORoQbUgYg5Ya+OU%t6P0lF}aS4&g`3LEV9ms14+VgxdffX*~9N#3r4{ z15rVIY;?vR>(*tQj^cyb3N3yyw}{Z!TrK zQ9VoCxjhsF#Kc{%+mQl>=k-@oDGo#PPc|Uy|qOb_MUe;lXdifEBbn(>@wfK?$F~Xs9erF6S5{+ zI%ei4IN{_LCcS^lF}GHCzoHCfrY_a(*;|=CM&n@<8xc0LT+rWN<XcAd8-k8KbCKBR92)f^guOCk!D0M0}WsnEbU7DPsQkN#*C!7FNF| zh?(HC-T0@5&L)}rd?aCp5+kw5JX5J zD4x=Ru8w&DbwYdg)>}eFsVr8pd~ec7`;DodxV?Uk>sI68ngx!gJd3fGcWGScDWLk} z#}7oxs1On3=iXYNz-S>$P0gQbSh^%fEllkW&TnnY8GDcBP%o!1LW^cB{n41RhIz#I zkWEc6O15p4^|)X4ew4x7%gJSx>9@EU9j5V_mApd0A1F5oZfcsUJZE=uJ)8Gh;@-dx zlG^LyWg*{n*r5o`=J*Q~!b~x1wLRaF8)Psz*&}O(Ybg&J)J`d1!%$B^X36KzI9W{g z*bhfM9e+*t+ymkyFS% zn2oSscGuA|9@`XV(jYW0OW|9h<`GYyaTU%*nzL)`ThYC3>p=2% z-tMS@>Xc@dLTi*Ir0wf6Ud{iF$3=#e(!2O^-lV5BBOmIA4tEsJ7B=2C6_5 z#h05x+pLF@cuQ@vJ1~-4)(gyj8DEk4g+OJv$(I1R*W8X7Ldop*2 z^i47((++5Pn+nZ(Oh^8N&_yhz)?b>Bfy3Ft(fqhE>)M2BIVP6s#+JdzYFvJawN(WL zBHb{FmRCSG(faP4<2~?f>=|W6t&ElYc;68?BsRL*s12&V%Fv~J&a@TO2;`It<;Gff z;YJJ};oFw);+;XeY~-lMYYlIX4aJz`h8_qrElSbz#GdCTu&y0Ea!+VlN!RlG zH!WAr_<-iph^+-XQnZP29LiMP{Eg)}hc0`dI5rY~{i$wd_!%=OYNjDX0-H92n-%C` z)$ECLn|fJ}z=fJ%gmM!^sw`YTWT|>V7}WHqMht3LE&nF_i>N*i!=3b&z0-1)NA5SP z5e<@Kw`$}^jxlGhY7kD1{Sk|~-TtHFLW~CUCFV$_4rqj`B*FgAWoL6P^xk3C>NC3| zEzg#y>WCzuLfjC^i?%w1G2=>&TF(HwAg>HVj`c%v?!4r@0ZCfs5~Lhc-SdY;zs@?= zlObrpbUYB3+`6D>UGd;J^f{a|u2v_hdBK;vMv9eSB7~lKvKROjY*q5y<_o%%StJ;S zPdB|>)==^)UU3=K&Qu3pJu|?hcH%?fSg+@Og2od3$yZySLSW;PG6|8A*^G}^d;;`V zvIg>{4)7#cRetA#Bt7Sw#}J}&4uan%cCauH60*JmN$&RNJM#|+9(1hn7_azEGk?5$ z*I`+L4*^6epoX7O(xAs(6DC$iCxIh4WQEdTCl}j8G(YYP&+swYhf{%|`nAE}UQRqa zgTJHI{-S-=W&DoTp!v@DzSmb=wrmwTJ)l6*FN8TP?95Al?3mY-7!%&aSZ9ZQpH7x; z95cK)Ix+R2-tf#jp}|MNcc4rxje79e>AJ!}Sw2=PTV=}%Z829S5qL8@EXv^0QO zHiN(asUcIiADPIvy!!x!>2)WSDsZGzeaSFx2>ex~0JD!;iTuEGI$JCt5;S1oGKxRF z4ZQgGIzet=T&TTqt=L;ByB2MjE?^In_2eHdEI=w9-zIt?KVf`t1bQ)Lz2i_z@A_6>>`uUcRVtDRg62X)(}JxqZ^I=0 zeK)^3RJ8smyA+EM$p~Q@N5?NjQ+(cw3wDXef7AqchE7b!Qy0QE-YDZsY>H9cqvm6*vJz;wYpYG3PpagT z$idABpWfBu7%wN-+@g9r=SVykOOAmLGW6I^0%DZ%(?vypY$`c?=^%&`H)LxYzeK&w zj!K>MyPZNs5?J*ZscOP_MDssd5X?dkCGLls@TI^LXHv{rs!trJDCUy}Xj`|WLWm(c zD_pEcAE*e$%KBVg=g`P3e7rhG`?e7CxNNK2kZ!2ZUWfXUGOcJ*?daSe*YJ_=t*gtMjP%y6#!cvs1qHR@}c<5+n4G-r1( zDrl|ZXW28oz-GWRV-P?JlB(ZnUyu!u=zf#3-}WQXv2rL)#qB%s*Z!S`sgkg%A5Rl zdJ-_(1pjRHbog56A656(GW0^(<+Y6GRXEx-Jo77%Jt#!H^}p}&D(ohPV@9Bk zDPno+fh14YK?{f73PwlxdqF%qnTAz$j)h4=7KV83t-LwX_th*(qVuM?JhK4 zDSEm?Cb!t9nXwYOr)*)(K3X1Dl_WjBcF2K*5f?G}A7vH0f<+o5`1^vKU`ltaVw=F` zgYrbI1({>p$dDnIs}v0}lSi>&DWS=v_w$5RgW`Hs+d(6eO;7ZmOG(QydJ0Ntt4)Y$ z?im{y&|?<1RN3j$?{&DOuupx+0q?gIvZ^KF>uvWG3~drq+h!N=*Y_{R3V&*51%Lar zc@$A1Vw?i$MadFR_tLOHz) zTN=*r4O-pKjICBe8e*B)k)xw{0wOV6R}0`iGJUhQNlU~|*9%;zIvA8x5AWGElkc`7 zxcNi-^gut$YF(|$r;%@?nilLmzkLELiDSNJ!sGc)vMnt7T!dacwo7vo&AF`RwcD{4 zBuKgjEJL0QL}j!~^I7mkz`#4(t&kF((J;D51q4qbvp+p=T>7Bo@8hb~~nDYyN{gNr`8c-sI%HY-w_lgcr+>v)>mjXGy%zYT_dE-jJtqFpK1ooTNA4F=rOfFG=LLpBIH zx*2O&8!;`BNf$4^u+lm}k=oDn+^!)1tL*;|W&a-vhI|14U~B|3kp4&7zXY~@44+iV z)X>Pj>JK0OiO&tUjVZow4S*=4(|6^BcJXQ3R^70(rMIUH{JNnNmb2MG-u!99!-K9l0CD^gu#(hQq`193+rrbZ~4*& zO#s&AuEnsFytZ5hQPbu=lD*LT?Tl**mG>16HGB7~BrKRk)-ex-tJlnii?} zy)M%ZKU02zqTSaaIJ9xlZIYiBycQZV!NztKS{-~I!m*6g);r<;Do0L?JToU0vaeb% zjOCblK^-KRq)*oJUWj<_7%(gk+G6U0i6TdslhBLU@=xEGemPz*1qT1Z`E78QrSXH{ zC*g_K-cz2c9^JtOV=F=rGue<7i?lX| zTuro_Xm3(O8y<3(H2prSMgk}yxxe(`fRo)vitL4~X)pPlbQ$1JtWqIwfMdgXtC5^rbTX>cHB40zKkFQ!(01dW)gu;)tt5hVI~X)2Te9`GuGeoH^?_~Bmwss zc+m2VNooYpSt0o?bAobM`sX&i3nIvGJHfnYH{uc7@Md?Vja>UZHfvs%ux7A`j>!$bI0S-;m z=Gsn}V+iWwGmz)>56g;33tIiXn54g{Sre3*XOe_E=^0QS^*s(t1xmlZw0^kahd zAuTQZ&F|cU-@c7I7VOC8#f&XD>p#eWiyi#ulmlUUOVFw1-RO+?vi2+ap9Ld^ZJUAG z(tEueh~&?BWA*O^-?N~jUi#>KzZzd$5+%f#DqdOuYs6(15y6#a-cnt$n^;;tcUn+! zH@Pl3xyQFCMPx2fbgn?W>245dNRyZ-sR=j%1EhdcOG2acg(Knz+RW*ApHZOnXD!KJ zpSaP*I|75l8yLRM+3MokcgbVFYC1u=Z+wP<6H!?tr9*LmYJ1EWL2~%XLR2V>+>=W= z*-%;J42%nEL{FI{CZ~Z5uzG-9qR8Gv#>%<*#fBQas})$D7`}ds2E~}X;G=IOWC4#+ z#~m!N2a^{!Q&Bcd1ch238BuTn_~G{Yr#gzlQuGAZ+bJ+NIkBA&rCj#Od<|5gD#L%e zR&wpV&RX(MA5{As3+Kmf5i$!drg0!0>Lh%8JZP1T1N+NmR^JfTjQ$3CFRYXJF+#0# z%fzx68OOv8gVU9#57A(D=L+-?FNo3$jBoQ$Jm-b^BGPHEAQ^7=10uR!TMSgA|C&zP zxl~b)DrQb(Ohpw@?ZpEe&^@lzaqEp`?S|vp0Hne&jS3kXGOzJxe@~?=%%Abp0$U8O z_k!~)ArZAP|HVs|BhOERYEnTv>XHN{hlRop0*JVP&ku4NCQn4eI{g zN?>Sc;eCre`04>GBq&dAzvIb#;Klt?{!C1OjpSr6G|l1z4JEV3gY9aWQF&~b z^H1jxm9aFNn%2)Da5Mh6!PBg8C;lIoM%3ImsuCbu>|=hc8|t(*b?L!kSy62NE@-`o zS6D-fkGnaPn0jT?b_(?_Sqze0z24KaK_yxsIMwO20c(xflo|F_Xeo*I`$HtTh{_aG z;V5(#rQ8y<@AE4WI{nFkWf@P?)Kd6j(hd-vggy+Nj)5B_MUAVR`%3mAYo3$5dOnyt zenoueY_0)uWSslMiTz(&t=G3c0lYeR8mKlpgXWcWg@nR!ZGUG^&%s^Q@Z>boeSf2) z8dtSm=bYucm?5-lE92!M+++ej?^2(QE}Qh#bFZ9rYO|`ilNbJ{3_i8Dx^;x>w|O(Y zlRS{kZqgVy(mHR98&fNBjWmL@kF6^P>cKSflMliGiz$^oYXj3Vykh51JTxWT1|EHu z8VL*_!g@GfS1ykGHXAn31E?c=+@`L%a&xdcP{WesR>U0rGvCqUckqKN>B2swY_jwDg!t23;o+GOr22x;LLYlAjKN0FR@)&O zE16Ka{kH)XL-k{(kL(bQIf0k=C*r6_G?oi%HDGz$-kC=OHU+c9^;i&%eGL*<{HWn~ zWJC)TnUT(7>sZ>J)zy9ifK<)T$@HR<#-=$8HzGr;u3ts$KO-Y&sd(R%nbmI`T5C_>#P0gIf?;xyvP+iCT zfgc7sgvZQ@T_P)Mh->zzK|QRHZ!xLhGSR$7l@9|l@~$*4+)z1JQxg4fKC8enKfc$* z040QX58Z4~$Kqu!Tav`CL}Qa{3$XfsaQmNexAa*1jDvu_L!? zlG!5G^ZVOE!hoo_Q#0oq>&4~K$Txs7QRD&;az7NC-#l*Sa@#blv*K0{xysv=e6H4= zii&%^r*@rek=;hpYyeFY1plDV5Z<6wWJe7%)I(PeChW-O%(Cp^R(ncM6;AJFzN~`K zc41!&GHtKj0o3811VPmQIg#TSXFPB6^c?wiFTMN%H zwDthtp|TDWU~}b_Zug+{cvm3^MrqBo`?rXtu%XP5g29(c_IJVn;=@6($9Y`0dDen z$|XuJLvVoLEVT=%9hs3+j$%?z5md8x6q7dg;3ceMJj6E|@d`Fw&*V*iZfk9!+Z@%2 z99Nl{W(TcgW%)8+^7%Ka6(}T?H2Ix>_;sYpa;rR%9ff`Rsy-UNRdid0*f=Q$oT^UM>wV7^Oz1+o2n7J>zE4WP8_9Qn z@&z1<=-YF)@qrf6-ogMXg6!v~n6ad@!L%m8={&59*pAdCg48$oj8y#EM2h{_F^Fi~ zS?g>1l@HFBGUzlhJ-xF{g`evlPv9-nx?(Ev zpvvUY{^=BO$f7> zVekGk!OcH-3FMDJ2Fw4ryXv+x3a=<{!j2`>A^QVu6hI@?c3p0KbtqOER`ht;W1cm) z$xc8yFF_CLgWKJccPwh;tMC|zh;I~&l@b}31Kb7xW**oK#My|Xl+!QQBe^^aTS;!i zGW#h2fiCJfo*Jme(Z>gCbFHIA4?@4q;b zK41(DFWTqryPiz!0Cs65#UfVX6_2Z8yxdLnYLHmLG!R-4q6baUy*u47`O3m+FH_b5 zV`=i^ic5H`F+A2JJ=(SK_dD$7Y+GqtQ-yk93a4EfmsT)GALJ83>DLD`}Ev9O%%v4_KJmqv?7 zKd)Vb7uBxOb*aSTm%9r_m73+EzZ5L4Ht<9TX6r{DN+e|k02MX)-x@NR$WL8{(EHdrYHJ{P*Qik9#!00%mvI}$oeE##z1aBR&BFExmp#Cj zyZ2-XjPC%ysyu}VVfJSNFa(jmSiURz!;zq)lAsp0K8NDTrClx}-g9Om&(QXmwSfR$ zA;O|{dbgqzOXkgWQi`mhw-0}yg-j9Ww%$2n#RqsT2bo(_e503CdfiJupjn9ieeo0N z3D*816q*3J23OZ!)IVQE1>uMm8ZBp1h=k34dOV(zdyV%DT9IDHT|-Z$&!E?)fS=5q zbtMB7az69Yr?_-Hf_(7a_}x89rLQj~A1E2to7>%fY&?!iTCwnpY>g=2RXC`@Wr)&n z>$;0&Qa1Mqgx+`n;U8d3=WK|{o_+jVdxucS8*t%92&-Ls_uY5u<_Cd39HVJ3E?m;D0BAbCGxggb)(_$!qMZD7*dp3-S1jK>yh6HAs7X{wcWW{XFzkm1lwC+CJ8~ zs(KUfsMNKV8(Tr>4YolZrwN?NW{H`+6w%+NTqD|!f39+MI5k!ade+;r@4wr#DeW}k z5XIH0qY-nw%#~@7)E6Lx2h4aa@_Vf)WGukM_o+peF-{{MnLItknU_K;ojpDoU`_cs zvzU~?ejVcF`Z7go8txYlmD{mXv2_%F5R5_EE2tRcLaGHcp8LzhV#BFPP$DL(nC^^t zAG^88i0~8RLq*bym&gq*a=(6pUba3CY}6HPJ;3;49(&+JmB&xSFmK{`-iT~Zk%ZN9 z_s6^$)O=9;!*mmjn~=%1(z2K+j_%S;abhi1cxo%c+kdzQ-=WbH6K|^RGE-vYFxqVLJ@IP$o zCTax;?7LjCs#5teQ4B~pc1^Szz{!qlO$GLxuE_~`TE=z7IPkZu0Vn`dS~T-dHcw+D zO&(hm-sDTXqTE$mRUO3A_)Zt&Aie_U7xfsIvs@P5MtEL2s zPKD)pFqtRp&*mI9k~?Y~4~vK^r&3ocMwep3B{3&{gMJZ(m`d9xISix(vlSEiv~rl7 zKE3J|waLu5^NV(6{e5@T@izf!_0#!=LdMCx&%BjFzpY>fx)-DL)ohPnx?v+=_f!{ z?<@Zb(SXTL6rl`f?aYJ8KdQ0Ic1GcabL(Tq^;wwqG$HJ&0*^t{E8pxtzCG!_aofBS~T1p*c#|=uzf@vevGm?fLSXEGGH{4Kx}c z(-2RKMvszWFa>>5I(BRbJco#$dgc=_Y>p|KrW4%`dzQW0Lc>mmy;lA7iFWbylQ(izkQwpef`0qcq9oVQP2bs)8GBO9 zH*M#R5mctm|H446?)x=JrL-J*Yny~>Lv5i&S#X}7r(0##*eE&5z73J)Sk{V*%|HwT zz)|Ubw76!GGFFBHxW+*hCRBBg5`@+S0#dmoY2olsS?+t)4Xmz2jGE91c??9p)})DZ z*C+o<*7W7<(l#v?3XNH&9e3x?=LJ|T8YH%iKj+cB4^{+jq|*HvGAJ8NzCX>4r^D+V zNf@MQa-<(;v)+;`-q*UHCW=G5ik-ONp|S2U+W}x$PaCJk<7|T6Ba+({^uG48HBk9E zDv92zZi`RXnu#M_;vhoRywWrNo?w65UgW~BBWq9mZguQ{XScV38yp*;3Sm49mCE5& zl*7vmW-r4K;dDbIyI;|6 zO7udk8AZMBEGyu0VI_@iY5b3B0XWr=60%53p@9%Q>I|s$;dhCP6`_EhzE+O{^Ae`e ziS#q$C}id2b*FO;bnXSLn;RfZqD!c=+G>*9`X*4`2fVidoVfP`=YAEsw_3B)Z4t#0 zi#U$g3=Y78utSNcAC!=8uO>KDW>a543V7#16!MV?r{du$F5ObdFS=UAV`*i*EkPHc zR5wnLsDV|@J3l?dpOmcZr!5^tNkLsW&aBVahtgh>ECCyHykJ$W4cRU^!nX8WcwY0I zp-}j1f=tkVwQQvLl-`4$EJB&{s`NN_rW^XoGyy)!n3y31!dLE4E!dNK;`jEqY3M~Q z=E7Eukb(9KWRUyLmziRvcP}~2ZFy+7Hw*ULB|5N3*KL2*o$^|l1{y$w| zl0mkwW>=KuGryRGTns8^BkW4!Tn$hL@ca%Me6TvszwyLUn_KDO@wx7@5EN*&@wx0b zLc{i%W=)6C>p<-_9FO{H-bx!Rz$L!9{1iD zm|zod1QhmU5}4NJ+s_unz@H&MBEyWgqY0kEJlg@y&;3x!*)PdQh2RH2Kh+$ERB=x2 zM3YfoyA2+e@hmRyWhrqpo^hRL{hNmuS5TXjKFx?)T1`I*<$7|9pm{LcQ8Q>Yzt8o0 z1~z4Q=yF2ddk05=s;+*mr9cu#!D=6cSFq zddyHWneKvt3_T?&cK%;;b|RHoGE(^{4vT9E?ZyxS!X|~5-s{gLQ9p?HygFm7hIQs< z4(neLwDG)EpK`1hFjqXx zcY!^WEGaq$4T$)b4{|TILplO~2dZPaB9mwvIld|j3~5?3)Z;IA38pgaR=f!<@;+Am zRFcASx>+e0DGvPYIO_Ms5`3}3jA^~0w+-NO>XI_1jz*VT+ssXk36YifsRx?6GrvA9dhD#ChA8yiSvU=DR}w?hlw>6jcM_#5}L zlFp@S=po|(s0I6AyQF#FQ33cre(!qGw^-`LES)?a1DLnKsA}UVt;04= zs^mretiR>}UZ2`xHnSR(dJLC0H)cZ3apV@XyygoFmtHUCeV&Z$QvrKyR0cqe#Mg$k zrfC?cRMB6l?p>0BSn46g957y!$u#4}d$p|t!N5^m;tm!tMeqZ*18yUL>e?a7n%CNX*5!AWc4z`Pj20_!N5(MC+ z)Nho(H<71&JaZ~WfE;{yt+59<{Hc|5ipCtRj}eWQK{Pf8!G8K_CW!yh8?|%a*<-oQ zCjAb2caq$CSAUFzEt;lPjC7z<2kF~{FS~ofRG9oOjskys5#-CE(ZA-AK`CmeOX<`3lR5;T_b?ue% zLx-|_%(CFUM>)@0X)KMrA__F=GiXkhfpoDsN2HP+F_k)cyoCnrT#et%u8TvJCS)zv1k&$oX0YHKoYj^qjN%;3 z3adLXk@QqkB~w2{P2I!acyZw~|z97x3g9@|q6mZ_(!cPl_mq9EX{q#6Uq;PQvM z2BUz&B1cv7zEep$?c!E^Xmg8lZln1;kx$>YG<}SWJKt689D4e3e8Wp%EdS^|oF2vY zAOC&ZsK{k_M}Ab*yf`!+qH^zn60}L#75ss>pe$kUd9&$~gQlDI3w5<>%rTY?Sg8RD zA9BX95Sgjz)1r7Fy71%BWwK%iDV~F;*Z&)PjM2C%F7npFyBKux`lH8x)drOlmoVX4 zA)fXbA)(^)ZDyS^tnyLR%mbed57A;$?Ke61^+D;q&4aW1U5}onN;p;l)HscQxi2Fw zeLN)uCMeU=PbHLPUdj*rp{!|VvvE~*sB?L{cAWn5UPv=@Bz4N@l?)R#>|K#}z!1qF zKl{D15Fj6ES)i6f@_CoTT0S!6yn&pG8VN&HM>N<3G&GMc+V<}lY?_QM4(f~$xQ)V$ zh>B-=!aO)!+f&Mt33k+XUclKxyrFg?EQTa2 zK#-@HO>&n^tkRNT7 z^-d4fCTkX#8Hkj$@(LJXo`7+W{R?`gh$SpwKN4voa0PX|V!KxQ)>^DCTuT=M8#3Oe zb*2o$%bEkb?@3R$9E1_3)PcmX$zdEEwfL~hH}-r+?4zIVcv|*;7_T|OR6ef^TrebH zhypGhVu#|_~6qEJ5)RJX}$vx5$kss)G&HDr@;fHBS^|RVHcT+oGxI^E)m- z)gA`Ic%w(~`M9ihK2}cBgR^2s8I<@TJ6al9dJ1P^_%pXuC>0C%NI94M&UGwg5c20s zj00r=k&n3#M_E2OL~``7n$Oc6Eo0 z-zLg5$wcB{fPoy$g&|!Il^Tm$I^RCU52xg3;&U9%hy?>`R}^axS$~xUVdU@`{<(C_}A9-4$qL>xz-*`-?{bV6i!7Zr93)6T@57!num;g z9Kx?#qzu$?1sWaFoY0wrYtU`RGz=Wl2|@1m$(|t3ES2=mtSw{Qf@v)d@gzF=ByK8@ z8etmLGsHX4k1aqC<>p)tO`*FapfCoAi3_@int7WO6YP3?_zDA0%IA9XJI-2=&dQk_<64~G&?1v+1{?WGcpP!(7MpAiM3Tq%hcc@0RXJNl3#`xCP z{2LdGR~8k~!44HbEVB9T_g@$Gznua5f5?UXa|ZB-0vT@q6MEEjlcD&siCeIJI9R0FVmoSF~h%W_cyCPtfE${-;`*B4?w-M0FmEOVu@qUL^k@cd0E#v)dkcQ z#ze!%(0n2+es#}TgnhG)6f+l*krZEK;NqPAbQHe2gAM6q z24_Xd;Ja2;2lJj>7HiFlxM4^!8N%d*d20Srtsa*uCqwbqIZA)iFUnx3TjuO=S?Y*@ zG#A<~rLAcZ*%uSMn|0;NG?G^O?v7|W0OZbs#ejicAA2VNzZ_eXjLh;@z_z<1y?(Ef zm%2(OoIF=(=*;hQF_rHaTk)`xZl}7Wdjpn9Kmf-2OX@ZlUo2aA0@JoG;pDbYZ+Pr^ zq3H4ah#N`u>@(i}$s8g0nfC~=;zDT289a~a9yzk5-Wd@V%^;YrLGnB-`3_*ZQDLzr z`QQU_l!E=M7l<3)eSLb%ZO)hSGJiphMayFn6i^`VIKX^0?MX+kxg zm$ug31k4jT$Q(nm?t1>~JLk4^93l~6NkO>?iOA&gW4d*0!4W^pjHSjG`4aBS;@V+l zM3-q{+iVD8Z-k5QT|Tue_~hj4()f`AUr0}(Yu;07Z1*EmbCHHWL-zaIWj9vnoW@gj zuUg_5=|~r}$XL1^m-H&=sa~G~Hz9ZZ_sZ*{%hnkV?i^!ZZ}+nr&M^0sn3+c!9sF923E+ zT{MWrjb5L2qX%kDz)yZP_5z$bxnhSRRnywbnxY=~Y2oW?pV));Q|W&Y7Wae9xk22k zNrNzp-sn@w4iD?V2~$xQZB&6NxQ?ws!W8rZjZX_ z+gHxDw!^Qm|6pJAL8dH9W9$GoPc?3YaM}7-%UW5ZNmZsL`b!Oo$&uW$D_{eBx360& z&co{;@bDq@-H#P2pzAY%<1-&;vb zJ8(2|fku&?Z{2F5q`$3diK4;c-693h2jf7-E3bkNO2dMaU=J|KrkRqri#Gsz+*P~l zHIn#S+1#o)-Qe$u2@x^6%3U?Wt2W5sM3k{{0=k*j;AX;60=qS%ymr(#TFV2Bg3D~- zME8bCPDV8lxC?bQg9wHW<-qV7OpgF?5^Vv-H1bHj>SD_Ln!yaJT_R%tT$u|hbndUW zBfBDk`pMhk@GJaIPC0+9N{DkS1Pg*?f56rGE>yEM`ZOv0gP-(fLB=j0o3t!fq5v%# zlbM=#`~Ts_G20U{u>hf_NZ*S1f|#Ew8pu(noJl$iogmAr{gMYqek!?>rnbDErNx3q ziwx5uKTY_aU2TGP8ZGiXk2Gh2G8EXg=I0KmEua{23j=ywS7vK6ECM{m@93dBzpjKo zdT}WM#Q)Q_;kp)Z#yU+9&Abq~qiznG54smO8x*F3X!OGxm_+h7XqluZRauIsOOsQ@ zN7P$fc5qk4AO&sJgAFqAXLzl^$3Z6;Jg4{6G{v>2v@ut1zt$oPFsCj)(qXg-VxKqtrSpzlROQbPajnwxD$#Tn@KNf#^sczReV zb{mResuZ^V`@0=IvW`RdZ|$}WUL>>tD(4a%+n;7U0m>029c?f(hihx(`B$5c%$w@U zCfc4l^l{hT{6XWR+TZom@#i?5cT3miy`k;}7RvKLCk~+_@*d@=**W4No z*tq>-XmM546f$WMQ(tKwf=!>jH7>x_+h2C&Cmd6bYa08Oy`eh|p0(Zd&X?IS5|5r@a%^XRm^|Tb z<8$nXS{X)wB6)`ooyghl0OhxIb!^K#1LVrQ%=%l}gKJz94eVFn4-RiTyfHznbS$TU zvUYG%)?n#rSvHsg03vcJ-`a%Xv$J5(D*?lm&nBBh#s}_9I7X|J`-20OjzNhl@EJdK zb5=njdN|jDyla!S$;+p!!FY~alm%efi@q`nN-)L{C*-&NX=v4q+#(nDvP3S{mK4s$bQF7zV1{mbJ2VxBiC3ITvp?LcRm6wdX}TQ-qHy+mBEo~t zwB%()=bzats~T9thF>i@IPRoD3y2#Oyy6(|jq<6Kz>)@KwAJu)kur3i0!QdnnSP$b z&Q_yt*)LbL4<%JKFnoVSowCkL&M;^J4&i75L;;;LLX3p0N1+n`R+QT8ElA7*>Oj8) z$YLtD3NltP<#pg~n3!A0JA)Yxk7P8`T1ZDhvG~X;a>zpbLs#U29|K>r6&ob^%MT3t zX)o&og!q(tgYi~VpJ8e8-Hhe=e5yd`$R`d9F*i#~qm4xl1jsPE2vimiEKvxj=H(mDoS$uflB68u6JC~s%+z5@{mBOYJvkTj= z@UXzl97lVax+1EY>a?)6k!G}e^rcl49|V6qoA=!Ah3}v7zub=Wi*`**$2$nD}v5(oQ}{IkwN?(aesb1o;9CI>ih( z^NC|xt5yCBzj+jIJH&p)M)DCj+6u3HNG$cvQ~H#DniSVY7%TCT>*VpjW!^sTo+Igw zbXwv7Ovi*Bm3Du5u#{ryK+Wc zEWxI%b?GuheU?X7N7`@?P+VuR)Bx#C#@s|Q3y?Ft#p6! z>tO!%V^tv0ym2pCfPC?IXrwy4hC}j4nNpigp4|#5VC&I`FVZJGVf4oC1!2I>?M?tM zDP7l?SZL`mh)o@^P<_AY1S+!|!%sNX;@)U5^d>t3@~@H8G_wgeT;+EA*7hJYg$WXY z*-xi=CoW@j3MO+X3`WFJ%sg6q*4w`fiFT{Y6OZ9-=yk{Sa(MyE_O)QBEqb6I%mO4g zP$;5oMX-9INVlT@Vk{EZ)ZxSl7iAXDbO26|oVuMf2$b;|$$)+$8yPl?Cy1`0=NYvuuV(Ukucv0`yw;Syim%5jLyT`sn|Ya z!P`Pje#<=@uqYt-LMfBrhFXo4yz`=t7+~PJqGVWo6KiRpd6-r}UVj*__PX5AlVD?U z|2nV@Y3_oN4^ml|N}6_`F|pNP4X#HC?6i&~^+)(8-WZ0gYYYn7hRqpX6?c#F~};7O`fH(LxhF0zhO6eNM(@^t=rc8K3i?uNKfoyr5 zYa@wYw7(zl0Qed2P}mi~B_MY+8CAS@luhL;;l-%3;99lMp!!SdCZe9*bkNNyZ-)SQ zoNEs|Lg;@_o--nW)v!$JrUhlX-%EE7q}|qf%w^c%U!-M?6*lr3pPzR-`#+=T$1T>f zQ=9vC{#HA5v9?q&q0_FYn~ui@HrD?2NWh83L{4gHAvf5X%0Sw(`G6D*vgl z^}n!{|Ld*)L-VVDtWGEtfsBm*nO`-bWqaF;(;Y71eD{v_n601uP-@#_588=Z#p3#@ zQJb05+BM(3ZR0thAg+*L&LUAl6ff_`H9(7=t)V|eM02cXQuJktILyXhjs=w+m0Zb< zC(fJuopoJUJz?%G>Vxmse1J`y8mW^padfx?Yi`a}RYDeRyEE*QFo?VQyR{0>C2p@- zxZr0{nTc}xz9FX;&?dAbS<=m%dtw8O8-D|wX+#0JGiD%bQZ`g@6|pIt*4Ps5^NAsq{1tQ%^#R{W>3#q zhJGkj-rRgJu}?gl>U+uXdW4O+!72{ag?(PU8(b4cvh+0czS1L$pX=X`j6SewHh{^K zZ^2Qk3yWI4reEa{_v8hKs3fNs=-~UBJj&i0Nk6i>%`QKSD{KjRKQX#`I~!mI_)SE; zEFQBqc2mbVLV^_@LK=&|TiUTs(ItiopA<6X?A+H`qhwYqMj^MFOF7uTmxQE|ZnwE) z?FW`DXn?qz2Vg0;R)N8YK(ui53@@SSt#bRy?s((tv5^qMMyOURdYPsDdM>AOt=HTR z_9Bk3SJiMIHZN*S&kTC7Vy6o@%SYQ*Rv zkd=K!g*7-Wd+{&-1v~=+irHZl4MZT5+lhw#gRE48TdY@=;ToqcG0D@B{u+vuUi$E1 z>c3oy~O-s^HW|t8a;p23AEiwwhcV)A6_c4oT?Yu%YJr(NM7M>CVeg$JI(~ zPe3XsfXz_#jGdWFvMk|uF(M18wwgp9%4j{qLbJX%YkE)bzN#(t$!g5A8(v3kMP|0^ zO9I4GNa=QC$4R+hW%BSFx`s9T66gJ?K&a0U>W3vd5UEXAswE4Rjb^#Wz)#o+k5ZO= zebH+9DOf{9fRubz=ha{=t+tAgvZTZ*s-#PqI^GZ^F+eo+5a=?M$X?I#FSVuS2d=cT#jw8_Y5(ZTOAyt}l|{7!s=}-5s{x3!;4LFcEDL*M#i(L3 z32XYS;G09hoD3i+m=SF-AzOn-gc3oP-h^pKx^ivG-(6*7EhF^!&3PMJg)NiX9bT$A@yp{FZN9q8d;04c};5vH=GO<6&tO^GGi zA-ToL+5~kzj3p7`9R0_34Tn6}QiF`p*ntIHbLoCl%Kkr&#roAWx2&hH0cHrIBcw~y zE*r+tN-C_DWASPWWrWA_X%Wh;N5NBBO!}FI;zs@kqnh!z#h|sA_~e1>0-n|$hmKc= z7o}b`HNBp_li*#Y9+-2*>w`O6NBmrUH#poGX!lHzMmJE(XTpiCJ)^ti;no}= zIl70WZaDab?nLw#jlv{0aDD@hjr3<8%2MkU0A# zODZ@JVt6UcZr%H*K@y*-qJ>jfZY_*JJ_;hjGO{bl_AM-RagkBk+=zZtms6eE*)kwo zr9u2{2=q1ep{UzPgU8obkjgy4lvFW|f3I|;`%LjLP}@9wWn{l(w3#ALxa|b%XhfW} zC>+D$?w0Qj;Gv#f8VgpZXE%~eo*WGzKHSf1t{4PqFtJD=$6I%=i(Vt-W|{jeC}R2W zX`KPD_mWUlr*v8=NEqVUpkh^+=!YIg@|Zh?jSa$3FiHEU2R7-vP{_aKjy=o3h=Eyx zbCa6Of@!tQl@QZZI7;1a5x8M#XD0<0zOyzUrdJWJ2j z(LCqP!g$=v_ItI7>ftRsxKnEyY(F-dS5rxAxhU_}4_B#=vU})sFW|)b?gscMpn76V zs+G^Qpn~mpN)tv(>;BMBR4RZciq{5x(=8U|s9XdAcSXPfa&x{p2=#0Snnw7FL~61O zh6<^){$3lOQ>dxHX1_%}I%@;|`X7ZPjt3`{6|EJ9jm4BkDQnnIOS3hstRv!9)>e`l z^HV8yw}%rHW)nAtrZb*O)Y{-!A$DxLy$Z};1%6!VVC%aZ&Q%|894l-^EBmmX^~*=} zP_O^oC*>OWbtNcgV@^QRJB#R+6L`;Wi!M@F3S!PaNqEOV~|( zKT&fSE&XCzsXu_j(5OJa1F@@<5KJ*oxEcF#AfhptLSsLX#g-9QSfuN?=>6_Ejz4l= zaO$$3{Gte6z;~J(M@3x95feeR4R#6X+Be&&3Re+lwA5snnKMcdJlOFi9H|SpDxvy} zO8CcjIuOo`QM4x`dKsP0L799!;^-)h$8A!Iep#QO)z7(~vqjA7H;gG83seT-(2EUI~BB z|I+UaiIq+?MuhtNNAl#o#(-q}#ZQ+t%*y&ms%(VjQpck0!0v)L4(8G&myE=1_8s^8 zF{qgieOuTGWFDN2+93h$5Ko;_*8;7n7xPA@33y~(T;-xmU38v?gK8&PVHvdY9Q za+wTRd>Uxg7;;Okd&BL=yJY=yZj}pM9tl-RlxswyEJ!HucQ6)C0i&&Gm~m2!e%Iin zwNjNlxm4J_kU$*_KqRM;>po)7wH$3@E!yhY7qcK=BB~$~L$8U000wh7ca<=u0iw$$ zn4ijpthJK|lZ$307{3j6)W2pjKoZ74v(pN7u`Wa9PX{AzTp}}-kt&H?U6P30?XesU z#F)d=*A+J7i_71?jGK;;3YqGNK}xT#Ra;6jErc;7ou3@ghuZ+36+CYmAkmPF9rJ*> z(j@Vk5{mhmk(s`KuT`}#$TmWqKzl=NZItg_OyHn~T*>homMUDuGZA=m&#&NeOKlVk zCCgj4Muq9?@;cQ|E$r4oWpD)$+1egwCoF+`suy^#YGMVPgN-L6)LlkG!N?EDSrB10 zOviQn9|+do$n+o$>Gk3qD-a-*H_%~MzjzI&pbZg(w*obm44-fO;#QIj))Xcd5$;m2 zQP3t?JJi6Gp)*RXPifRRz3f&`Z??ZR~O3+mzJZ!YXX7pK@G>G%{kluH$?v5 zDxCd4b2#S+003qzkkR!&8oXH)g0wvW|NTmkLc+?&h<(91-B7-<;j3odzYvw)n>ZrQ zb|`Gc&M{W58VK?2E0O|ba)i}$db4@xO zD}Dn%?Z=W#Jf|B4bdepXvNtiS{C5=?*lyhAatFUX5z1y*lSGXea=ZSoV<@;e#nExb z9KI5T@7TEWh&X^g*=4FbJlrpN0nHS4_n9QD6F4jr*?534D!zFbbxH)Ivl*X%qpuv-EbD z+wlWvYdp^z7zpDs%~X;3Kk-I4k)@t@I5B+ByaGDI1ReLlNWkPf^6n9P3JWPH@lLr}i7_s-k49VMv3%?R|{;c5?AvrUSUFY9cc6dE+bc zJI+}_ovXn*%LD$qD#N6GcSg*J;qzb;{^nflBp)Q z=ph=6sqIpk{yPhj1chhPGDQWc=5c7*yM(74fV zywSt0i-{G_1}fN8#*z3NITvGZsX0KWvrWcLA=nm$sbLxz-gAWDtdum4y6Yy*ZP(`W z1Dpg?-tgEKr3Hn^nIjGUXt&nYYs!8iz99*T$M5Ih&*F k4>f^{)p9BIV)t%I78J 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

q`$6;2T2=Y$466B|MmxaY70UQP301NEbO*SGq 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

BnQs%rPqmMxEW)54Mf`h5cq! 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

6zoBvq`vn2`b^2G}!T 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


55K1D3I(Ab>-}w+cz^NHb)LGGPbOQg6mU_AL}o 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%0Dasp;JtESh!R6gqO8YV3iD_bjn)1 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 z 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

9DnWlp{&C-g~U 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≧~4xEUP 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�oIl!H~R3v(y9 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¥7yVt_;Pn~h$s0m43GU}1Feq| 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 Wf9t4~+^22v_(CO16e{w;2mb};soin_ literal 0 HcmV?d00001 diff --git a/content/blog/_index.md b/content/blog/_index.md new file mode 100644 index 00000000..ae6058c9 --- /dev/null +++ b/content/blog/_index.md @@ -0,0 +1,15 @@ +--- +title: "Posts" +date: 2022-02-14T14:12:23-07:00 +draft: false +--- + +[= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lilconfig": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", + "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/nanoid": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.0.tgz", + "integrity": "sha512-JzxqqT5u/x+/KOFSd7JP15DOo9nOoHpx6DYatqIHUW2+flybkm+mdcraotSQR5WcnZr+qhGVh8Ted0KdfSMxlg==", + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", + "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", + "peer": true, + "dependencies": { + "nanoid": "^3.2.0", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-cli": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.1.0.tgz", + "integrity": "sha512-zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw==", + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^10.0.0", + "get-stdin": "^9.0.0", + "globby": "^12.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^3.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^4.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.3.tgz", + "integrity": "sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==", + "dependencies": { + "lilconfig": "^2.0.4", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", + "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "engines": { + "node": ">=12" + } + } + } +} diff --git a/node_modules/@nodelib/fs.scandir/LICENSE b/node_modules/@nodelib/fs.scandir/LICENSE new file mode 100644 index 00000000..65a99946 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Denis Malinochkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@nodelib/fs.scandir/README.md b/node_modules/@nodelib/fs.scandir/README.md new file mode 100644 index 00000000..e0b218b9 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/README.md @@ -0,0 +1,171 @@ +# @nodelib/fs.scandir + +> List files and directories inside the specified directory. + +## :bulb: Highlights + +The package is aimed at obtaining information about entries in the directory. + +* :moneybag: Returns useful information: `name`, `path`, `dirent` and `stats` (optional). +* :gear: On Node.js 10.10+ uses the mechanism without additional calls to determine the entry type. See [`old` and `modern` mode](#old-and-modern-mode). +* :link: Can safely work with broken symbolic links. + +## Install + +```console +npm install @nodelib/fs.scandir +``` + +## Usage + +```ts +import * as fsScandir from '@nodelib/fs.scandir'; + +fsScandir.scandir('path', (error, stats) => { /* … */ }); +``` + +## API + +### .scandir(path, [optionsOrSettings], callback) + +Returns an array of plain objects ([`Entry`](#entry)) with information about entry for provided path with standard callback-style. + +```ts +fsScandir.scandir('path', (error, entries) => { /* … */ }); +fsScandir.scandir('path', {}, (error, entries) => { /* … */ }); +fsScandir.scandir('path', new fsScandir.Settings(), (error, entries) => { /* … */ }); +``` + +### .scandirSync(path, [optionsOrSettings]) + +Returns an array of plain objects ([`Entry`](#entry)) with information about entry for provided path. + +```ts +const entries = fsScandir.scandirSync('path'); +const entries = fsScandir.scandirSync('path', {}); +const entries = fsScandir.scandirSync(('path', new fsScandir.Settings()); +``` + +#### path + +* Required: `true` +* Type: `string | Buffer | URL` + +A path to a file. If a URL is provided, it must use the `file:` protocol. + +#### optionsOrSettings + +* Required: `false` +* Type: `Options | Settings` +* Default: An instance of `Settings` class + +An [`Options`](#options) object or an instance of [`Settings`](#settingsoptions) class. + +> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class. + +### Settings([options]) + +A class of full settings of the package. + +```ts +const settings = new fsScandir.Settings({ followSymbolicLinks: false }); + +const entries = fsScandir.scandirSync('path', settings); +``` + +## Entry + +* `name` — The name of the entry (`unknown.txt`). +* `path` — The path of the entry relative to call directory (`root/unknown.txt`). +* `dirent` — An instance of [`fs.Dirent`](./src/types/index.ts) class. On Node.js below 10.10 will be emulated by [`DirentFromStats`](./src/utils/fs.ts) class. +* `stats` (optional) — An instance of `fs.Stats` class. + +For example, the `scandir` call for `tools` directory with one directory inside: + +```ts +{ + dirent: Dirent { name: 'typedoc', /* … */ }, + name: 'typedoc', + path: 'tools/typedoc' +} +``` + +## Options + +### stats + +* Type: `boolean` +* Default: `false` + +Adds an instance of `fs.Stats` class to the [`Entry`](#entry). + +> :book: Always use `fs.readdir` without the `withFileTypes` option. ??TODO?? + +### followSymbolicLinks + +* Type: `boolean` +* Default: `false` + +Follow symbolic links or not. Call `fs.stat` on symbolic link if `true`. + +### `throwErrorOnBrokenSymbolicLink` + +* Type: `boolean` +* Default: `true` + +Throw an error when symbolic link is broken if `true` or safely use `lstat` call if `false`. + +### `pathSegmentSeparator` + +* Type: `string` +* Default: `path.sep` + +By default, this package uses the correct path separator for your OS (`\` on Windows, `/` on Unix-like systems). But you can set this option to any separator character(s) that you want to use instead. + +### `fs` + +* Type: [`FileSystemAdapter`](./src/adapters/fs.ts) +* Default: A default FS methods + +By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own. + +```ts +interface FileSystemAdapter { + lstat?: typeof fs.lstat; + stat?: typeof fs.stat; + lstatSync?: typeof fs.lstatSync; + statSync?: typeof fs.statSync; + readdir?: typeof fs.readdir; + readdirSync?: typeof fs.readdirSync; +} + +const settings = new fsScandir.Settings({ + fs: { lstat: fakeLstat } +}); +``` + +## `old` and `modern` mode + +This package has two modes that are used depending on the environment and parameters of use. + +### old + +* Node.js below `10.10` or when the `stats` option is enabled + +When working in the old mode, the directory is read first (`fs.readdir`), then the type of entries is determined (`fs.lstat` and/or `fs.stat` for symbolic links). + +### modern + +* Node.js 10.10+ and the `stats` option is disabled + +In the modern mode, reading the directory (`fs.readdir` with the `withFileTypes` option) is combined with obtaining information about its entries. An additional call for symbolic links (`fs.stat`) is still present. + +This mode makes fewer calls to the file system. It's faster. + +## Changelog + +See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version. + +## License + +This software is released under the terms of the MIT license. diff --git a/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts b/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts new file mode 100644 index 00000000..827f1db0 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts @@ -0,0 +1,20 @@ +import type * as fsStat from '@nodelib/fs.stat'; +import type { Dirent, ErrnoException } from '../types'; +export interface ReaddirAsynchronousMethod { + (filepath: string, options: { + withFileTypes: true; + }, callback: (error: ErrnoException | null, files: Dirent[]) => void): void; + (filepath: string, callback: (error: ErrnoException | null, files: string[]) => void): void; +} +export interface ReaddirSynchronousMethod { + (filepath: string, options: { + withFileTypes: true; + }): Dirent[]; + (filepath: string): string[]; +} +export declare type FileSystemAdapter = fsStat.FileSystemAdapter & { + readdir: ReaddirAsynchronousMethod; + readdirSync: ReaddirSynchronousMethod; +}; +export declare const FILE_SYSTEM_ADAPTER: FileSystemAdapter; +export declare function createFileSystemAdapter(fsMethods?: Partial): FileSystemAdapter; diff --git a/node_modules/@nodelib/fs.scandir/out/adapters/fs.js b/node_modules/@nodelib/fs.scandir/out/adapters/fs.js new file mode 100644 index 00000000..f0fe0220 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/adapters/fs.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0; +const fs = require("fs"); +exports.FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + stat: fs.stat, + lstatSync: fs.lstatSync, + statSync: fs.statSync, + readdir: fs.readdir, + readdirSync: fs.readdirSync +}; +function createFileSystemAdapter(fsMethods) { + if (fsMethods === undefined) { + return exports.FILE_SYSTEM_ADAPTER; + } + return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); +} +exports.createFileSystemAdapter = createFileSystemAdapter; diff --git a/node_modules/@nodelib/fs.scandir/out/constants.d.ts b/node_modules/@nodelib/fs.scandir/out/constants.d.ts new file mode 100644 index 00000000..33f17497 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/constants.d.ts @@ -0,0 +1,4 @@ +/** + * IS `true` for Node.js 10.10 and greater. + */ +export declare const IS_SUPPORT_READDIR_WITH_FILE_TYPES: boolean; diff --git a/node_modules/@nodelib/fs.scandir/out/constants.js b/node_modules/@nodelib/fs.scandir/out/constants.js new file mode 100644 index 00000000..7e3d4411 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/constants.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0; +const NODE_PROCESS_VERSION_PARTS = process.versions.node.split('.'); +if (NODE_PROCESS_VERSION_PARTS[0] === undefined || NODE_PROCESS_VERSION_PARTS[1] === undefined) { + throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`); +} +const MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10); +const MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10); +const SUPPORTED_MAJOR_VERSION = 10; +const SUPPORTED_MINOR_VERSION = 10; +const IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION; +const IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION; +/** + * IS `true` for Node.js 10.10 and greater. + */ +exports.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR; diff --git a/node_modules/@nodelib/fs.scandir/out/index.d.ts b/node_modules/@nodelib/fs.scandir/out/index.d.ts new file mode 100644 index 00000000..b9da83ed --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/index.d.ts @@ -0,0 +1,12 @@ +import type { FileSystemAdapter, ReaddirAsynchronousMethod, ReaddirSynchronousMethod } from './adapters/fs'; +import * as async from './providers/async'; +import Settings, { Options } from './settings'; +import type { Dirent, Entry } from './types'; +declare type AsyncCallback = async.AsyncCallback; +declare function scandir(path: string, callback: AsyncCallback): void; +declare function scandir(path: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void; +declare namespace scandir { + function __promisify__(path: string, optionsOrSettings?: Options | Settings): Promise; +} +declare function scandirSync(path: string, optionsOrSettings?: Options | Settings): Entry[]; +export { scandir, scandirSync, Settings, AsyncCallback, Dirent, Entry, FileSystemAdapter, ReaddirAsynchronousMethod, ReaddirSynchronousMethod, Options }; diff --git a/node_modules/@nodelib/fs.scandir/out/index.js b/node_modules/@nodelib/fs.scandir/out/index.js new file mode 100644 index 00000000..99c70d3d --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/index.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Settings = exports.scandirSync = exports.scandir = void 0; +const async = require("./providers/async"); +const sync = require("./providers/sync"); +const settings_1 = require("./settings"); +exports.Settings = settings_1.default; +function scandir(path, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + async.read(path, getSettings(), optionsOrSettingsOrCallback); + return; + } + async.read(path, getSettings(optionsOrSettingsOrCallback), callback); +} +exports.scandir = scandir; +function scandirSync(path, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + return sync.read(path, settings); +} +exports.scandirSync = scandirSync; +function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); +} diff --git a/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts b/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts new file mode 100644 index 00000000..5829676d --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/async.d.ts @@ -0,0 +1,7 @@ +/// +import type Settings from '../settings'; +import type { Entry } from '../types'; +export declare type AsyncCallback = (error: NodeJS.ErrnoException, entries: Entry[]) => void; +export declare function read(directory: string, settings: Settings, callback: AsyncCallback): void; +export declare function readdirWithFileTypes(directory: string, settings: Settings, callback: AsyncCallback): void; +export declare function readdir(directory: string, settings: Settings, callback: AsyncCallback): void; diff --git a/node_modules/@nodelib/fs.scandir/out/providers/async.js b/node_modules/@nodelib/fs.scandir/out/providers/async.js new file mode 100644 index 00000000..e8e2f0a9 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/async.js @@ -0,0 +1,104 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; +const fsStat = require("@nodelib/fs.stat"); +const rpl = require("run-parallel"); +const constants_1 = require("../constants"); +const utils = require("../utils"); +const common = require("./common"); +function read(directory, settings, callback) { + if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { + readdirWithFileTypes(directory, settings, callback); + return; + } + readdir(directory, settings, callback); +} +exports.read = read; +function readdirWithFileTypes(directory, settings, callback) { + settings.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => { + if (readdirError !== null) { + callFailureCallback(callback, readdirError); + return; + } + const entries = dirents.map((dirent) => ({ + dirent, + name: dirent.name, + path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) + })); + if (!settings.followSymbolicLinks) { + callSuccessCallback(callback, entries); + return; + } + const tasks = entries.map((entry) => makeRplTaskEntry(entry, settings)); + rpl(tasks, (rplError, rplEntries) => { + if (rplError !== null) { + callFailureCallback(callback, rplError); + return; + } + callSuccessCallback(callback, rplEntries); + }); + }); +} +exports.readdirWithFileTypes = readdirWithFileTypes; +function makeRplTaskEntry(entry, settings) { + return (done) => { + if (!entry.dirent.isSymbolicLink()) { + done(null, entry); + return; + } + settings.fs.stat(entry.path, (statError, stats) => { + if (statError !== null) { + if (settings.throwErrorOnBrokenSymbolicLink) { + done(statError); + return; + } + done(null, entry); + return; + } + entry.dirent = utils.fs.createDirentFromStats(entry.name, stats); + done(null, entry); + }); + }; +} +function readdir(directory, settings, callback) { + settings.fs.readdir(directory, (readdirError, names) => { + if (readdirError !== null) { + callFailureCallback(callback, readdirError); + return; + } + const tasks = names.map((name) => { + const path = common.joinPathSegments(directory, name, settings.pathSegmentSeparator); + return (done) => { + fsStat.stat(path, settings.fsStatSettings, (error, stats) => { + if (error !== null) { + done(error); + return; + } + const entry = { + name, + path, + dirent: utils.fs.createDirentFromStats(name, stats) + }; + if (settings.stats) { + entry.stats = stats; + } + done(null, entry); + }); + }; + }); + rpl(tasks, (rplError, entries) => { + if (rplError !== null) { + callFailureCallback(callback, rplError); + return; + } + callSuccessCallback(callback, entries); + }); + }); +} +exports.readdir = readdir; +function callFailureCallback(callback, error) { + callback(error); +} +function callSuccessCallback(callback, result) { + callback(null, result); +} diff --git a/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts b/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts new file mode 100644 index 00000000..2b4d08b5 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/common.d.ts @@ -0,0 +1 @@ +export declare function joinPathSegments(a: string, b: string, separator: string): string; diff --git a/node_modules/@nodelib/fs.scandir/out/providers/common.js b/node_modules/@nodelib/fs.scandir/out/providers/common.js new file mode 100644 index 00000000..8724cb59 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/common.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.joinPathSegments = void 0; +function joinPathSegments(a, b, separator) { + /** + * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`). + */ + if (a.endsWith(separator)) { + return a + b; + } + return a + separator + b; +} +exports.joinPathSegments = joinPathSegments; diff --git a/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts b/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts new file mode 100644 index 00000000..e05c8f07 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts @@ -0,0 +1,5 @@ +import type Settings from '../settings'; +import type { Entry } from '../types'; +export declare function read(directory: string, settings: Settings): Entry[]; +export declare function readdirWithFileTypes(directory: string, settings: Settings): Entry[]; +export declare function readdir(directory: string, settings: Settings): Entry[]; diff --git a/node_modules/@nodelib/fs.scandir/out/providers/sync.js b/node_modules/@nodelib/fs.scandir/out/providers/sync.js new file mode 100644 index 00000000..146db343 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/providers/sync.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.readdir = exports.readdirWithFileTypes = exports.read = void 0; +const fsStat = require("@nodelib/fs.stat"); +const constants_1 = require("../constants"); +const utils = require("../utils"); +const common = require("./common"); +function read(directory, settings) { + if (!settings.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) { + return readdirWithFileTypes(directory, settings); + } + return readdir(directory, settings); +} +exports.read = read; +function readdirWithFileTypes(directory, settings) { + const dirents = settings.fs.readdirSync(directory, { withFileTypes: true }); + return dirents.map((dirent) => { + const entry = { + dirent, + name: dirent.name, + path: common.joinPathSegments(directory, dirent.name, settings.pathSegmentSeparator) + }; + if (entry.dirent.isSymbolicLink() && settings.followSymbolicLinks) { + try { + const stats = settings.fs.statSync(entry.path); + entry.dirent = utils.fs.createDirentFromStats(entry.name, stats); + } + catch (error) { + if (settings.throwErrorOnBrokenSymbolicLink) { + throw error; + } + } + } + return entry; + }); +} +exports.readdirWithFileTypes = readdirWithFileTypes; +function readdir(directory, settings) { + const names = settings.fs.readdirSync(directory); + return names.map((name) => { + const entryPath = common.joinPathSegments(directory, name, settings.pathSegmentSeparator); + const stats = fsStat.statSync(entryPath, settings.fsStatSettings); + const entry = { + name, + path: entryPath, + dirent: utils.fs.createDirentFromStats(name, stats) + }; + if (settings.stats) { + entry.stats = stats; + } + return entry; + }); +} +exports.readdir = readdir; diff --git a/node_modules/@nodelib/fs.scandir/out/settings.d.ts b/node_modules/@nodelib/fs.scandir/out/settings.d.ts new file mode 100644 index 00000000..a0db1155 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/settings.d.ts @@ -0,0 +1,20 @@ +import * as fsStat from '@nodelib/fs.stat'; +import * as fs from './adapters/fs'; +export interface Options { + followSymbolicLinks?: boolean; + fs?: Partial; + pathSegmentSeparator?: string; + stats?: boolean; + throwErrorOnBrokenSymbolicLink?: boolean; +} +export default class Settings { + private readonly _options; + readonly followSymbolicLinks: boolean; + readonly fs: fs.FileSystemAdapter; + readonly pathSegmentSeparator: string; + readonly stats: boolean; + readonly throwErrorOnBrokenSymbolicLink: boolean; + readonly fsStatSettings: fsStat.Settings; + constructor(_options?: Options); + private _getValue; +} diff --git a/node_modules/@nodelib/fs.scandir/out/settings.js b/node_modules/@nodelib/fs.scandir/out/settings.js new file mode 100644 index 00000000..15a3e8cd --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/settings.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const fsStat = require("@nodelib/fs.stat"); +const fs = require("./adapters/fs"); +class Settings { + constructor(_options = {}) { + this._options = _options; + this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false); + this.fs = fs.createFileSystemAdapter(this._options.fs); + this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep); + this.stats = this._getValue(this._options.stats, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); + this.fsStatSettings = new fsStat.Settings({ + followSymbolicLink: this.followSymbolicLinks, + fs: this.fs, + throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink + }); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } +} +exports.default = Settings; diff --git a/node_modules/@nodelib/fs.scandir/out/types/index.d.ts b/node_modules/@nodelib/fs.scandir/out/types/index.d.ts new file mode 100644 index 00000000..f326c5e5 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/types/index.d.ts @@ -0,0 +1,20 @@ +/// +import type * as fs from 'fs'; +export interface Entry { + dirent: Dirent; + name: string; + path: string; + stats?: Stats; +} +export declare type Stats = fs.Stats; +export declare type ErrnoException = NodeJS.ErrnoException; +export interface Dirent { + isBlockDevice: () => boolean; + isCharacterDevice: () => boolean; + isDirectory: () => boolean; + isFIFO: () => boolean; + isFile: () => boolean; + isSocket: () => boolean; + isSymbolicLink: () => boolean; + name: string; +} diff --git a/node_modules/@nodelib/fs.scandir/out/types/index.js b/node_modules/@nodelib/fs.scandir/out/types/index.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/types/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts b/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts new file mode 100644 index 00000000..bb863f15 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts @@ -0,0 +1,2 @@ +import type { Dirent, Stats } from '../types'; +export declare function createDirentFromStats(name: string, stats: Stats): Dirent; diff --git a/node_modules/@nodelib/fs.scandir/out/utils/fs.js b/node_modules/@nodelib/fs.scandir/out/utils/fs.js new file mode 100644 index 00000000..ace7c74d --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/utils/fs.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createDirentFromStats = void 0; +class DirentFromStats { + constructor(name, stats) { + this.name = name; + this.isBlockDevice = stats.isBlockDevice.bind(stats); + this.isCharacterDevice = stats.isCharacterDevice.bind(stats); + this.isDirectory = stats.isDirectory.bind(stats); + this.isFIFO = stats.isFIFO.bind(stats); + this.isFile = stats.isFile.bind(stats); + this.isSocket = stats.isSocket.bind(stats); + this.isSymbolicLink = stats.isSymbolicLink.bind(stats); + } +} +function createDirentFromStats(name, stats) { + return new DirentFromStats(name, stats); +} +exports.createDirentFromStats = createDirentFromStats; diff --git a/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts b/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts new file mode 100644 index 00000000..1b41954e --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/utils/index.d.ts @@ -0,0 +1,2 @@ +import * as fs from './fs'; +export { fs }; diff --git a/node_modules/@nodelib/fs.scandir/out/utils/index.js b/node_modules/@nodelib/fs.scandir/out/utils/index.js new file mode 100644 index 00000000..f5de129f --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/out/utils/index.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.fs = void 0; +const fs = require("./fs"); +exports.fs = fs; diff --git a/node_modules/@nodelib/fs.scandir/package.json b/node_modules/@nodelib/fs.scandir/package.json new file mode 100644 index 00000000..d3a89241 --- /dev/null +++ b/node_modules/@nodelib/fs.scandir/package.json @@ -0,0 +1,44 @@ +{ + "name": "@nodelib/fs.scandir", + "version": "2.1.5", + "description": "List files and directories inside the specified directory", + "license": "MIT", + "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.scandir", + "keywords": [ + "NodeLib", + "fs", + "FileSystem", + "file system", + "scandir", + "readdir", + "dirent" + ], + "engines": { + "node": ">= 8" + }, + "files": [ + "out/**", + "!out/**/*.map", + "!out/**/*.spec.*" + ], + "main": "out/index.js", + "typings": "out/index.d.ts", + "scripts": { + "clean": "rimraf {tsconfig.tsbuildinfo,out}", + "lint": "eslint \"src/**/*.ts\" --cache", + "compile": "tsc -b .", + "compile:watch": "tsc -p . --watch --sourceMap", + "test": "mocha \"out/**/*.spec.js\" -s 0", + "build": "npm run clean && npm run compile && npm run lint && npm test", + "watch": "npm run clean && npm run compile:watch" + }, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "devDependencies": { + "@nodelib/fs.macchiato": "1.0.4", + "@types/run-parallel": "^1.1.0" + }, + "gitHead": "d6a7960d5281d3dd5f8e2efba49bb552d090f562" +} diff --git a/node_modules/@nodelib/fs.stat/LICENSE b/node_modules/@nodelib/fs.stat/LICENSE new file mode 100644 index 00000000..65a99946 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Denis Malinochkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@nodelib/fs.stat/README.md b/node_modules/@nodelib/fs.stat/README.md new file mode 100644 index 00000000..686f0471 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/README.md @@ -0,0 +1,126 @@ +# @nodelib/fs.stat + +> Get the status of a file with some features. + +## :bulb: Highlights + +Wrapper around standard method `fs.lstat` and `fs.stat` with some features. + +* :beginner: Normally follows symbolic link. +* :gear: Can safely work with broken symbolic link. + +## Install + +```console +npm install @nodelib/fs.stat +``` + +## Usage + +```ts +import * as fsStat from '@nodelib/fs.stat'; + +fsStat.stat('path', (error, stats) => { /* … */ }); +``` + +## API + +### .stat(path, [optionsOrSettings], callback) + +Returns an instance of `fs.Stats` class for provided path with standard callback-style. + +```ts +fsStat.stat('path', (error, stats) => { /* … */ }); +fsStat.stat('path', {}, (error, stats) => { /* … */ }); +fsStat.stat('path', new fsStat.Settings(), (error, stats) => { /* … */ }); +``` + +### .statSync(path, [optionsOrSettings]) + +Returns an instance of `fs.Stats` class for provided path. + +```ts +const stats = fsStat.stat('path'); +const stats = fsStat.stat('path', {}); +const stats = fsStat.stat('path', new fsStat.Settings()); +``` + +#### path + +* Required: `true` +* Type: `string | Buffer | URL` + +A path to a file. If a URL is provided, it must use the `file:` protocol. + +#### optionsOrSettings + +* Required: `false` +* Type: `Options | Settings` +* Default: An instance of `Settings` class + +An [`Options`](#options) object or an instance of [`Settings`](#settings) class. + +> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class. + +### Settings([options]) + +A class of full settings of the package. + +```ts +const settings = new fsStat.Settings({ followSymbolicLink: false }); + +const stats = fsStat.stat('path', settings); +``` + +## Options + +### `followSymbolicLink` + +* Type: `boolean` +* Default: `true` + +Follow symbolic link or not. Call `fs.stat` on symbolic link if `true`. + +### `markSymbolicLink` + +* Type: `boolean` +* Default: `false` + +Mark symbolic link by setting the return value of `isSymbolicLink` function to always `true` (even after `fs.stat`). + +> :book: Can be used if you want to know what is hidden behind a symbolic link, but still continue to know that it is a symbolic link. + +### `throwErrorOnBrokenSymbolicLink` + +* Type: `boolean` +* Default: `true` + +Throw an error when symbolic link is broken if `true` or safely return `lstat` call if `false`. + +### `fs` + +* Type: [`FileSystemAdapter`](./src/adapters/fs.ts) +* Default: A default FS methods + +By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own. + +```ts +interface FileSystemAdapter { + lstat?: typeof fs.lstat; + stat?: typeof fs.stat; + lstatSync?: typeof fs.lstatSync; + statSync?: typeof fs.statSync; +} + +const settings = new fsStat.Settings({ + fs: { lstat: fakeLstat } +}); +``` + +## Changelog + +See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version. + +## License + +This software is released under the terms of the MIT license. diff --git a/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts b/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts new file mode 100644 index 00000000..3af759c9 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts @@ -0,0 +1,13 @@ +/// +import * as fs from 'fs'; +import type { ErrnoException } from '../types'; +export declare type StatAsynchronousMethod = (path: string, callback: (error: ErrnoException | null, stats: fs.Stats) => void) => void; +export declare type StatSynchronousMethod = (path: string) => fs.Stats; +export interface FileSystemAdapter { + lstat: StatAsynchronousMethod; + stat: StatAsynchronousMethod; + lstatSync: StatSynchronousMethod; + statSync: StatSynchronousMethod; +} +export declare const FILE_SYSTEM_ADAPTER: FileSystemAdapter; +export declare function createFileSystemAdapter(fsMethods?: Partial): FileSystemAdapter; diff --git a/node_modules/@nodelib/fs.stat/out/adapters/fs.js b/node_modules/@nodelib/fs.stat/out/adapters/fs.js new file mode 100644 index 00000000..8dc08c8c --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/adapters/fs.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createFileSystemAdapter = exports.FILE_SYSTEM_ADAPTER = void 0; +const fs = require("fs"); +exports.FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + stat: fs.stat, + lstatSync: fs.lstatSync, + statSync: fs.statSync +}; +function createFileSystemAdapter(fsMethods) { + if (fsMethods === undefined) { + return exports.FILE_SYSTEM_ADAPTER; + } + return Object.assign(Object.assign({}, exports.FILE_SYSTEM_ADAPTER), fsMethods); +} +exports.createFileSystemAdapter = createFileSystemAdapter; diff --git a/node_modules/@nodelib/fs.stat/out/index.d.ts b/node_modules/@nodelib/fs.stat/out/index.d.ts new file mode 100644 index 00000000..f95db995 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/index.d.ts @@ -0,0 +1,12 @@ +import type { FileSystemAdapter, StatAsynchronousMethod, StatSynchronousMethod } from './adapters/fs'; +import * as async from './providers/async'; +import Settings, { Options } from './settings'; +import type { Stats } from './types'; +declare type AsyncCallback = async.AsyncCallback; +declare function stat(path: string, callback: AsyncCallback): void; +declare function stat(path: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void; +declare namespace stat { + function __promisify__(path: string, optionsOrSettings?: Options | Settings): Promise; +} +declare function statSync(path: string, optionsOrSettings?: Options | Settings): Stats; +export { Settings, stat, statSync, AsyncCallback, FileSystemAdapter, StatAsynchronousMethod, StatSynchronousMethod, Options, Stats }; diff --git a/node_modules/@nodelib/fs.stat/out/index.js b/node_modules/@nodelib/fs.stat/out/index.js new file mode 100644 index 00000000..b23f7510 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/index.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.statSync = exports.stat = exports.Settings = void 0; +const async = require("./providers/async"); +const sync = require("./providers/sync"); +const settings_1 = require("./settings"); +exports.Settings = settings_1.default; +function stat(path, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + async.read(path, getSettings(), optionsOrSettingsOrCallback); + return; + } + async.read(path, getSettings(optionsOrSettingsOrCallback), callback); +} +exports.stat = stat; +function statSync(path, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + return sync.read(path, settings); +} +exports.statSync = statSync; +function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); +} diff --git a/node_modules/@nodelib/fs.stat/out/providers/async.d.ts b/node_modules/@nodelib/fs.stat/out/providers/async.d.ts new file mode 100644 index 00000000..85423ce1 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/providers/async.d.ts @@ -0,0 +1,4 @@ +import type Settings from '../settings'; +import type { ErrnoException, Stats } from '../types'; +export declare type AsyncCallback = (error: ErrnoException, stats: Stats) => void; +export declare function read(path: string, settings: Settings, callback: AsyncCallback): void; diff --git a/node_modules/@nodelib/fs.stat/out/providers/async.js b/node_modules/@nodelib/fs.stat/out/providers/async.js new file mode 100644 index 00000000..983ff0e6 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/providers/async.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.read = void 0; +function read(path, settings, callback) { + settings.fs.lstat(path, (lstatError, lstat) => { + if (lstatError !== null) { + callFailureCallback(callback, lstatError); + return; + } + if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { + callSuccessCallback(callback, lstat); + return; + } + settings.fs.stat(path, (statError, stat) => { + if (statError !== null) { + if (settings.throwErrorOnBrokenSymbolicLink) { + callFailureCallback(callback, statError); + return; + } + callSuccessCallback(callback, lstat); + return; + } + if (settings.markSymbolicLink) { + stat.isSymbolicLink = () => true; + } + callSuccessCallback(callback, stat); + }); + }); +} +exports.read = read; +function callFailureCallback(callback, error) { + callback(error); +} +function callSuccessCallback(callback, result) { + callback(null, result); +} diff --git a/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts b/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts new file mode 100644 index 00000000..428c3d79 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/providers/sync.d.ts @@ -0,0 +1,3 @@ +import type Settings from '../settings'; +import type { Stats } from '../types'; +export declare function read(path: string, settings: Settings): Stats; diff --git a/node_modules/@nodelib/fs.stat/out/providers/sync.js b/node_modules/@nodelib/fs.stat/out/providers/sync.js new file mode 100644 index 00000000..1521c361 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/providers/sync.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.read = void 0; +function read(path, settings) { + const lstat = settings.fs.lstatSync(path); + if (!lstat.isSymbolicLink() || !settings.followSymbolicLink) { + return lstat; + } + try { + const stat = settings.fs.statSync(path); + if (settings.markSymbolicLink) { + stat.isSymbolicLink = () => true; + } + return stat; + } + catch (error) { + if (!settings.throwErrorOnBrokenSymbolicLink) { + return lstat; + } + throw error; + } +} +exports.read = read; diff --git a/node_modules/@nodelib/fs.stat/out/settings.d.ts b/node_modules/@nodelib/fs.stat/out/settings.d.ts new file mode 100644 index 00000000..f4b3d444 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/settings.d.ts @@ -0,0 +1,16 @@ +import * as fs from './adapters/fs'; +export interface Options { + followSymbolicLink?: boolean; + fs?: Partial; + markSymbolicLink?: boolean; + throwErrorOnBrokenSymbolicLink?: boolean; +} +export default class Settings { + private readonly _options; + readonly followSymbolicLink: boolean; + readonly fs: fs.FileSystemAdapter; + readonly markSymbolicLink: boolean; + readonly throwErrorOnBrokenSymbolicLink: boolean; + constructor(_options?: Options); + private _getValue; +} diff --git a/node_modules/@nodelib/fs.stat/out/settings.js b/node_modules/@nodelib/fs.stat/out/settings.js new file mode 100644 index 00000000..111ec09c --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/settings.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fs = require("./adapters/fs"); +class Settings { + constructor(_options = {}) { + this._options = _options; + this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true); + this.fs = fs.createFileSystemAdapter(this._options.fs); + this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } +} +exports.default = Settings; diff --git a/node_modules/@nodelib/fs.stat/out/types/index.d.ts b/node_modules/@nodelib/fs.stat/out/types/index.d.ts new file mode 100644 index 00000000..74c08ed2 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/types/index.d.ts @@ -0,0 +1,4 @@ +/// +import type * as fs from 'fs'; +export declare type Stats = fs.Stats; +export declare type ErrnoException = NodeJS.ErrnoException; diff --git a/node_modules/@nodelib/fs.stat/out/types/index.js b/node_modules/@nodelib/fs.stat/out/types/index.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/out/types/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@nodelib/fs.stat/package.json b/node_modules/@nodelib/fs.stat/package.json new file mode 100644 index 00000000..f2540c28 --- /dev/null +++ b/node_modules/@nodelib/fs.stat/package.json @@ -0,0 +1,37 @@ +{ + "name": "@nodelib/fs.stat", + "version": "2.0.5", + "description": "Get the status of a file with some features", + "license": "MIT", + "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.stat", + "keywords": [ + "NodeLib", + "fs", + "FileSystem", + "file system", + "stat" + ], + "engines": { + "node": ">= 8" + }, + "files": [ + "out/**", + "!out/**/*.map", + "!out/**/*.spec.*" + ], + "main": "out/index.js", + "typings": "out/index.d.ts", + "scripts": { + "clean": "rimraf {tsconfig.tsbuildinfo,out}", + "lint": "eslint \"src/**/*.ts\" --cache", + "compile": "tsc -b .", + "compile:watch": "tsc -p . --watch --sourceMap", + "test": "mocha \"out/**/*.spec.js\" -s 0", + "build": "npm run clean && npm run compile && npm run lint && npm test", + "watch": "npm run clean && npm run compile:watch" + }, + "devDependencies": { + "@nodelib/fs.macchiato": "1.0.4" + }, + "gitHead": "d6a7960d5281d3dd5f8e2efba49bb552d090f562" +} diff --git a/node_modules/@nodelib/fs.walk/LICENSE b/node_modules/@nodelib/fs.walk/LICENSE new file mode 100644 index 00000000..65a99946 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Denis Malinochkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/@nodelib/fs.walk/README.md b/node_modules/@nodelib/fs.walk/README.md new file mode 100644 index 00000000..6ccc08db --- /dev/null +++ b/node_modules/@nodelib/fs.walk/README.md @@ -0,0 +1,215 @@ +# @nodelib/fs.walk + +> A library for efficiently walking a directory recursively. + +## :bulb: Highlights + +* :moneybag: Returns useful information: `name`, `path`, `dirent` and `stats` (optional). +* :rocket: On Node.js 10.10+ uses the mechanism without additional calls to determine the entry type for performance reasons. See [`old` and `modern` mode](https://github.com/nodelib/nodelib/blob/master/packages/fs/fs.scandir/README.md#old-and-modern-mode). +* :gear: Built-in directories/files and error filtering system. +* :link: Can safely work with broken symbolic links. + +## Install + +```console +npm install @nodelib/fs.walk +``` + +## Usage + +```ts +import * as fsWalk from '@nodelib/fs.walk'; + +fsWalk.walk('path', (error, entries) => { /* … */ }); +``` + +## API + +### .walk(path, [optionsOrSettings], callback) + +Reads the directory recursively and asynchronously. Requires a callback function. + +> :book: If you want to use the Promise API, use `util.promisify`. + +```ts +fsWalk.walk('path', (error, entries) => { /* … */ }); +fsWalk.walk('path', {}, (error, entries) => { /* … */ }); +fsWalk.walk('path', new fsWalk.Settings(), (error, entries) => { /* … */ }); +``` + +### .walkStream(path, [optionsOrSettings]) + +Reads the directory recursively and asynchronously. [Readable Stream](https://nodejs.org/dist/latest-v12.x/docs/api/stream.html#stream_readable_streams) is used as a provider. + +```ts +const stream = fsWalk.walkStream('path'); +const stream = fsWalk.walkStream('path', {}); +const stream = fsWalk.walkStream('path', new fsWalk.Settings()); +``` + +### .walkSync(path, [optionsOrSettings]) + +Reads the directory recursively and synchronously. Returns an array of entries. + +```ts +const entries = fsWalk.walkSync('path'); +const entries = fsWalk.walkSync('path', {}); +const entries = fsWalk.walkSync('path', new fsWalk.Settings()); +``` + +#### path + +* Required: `true` +* Type: `string | Buffer | URL` + +A path to a file. If a URL is provided, it must use the `file:` protocol. + +#### optionsOrSettings + +* Required: `false` +* Type: `Options | Settings` +* Default: An instance of `Settings` class + +An [`Options`](#options) object or an instance of [`Settings`](#settings) class. + +> :book: When you pass a plain object, an instance of the `Settings` class will be created automatically. If you plan to call the method frequently, use a pre-created instance of the `Settings` class. + +### Settings([options]) + +A class of full settings of the package. + +```ts +const settings = new fsWalk.Settings({ followSymbolicLinks: true }); + +const entries = fsWalk.walkSync('path', settings); +``` + +## Entry + +* `name` — The name of the entry (`unknown.txt`). +* `path` — The path of the entry relative to call directory (`root/unknown.txt`). +* `dirent` — An instance of [`fs.Dirent`](./src/types/index.ts) class. +* [`stats`] — An instance of `fs.Stats` class. + +## Options + +### basePath + +* Type: `string` +* Default: `undefined` + +By default, all paths are built relative to the root path. You can use this option to set custom root path. + +In the example below we read the files from the `root` directory, but in the results the root path will be `custom`. + +```ts +fsWalk.walkSync('root'); // → ['root/file.txt'] +fsWalk.walkSync('root', { basePath: 'custom' }); // → ['custom/file.txt'] +``` + +### concurrency + +* Type: `number` +* Default: `Infinity` + +The maximum number of concurrent calls to `fs.readdir`. + +> :book: The higher the number, the higher performance and the load on the File System. If you want to read in quiet mode, set the value to `4 * os.cpus().length` (4 is default size of [thread pool work scheduling](http://docs.libuv.org/en/v1.x/threadpool.html#thread-pool-work-scheduling)). + +### deepFilter + +* Type: [`DeepFilterFunction`](./src/settings.ts) +* Default: `undefined` + +A function that indicates whether the directory will be read deep or not. + +```ts +// Skip all directories that starts with `node_modules` +const filter: DeepFilterFunction = (entry) => !entry.path.startsWith('node_modules'); +``` + +### entryFilter + +* Type: [`EntryFilterFunction`](./src/settings.ts) +* Default: `undefined` + +A function that indicates whether the entry will be included to results or not. + +```ts +// Exclude all `.js` files from results +const filter: EntryFilterFunction = (entry) => !entry.name.endsWith('.js'); +``` + +### errorFilter + +* Type: [`ErrorFilterFunction`](./src/settings.ts) +* Default: `undefined` + +A function that allows you to skip errors that occur when reading directories. + +For example, you can skip `ENOENT` errors if required: + +```ts +// Skip all ENOENT errors +const filter: ErrorFilterFunction = (error) => error.code == 'ENOENT'; +``` + +### stats + +* Type: `boolean` +* Default: `false` + +Adds an instance of `fs.Stats` class to the [`Entry`](#entry). + +> :book: Always use `fs.readdir` with additional `fs.lstat/fs.stat` calls to determine the entry type. + +### followSymbolicLinks + +* Type: `boolean` +* Default: `false` + +Follow symbolic links or not. Call `fs.stat` on symbolic link if `true`. + +### `throwErrorOnBrokenSymbolicLink` + +* Type: `boolean` +* Default: `true` + +Throw an error when symbolic link is broken if `true` or safely return `lstat` call if `false`. + +### `pathSegmentSeparator` + +* Type: `string` +* Default: `path.sep` + +By default, this package uses the correct path separator for your OS (`\` on Windows, `/` on Unix-like systems). But you can set this option to any separator character(s) that you want to use instead. + +### `fs` + +* Type: `FileSystemAdapter` +* Default: A default FS methods + +By default, the built-in Node.js module (`fs`) is used to work with the file system. You can replace any method with your own. + +```ts +interface FileSystemAdapter { + lstat: typeof fs.lstat; + stat: typeof fs.stat; + lstatSync: typeof fs.lstatSync; + statSync: typeof fs.statSync; + readdir: typeof fs.readdir; + readdirSync: typeof fs.readdirSync; +} + +const settings = new fsWalk.Settings({ + fs: { lstat: fakeLstat } +}); +``` + +## Changelog + +See the [Releases section of our GitHub project](https://github.com/nodelib/nodelib/releases) for changelog for each release version. + +## License + +This software is released under the terms of the MIT license. diff --git a/node_modules/@nodelib/fs.walk/out/index.d.ts b/node_modules/@nodelib/fs.walk/out/index.d.ts new file mode 100644 index 00000000..8864c7bf --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/index.d.ts @@ -0,0 +1,14 @@ +/// +import type { Readable } from 'stream'; +import type { Dirent, FileSystemAdapter } from '@nodelib/fs.scandir'; +import { AsyncCallback } from './providers/async'; +import Settings, { DeepFilterFunction, EntryFilterFunction, ErrorFilterFunction, Options } from './settings'; +import type { Entry } from './types'; +declare function walk(directory: string, callback: AsyncCallback): void; +declare function walk(directory: string, optionsOrSettings: Options | Settings, callback: AsyncCallback): void; +declare namespace walk { + function __promisify__(directory: string, optionsOrSettings?: Options | Settings): Promise; +} +declare function walkSync(directory: string, optionsOrSettings?: Options | Settings): Entry[]; +declare function walkStream(directory: string, optionsOrSettings?: Options | Settings): Readable; +export { walk, walkSync, walkStream, Settings, AsyncCallback, Dirent, Entry, FileSystemAdapter, Options, DeepFilterFunction, EntryFilterFunction, ErrorFilterFunction }; diff --git a/node_modules/@nodelib/fs.walk/out/index.js b/node_modules/@nodelib/fs.walk/out/index.js new file mode 100644 index 00000000..15207874 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/index.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Settings = exports.walkStream = exports.walkSync = exports.walk = void 0; +const async_1 = require("./providers/async"); +const stream_1 = require("./providers/stream"); +const sync_1 = require("./providers/sync"); +const settings_1 = require("./settings"); +exports.Settings = settings_1.default; +function walk(directory, optionsOrSettingsOrCallback, callback) { + if (typeof optionsOrSettingsOrCallback === 'function') { + new async_1.default(directory, getSettings()).read(optionsOrSettingsOrCallback); + return; + } + new async_1.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback); +} +exports.walk = walk; +function walkSync(directory, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + const provider = new sync_1.default(directory, settings); + return provider.read(); +} +exports.walkSync = walkSync; +function walkStream(directory, optionsOrSettings) { + const settings = getSettings(optionsOrSettings); + const provider = new stream_1.default(directory, settings); + return provider.read(); +} +exports.walkStream = walkStream; +function getSettings(settingsOrOptions = {}) { + if (settingsOrOptions instanceof settings_1.default) { + return settingsOrOptions; + } + return new settings_1.default(settingsOrOptions); +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/async.d.ts b/node_modules/@nodelib/fs.walk/out/providers/async.d.ts new file mode 100644 index 00000000..0f6717d7 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/async.d.ts @@ -0,0 +1,12 @@ +import AsyncReader from '../readers/async'; +import type Settings from '../settings'; +import type { Entry, Errno } from '../types'; +export declare type AsyncCallback = (error: Errno, entries: Entry[]) => void; +export default class AsyncProvider { + private readonly _root; + private readonly _settings; + protected readonly _reader: AsyncReader; + private readonly _storage; + constructor(_root: string, _settings: Settings); + read(callback: AsyncCallback): void; +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/async.js b/node_modules/@nodelib/fs.walk/out/providers/async.js new file mode 100644 index 00000000..51d3be51 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/async.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const async_1 = require("../readers/async"); +class AsyncProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new async_1.default(this._root, this._settings); + this._storage = []; + } + read(callback) { + this._reader.onError((error) => { + callFailureCallback(callback, error); + }); + this._reader.onEntry((entry) => { + this._storage.push(entry); + }); + this._reader.onEnd(() => { + callSuccessCallback(callback, this._storage); + }); + this._reader.read(); + } +} +exports.default = AsyncProvider; +function callFailureCallback(callback, error) { + callback(error); +} +function callSuccessCallback(callback, entries) { + callback(null, entries); +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/index.d.ts b/node_modules/@nodelib/fs.walk/out/providers/index.d.ts new file mode 100644 index 00000000..874f60c5 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/index.d.ts @@ -0,0 +1,4 @@ +import AsyncProvider from './async'; +import StreamProvider from './stream'; +import SyncProvider from './sync'; +export { AsyncProvider, StreamProvider, SyncProvider }; diff --git a/node_modules/@nodelib/fs.walk/out/providers/index.js b/node_modules/@nodelib/fs.walk/out/providers/index.js new file mode 100644 index 00000000..4c2529ce --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/index.js @@ -0,0 +1,9 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.SyncProvider = exports.StreamProvider = exports.AsyncProvider = void 0; +const async_1 = require("./async"); +exports.AsyncProvider = async_1.default; +const stream_1 = require("./stream"); +exports.StreamProvider = stream_1.default; +const sync_1 = require("./sync"); +exports.SyncProvider = sync_1.default; diff --git a/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts b/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts new file mode 100644 index 00000000..294185f8 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/stream.d.ts @@ -0,0 +1,12 @@ +/// +import { Readable } from 'stream'; +import AsyncReader from '../readers/async'; +import type Settings from '../settings'; +export default class StreamProvider { + private readonly _root; + private readonly _settings; + protected readonly _reader: AsyncReader; + protected readonly _stream: Readable; + constructor(_root: string, _settings: Settings); + read(): Readable; +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/stream.js b/node_modules/@nodelib/fs.walk/out/providers/stream.js new file mode 100644 index 00000000..51298b0f --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/stream.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const stream_1 = require("stream"); +const async_1 = require("../readers/async"); +class StreamProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new async_1.default(this._root, this._settings); + this._stream = new stream_1.Readable({ + objectMode: true, + read: () => { }, + destroy: () => { + if (!this._reader.isDestroyed) { + this._reader.destroy(); + } + } + }); + } + read() { + this._reader.onError((error) => { + this._stream.emit('error', error); + }); + this._reader.onEntry((entry) => { + this._stream.push(entry); + }); + this._reader.onEnd(() => { + this._stream.push(null); + }); + this._reader.read(); + return this._stream; + } +} +exports.default = StreamProvider; diff --git a/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts b/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts new file mode 100644 index 00000000..551c42e4 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/sync.d.ts @@ -0,0 +1,10 @@ +import SyncReader from '../readers/sync'; +import type Settings from '../settings'; +import type { Entry } from '../types'; +export default class SyncProvider { + private readonly _root; + private readonly _settings; + protected readonly _reader: SyncReader; + constructor(_root: string, _settings: Settings); + read(): Entry[]; +} diff --git a/node_modules/@nodelib/fs.walk/out/providers/sync.js b/node_modules/@nodelib/fs.walk/out/providers/sync.js new file mode 100644 index 00000000..faab6ca2 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/providers/sync.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const sync_1 = require("../readers/sync"); +class SyncProvider { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._reader = new sync_1.default(this._root, this._settings); + } + read() { + return this._reader.read(); + } +} +exports.default = SyncProvider; diff --git a/node_modules/@nodelib/fs.walk/out/readers/async.d.ts b/node_modules/@nodelib/fs.walk/out/readers/async.d.ts new file mode 100644 index 00000000..9acf4e6c --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/async.d.ts @@ -0,0 +1,30 @@ +/// +import { EventEmitter } from 'events'; +import * as fsScandir from '@nodelib/fs.scandir'; +import type Settings from '../settings'; +import type { Entry, Errno } from '../types'; +import Reader from './reader'; +declare type EntryEventCallback = (entry: Entry) => void; +declare type ErrorEventCallback = (error: Errno) => void; +declare type EndEventCallback = () => void; +export default class AsyncReader extends Reader { + protected readonly _settings: Settings; + protected readonly _scandir: typeof fsScandir.scandir; + protected readonly _emitter: EventEmitter; + private readonly _queue; + private _isFatalError; + private _isDestroyed; + constructor(_root: string, _settings: Settings); + read(): EventEmitter; + get isDestroyed(): boolean; + destroy(): void; + onEntry(callback: EntryEventCallback): void; + onError(callback: ErrorEventCallback): void; + onEnd(callback: EndEventCallback): void; + private _pushToQueue; + private _worker; + private _handleError; + private _handleEntry; + private _emitEntry; +} +export {}; diff --git a/node_modules/@nodelib/fs.walk/out/readers/async.js b/node_modules/@nodelib/fs.walk/out/readers/async.js new file mode 100644 index 00000000..ebe8dd57 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/async.js @@ -0,0 +1,97 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const events_1 = require("events"); +const fsScandir = require("@nodelib/fs.scandir"); +const fastq = require("fastq"); +const common = require("./common"); +const reader_1 = require("./reader"); +class AsyncReader extends reader_1.default { + constructor(_root, _settings) { + super(_root, _settings); + this._settings = _settings; + this._scandir = fsScandir.scandir; + this._emitter = new events_1.EventEmitter(); + this._queue = fastq(this._worker.bind(this), this._settings.concurrency); + this._isFatalError = false; + this._isDestroyed = false; + this._queue.drain = () => { + if (!this._isFatalError) { + this._emitter.emit('end'); + } + }; + } + read() { + this._isFatalError = false; + this._isDestroyed = false; + setImmediate(() => { + this._pushToQueue(this._root, this._settings.basePath); + }); + return this._emitter; + } + get isDestroyed() { + return this._isDestroyed; + } + destroy() { + if (this._isDestroyed) { + throw new Error('The reader is already destroyed'); + } + this._isDestroyed = true; + this._queue.killAndDrain(); + } + onEntry(callback) { + this._emitter.on('entry', callback); + } + onError(callback) { + this._emitter.once('error', callback); + } + onEnd(callback) { + this._emitter.once('end', callback); + } + _pushToQueue(directory, base) { + const queueItem = { directory, base }; + this._queue.push(queueItem, (error) => { + if (error !== null) { + this._handleError(error); + } + }); + } + _worker(item, done) { + this._scandir(item.directory, this._settings.fsScandirSettings, (error, entries) => { + if (error !== null) { + done(error, undefined); + return; + } + for (const entry of entries) { + this._handleEntry(entry, item.base); + } + done(null, undefined); + }); + } + _handleError(error) { + if (this._isDestroyed || !common.isFatalError(this._settings, error)) { + return; + } + this._isFatalError = true; + this._isDestroyed = true; + this._emitter.emit('error', error); + } + _handleEntry(entry, base) { + if (this._isDestroyed || this._isFatalError) { + return; + } + const fullpath = entry.path; + if (base !== undefined) { + entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); + } + if (common.isAppliedFilter(this._settings.entryFilter, entry)) { + this._emitEntry(entry); + } + if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { + this._pushToQueue(fullpath, base === undefined ? undefined : entry.path); + } + } + _emitEntry(entry) { + this._emitter.emit('entry', entry); + } +} +exports.default = AsyncReader; diff --git a/node_modules/@nodelib/fs.walk/out/readers/common.d.ts b/node_modules/@nodelib/fs.walk/out/readers/common.d.ts new file mode 100644 index 00000000..5985f97c --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/common.d.ts @@ -0,0 +1,7 @@ +import type { FilterFunction } from '../settings'; +import type Settings from '../settings'; +import type { Errno } from '../types'; +export declare function isFatalError(settings: Settings, error: Errno): boolean; +export declare function isAppliedFilter(filter: FilterFunction | null, value: T): boolean; +export declare function replacePathSegmentSeparator(filepath: string, separator: string): string; +export declare function joinPathSegments(a: string, b: string, separator: string): string; diff --git a/node_modules/@nodelib/fs.walk/out/readers/common.js b/node_modules/@nodelib/fs.walk/out/readers/common.js new file mode 100644 index 00000000..a93572f4 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/common.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.joinPathSegments = exports.replacePathSegmentSeparator = exports.isAppliedFilter = exports.isFatalError = void 0; +function isFatalError(settings, error) { + if (settings.errorFilter === null) { + return true; + } + return !settings.errorFilter(error); +} +exports.isFatalError = isFatalError; +function isAppliedFilter(filter, value) { + return filter === null || filter(value); +} +exports.isAppliedFilter = isAppliedFilter; +function replacePathSegmentSeparator(filepath, separator) { + return filepath.split(/[/\\]/).join(separator); +} +exports.replacePathSegmentSeparator = replacePathSegmentSeparator; +function joinPathSegments(a, b, separator) { + if (a === '') { + return b; + } + /** + * The correct handling of cases when the first segment is a root (`/`, `C:/`) or UNC path (`//?/C:/`). + */ + if (a.endsWith(separator)) { + return a + b; + } + return a + separator + b; +} +exports.joinPathSegments = joinPathSegments; diff --git a/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts b/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts new file mode 100644 index 00000000..e1f383b2 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/reader.d.ts @@ -0,0 +1,6 @@ +import type Settings from '../settings'; +export default class Reader { + protected readonly _root: string; + protected readonly _settings: Settings; + constructor(_root: string, _settings: Settings); +} diff --git a/node_modules/@nodelib/fs.walk/out/readers/reader.js b/node_modules/@nodelib/fs.walk/out/readers/reader.js new file mode 100644 index 00000000..782f07cb --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/reader.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const common = require("./common"); +class Reader { + constructor(_root, _settings) { + this._root = _root; + this._settings = _settings; + this._root = common.replacePathSegmentSeparator(_root, _settings.pathSegmentSeparator); + } +} +exports.default = Reader; diff --git a/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts b/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts new file mode 100644 index 00000000..af410335 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/sync.d.ts @@ -0,0 +1,15 @@ +import * as fsScandir from '@nodelib/fs.scandir'; +import type { Entry } from '../types'; +import Reader from './reader'; +export default class SyncReader extends Reader { + protected readonly _scandir: typeof fsScandir.scandirSync; + private readonly _storage; + private readonly _queue; + read(): Entry[]; + private _pushToQueue; + private _handleQueue; + private _handleDirectory; + private _handleError; + private _handleEntry; + private _pushToStorage; +} diff --git a/node_modules/@nodelib/fs.walk/out/readers/sync.js b/node_modules/@nodelib/fs.walk/out/readers/sync.js new file mode 100644 index 00000000..9a8d5a6f --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/readers/sync.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fsScandir = require("@nodelib/fs.scandir"); +const common = require("./common"); +const reader_1 = require("./reader"); +class SyncReader extends reader_1.default { + constructor() { + super(...arguments); + this._scandir = fsScandir.scandirSync; + this._storage = []; + this._queue = new Set(); + } + read() { + this._pushToQueue(this._root, this._settings.basePath); + this._handleQueue(); + return this._storage; + } + _pushToQueue(directory, base) { + this._queue.add({ directory, base }); + } + _handleQueue() { + for (const item of this._queue.values()) { + this._handleDirectory(item.directory, item.base); + } + } + _handleDirectory(directory, base) { + try { + const entries = this._scandir(directory, this._settings.fsScandirSettings); + for (const entry of entries) { + this._handleEntry(entry, base); + } + } + catch (error) { + this._handleError(error); + } + } + _handleError(error) { + if (!common.isFatalError(this._settings, error)) { + return; + } + throw error; + } + _handleEntry(entry, base) { + const fullpath = entry.path; + if (base !== undefined) { + entry.path = common.joinPathSegments(base, entry.name, this._settings.pathSegmentSeparator); + } + if (common.isAppliedFilter(this._settings.entryFilter, entry)) { + this._pushToStorage(entry); + } + if (entry.dirent.isDirectory() && common.isAppliedFilter(this._settings.deepFilter, entry)) { + this._pushToQueue(fullpath, base === undefined ? undefined : entry.path); + } + } + _pushToStorage(entry) { + this._storage.push(entry); + } +} +exports.default = SyncReader; diff --git a/node_modules/@nodelib/fs.walk/out/settings.d.ts b/node_modules/@nodelib/fs.walk/out/settings.d.ts new file mode 100644 index 00000000..d1c4b45f --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/settings.d.ts @@ -0,0 +1,30 @@ +import * as fsScandir from '@nodelib/fs.scandir'; +import type { Entry, Errno } from './types'; +export declare type FilterFunction = (value: T) => boolean; +export declare type DeepFilterFunction = FilterFunction; +export declare type EntryFilterFunction = FilterFunction; +export declare type ErrorFilterFunction = FilterFunction; +export interface Options { + basePath?: string; + concurrency?: number; + deepFilter?: DeepFilterFunction; + entryFilter?: EntryFilterFunction; + errorFilter?: ErrorFilterFunction; + followSymbolicLinks?: boolean; + fs?: Partial; + pathSegmentSeparator?: string; + stats?: boolean; + throwErrorOnBrokenSymbolicLink?: boolean; +} +export default class Settings { + private readonly _options; + readonly basePath?: string; + readonly concurrency: number; + readonly deepFilter: DeepFilterFunction | null; + readonly entryFilter: EntryFilterFunction | null; + readonly errorFilter: ErrorFilterFunction | null; + readonly pathSegmentSeparator: string; + readonly fsScandirSettings: fsScandir.Settings; + constructor(_options?: Options); + private _getValue; +} diff --git a/node_modules/@nodelib/fs.walk/out/settings.js b/node_modules/@nodelib/fs.walk/out/settings.js new file mode 100644 index 00000000..d7a85c81 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/settings.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const fsScandir = require("@nodelib/fs.scandir"); +class Settings { + constructor(_options = {}) { + this._options = _options; + this.basePath = this._getValue(this._options.basePath, undefined); + this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY); + this.deepFilter = this._getValue(this._options.deepFilter, null); + this.entryFilter = this._getValue(this._options.entryFilter, null); + this.errorFilter = this._getValue(this._options.errorFilter, null); + this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path.sep); + this.fsScandirSettings = new fsScandir.Settings({ + followSymbolicLinks: this._options.followSymbolicLinks, + fs: this._options.fs, + pathSegmentSeparator: this._options.pathSegmentSeparator, + stats: this._options.stats, + throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink + }); + } + _getValue(option, value) { + return option !== null && option !== void 0 ? option : value; + } +} +exports.default = Settings; diff --git a/node_modules/@nodelib/fs.walk/out/types/index.d.ts b/node_modules/@nodelib/fs.walk/out/types/index.d.ts new file mode 100644 index 00000000..6ee9bd3f --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/types/index.d.ts @@ -0,0 +1,8 @@ +/// +import type * as scandir from '@nodelib/fs.scandir'; +export declare type Entry = scandir.Entry; +export declare type Errno = NodeJS.ErrnoException; +export interface QueueItem { + directory: string; + base?: string; +} diff --git a/node_modules/@nodelib/fs.walk/out/types/index.js b/node_modules/@nodelib/fs.walk/out/types/index.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/out/types/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@nodelib/fs.walk/package.json b/node_modules/@nodelib/fs.walk/package.json new file mode 100644 index 00000000..86bfce48 --- /dev/null +++ b/node_modules/@nodelib/fs.walk/package.json @@ -0,0 +1,44 @@ +{ + "name": "@nodelib/fs.walk", + "version": "1.2.8", + "description": "A library for efficiently walking a directory recursively", + "license": "MIT", + "repository": "https://github.com/nodelib/nodelib/tree/master/packages/fs/fs.walk", + "keywords": [ + "NodeLib", + "fs", + "FileSystem", + "file system", + "walk", + "scanner", + "crawler" + ], + "engines": { + "node": ">= 8" + }, + "files": [ + "out/**", + "!out/**/*.map", + "!out/**/*.spec.*", + "!out/**/tests/**" + ], + "main": "out/index.js", + "typings": "out/index.d.ts", + "scripts": { + "clean": "rimraf {tsconfig.tsbuildinfo,out}", + "lint": "eslint \"src/**/*.ts\" --cache", + "compile": "tsc -b .", + "compile:watch": "tsc -p . --watch --sourceMap", + "test": "mocha \"out/**/*.spec.js\" -s 0", + "build": "npm run clean && npm run compile && npm run lint && npm test", + "watch": "npm run clean && npm run compile:watch" + }, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "devDependencies": { + "@nodelib/fs.macchiato": "1.0.4" + }, + "gitHead": "1e5bad48565da2b06b8600e744324ea240bf49d8" +} diff --git a/node_modules/ansi-regex/index.d.ts b/node_modules/ansi-regex/index.d.ts new file mode 100644 index 00000000..2dbf6af2 --- /dev/null +++ b/node_modules/ansi-regex/index.d.ts @@ -0,0 +1,37 @@ +declare namespace ansiRegex { + interface Options { + /** + Match only the first ANSI escape. + + @default false + */ + onlyFirst: boolean; + } +} + +/** +Regular expression for matching ANSI escape codes. + +@example +``` +import ansiRegex = require('ansi-regex'); + +ansiRegex().test('\u001B[4mcake\u001B[0m'); +//=> true + +ansiRegex().test('cake'); +//=> false + +'\u001B[4mcake\u001B[0m'.match(ansiRegex()); +//=> ['\u001B[4m', '\u001B[0m'] + +'\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true})); +//=> ['\u001B[4m'] + +'\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex()); +//=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007'] +``` +*/ +declare function ansiRegex(options?: ansiRegex.Options): RegExp; + +export = ansiRegex; diff --git a/node_modules/ansi-regex/index.js b/node_modules/ansi-regex/index.js new file mode 100644 index 00000000..616ff837 --- /dev/null +++ b/node_modules/ansi-regex/index.js @@ -0,0 +1,10 @@ +'use strict'; + +module.exports = ({onlyFirst = false} = {}) => { + const pattern = [ + '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', + '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' + ].join('|'); + + return new RegExp(pattern, onlyFirst ? undefined : 'g'); +}; diff --git a/node_modules/ansi-regex/license b/node_modules/ansi-regex/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/ansi-regex/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/ansi-regex/package.json b/node_modules/ansi-regex/package.json new file mode 100644 index 00000000..017f5311 --- /dev/null +++ b/node_modules/ansi-regex/package.json @@ -0,0 +1,55 @@ +{ + "name": "ansi-regex", + "version": "5.0.1", + "description": "Regular expression for matching ANSI escape codes", + "license": "MIT", + "repository": "chalk/ansi-regex", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd", + "view-supported": "node fixtures/view-codes.js" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "command-line", + "text", + "regex", + "regexp", + "re", + "match", + "test", + "find", + "pattern" + ], + "devDependencies": { + "ava": "^2.4.0", + "tsd": "^0.9.0", + "xo": "^0.25.3" + } +} diff --git a/node_modules/ansi-regex/readme.md b/node_modules/ansi-regex/readme.md new file mode 100644 index 00000000..4d848bc3 --- /dev/null +++ b/node_modules/ansi-regex/readme.md @@ -0,0 +1,78 @@ +# ansi-regex + +> Regular expression for matching [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) + + +## Install + +``` +$ npm install ansi-regex +``` + + +## Usage + +```js +const ansiRegex = require('ansi-regex'); + +ansiRegex().test('\u001B[4mcake\u001B[0m'); +//=> true + +ansiRegex().test('cake'); +//=> false + +'\u001B[4mcake\u001B[0m'.match(ansiRegex()); +//=> ['\u001B[4m', '\u001B[0m'] + +'\u001B[4mcake\u001B[0m'.match(ansiRegex({onlyFirst: true})); +//=> ['\u001B[4m'] + +'\u001B]8;;https://github.com\u0007click\u001B]8;;\u0007'.match(ansiRegex()); +//=> ['\u001B]8;;https://github.com\u0007', '\u001B]8;;\u0007'] +``` + + +## API + +### ansiRegex(options?) + +Returns a regex for matching ANSI escape codes. + +#### options + +Type: `object` + +##### onlyFirst + +Type: `boolean`
+Default: `false` *(Matches any ANSI escape codes in a string)* + +Match only the first ANSI escape. + + +## FAQ + +### Why do you test for codes not in the ECMA 48 standard? + +Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. We test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them. + +On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out. + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + + +--- + +

+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/ansi-styles/index.d.ts b/node_modules/ansi-styles/index.d.ts new file mode 100644 index 00000000..44a907e5 --- /dev/null +++ b/node_modules/ansi-styles/index.d.ts @@ -0,0 +1,345 @@ +declare type CSSColor = + | 'aliceblue' + | 'antiquewhite' + | 'aqua' + | 'aquamarine' + | 'azure' + | 'beige' + | 'bisque' + | 'black' + | 'blanchedalmond' + | 'blue' + | 'blueviolet' + | 'brown' + | 'burlywood' + | 'cadetblue' + | 'chartreuse' + | 'chocolate' + | 'coral' + | 'cornflowerblue' + | 'cornsilk' + | 'crimson' + | 'cyan' + | 'darkblue' + | 'darkcyan' + | 'darkgoldenrod' + | 'darkgray' + | 'darkgreen' + | 'darkgrey' + | 'darkkhaki' + | 'darkmagenta' + | 'darkolivegreen' + | 'darkorange' + | 'darkorchid' + | 'darkred' + | 'darksalmon' + | 'darkseagreen' + | 'darkslateblue' + | 'darkslategray' + | 'darkslategrey' + | 'darkturquoise' + | 'darkviolet' + | 'deeppink' + | 'deepskyblue' + | 'dimgray' + | 'dimgrey' + | 'dodgerblue' + | 'firebrick' + | 'floralwhite' + | 'forestgreen' + | 'fuchsia' + | 'gainsboro' + | 'ghostwhite' + | 'gold' + | 'goldenrod' + | 'gray' + | 'green' + | 'greenyellow' + | 'grey' + | 'honeydew' + | 'hotpink' + | 'indianred' + | 'indigo' + | 'ivory' + | 'khaki' + | 'lavender' + | 'lavenderblush' + | 'lawngreen' + | 'lemonchiffon' + | 'lightblue' + | 'lightcoral' + | 'lightcyan' + | 'lightgoldenrodyellow' + | 'lightgray' + | 'lightgreen' + | 'lightgrey' + | 'lightpink' + | 'lightsalmon' + | 'lightseagreen' + | 'lightskyblue' + | 'lightslategray' + | 'lightslategrey' + | 'lightsteelblue' + | 'lightyellow' + | 'lime' + | 'limegreen' + | 'linen' + | 'magenta' + | 'maroon' + | 'mediumaquamarine' + | 'mediumblue' + | 'mediumorchid' + | 'mediumpurple' + | 'mediumseagreen' + | 'mediumslateblue' + | 'mediumspringgreen' + | 'mediumturquoise' + | 'mediumvioletred' + | 'midnightblue' + | 'mintcream' + | 'mistyrose' + | 'moccasin' + | 'navajowhite' + | 'navy' + | 'oldlace' + | 'olive' + | 'olivedrab' + | 'orange' + | 'orangered' + | 'orchid' + | 'palegoldenrod' + | 'palegreen' + | 'paleturquoise' + | 'palevioletred' + | 'papayawhip' + | 'peachpuff' + | 'peru' + | 'pink' + | 'plum' + | 'powderblue' + | 'purple' + | 'rebeccapurple' + | 'red' + | 'rosybrown' + | 'royalblue' + | 'saddlebrown' + | 'salmon' + | 'sandybrown' + | 'seagreen' + | 'seashell' + | 'sienna' + | 'silver' + | 'skyblue' + | 'slateblue' + | 'slategray' + | 'slategrey' + | 'snow' + | 'springgreen' + | 'steelblue' + | 'tan' + | 'teal' + | 'thistle' + | 'tomato' + | 'turquoise' + | 'violet' + | 'wheat' + | 'white' + | 'whitesmoke' + | 'yellow' + | 'yellowgreen'; + +declare namespace ansiStyles { + interface ColorConvert { + /** + The RGB color space. + + @param red - (`0`-`255`) + @param green - (`0`-`255`) + @param blue - (`0`-`255`) + */ + rgb(red: number, green: number, blue: number): string; + + /** + The RGB HEX color space. + + @param hex - A hexadecimal string containing RGB data. + */ + hex(hex: string): string; + + /** + @param keyword - A CSS color name. + */ + keyword(keyword: CSSColor): string; + + /** + The HSL color space. + + @param hue - (`0`-`360`) + @param saturation - (`0`-`100`) + @param lightness - (`0`-`100`) + */ + hsl(hue: number, saturation: number, lightness: number): string; + + /** + The HSV color space. + + @param hue - (`0`-`360`) + @param saturation - (`0`-`100`) + @param value - (`0`-`100`) + */ + hsv(hue: number, saturation: number, value: number): string; + + /** + The HSV color space. + + @param hue - (`0`-`360`) + @param whiteness - (`0`-`100`) + @param blackness - (`0`-`100`) + */ + hwb(hue: number, whiteness: number, blackness: number): string; + + /** + Use a [4-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#3/4-bit) to set text color. + */ + ansi(ansi: number): string; + + /** + Use an [8-bit unsigned number](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit) to set text color. + */ + ansi256(ansi: number): string; + } + + interface CSPair { + /** + The ANSI terminal control sequence for starting this style. + */ + readonly open: string; + + /** + The ANSI terminal control sequence for ending this style. + */ + readonly close: string; + } + + interface ColorBase { + readonly ansi: ColorConvert; + readonly ansi256: ColorConvert; + readonly ansi16m: ColorConvert; + + /** + The ANSI terminal control sequence for ending this color. + */ + readonly close: string; + } + + interface Modifier { + /** + Resets the current color chain. + */ + readonly reset: CSPair; + + /** + Make text bold. + */ + readonly bold: CSPair; + + /** + Emitting only a small amount of light. + */ + readonly dim: CSPair; + + /** + Make text italic. (Not widely supported) + */ + readonly italic: CSPair; + + /** + Make text underline. (Not widely supported) + */ + readonly underline: CSPair; + + /** + Inverse background and foreground colors. + */ + readonly inverse: CSPair; + + /** + Prints the text, but makes it invisible. + */ + readonly hidden: CSPair; + + /** + Puts a horizontal line through the center of the text. (Not widely supported) + */ + readonly strikethrough: CSPair; + } + + interface ForegroundColor { + readonly black: CSPair; + readonly red: CSPair; + readonly green: CSPair; + readonly yellow: CSPair; + readonly blue: CSPair; + readonly cyan: CSPair; + readonly magenta: CSPair; + readonly white: CSPair; + + /** + Alias for `blackBright`. + */ + readonly gray: CSPair; + + /** + Alias for `blackBright`. + */ + readonly grey: CSPair; + + readonly blackBright: CSPair; + readonly redBright: CSPair; + readonly greenBright: CSPair; + readonly yellowBright: CSPair; + readonly blueBright: CSPair; + readonly cyanBright: CSPair; + readonly magentaBright: CSPair; + readonly whiteBright: CSPair; + } + + interface BackgroundColor { + readonly bgBlack: CSPair; + readonly bgRed: CSPair; + readonly bgGreen: CSPair; + readonly bgYellow: CSPair; + readonly bgBlue: CSPair; + readonly bgCyan: CSPair; + readonly bgMagenta: CSPair; + readonly bgWhite: CSPair; + + /** + Alias for `bgBlackBright`. + */ + readonly bgGray: CSPair; + + /** + Alias for `bgBlackBright`. + */ + readonly bgGrey: CSPair; + + readonly bgBlackBright: CSPair; + readonly bgRedBright: CSPair; + readonly bgGreenBright: CSPair; + readonly bgYellowBright: CSPair; + readonly bgBlueBright: CSPair; + readonly bgCyanBright: CSPair; + readonly bgMagentaBright: CSPair; + readonly bgWhiteBright: CSPair; + } +} + +declare const ansiStyles: { + readonly modifier: ansiStyles.Modifier; + readonly color: ansiStyles.ForegroundColor & ansiStyles.ColorBase; + readonly bgColor: ansiStyles.BackgroundColor & ansiStyles.ColorBase; + readonly codes: ReadonlyMap; +} & ansiStyles.BackgroundColor & ansiStyles.ForegroundColor & ansiStyles.Modifier; + +export = ansiStyles; diff --git a/node_modules/ansi-styles/index.js b/node_modules/ansi-styles/index.js new file mode 100644 index 00000000..5d82581a --- /dev/null +++ b/node_modules/ansi-styles/index.js @@ -0,0 +1,163 @@ +'use strict'; + +const wrapAnsi16 = (fn, offset) => (...args) => { + const code = fn(...args); + return `\u001B[${code + offset}m`; +}; + +const wrapAnsi256 = (fn, offset) => (...args) => { + const code = fn(...args); + return `\u001B[${38 + offset};5;${code}m`; +}; + +const wrapAnsi16m = (fn, offset) => (...args) => { + const rgb = fn(...args); + return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`; +}; + +const ansi2ansi = n => n; +const rgb2rgb = (r, g, b) => [r, g, b]; + +const setLazyProperty = (object, property, get) => { + Object.defineProperty(object, property, { + get: () => { + const value = get(); + + Object.defineProperty(object, property, { + value, + enumerable: true, + configurable: true + }); + + return value; + }, + enumerable: true, + configurable: true + }); +}; + +/** @type {typeof import('color-convert')} */ +let colorConvert; +const makeDynamicStyles = (wrap, targetSpace, identity, isBackground) => { + if (colorConvert === undefined) { + colorConvert = require('color-convert'); + } + + const offset = isBackground ? 10 : 0; + const styles = {}; + + for (const [sourceSpace, suite] of Object.entries(colorConvert)) { + const name = sourceSpace === 'ansi16' ? 'ansi' : sourceSpace; + if (sourceSpace === targetSpace) { + styles[name] = wrap(identity, offset); + } else if (typeof suite === 'object') { + styles[name] = wrap(suite[targetSpace], offset); + } + } + + return styles; +}; + +function assembleStyles() { + const codes = new Map(); + const styles = { + modifier: { + reset: [0, 0], + // 21 isn't widely supported and 22 does the same thing + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29] + }, + color: { + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + + // Bright color + blackBright: [90, 39], + redBright: [91, 39], + greenBright: [92, 39], + yellowBright: [93, 39], + blueBright: [94, 39], + magentaBright: [95, 39], + cyanBright: [96, 39], + whiteBright: [97, 39] + }, + bgColor: { + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], + + // Bright color + bgBlackBright: [100, 49], + bgRedBright: [101, 49], + bgGreenBright: [102, 49], + bgYellowBright: [103, 49], + bgBlueBright: [104, 49], + bgMagentaBright: [105, 49], + bgCyanBright: [106, 49], + bgWhiteBright: [107, 49] + } + }; + + // Alias bright black as gray (and grey) + styles.color.gray = styles.color.blackBright; + styles.bgColor.bgGray = styles.bgColor.bgBlackBright; + styles.color.grey = styles.color.blackBright; + styles.bgColor.bgGrey = styles.bgColor.bgBlackBright; + + for (const [groupName, group] of Object.entries(styles)) { + for (const [styleName, style] of Object.entries(group)) { + styles[styleName] = { + open: `\u001B[${style[0]}m`, + close: `\u001B[${style[1]}m` + }; + + group[styleName] = styles[styleName]; + + codes.set(style[0], style[1]); + } + + Object.defineProperty(styles, groupName, { + value: group, + enumerable: false + }); + } + + Object.defineProperty(styles, 'codes', { + value: codes, + enumerable: false + }); + + styles.color.close = '\u001B[39m'; + styles.bgColor.close = '\u001B[49m'; + + setLazyProperty(styles.color, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, false)); + setLazyProperty(styles.color, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, false)); + setLazyProperty(styles.color, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, false)); + setLazyProperty(styles.bgColor, 'ansi', () => makeDynamicStyles(wrapAnsi16, 'ansi16', ansi2ansi, true)); + setLazyProperty(styles.bgColor, 'ansi256', () => makeDynamicStyles(wrapAnsi256, 'ansi256', ansi2ansi, true)); + setLazyProperty(styles.bgColor, 'ansi16m', () => makeDynamicStyles(wrapAnsi16m, 'rgb', rgb2rgb, true)); + + return styles; +} + +// Make the export immutable +Object.defineProperty(module, 'exports', { + enumerable: true, + get: assembleStyles +}); diff --git a/node_modules/ansi-styles/license b/node_modules/ansi-styles/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/ansi-styles/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/ansi-styles/package.json b/node_modules/ansi-styles/package.json new file mode 100644 index 00000000..75393284 --- /dev/null +++ b/node_modules/ansi-styles/package.json @@ -0,0 +1,56 @@ +{ + "name": "ansi-styles", + "version": "4.3.0", + "description": "ANSI escape codes for styling strings in the terminal", + "license": "MIT", + "repository": "chalk/ansi-styles", + "funding": "https://github.com/chalk/ansi-styles?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd", + "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "color-convert": "^2.0.1" + }, + "devDependencies": { + "@types/color-convert": "^1.9.0", + "ava": "^2.3.0", + "svg-term-cli": "^2.1.1", + "tsd": "^0.11.0", + "xo": "^0.25.3" + } +} diff --git a/node_modules/ansi-styles/readme.md b/node_modules/ansi-styles/readme.md new file mode 100644 index 00000000..24883de8 --- /dev/null +++ b/node_modules/ansi-styles/readme.md @@ -0,0 +1,152 @@ +# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles) + +> [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal + +You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings. + + + +## Install + +``` +$ npm install ansi-styles +``` + +## Usage + +```js +const style = require('ansi-styles'); + +console.log(`${style.green.open}Hello world!${style.green.close}`); + + +// Color conversion between 16/256/truecolor +// NOTE: If conversion goes to 16 colors or 256 colors, the original color +// may be degraded to fit that color palette. This means terminals +// that do not support 16 million colors will best-match the +// original color. +console.log(style.bgColor.ansi.hsl(120, 80, 72) + 'Hello world!' + style.bgColor.close); +console.log(style.color.ansi256.rgb(199, 20, 250) + 'Hello world!' + style.color.close); +console.log(style.color.ansi16m.hex('#abcdef') + 'Hello world!' + style.color.close); +``` + +## API + +Each style has an `open` and `close` property. + +## Styles + +### Modifiers + +- `reset` +- `bold` +- `dim` +- `italic` *(Not widely supported)* +- `underline` +- `inverse` +- `hidden` +- `strikethrough` *(Not widely supported)* + +### Colors + +- `black` +- `red` +- `green` +- `yellow` +- `blue` +- `magenta` +- `cyan` +- `white` +- `blackBright` (alias: `gray`, `grey`) +- `redBright` +- `greenBright` +- `yellowBright` +- `blueBright` +- `magentaBright` +- `cyanBright` +- `whiteBright` + +### Background colors + +- `bgBlack` +- `bgRed` +- `bgGreen` +- `bgYellow` +- `bgBlue` +- `bgMagenta` +- `bgCyan` +- `bgWhite` +- `bgBlackBright` (alias: `bgGray`, `bgGrey`) +- `bgRedBright` +- `bgGreenBright` +- `bgYellowBright` +- `bgBlueBright` +- `bgMagentaBright` +- `bgCyanBright` +- `bgWhiteBright` + +## Advanced usage + +By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module. + +- `style.modifier` +- `style.color` +- `style.bgColor` + +###### Example + +```js +console.log(style.color.green.open); +``` + +Raw escape codes (i.e. without the CSI escape prefix `\u001B[` and render mode postfix `m`) are available under `style.codes`, which returns a `Map` with the open codes as keys and close codes as values. + +###### Example + +```js +console.log(style.codes.get(36)); +//=> 39 +``` + +## [256 / 16 million (TrueColor) support](https://gist.github.com/XVilka/8346728) + +`ansi-styles` uses the [`color-convert`](https://github.com/Qix-/color-convert) package to allow for converting between various colors and ANSI escapes, with support for 256 and 16 million colors. + +The following color spaces from `color-convert` are supported: + +- `rgb` +- `hex` +- `keyword` +- `hsl` +- `hsv` +- `hwb` +- `ansi` +- `ansi256` + +To use these, call the associated conversion function with the intended output, for example: + +```js +style.color.ansi.rgb(100, 200, 15); // RGB to 16 color ansi foreground code +style.bgColor.ansi.rgb(100, 200, 15); // RGB to 16 color ansi background code + +style.color.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code +style.bgColor.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code + +style.color.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color foreground code +style.bgColor.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color background code +``` + +## Related + +- [ansi-escapes](https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + +## For enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of `ansi-styles` and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-ansi-styles?utm_source=npm-ansi-styles&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) diff --git a/node_modules/anymatch/LICENSE b/node_modules/anymatch/LICENSE new file mode 100644 index 00000000..491766ca --- /dev/null +++ b/node_modules/anymatch/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) 2019 Elan Shanker, Paul Miller (https://paulmillr.com) + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/anymatch/README.md b/node_modules/anymatch/README.md new file mode 100644 index 00000000..1dd67f53 --- /dev/null +++ b/node_modules/anymatch/README.md @@ -0,0 +1,87 @@ +anymatch [![Build Status](https://travis-ci.org/micromatch/anymatch.svg?branch=master)](https://travis-ci.org/micromatch/anymatch) [![Coverage Status](https://img.shields.io/coveralls/micromatch/anymatch.svg?branch=master)](https://coveralls.io/r/micromatch/anymatch?branch=master) +====== +Javascript module to match a string against a regular expression, glob, string, +or function that takes the string as an argument and returns a truthy or falsy +value. The matcher can also be an array of any or all of these. Useful for +allowing a very flexible user-defined config to define things like file paths. + +__Note: This module has Bash-parity, please be aware that Windows-style backslashes are not supported as separators. See https://github.com/micromatch/micromatch#backslashes for more information.__ + + +Usage +----- +```sh +npm install anymatch +``` + +#### anymatch(matchers, testString, [returnIndex], [options]) +* __matchers__: (_Array|String|RegExp|Function_) +String to be directly matched, string with glob patterns, regular expression +test, function that takes the testString as an argument and returns a truthy +value if it should be matched, or an array of any number and mix of these types. +* __testString__: (_String|Array_) The string to test against the matchers. If +passed as an array, the first element of the array will be used as the +`testString` for non-function matchers, while the entire array will be applied +as the arguments for function matchers. +* __options__: (_Object_ [optional]_) Any of the [picomatch](https://github.com/micromatch/picomatch#options) options. + * __returnIndex__: (_Boolean [optional]_) If true, return the array index of +the first matcher that that testString matched, or -1 if no match, instead of a +boolean result. + +```js +const anymatch = require('anymatch'); + +const matchers = [ 'path/to/file.js', 'path/anyjs/**/*.js', /foo.js$/, string => string.includes('bar') && string.length > 10 ] ; + +anymatch(matchers, 'path/to/file.js'); // true +anymatch(matchers, 'path/anyjs/baz.js'); // true +anymatch(matchers, 'path/to/foo.js'); // true +anymatch(matchers, 'path/to/bar.js'); // true +anymatch(matchers, 'bar.js'); // false + +// returnIndex = true +anymatch(matchers, 'foo.js', {returnIndex: true}); // 2 +anymatch(matchers, 'path/anyjs/foo.js', {returnIndex: true}); // 1 + +// any picomatc + +// using globs to match directories and their children +anymatch('node_modules', 'node_modules'); // true +anymatch('node_modules', 'node_modules/somelib/index.js'); // false +anymatch('node_modules/**', 'node_modules/somelib/index.js'); // true +anymatch('node_modules/**', '/absolute/path/to/node_modules/somelib/index.js'); // false +anymatch('**/node_modules/**', '/absolute/path/to/node_modules/somelib/index.js'); // true + +const matcher = anymatch(matchers); +['foo.js', 'bar.js'].filter(matcher); // [ 'foo.js' ] +anymatch master* ❯ + +``` + +#### anymatch(matchers) +You can also pass in only your matcher(s) to get a curried function that has +already been bound to the provided matching criteria. This can be used as an +`Array#filter` callback. + +```js +var matcher = anymatch(matchers); + +matcher('path/to/file.js'); // true +matcher('path/anyjs/baz.js', true); // 1 + +['foo.js', 'bar.js'].filter(matcher); // ['foo.js'] +``` + +Changelog +---------- +[See release notes page on GitHub](https://github.com/micromatch/anymatch/releases) + +- **v3.0:** Removed `startIndex` and `endIndex` arguments. Node 8.x-only. +- **v2.0:** [micromatch](https://github.com/jonschlinkert/micromatch) moves away from minimatch-parity and inline with Bash. This includes handling backslashes differently (see https://github.com/micromatch/micromatch#backslashes for more information). +- **v1.2:** anymatch uses [micromatch](https://github.com/jonschlinkert/micromatch) +for glob pattern matching. Issues with glob pattern matching should be +reported directly to the [micromatch issue tracker](https://github.com/jonschlinkert/micromatch/issues). + +License +------- +[ISC](https://raw.github.com/micromatch/anymatch/master/LICENSE) diff --git a/node_modules/anymatch/index.d.ts b/node_modules/anymatch/index.d.ts new file mode 100644 index 00000000..196d0617 --- /dev/null +++ b/node_modules/anymatch/index.d.ts @@ -0,0 +1,19 @@ +type AnymatchFn = (testString: string) => boolean; +type AnymatchPattern = string|RegExp|AnymatchFn; +type AnymatchMatcher = AnymatchPattern|AnymatchPattern[] +type AnymatchTester = { + (testString: string|any[], returnIndex: true): number; + (testString: string|any[]): boolean; +} + +type PicomatchOptions = {dot: boolean}; + +declare const anymatch: { + (matchers: AnymatchMatcher): AnymatchTester; + (matchers: AnymatchMatcher, testString: string|any[], returnIndex: true | PicomatchOptions): number; + (matchers: AnymatchMatcher, testString: string|any[]): boolean; +} + +export {AnymatchMatcher as Matcher} +export {AnymatchTester as Tester} +export default anymatch diff --git a/node_modules/anymatch/index.js b/node_modules/anymatch/index.js new file mode 100644 index 00000000..9fb3ebb1 --- /dev/null +++ b/node_modules/anymatch/index.js @@ -0,0 +1,104 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { value: true }); + +const picomatch = require('picomatch'); +const normalizePath = require('normalize-path'); + +/** + * @typedef {(testString: string) => boolean} AnymatchFn + * @typedef {string|RegExp|AnymatchFn} AnymatchPattern + * @typedef {AnymatchPattern|AnymatchPattern[]} AnymatchMatcher + */ +const BANG = '!'; +const DEFAULT_OPTIONS = {returnIndex: false}; +const arrify = (item) => Array.isArray(item) ? item : [item]; + +/** + * @param {AnymatchPattern} matcher + * @param {object} options + * @returns {AnymatchFn} + */ +const createPattern = (matcher, options) => { + if (typeof matcher === 'function') { + return matcher; + } + if (typeof matcher === 'string') { + const glob = picomatch(matcher, options); + return (string) => matcher === string || glob(string); + } + if (matcher instanceof RegExp) { + return (string) => matcher.test(string); + } + return (string) => false; +}; + +/** + * @param {Array} patterns + * @param {Array} negPatterns + * @param {String|Array} args + * @param {Boolean} returnIndex + * @returns {boolean|number} + */ +const matchPatterns = (patterns, negPatterns, args, returnIndex) => { + const isList = Array.isArray(args); + const _path = isList ? args[0] : args; + if (!isList && typeof _path !== 'string') { + throw new TypeError('anymatch: second argument must be a string: got ' + + Object.prototype.toString.call(_path)) + } + const path = normalizePath(_path); + + for (let index = 0; index < negPatterns.length; index++) { + const nglob = negPatterns[index]; + if (nglob(path)) { + return returnIndex ? -1 : false; + } + } + + const applied = isList && [path].concat(args.slice(1)); + for (let index = 0; index < patterns.length; index++) { + const pattern = patterns[index]; + if (isList ? pattern(...applied) : pattern(path)) { + return returnIndex ? index : true; + } + } + + return returnIndex ? -1 : false; +}; + +/** + * @param {AnymatchMatcher} matchers + * @param {Array|string} testString + * @param {object} options + * @returns {boolean|number|Function} + */ +const anymatch = (matchers, testString, options = DEFAULT_OPTIONS) => { + if (matchers == null) { + throw new TypeError('anymatch: specify first argument'); + } + const opts = typeof options === 'boolean' ? {returnIndex: options} : options; + const returnIndex = opts.returnIndex || false; + + // Early cache for matchers. + const mtchers = arrify(matchers); + const negatedGlobs = mtchers + .filter(item => typeof item === 'string' && item.charAt(0) === BANG) + .map(item => item.slice(1)) + .map(item => picomatch(item, opts)); + const patterns = mtchers + .filter(item => typeof item !== 'string' || (typeof item === 'string' && item.charAt(0) !== BANG)) + .map(matcher => createPattern(matcher, opts)); + + if (testString == null) { + return (testString, ri = false) => { + const returnIndex = typeof ri === 'boolean' ? ri : false; + return matchPatterns(patterns, negatedGlobs, testString, returnIndex); + } + } + + return matchPatterns(patterns, negatedGlobs, testString, returnIndex); +}; + +anymatch.default = anymatch; +module.exports = anymatch; diff --git a/node_modules/anymatch/package.json b/node_modules/anymatch/package.json new file mode 100644 index 00000000..f9b52847 --- /dev/null +++ b/node_modules/anymatch/package.json @@ -0,0 +1,48 @@ +{ + "name": "anymatch", + "version": "3.1.2", + "description": "Matches strings against configurable strings, globs, regular expressions, and/or functions", + "files": [ + "index.js", + "index.d.ts" + ], + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "author": { + "name": "Elan Shanker", + "url": "https://github.com/es128" + }, + "license": "ISC", + "homepage": "https://github.com/micromatch/anymatch", + "repository": { + "type": "git", + "url": "https://github.com/micromatch/anymatch" + }, + "keywords": [ + "match", + "any", + "string", + "file", + "fs", + "list", + "glob", + "regex", + "regexp", + "regular", + "expression", + "function" + ], + "scripts": { + "test": "nyc mocha", + "mocha": "mocha" + }, + "devDependencies": { + "mocha": "^6.1.3", + "nyc": "^14.0.0" + }, + "engines": { + "node": ">= 8" + } +} diff --git a/node_modules/array-union/index.d.ts b/node_modules/array-union/index.d.ts new file mode 100644 index 00000000..379fc1d2 --- /dev/null +++ b/node_modules/array-union/index.d.ts @@ -0,0 +1,25 @@ +/** +Create an array of unique values, in order, from the input arrays. + +@example +``` +import arrayUnion = require('array-union'); + +arrayUnion([1, 1, 2, 3], [2, 3]); +//=> [1, 2, 3] + +arrayUnion(['foo', 'foo', 'bar']); +//=> ['foo', 'bar'] + +arrayUnion(['🐱', '🦄', '🐻'], ['🦄', '🌈']); +//=> ['🐱', '🦄', '🐻', '🌈'] + +arrayUnion(['🐱', '🦄'], ['🐻', '🦄'], ['🐶', '🌈', '🌈']); +//=> ['🐱', '🦄', '🐻', '🐶', '🌈'] +``` +*/ +declare function arrayUnion( + ...arguments: readonly ArgumentsType[] +): ArgumentsType; + +export = arrayUnion; diff --git a/node_modules/array-union/index.js b/node_modules/array-union/index.js new file mode 100644 index 00000000..a5a3df85 --- /dev/null +++ b/node_modules/array-union/index.js @@ -0,0 +1,3 @@ +const arrayUnion = (...arguments_) => [...new Set(arguments_.flat())]; + +export default arrayUnion; diff --git a/node_modules/array-union/license b/node_modules/array-union/license new file mode 100644 index 00000000..fa7ceba3 --- /dev/null +++ b/node_modules/array-union/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/array-union/package.json b/node_modules/array-union/package.json new file mode 100644 index 00000000..e7f7468b --- /dev/null +++ b/node_modules/array-union/package.json @@ -0,0 +1,46 @@ +{ + "name": "array-union", + "version": "3.0.1", + "description": "Create an array of unique values, in order, from the input arrays", + "license": "MIT", + "repository": "sindresorhus/array-union", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "type": "module", + "exports": "./index.js", + "engines": { + "node": ">=12" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "array", + "set", + "uniq", + "unique", + "duplicate", + "remove", + "union", + "combine", + "merge" + ], + "devDependencies": { + "ava": "^3.15.0", + "tsd": "^0.14.0", + "xo": "^0.38.2" + }, + "tsd": { + "compilerOptions": { + "esModuleInterop": true + } + } +} diff --git a/node_modules/array-union/readme.md b/node_modules/array-union/readme.md new file mode 100644 index 00000000..b0b67fbd --- /dev/null +++ b/node_modules/array-union/readme.md @@ -0,0 +1,39 @@ +# array-union + +> Create an array of unique values, in order, from the input arrays + +## Install + +``` +$ npm install array-union +``` + +## Usage + +```js +import arrayUnion from 'array-union'; + +arrayUnion([1, 1, 2, 3], [2, 3]); +//=> [1, 2, 3] + +arrayUnion(['foo', 'foo', 'bar']); +//=> ['foo', 'bar'] + +arrayUnion(['🐱', '🦄', '🐻'], ['🦄', '🌈']); +//=> ['🐱', '🦄', '🐻', '🌈'] + +arrayUnion(['🐱', '🦄'], ['🐻', '🦄'], ['🐶', '🌈', '🌈']); +//=> ['🐱', '🦄', '🐻', '🐶', '🌈'] +``` + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/binary-extensions/binary-extensions.json b/node_modules/binary-extensions/binary-extensions.json new file mode 100644 index 00000000..4aab3837 --- /dev/null +++ b/node_modules/binary-extensions/binary-extensions.json @@ -0,0 +1,260 @@ +[ + "3dm", + "3ds", + "3g2", + "3gp", + "7z", + "a", + "aac", + "adp", + "ai", + "aif", + "aiff", + "alz", + "ape", + "apk", + "appimage", + "ar", + "arj", + "asf", + "au", + "avi", + "bak", + "baml", + "bh", + "bin", + "bk", + "bmp", + "btif", + "bz2", + "bzip2", + "cab", + "caf", + "cgm", + "class", + "cmx", + "cpio", + "cr2", + "cur", + "dat", + "dcm", + "deb", + "dex", + "djvu", + "dll", + "dmg", + "dng", + "doc", + "docm", + "docx", + "dot", + "dotm", + "dra", + "DS_Store", + "dsk", + "dts", + "dtshd", + "dvb", + "dwg", + "dxf", + "ecelp4800", + "ecelp7470", + "ecelp9600", + "egg", + "eol", + "eot", + "epub", + "exe", + "f4v", + "fbs", + "fh", + "fla", + "flac", + "flatpak", + "fli", + "flv", + "fpx", + "fst", + "fvt", + "g3", + "gh", + "gif", + "graffle", + "gz", + "gzip", + "h261", + "h263", + "h264", + "icns", + "ico", + "ief", + "img", + "ipa", + "iso", + "jar", + "jpeg", + "jpg", + "jpgv", + "jpm", + "jxr", + "key", + "ktx", + "lha", + "lib", + "lvp", + "lz", + "lzh", + "lzma", + "lzo", + "m3u", + "m4a", + "m4v", + "mar", + "mdi", + "mht", + "mid", + "midi", + "mj2", + "mka", + "mkv", + "mmr", + "mng", + "mobi", + "mov", + "movie", + "mp3", + "mp4", + "mp4a", + "mpeg", + "mpg", + "mpga", + "mxu", + "nef", + "npx", + "numbers", + "nupkg", + "o", + "odp", + "ods", + "odt", + "oga", + "ogg", + "ogv", + "otf", + "ott", + "pages", + "pbm", + "pcx", + "pdb", + "pdf", + "pea", + "pgm", + "pic", + "png", + "pnm", + "pot", + "potm", + "potx", + "ppa", + "ppam", + "ppm", + "pps", + "ppsm", + "ppsx", + "ppt", + "pptm", + "pptx", + "psd", + "pya", + "pyc", + "pyo", + "pyv", + "qt", + "rar", + "ras", + "raw", + "resources", + "rgb", + "rip", + "rlc", + "rmf", + "rmvb", + "rpm", + "rtf", + "rz", + "s3m", + "s7z", + "scpt", + "sgi", + "shar", + "snap", + "sil", + "sketch", + "slk", + "smv", + "snk", + "so", + "stl", + "suo", + "sub", + "swf", + "tar", + "tbz", + "tbz2", + "tga", + "tgz", + "thmx", + "tif", + "tiff", + "tlz", + "ttc", + "ttf", + "txz", + "udf", + "uvh", + "uvi", + "uvm", + "uvp", + "uvs", + "uvu", + "viv", + "vob", + "war", + "wav", + "wax", + "wbmp", + "wdp", + "weba", + "webm", + "webp", + "whl", + "wim", + "wm", + "wma", + "wmv", + "wmx", + "woff", + "woff2", + "wrm", + "wvx", + "xbm", + "xif", + "xla", + "xlam", + "xls", + "xlsb", + "xlsm", + "xlsx", + "xlt", + "xltm", + "xltx", + "xm", + "xmind", + "xpi", + "xpm", + "xwd", + "xz", + "z", + "zip", + "zipx" +] diff --git a/node_modules/binary-extensions/binary-extensions.json.d.ts b/node_modules/binary-extensions/binary-extensions.json.d.ts new file mode 100644 index 00000000..94a248c2 --- /dev/null +++ b/node_modules/binary-extensions/binary-extensions.json.d.ts @@ -0,0 +1,3 @@ +declare const binaryExtensionsJson: readonly string[]; + +export = binaryExtensionsJson; diff --git a/node_modules/binary-extensions/index.d.ts b/node_modules/binary-extensions/index.d.ts new file mode 100644 index 00000000..f469ac5f --- /dev/null +++ b/node_modules/binary-extensions/index.d.ts @@ -0,0 +1,14 @@ +/** +List of binary file extensions. + +@example +``` +import binaryExtensions = require('binary-extensions'); + +console.log(binaryExtensions); +//=> ['3ds', '3g2', …] +``` +*/ +declare const binaryExtensions: readonly string[]; + +export = binaryExtensions; diff --git a/node_modules/binary-extensions/index.js b/node_modules/binary-extensions/index.js new file mode 100644 index 00000000..d46e4688 --- /dev/null +++ b/node_modules/binary-extensions/index.js @@ -0,0 +1 @@ +module.exports = require('./binary-extensions.json'); diff --git a/node_modules/binary-extensions/license b/node_modules/binary-extensions/license new file mode 100644 index 00000000..401b1c73 --- /dev/null +++ b/node_modules/binary-extensions/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/binary-extensions/package.json b/node_modules/binary-extensions/package.json new file mode 100644 index 00000000..c4d36417 --- /dev/null +++ b/node_modules/binary-extensions/package.json @@ -0,0 +1,38 @@ +{ + "name": "binary-extensions", + "version": "2.2.0", + "description": "List of binary file extensions", + "license": "MIT", + "repository": "sindresorhus/binary-extensions", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts", + "binary-extensions.json", + "binary-extensions.json.d.ts" + ], + "keywords": [ + "binary", + "extensions", + "extension", + "file", + "json", + "list", + "array" + ], + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/binary-extensions/readme.md b/node_modules/binary-extensions/readme.md new file mode 100644 index 00000000..3e25dd83 --- /dev/null +++ b/node_modules/binary-extensions/readme.md @@ -0,0 +1,41 @@ +# binary-extensions + +> List of binary file extensions + +The list is just a [JSON file](binary-extensions.json) and can be used anywhere. + + +## Install + +``` +$ npm install binary-extensions +``` + + +## Usage + +```js +const binaryExtensions = require('binary-extensions'); + +console.log(binaryExtensions); +//=> ['3ds', '3g2', …] +``` + + +## Related + +- [is-binary-path](https://github.com/sindresorhus/is-binary-path) - Check if a filepath is a binary file +- [text-extensions](https://github.com/sindresorhus/text-extensions) - List of text file extensions + + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/braces/CHANGELOG.md b/node_modules/braces/CHANGELOG.md new file mode 100644 index 00000000..36f798b0 --- /dev/null +++ b/node_modules/braces/CHANGELOG.md @@ -0,0 +1,184 @@ +# Release history + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). + +
+ Guiding Principles + +- Changelogs are for humans, not machines. +- There should be an entry for every single version. +- The same types of changes should be grouped. +- Versions and sections should be linkable. +- The latest version comes first. +- The release date of each versions is displayed. +- Mention whether you follow Semantic Versioning. + +
+ +
+ Types of changes + +Changelog entries are classified using the following labels _(from [keep-a-changelog](http://keepachangelog.com/)_): + +- `Added` for new features. +- `Changed` for changes in existing functionality. +- `Deprecated` for soon-to-be removed features. +- `Removed` for now removed features. +- `Fixed` for any bug fixes. +- `Security` in case of vulnerabilities. + +
+ +## [3.0.0] - 2018-04-08 + +v3.0 is a complete refactor, resulting in a faster, smaller codebase, with fewer deps, and a more accurate parser and compiler. + +**Breaking Changes** + +- The undocumented `.makeRe` method was removed + +**Non-breaking changes** + +- Caching was removed + +## [2.3.2] - 2018-04-08 + +- start refactoring +- cover sets +- better range handling + +## [2.3.1] - 2018-02-17 + +- Remove unnecessary escape in Regex. (#14) + +## [2.3.0] - 2017-10-19 + +- minor code reorganization +- optimize regex +- expose `maxLength` option + +## [2.2.1] - 2017-05-30 + +- don't condense when braces contain extglobs + +## [2.2.0] - 2017-05-28 + +- ensure word boundaries are preserved +- fixes edge case where extglob characters precede a brace pattern + +## [2.1.1] - 2017-04-27 + +- use snapdragon-node +- handle edge case +- optimizations, lint + +## [2.0.4] - 2017-04-11 + +- pass opts to compiler +- minor optimization in create method +- re-write parser handlers to remove negation regex + +## [2.0.3] - 2016-12-10 + +- use split-string +- clear queue at the end +- adds sequences example +- add unit tests + +## [2.0.2] - 2016-10-21 + +- fix comma handling in nested extglobs + +## [2.0.1] - 2016-10-20 + +- add comments +- more tests, ensure quotes are stripped + +## [2.0.0] - 2016-10-19 + +- don't expand braces inside character classes +- add quantifier pattern + +## [1.8.5] - 2016-05-21 + +- Refactor (#10) + +## [1.8.4] - 2016-04-20 + +- fixes https://github.com/jonschlinkert/micromatch/issues/66 + +## [1.8.0] - 2015-03-18 + +- adds exponent examples, tests +- fixes the first example in https://github.com/jonschlinkert/micromatch/issues/38 + +## [1.6.0] - 2015-01-30 + +- optimizations, `bash` mode: +- improve path escaping + +## [1.5.0] - 2015-01-28 + +- Merge pull request #5 from eush77/lib-files + +## [1.4.0] - 2015-01-24 + +- add extglob tests +- externalize exponent function +- better whitespace handling + +## [1.3.0] - 2015-01-24 + +- make regex patterns explicity + +## [1.1.0] - 2015-01-11 + +- don't create a match group with `makeRe` + +## [1.0.0] - 2014-12-23 + +- Merge commit '97b05f5544f8348736a8efaecf5c32bbe3e2ad6e' +- support empty brace syntax +- better bash coverage +- better support for regex strings + +## [0.1.4] - 2014-11-14 + +- improve recognition of bad args, recognize mismatched argument types +- support escaping +- remove pathname-expansion +- support whitespace in patterns + +## [0.1.0] + +- first commit + +[2.3.2]: https://github.com/micromatch/braces/compare/2.3.1...2.3.2 +[2.3.1]: https://github.com/micromatch/braces/compare/2.3.0...2.3.1 +[2.3.0]: https://github.com/micromatch/braces/compare/2.2.1...2.3.0 +[2.2.1]: https://github.com/micromatch/braces/compare/2.2.0...2.2.1 +[2.2.0]: https://github.com/micromatch/braces/compare/2.1.1...2.2.0 +[2.1.1]: https://github.com/micromatch/braces/compare/2.1.0...2.1.1 +[2.1.0]: https://github.com/micromatch/braces/compare/2.0.4...2.1.0 +[2.0.4]: https://github.com/micromatch/braces/compare/2.0.3...2.0.4 +[2.0.3]: https://github.com/micromatch/braces/compare/2.0.2...2.0.3 +[2.0.2]: https://github.com/micromatch/braces/compare/2.0.1...2.0.2 +[2.0.1]: https://github.com/micromatch/braces/compare/2.0.0...2.0.1 +[2.0.0]: https://github.com/micromatch/braces/compare/1.8.5...2.0.0 +[1.8.5]: https://github.com/micromatch/braces/compare/1.8.4...1.8.5 +[1.8.4]: https://github.com/micromatch/braces/compare/1.8.0...1.8.4 +[1.8.0]: https://github.com/micromatch/braces/compare/1.6.0...1.8.0 +[1.6.0]: https://github.com/micromatch/braces/compare/1.5.0...1.6.0 +[1.5.0]: https://github.com/micromatch/braces/compare/1.4.0...1.5.0 +[1.4.0]: https://github.com/micromatch/braces/compare/1.3.0...1.4.0 +[1.3.0]: https://github.com/micromatch/braces/compare/1.2.0...1.3.0 +[1.2.0]: https://github.com/micromatch/braces/compare/1.1.0...1.2.0 +[1.1.0]: https://github.com/micromatch/braces/compare/1.0.0...1.1.0 +[1.0.0]: https://github.com/micromatch/braces/compare/0.1.4...1.0.0 +[0.1.4]: https://github.com/micromatch/braces/compare/0.1.0...0.1.4 + +[Unreleased]: https://github.com/micromatch/braces/compare/0.1.0...HEAD +[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog \ No newline at end of file diff --git a/node_modules/braces/LICENSE b/node_modules/braces/LICENSE new file mode 100644 index 00000000..d32ab442 --- /dev/null +++ b/node_modules/braces/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2018, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/braces/README.md b/node_modules/braces/README.md new file mode 100644 index 00000000..cba2f600 --- /dev/null +++ b/node_modules/braces/README.md @@ -0,0 +1,593 @@ +# braces [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/braces.svg?style=flat)](https://www.npmjs.com/package/braces) [![NPM monthly downloads](https://img.shields.io/npm/dm/braces.svg?style=flat)](https://npmjs.org/package/braces) [![NPM total downloads](https://img.shields.io/npm/dt/braces.svg?style=flat)](https://npmjs.org/package/braces) [![Linux Build Status](https://img.shields.io/travis/micromatch/braces.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/braces) + +> Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save braces +``` + +## v3.0.0 Released!! + +See the [changelog](CHANGELOG.md) for details. + +## Why use braces? + +Brace patterns make globs more powerful by adding the ability to match specific ranges and sequences of characters. + +* **Accurate** - complete support for the [Bash 4.3 Brace Expansion](www.gnu.org/software/bash/) specification (passes all of the Bash braces tests) +* **[fast and performant](#benchmarks)** - Starts fast, runs fast and [scales well](#performance) as patterns increase in complexity. +* **Organized code base** - The parser and compiler are easy to maintain and update when edge cases crop up. +* **Well-tested** - Thousands of test assertions, and passes all of the Bash, minimatch, and [brace-expansion](https://github.com/juliangruber/brace-expansion) unit tests (as of the date this was written). +* **Safer** - You shouldn't have to worry about users defining aggressive or malicious brace patterns that can break your application. Braces takes measures to prevent malicious regex that can be used for DDoS attacks (see [catastrophic backtracking](https://www.regular-expressions.info/catastrophic.html)). +* [Supports lists](#lists) - (aka "sets") `a/{b,c}/d` => `['a/b/d', 'a/c/d']` +* [Supports sequences](#sequences) - (aka "ranges") `{01..03}` => `['01', '02', '03']` +* [Supports steps](#steps) - (aka "increments") `{2..10..2}` => `['2', '4', '6', '8', '10']` +* [Supports escaping](#escaping) - To prevent evaluation of special characters. + +## Usage + +The main export is a function that takes one or more brace `patterns` and `options`. + +```js +const braces = require('braces'); +// braces(patterns[, options]); + +console.log(braces(['{01..05}', '{a..e}'])); +//=> ['(0[1-5])', '([a-e])'] + +console.log(braces(['{01..05}', '{a..e}'], { expand: true })); +//=> ['01', '02', '03', '04', '05', 'a', 'b', 'c', 'd', 'e'] +``` + +### Brace Expansion vs. Compilation + +By default, brace patterns are compiled into strings that are optimized for creating regular expressions and matching. + +**Compiled** + +```js +console.log(braces('a/{x,y,z}/b')); +//=> ['a/(x|y|z)/b'] +console.log(braces(['a/{01..20}/b', 'a/{1..5}/b'])); +//=> [ 'a/(0[1-9]|1[0-9]|20)/b', 'a/([1-5])/b' ] +``` + +**Expanded** + +Enable brace expansion by setting the `expand` option to true, or by using [braces.expand()](#expand) (returns an array similar to what you'd expect from Bash, or `echo {1..5}`, or [minimatch](https://github.com/isaacs/minimatch)): + +```js +console.log(braces('a/{x,y,z}/b', { expand: true })); +//=> ['a/x/b', 'a/y/b', 'a/z/b'] + +console.log(braces.expand('{01..10}')); +//=> ['01','02','03','04','05','06','07','08','09','10'] +``` + +### Lists + +Expand lists (like Bash "sets"): + +```js +console.log(braces('a/{foo,bar,baz}/*.js')); +//=> ['a/(foo|bar|baz)/*.js'] + +console.log(braces.expand('a/{foo,bar,baz}/*.js')); +//=> ['a/foo/*.js', 'a/bar/*.js', 'a/baz/*.js'] +``` + +### Sequences + +Expand ranges of characters (like Bash "sequences"): + +```js +console.log(braces.expand('{1..3}')); // ['1', '2', '3'] +console.log(braces.expand('a/{1..3}/b')); // ['a/1/b', 'a/2/b', 'a/3/b'] +console.log(braces('{a..c}', { expand: true })); // ['a', 'b', 'c'] +console.log(braces('foo/{a..c}', { expand: true })); // ['foo/a', 'foo/b', 'foo/c'] + +// supports zero-padded ranges +console.log(braces('a/{01..03}/b')); //=> ['a/(0[1-3])/b'] +console.log(braces('a/{001..300}/b')); //=> ['a/(0{2}[1-9]|0[1-9][0-9]|[12][0-9]{2}|300)/b'] +``` + +See [fill-range](https://github.com/jonschlinkert/fill-range) for all available range-expansion options. + +### Steppped ranges + +Steps, or increments, may be used with ranges: + +```js +console.log(braces.expand('{2..10..2}')); +//=> ['2', '4', '6', '8', '10'] + +console.log(braces('{2..10..2}')); +//=> ['(2|4|6|8|10)'] +``` + +When the [.optimize](#optimize) method is used, or [options.optimize](#optionsoptimize) is set to true, sequences are passed to [to-regex-range](https://github.com/jonschlinkert/to-regex-range) for expansion. + +### Nesting + +Brace patterns may be nested. The results of each expanded string are not sorted, and left to right order is preserved. + +**"Expanded" braces** + +```js +console.log(braces.expand('a{b,c,/{x,y}}/e')); +//=> ['ab/e', 'ac/e', 'a/x/e', 'a/y/e'] + +console.log(braces.expand('a/{x,{1..5},y}/c')); +//=> ['a/x/c', 'a/1/c', 'a/2/c', 'a/3/c', 'a/4/c', 'a/5/c', 'a/y/c'] +``` + +**"Optimized" braces** + +```js +console.log(braces('a{b,c,/{x,y}}/e')); +//=> ['a(b|c|/(x|y))/e'] + +console.log(braces('a/{x,{1..5},y}/c')); +//=> ['a/(x|([1-5])|y)/c'] +``` + +### Escaping + +**Escaping braces** + +A brace pattern will not be expanded or evaluted if _either the opening or closing brace is escaped_: + +```js +console.log(braces.expand('a\\{d,c,b}e')); +//=> ['a{d,c,b}e'] + +console.log(braces.expand('a{d,c,b\\}e')); +//=> ['a{d,c,b}e'] +``` + +**Escaping commas** + +Commas inside braces may also be escaped: + +```js +console.log(braces.expand('a{b\\,c}d')); +//=> ['a{b,c}d'] + +console.log(braces.expand('a{d\\,c,b}e')); +//=> ['ad,ce', 'abe'] +``` + +**Single items** + +Following bash conventions, a brace pattern is also not expanded when it contains a single character: + +```js +console.log(braces.expand('a{b}c')); +//=> ['a{b}c'] +``` + +## Options + +### options.maxLength + +**Type**: `Number` + +**Default**: `65,536` + +**Description**: Limit the length of the input string. Useful when the input string is generated or your application allows users to pass a string, et cetera. + +```js +console.log(braces('a/{b,c}/d', { maxLength: 3 })); //=> throws an error +``` + +### options.expand + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: Generate an "expanded" brace pattern (alternatively you can use the `braces.expand()` method, which does the same thing). + +```js +console.log(braces('a/{b,c}/d', { expand: true })); +//=> [ 'a/b/d', 'a/c/d' ] +``` + +### options.nodupes + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: Remove duplicates from the returned array. + +### options.rangeLimit + +**Type**: `Number` + +**Default**: `1000` + +**Description**: To prevent malicious patterns from being passed by users, an error is thrown when `braces.expand()` is used or `options.expand` is true and the generated range will exceed the `rangeLimit`. + +You can customize `options.rangeLimit` or set it to `Inifinity` to disable this altogether. + +**Examples** + +```js +// pattern exceeds the "rangeLimit", so it's optimized automatically +console.log(braces.expand('{1..1000}')); +//=> ['([1-9]|[1-9][0-9]{1,2}|1000)'] + +// pattern does not exceed "rangeLimit", so it's NOT optimized +console.log(braces.expand('{1..100}')); +//=> ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50', '51', '52', '53', '54', '55', '56', '57', '58', '59', '60', '61', '62', '63', '64', '65', '66', '67', '68', '69', '70', '71', '72', '73', '74', '75', '76', '77', '78', '79', '80', '81', '82', '83', '84', '85', '86', '87', '88', '89', '90', '91', '92', '93', '94', '95', '96', '97', '98', '99', '100'] +``` + +### options.transform + +**Type**: `Function` + +**Default**: `undefined` + +**Description**: Customize range expansion. + +**Example: Transforming non-numeric values** + +```js +const alpha = braces.expand('x/{a..e}/y', { + transform(value, index) { + // When non-numeric values are passed, "value" is a character code. + return 'foo/' + String.fromCharCode(value) + '-' + index; + } +}); +console.log(alpha); +//=> [ 'x/foo/a-0/y', 'x/foo/b-1/y', 'x/foo/c-2/y', 'x/foo/d-3/y', 'x/foo/e-4/y' ] +``` + +**Example: Transforming numeric values** + +```js +const numeric = braces.expand('{1..5}', { + transform(value) { + // when numeric values are passed, "value" is a number + return 'foo/' + value * 2; + } +}); +console.log(numeric); +//=> [ 'foo/2', 'foo/4', 'foo/6', 'foo/8', 'foo/10' ] +``` + +### options.quantifiers + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: In regular expressions, quanitifiers can be used to specify how many times a token can be repeated. For example, `a{1,3}` will match the letter `a` one to three times. + +Unfortunately, regex quantifiers happen to share the same syntax as [Bash lists](#lists) + +The `quantifiers` option tells braces to detect when [regex quantifiers](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#quantifiers) are defined in the given pattern, and not to try to expand them as lists. + +**Examples** + +```js +const braces = require('braces'); +console.log(braces('a/b{1,3}/{x,y,z}')); +//=> [ 'a/b(1|3)/(x|y|z)' ] +console.log(braces('a/b{1,3}/{x,y,z}', {quantifiers: true})); +//=> [ 'a/b{1,3}/(x|y|z)' ] +console.log(braces('a/b{1,3}/{x,y,z}', {quantifiers: true, expand: true})); +//=> [ 'a/b{1,3}/x', 'a/b{1,3}/y', 'a/b{1,3}/z' ] +``` + +### options.unescape + +**Type**: `Boolean` + +**Default**: `undefined` + +**Description**: Strip backslashes that were used for escaping from the result. + +## What is "brace expansion"? + +Brace expansion is a type of parameter expansion that was made popular by unix shells for generating lists of strings, as well as regex-like matching when used alongside wildcards (globs). + +In addition to "expansion", braces are also used for matching. In other words: + +* [brace expansion](#brace-expansion) is for generating new lists +* [brace matching](#brace-matching) is for filtering existing lists + +
+More about brace expansion (click to expand) + +There are two main types of brace expansion: + +1. **lists**: which are defined using comma-separated values inside curly braces: `{a,b,c}` +2. **sequences**: which are defined using a starting value and an ending value, separated by two dots: `a{1..3}b`. Optionally, a third argument may be passed to define a "step" or increment to use: `a{1..100..10}b`. These are also sometimes referred to as "ranges". + +Here are some example brace patterns to illustrate how they work: + +**Sets** + +``` +{a,b,c} => a b c +{a,b,c}{1,2} => a1 a2 b1 b2 c1 c2 +``` + +**Sequences** + +``` +{1..9} => 1 2 3 4 5 6 7 8 9 +{4..-4} => 4 3 2 1 0 -1 -2 -3 -4 +{1..20..3} => 1 4 7 10 13 16 19 +{a..j} => a b c d e f g h i j +{j..a} => j i h g f e d c b a +{a..z..3} => a d g j m p s v y +``` + +**Combination** + +Sets and sequences can be mixed together or used along with any other strings. + +``` +{a,b,c}{1..3} => a1 a2 a3 b1 b2 b3 c1 c2 c3 +foo/{a,b,c}/bar => foo/a/bar foo/b/bar foo/c/bar +``` + +The fact that braces can be "expanded" from relatively simple patterns makes them ideal for quickly generating test fixtures, file paths, and similar use cases. + +## Brace matching + +In addition to _expansion_, brace patterns are also useful for performing regular-expression-like matching. + +For example, the pattern `foo/{1..3}/bar` would match any of following strings: + +``` +foo/1/bar +foo/2/bar +foo/3/bar +``` + +But not: + +``` +baz/1/qux +baz/2/qux +baz/3/qux +``` + +Braces can also be combined with [glob patterns](https://github.com/jonschlinkert/micromatch) to perform more advanced wildcard matching. For example, the pattern `*/{1..3}/*` would match any of following strings: + +``` +foo/1/bar +foo/2/bar +foo/3/bar +baz/1/qux +baz/2/qux +baz/3/qux +``` + +## Brace matching pitfalls + +Although brace patterns offer a user-friendly way of matching ranges or sets of strings, there are also some major disadvantages and potential risks you should be aware of. + +### tldr + +**"brace bombs"** + +* brace expansion can eat up a huge amount of processing resources +* as brace patterns increase _linearly in size_, the system resources required to expand the pattern increase exponentially +* users can accidentally (or intentially) exhaust your system's resources resulting in the equivalent of a DoS attack (bonus: no programming knowledge is required!) + +For a more detailed explanation with examples, see the [geometric complexity](#geometric-complexity) section. + +### The solution + +Jump to the [performance section](#performance) to see how Braces solves this problem in comparison to other libraries. + +### Geometric complexity + +At minimum, brace patterns with sets limited to two elements have quadradic or `O(n^2)` complexity. But the complexity of the algorithm increases exponentially as the number of sets, _and elements per set_, increases, which is `O(n^c)`. + +For example, the following sets demonstrate quadratic (`O(n^2)`) complexity: + +``` +{1,2}{3,4} => (2X2) => 13 14 23 24 +{1,2}{3,4}{5,6} => (2X2X2) => 135 136 145 146 235 236 245 246 +``` + +But add an element to a set, and we get a n-fold Cartesian product with `O(n^c)` complexity: + +``` +{1,2,3}{4,5,6}{7,8,9} => (3X3X3) => 147 148 149 157 158 159 167 168 169 247 248 + 249 257 258 259 267 268 269 347 348 349 357 + 358 359 367 368 369 +``` + +Now, imagine how this complexity grows given that each element is a n-tuple: + +``` +{1..100}{1..100} => (100X100) => 10,000 elements (38.4 kB) +{1..100}{1..100}{1..100} => (100X100X100) => 1,000,000 elements (5.76 MB) +``` + +Although these examples are clearly contrived, they demonstrate how brace patterns can quickly grow out of control. + +**More information** + +Interested in learning more about brace expansion? + +* [linuxjournal/bash-brace-expansion](http://www.linuxjournal.com/content/bash-brace-expansion) +* [rosettacode/Brace_expansion](https://rosettacode.org/wiki/Brace_expansion) +* [cartesian product](https://en.wikipedia.org/wiki/Cartesian_product) + +
+ +## Performance + +Braces is not only screaming fast, it's also more accurate the other brace expansion libraries. + +### Better algorithms + +Fortunately there is a solution to the ["brace bomb" problem](#brace-matching-pitfalls): _don't expand brace patterns into an array when they're used for matching_. + +Instead, convert the pattern into an optimized regular expression. This is easier said than done, and braces is the only library that does this currently. + +**The proof is in the numbers** + +Minimatch gets exponentially slower as patterns increase in complexity, braces does not. The following results were generated using `braces()` and `minimatch.braceExpand()`, respectively. + +| **Pattern** | **braces** | **[minimatch][]** | +| --- | --- | --- | +| `{1..9007199254740991}`[^1] | `298 B` (5ms 459μs)| N/A (freezes) | +| `{1..1000000000000000}` | `41 B` (1ms 15μs) | N/A (freezes) | +| `{1..100000000000000}` | `40 B` (890μs) | N/A (freezes) | +| `{1..10000000000000}` | `39 B` (2ms 49μs) | N/A (freezes) | +| `{1..1000000000000}` | `38 B` (608μs) | N/A (freezes) | +| `{1..100000000000}` | `37 B` (397μs) | N/A (freezes) | +| `{1..10000000000}` | `35 B` (983μs) | N/A (freezes) | +| `{1..1000000000}` | `34 B` (798μs) | N/A (freezes) | +| `{1..100000000}` | `33 B` (733μs) | N/A (freezes) | +| `{1..10000000}` | `32 B` (5ms 632μs) | `78.89 MB` (16s 388ms 569μs) | +| `{1..1000000}` | `31 B` (1ms 381μs) | `6.89 MB` (1s 496ms 887μs) | +| `{1..100000}` | `30 B` (950μs) | `588.89 kB` (146ms 921μs) | +| `{1..10000}` | `29 B` (1ms 114μs) | `48.89 kB` (14ms 187μs) | +| `{1..1000}` | `28 B` (760μs) | `3.89 kB` (1ms 453μs) | +| `{1..100}` | `22 B` (345μs) | `291 B` (196μs) | +| `{1..10}` | `10 B` (533μs) | `20 B` (37μs) | +| `{1..3}` | `7 B` (190μs) | `5 B` (27μs) | + +### Faster algorithms + +When you need expansion, braces is still much faster. + +_(the following results were generated using `braces.expand()` and `minimatch.braceExpand()`, respectively)_ + +| **Pattern** | **braces** | **[minimatch][]** | +| --- | --- | --- | +| `{1..10000000}` | `78.89 MB` (2s 698ms 642μs) | `78.89 MB` (18s 601ms 974μs) | +| `{1..1000000}` | `6.89 MB` (458ms 576μs) | `6.89 MB` (1s 491ms 621μs) | +| `{1..100000}` | `588.89 kB` (20ms 728μs) | `588.89 kB` (156ms 919μs) | +| `{1..10000}` | `48.89 kB` (2ms 202μs) | `48.89 kB` (13ms 641μs) | +| `{1..1000}` | `3.89 kB` (1ms 796μs) | `3.89 kB` (1ms 958μs) | +| `{1..100}` | `291 B` (424μs) | `291 B` (211μs) | +| `{1..10}` | `20 B` (487μs) | `20 B` (72μs) | +| `{1..3}` | `5 B` (166μs) | `5 B` (27μs) | + +If you'd like to run these comparisons yourself, see [test/support/generate.js](test/support/generate.js). + +## Benchmarks + +### Running benchmarks + +Install dev dependencies: + +```bash +npm i -d && npm benchmark +``` + +### Latest results + +Braces is more accurate, without sacrificing performance. + +```bash +# range (expanded) + braces x 29,040 ops/sec ±3.69% (91 runs sampled)) + minimatch x 4,735 ops/sec ±1.28% (90 runs sampled) + +# range (optimized for regex) + braces x 382,878 ops/sec ±0.56% (94 runs sampled) + minimatch x 1,040 ops/sec ±0.44% (93 runs sampled) + +# nested ranges (expanded) + braces x 19,744 ops/sec ±2.27% (92 runs sampled)) + minimatch x 4,579 ops/sec ±0.50% (93 runs sampled) + +# nested ranges (optimized for regex) + braces x 246,019 ops/sec ±2.02% (93 runs sampled) + minimatch x 1,028 ops/sec ±0.39% (94 runs sampled) + +# set (expanded) + braces x 138,641 ops/sec ±0.53% (95 runs sampled) + minimatch x 219,582 ops/sec ±0.98% (94 runs sampled) + +# set (optimized for regex) + braces x 388,408 ops/sec ±0.41% (95 runs sampled) + minimatch x 44,724 ops/sec ±0.91% (89 runs sampled) + +# nested sets (expanded) + braces x 84,966 ops/sec ±0.48% (94 runs sampled) + minimatch x 140,720 ops/sec ±0.37% (95 runs sampled) + +# nested sets (optimized for regex) + braces x 263,340 ops/sec ±2.06% (92 runs sampled) + minimatch x 28,714 ops/sec ±0.40% (90 runs sampled) +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 197 | [jonschlinkert](https://github.com/jonschlinkert) | +| 4 | [doowb](https://github.com/doowb) | +| 1 | [es128](https://github.com/es128) | +| 1 | [eush77](https://github.com/eush77) | +| 1 | [hemanth](https://github.com/hemanth) | +| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 08, 2019._ \ No newline at end of file diff --git a/node_modules/braces/index.js b/node_modules/braces/index.js new file mode 100644 index 00000000..0eee0f56 --- /dev/null +++ b/node_modules/braces/index.js @@ -0,0 +1,170 @@ +'use strict'; + +const stringify = require('./lib/stringify'); +const compile = require('./lib/compile'); +const expand = require('./lib/expand'); +const parse = require('./lib/parse'); + +/** + * Expand the given pattern or create a regex-compatible string. + * + * ```js + * const braces = require('braces'); + * console.log(braces('{a,b,c}', { compile: true })); //=> ['(a|b|c)'] + * console.log(braces('{a,b,c}')); //=> ['a', 'b', 'c'] + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {String} + * @api public + */ + +const braces = (input, options = {}) => { + let output = []; + + if (Array.isArray(input)) { + for (let pattern of input) { + let result = braces.create(pattern, options); + if (Array.isArray(result)) { + output.push(...result); + } else { + output.push(result); + } + } + } else { + output = [].concat(braces.create(input, options)); + } + + if (options && options.expand === true && options.nodupes === true) { + output = [...new Set(output)]; + } + return output; +}; + +/** + * Parse the given `str` with the given `options`. + * + * ```js + * // braces.parse(pattern, [, options]); + * const ast = braces.parse('a/{b,c}/d'); + * console.log(ast); + * ``` + * @param {String} pattern Brace pattern to parse + * @param {Object} options + * @return {Object} Returns an AST + * @api public + */ + +braces.parse = (input, options = {}) => parse(input, options); + +/** + * Creates a braces string from an AST, or an AST node. + * + * ```js + * const braces = require('braces'); + * let ast = braces.parse('foo/{a,b}/bar'); + * console.log(stringify(ast.nodes[2])); //=> '{a,b}' + * ``` + * @param {String} `input` Brace pattern or AST. + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.stringify = (input, options = {}) => { + if (typeof input === 'string') { + return stringify(braces.parse(input, options), options); + } + return stringify(input, options); +}; + +/** + * Compiles a brace pattern into a regex-compatible, optimized string. + * This method is called by the main [braces](#braces) function by default. + * + * ```js + * const braces = require('braces'); + * console.log(braces.compile('a/{b,c}/d')); + * //=> ['a/(b|c)/d'] + * ``` + * @param {String} `input` Brace pattern or AST. + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.compile = (input, options = {}) => { + if (typeof input === 'string') { + input = braces.parse(input, options); + } + return compile(input, options); +}; + +/** + * Expands a brace pattern into an array. This method is called by the + * main [braces](#braces) function when `options.expand` is true. Before + * using this method it's recommended that you read the [performance notes](#performance)) + * and advantages of using [.compile](#compile) instead. + * + * ```js + * const braces = require('braces'); + * console.log(braces.expand('a/{b,c}/d')); + * //=> ['a/b/d', 'a/c/d']; + * ``` + * @param {String} `pattern` Brace pattern + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.expand = (input, options = {}) => { + if (typeof input === 'string') { + input = braces.parse(input, options); + } + + let result = expand(input, options); + + // filter out empty strings if specified + if (options.noempty === true) { + result = result.filter(Boolean); + } + + // filter out duplicates if specified + if (options.nodupes === true) { + result = [...new Set(result)]; + } + + return result; +}; + +/** + * Processes a brace pattern and returns either an expanded array + * (if `options.expand` is true), a highly optimized regex-compatible string. + * This method is called by the main [braces](#braces) function. + * + * ```js + * const braces = require('braces'); + * console.log(braces.create('user-{200..300}/project-{a,b,c}-{1..10}')) + * //=> 'user-(20[0-9]|2[1-9][0-9]|300)/project-(a|b|c)-([1-9]|10)' + * ``` + * @param {String} `pattern` Brace pattern + * @param {Object} `options` + * @return {Array} Returns an array of expanded values. + * @api public + */ + +braces.create = (input, options = {}) => { + if (input === '' || input.length < 3) { + return [input]; + } + + return options.expand !== true + ? braces.compile(input, options) + : braces.expand(input, options); +}; + +/** + * Expose "braces" + */ + +module.exports = braces; diff --git a/node_modules/braces/lib/compile.js b/node_modules/braces/lib/compile.js new file mode 100644 index 00000000..3e984a4b --- /dev/null +++ b/node_modules/braces/lib/compile.js @@ -0,0 +1,57 @@ +'use strict'; + +const fill = require('fill-range'); +const utils = require('./utils'); + +const compile = (ast, options = {}) => { + let walk = (node, parent = {}) => { + let invalidBlock = utils.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let invalid = invalidBlock === true || invalidNode === true; + let prefix = options.escapeInvalid === true ? '\\' : ''; + let output = ''; + + if (node.isOpen === true) { + return prefix + node.value; + } + if (node.isClose === true) { + return prefix + node.value; + } + + if (node.type === 'open') { + return invalid ? (prefix + node.value) : '('; + } + + if (node.type === 'close') { + return invalid ? (prefix + node.value) : ')'; + } + + if (node.type === 'comma') { + return node.prev.type === 'comma' ? '' : (invalid ? node.value : '|'); + } + + if (node.value) { + return node.value; + } + + if (node.nodes && node.ranges > 0) { + let args = utils.reduce(node.nodes); + let range = fill(...args, { ...options, wrap: false, toRegex: true }); + + if (range.length !== 0) { + return args.length > 1 && range.length > 1 ? `(${range})` : range; + } + } + + if (node.nodes) { + for (let child of node.nodes) { + output += walk(child, node); + } + } + return output; + }; + + return walk(ast); +}; + +module.exports = compile; diff --git a/node_modules/braces/lib/constants.js b/node_modules/braces/lib/constants.js new file mode 100644 index 00000000..a9379436 --- /dev/null +++ b/node_modules/braces/lib/constants.js @@ -0,0 +1,57 @@ +'use strict'; + +module.exports = { + MAX_LENGTH: 1024 * 64, + + // Digits + CHAR_0: '0', /* 0 */ + CHAR_9: '9', /* 9 */ + + // Alphabet chars. + CHAR_UPPERCASE_A: 'A', /* A */ + CHAR_LOWERCASE_A: 'a', /* a */ + CHAR_UPPERCASE_Z: 'Z', /* Z */ + CHAR_LOWERCASE_Z: 'z', /* z */ + + CHAR_LEFT_PARENTHESES: '(', /* ( */ + CHAR_RIGHT_PARENTHESES: ')', /* ) */ + + CHAR_ASTERISK: '*', /* * */ + + // Non-alphabetic chars. + CHAR_AMPERSAND: '&', /* & */ + CHAR_AT: '@', /* @ */ + CHAR_BACKSLASH: '\\', /* \ */ + CHAR_BACKTICK: '`', /* ` */ + CHAR_CARRIAGE_RETURN: '\r', /* \r */ + CHAR_CIRCUMFLEX_ACCENT: '^', /* ^ */ + CHAR_COLON: ':', /* : */ + CHAR_COMMA: ',', /* , */ + CHAR_DOLLAR: '$', /* . */ + CHAR_DOT: '.', /* . */ + CHAR_DOUBLE_QUOTE: '"', /* " */ + CHAR_EQUAL: '=', /* = */ + CHAR_EXCLAMATION_MARK: '!', /* ! */ + CHAR_FORM_FEED: '\f', /* \f */ + CHAR_FORWARD_SLASH: '/', /* / */ + CHAR_HASH: '#', /* # */ + CHAR_HYPHEN_MINUS: '-', /* - */ + CHAR_LEFT_ANGLE_BRACKET: '<', /* < */ + CHAR_LEFT_CURLY_BRACE: '{', /* { */ + CHAR_LEFT_SQUARE_BRACKET: '[', /* [ */ + CHAR_LINE_FEED: '\n', /* \n */ + CHAR_NO_BREAK_SPACE: '\u00A0', /* \u00A0 */ + CHAR_PERCENT: '%', /* % */ + CHAR_PLUS: '+', /* + */ + CHAR_QUESTION_MARK: '?', /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: '>', /* > */ + CHAR_RIGHT_CURLY_BRACE: '}', /* } */ + CHAR_RIGHT_SQUARE_BRACKET: ']', /* ] */ + CHAR_SEMICOLON: ';', /* ; */ + CHAR_SINGLE_QUOTE: '\'', /* ' */ + CHAR_SPACE: ' ', /* */ + CHAR_TAB: '\t', /* \t */ + CHAR_UNDERSCORE: '_', /* _ */ + CHAR_VERTICAL_LINE: '|', /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: '\uFEFF' /* \uFEFF */ +}; diff --git a/node_modules/braces/lib/expand.js b/node_modules/braces/lib/expand.js new file mode 100644 index 00000000..376c748a --- /dev/null +++ b/node_modules/braces/lib/expand.js @@ -0,0 +1,113 @@ +'use strict'; + +const fill = require('fill-range'); +const stringify = require('./stringify'); +const utils = require('./utils'); + +const append = (queue = '', stash = '', enclose = false) => { + let result = []; + + queue = [].concat(queue); + stash = [].concat(stash); + + if (!stash.length) return queue; + if (!queue.length) { + return enclose ? utils.flatten(stash).map(ele => `{${ele}}`) : stash; + } + + for (let item of queue) { + if (Array.isArray(item)) { + for (let value of item) { + result.push(append(value, stash, enclose)); + } + } else { + for (let ele of stash) { + if (enclose === true && typeof ele === 'string') ele = `{${ele}}`; + result.push(Array.isArray(ele) ? append(item, ele, enclose) : (item + ele)); + } + } + } + return utils.flatten(result); +}; + +const expand = (ast, options = {}) => { + let rangeLimit = options.rangeLimit === void 0 ? 1000 : options.rangeLimit; + + let walk = (node, parent = {}) => { + node.queue = []; + + let p = parent; + let q = parent.queue; + + while (p.type !== 'brace' && p.type !== 'root' && p.parent) { + p = p.parent; + q = p.queue; + } + + if (node.invalid || node.dollar) { + q.push(append(q.pop(), stringify(node, options))); + return; + } + + if (node.type === 'brace' && node.invalid !== true && node.nodes.length === 2) { + q.push(append(q.pop(), ['{}'])); + return; + } + + if (node.nodes && node.ranges > 0) { + let args = utils.reduce(node.nodes); + + if (utils.exceedsLimit(...args, options.step, rangeLimit)) { + throw new RangeError('expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.'); + } + + let range = fill(...args, options); + if (range.length === 0) { + range = stringify(node, options); + } + + q.push(append(q.pop(), range)); + node.nodes = []; + return; + } + + let enclose = utils.encloseBrace(node); + let queue = node.queue; + let block = node; + + while (block.type !== 'brace' && block.type !== 'root' && block.parent) { + block = block.parent; + queue = block.queue; + } + + for (let i = 0; i < node.nodes.length; i++) { + let child = node.nodes[i]; + + if (child.type === 'comma' && node.type === 'brace') { + if (i === 1) queue.push(''); + queue.push(''); + continue; + } + + if (child.type === 'close') { + q.push(append(q.pop(), queue, enclose)); + continue; + } + + if (child.value && child.type !== 'open') { + queue.push(append(queue.pop(), child.value)); + continue; + } + + if (child.nodes) { + walk(child, node); + } + } + + return queue; + }; + + return utils.flatten(walk(ast)); +}; + +module.exports = expand; diff --git a/node_modules/braces/lib/parse.js b/node_modules/braces/lib/parse.js new file mode 100644 index 00000000..145ea264 --- /dev/null +++ b/node_modules/braces/lib/parse.js @@ -0,0 +1,333 @@ +'use strict'; + +const stringify = require('./stringify'); + +/** + * Constants + */ + +const { + MAX_LENGTH, + CHAR_BACKSLASH, /* \ */ + CHAR_BACKTICK, /* ` */ + CHAR_COMMA, /* , */ + CHAR_DOT, /* . */ + CHAR_LEFT_PARENTHESES, /* ( */ + CHAR_RIGHT_PARENTHESES, /* ) */ + CHAR_LEFT_CURLY_BRACE, /* { */ + CHAR_RIGHT_CURLY_BRACE, /* } */ + CHAR_LEFT_SQUARE_BRACKET, /* [ */ + CHAR_RIGHT_SQUARE_BRACKET, /* ] */ + CHAR_DOUBLE_QUOTE, /* " */ + CHAR_SINGLE_QUOTE, /* ' */ + CHAR_NO_BREAK_SPACE, + CHAR_ZERO_WIDTH_NOBREAK_SPACE +} = require('./constants'); + +/** + * parse + */ + +const parse = (input, options = {}) => { + if (typeof input !== 'string') { + throw new TypeError('Expected a string'); + } + + let opts = options || {}; + let max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + if (input.length > max) { + throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`); + } + + let ast = { type: 'root', input, nodes: [] }; + let stack = [ast]; + let block = ast; + let prev = ast; + let brackets = 0; + let length = input.length; + let index = 0; + let depth = 0; + let value; + let memo = {}; + + /** + * Helpers + */ + + const advance = () => input[index++]; + const push = node => { + if (node.type === 'text' && prev.type === 'dot') { + prev.type = 'text'; + } + + if (prev && prev.type === 'text' && node.type === 'text') { + prev.value += node.value; + return; + } + + block.nodes.push(node); + node.parent = block; + node.prev = prev; + prev = node; + return node; + }; + + push({ type: 'bos' }); + + while (index < length) { + block = stack[stack.length - 1]; + value = advance(); + + /** + * Invalid chars + */ + + if (value === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value === CHAR_NO_BREAK_SPACE) { + continue; + } + + /** + * Escaped chars + */ + + if (value === CHAR_BACKSLASH) { + push({ type: 'text', value: (options.keepEscaping ? value : '') + advance() }); + continue; + } + + /** + * Right square bracket (literal): ']' + */ + + if (value === CHAR_RIGHT_SQUARE_BRACKET) { + push({ type: 'text', value: '\\' + value }); + continue; + } + + /** + * Left square bracket: '[' + */ + + if (value === CHAR_LEFT_SQUARE_BRACKET) { + brackets++; + + let closed = true; + let next; + + while (index < length && (next = advance())) { + value += next; + + if (next === CHAR_LEFT_SQUARE_BRACKET) { + brackets++; + continue; + } + + if (next === CHAR_BACKSLASH) { + value += advance(); + continue; + } + + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + brackets--; + + if (brackets === 0) { + break; + } + } + } + + push({ type: 'text', value }); + continue; + } + + /** + * Parentheses + */ + + if (value === CHAR_LEFT_PARENTHESES) { + block = push({ type: 'paren', nodes: [] }); + stack.push(block); + push({ type: 'text', value }); + continue; + } + + if (value === CHAR_RIGHT_PARENTHESES) { + if (block.type !== 'paren') { + push({ type: 'text', value }); + continue; + } + block = stack.pop(); + push({ type: 'text', value }); + block = stack[stack.length - 1]; + continue; + } + + /** + * Quotes: '|"|` + */ + + if (value === CHAR_DOUBLE_QUOTE || value === CHAR_SINGLE_QUOTE || value === CHAR_BACKTICK) { + let open = value; + let next; + + if (options.keepQuotes !== true) { + value = ''; + } + + while (index < length && (next = advance())) { + if (next === CHAR_BACKSLASH) { + value += next + advance(); + continue; + } + + if (next === open) { + if (options.keepQuotes === true) value += next; + break; + } + + value += next; + } + + push({ type: 'text', value }); + continue; + } + + /** + * Left curly brace: '{' + */ + + if (value === CHAR_LEFT_CURLY_BRACE) { + depth++; + + let dollar = prev.value && prev.value.slice(-1) === '$' || block.dollar === true; + let brace = { + type: 'brace', + open: true, + close: false, + dollar, + depth, + commas: 0, + ranges: 0, + nodes: [] + }; + + block = push(brace); + stack.push(block); + push({ type: 'open', value }); + continue; + } + + /** + * Right curly brace: '}' + */ + + if (value === CHAR_RIGHT_CURLY_BRACE) { + if (block.type !== 'brace') { + push({ type: 'text', value }); + continue; + } + + let type = 'close'; + block = stack.pop(); + block.close = true; + + push({ type, value }); + depth--; + + block = stack[stack.length - 1]; + continue; + } + + /** + * Comma: ',' + */ + + if (value === CHAR_COMMA && depth > 0) { + if (block.ranges > 0) { + block.ranges = 0; + let open = block.nodes.shift(); + block.nodes = [open, { type: 'text', value: stringify(block) }]; + } + + push({ type: 'comma', value }); + block.commas++; + continue; + } + + /** + * Dot: '.' + */ + + if (value === CHAR_DOT && depth > 0 && block.commas === 0) { + let siblings = block.nodes; + + if (depth === 0 || siblings.length === 0) { + push({ type: 'text', value }); + continue; + } + + if (prev.type === 'dot') { + block.range = []; + prev.value += value; + prev.type = 'range'; + + if (block.nodes.length !== 3 && block.nodes.length !== 5) { + block.invalid = true; + block.ranges = 0; + prev.type = 'text'; + continue; + } + + block.ranges++; + block.args = []; + continue; + } + + if (prev.type === 'range') { + siblings.pop(); + + let before = siblings[siblings.length - 1]; + before.value += prev.value + value; + prev = before; + block.ranges--; + continue; + } + + push({ type: 'dot', value }); + continue; + } + + /** + * Text + */ + + push({ type: 'text', value }); + } + + // Mark imbalanced braces and brackets as invalid + do { + block = stack.pop(); + + if (block.type !== 'root') { + block.nodes.forEach(node => { + if (!node.nodes) { + if (node.type === 'open') node.isOpen = true; + if (node.type === 'close') node.isClose = true; + if (!node.nodes) node.type = 'text'; + node.invalid = true; + } + }); + + // get the location of the block on parent.nodes (block's siblings) + let parent = stack[stack.length - 1]; + let index = parent.nodes.indexOf(block); + // replace the (invalid) block with it's nodes + parent.nodes.splice(index, 1, ...block.nodes); + } + } while (stack.length > 0); + + push({ type: 'eos' }); + return ast; +}; + +module.exports = parse; diff --git a/node_modules/braces/lib/stringify.js b/node_modules/braces/lib/stringify.js new file mode 100644 index 00000000..414b7bcc --- /dev/null +++ b/node_modules/braces/lib/stringify.js @@ -0,0 +1,32 @@ +'use strict'; + +const utils = require('./utils'); + +module.exports = (ast, options = {}) => { + let stringify = (node, parent = {}) => { + let invalidBlock = options.escapeInvalid && utils.isInvalidBrace(parent); + let invalidNode = node.invalid === true && options.escapeInvalid === true; + let output = ''; + + if (node.value) { + if ((invalidBlock || invalidNode) && utils.isOpenOrClose(node)) { + return '\\' + node.value; + } + return node.value; + } + + if (node.value) { + return node.value; + } + + if (node.nodes) { + for (let child of node.nodes) { + output += stringify(child); + } + } + return output; + }; + + return stringify(ast); +}; + diff --git a/node_modules/braces/lib/utils.js b/node_modules/braces/lib/utils.js new file mode 100644 index 00000000..e3551a67 --- /dev/null +++ b/node_modules/braces/lib/utils.js @@ -0,0 +1,112 @@ +'use strict'; + +exports.isInteger = num => { + if (typeof num === 'number') { + return Number.isInteger(num); + } + if (typeof num === 'string' && num.trim() !== '') { + return Number.isInteger(Number(num)); + } + return false; +}; + +/** + * Find a node of the given type + */ + +exports.find = (node, type) => node.nodes.find(node => node.type === type); + +/** + * Find a node of the given type + */ + +exports.exceedsLimit = (min, max, step = 1, limit) => { + if (limit === false) return false; + if (!exports.isInteger(min) || !exports.isInteger(max)) return false; + return ((Number(max) - Number(min)) / Number(step)) >= limit; +}; + +/** + * Escape the given node with '\\' before node.value + */ + +exports.escapeNode = (block, n = 0, type) => { + let node = block.nodes[n]; + if (!node) return; + + if ((type && node.type === type) || node.type === 'open' || node.type === 'close') { + if (node.escaped !== true) { + node.value = '\\' + node.value; + node.escaped = true; + } + } +}; + +/** + * Returns true if the given brace node should be enclosed in literal braces + */ + +exports.encloseBrace = node => { + if (node.type !== 'brace') return false; + if ((node.commas >> 0 + node.ranges >> 0) === 0) { + node.invalid = true; + return true; + } + return false; +}; + +/** + * Returns true if a brace node is invalid. + */ + +exports.isInvalidBrace = block => { + if (block.type !== 'brace') return false; + if (block.invalid === true || block.dollar) return true; + if ((block.commas >> 0 + block.ranges >> 0) === 0) { + block.invalid = true; + return true; + } + if (block.open !== true || block.close !== true) { + block.invalid = true; + return true; + } + return false; +}; + +/** + * Returns true if a node is an open or close node + */ + +exports.isOpenOrClose = node => { + if (node.type === 'open' || node.type === 'close') { + return true; + } + return node.open === true || node.close === true; +}; + +/** + * Reduce an array of text nodes. + */ + +exports.reduce = nodes => nodes.reduce((acc, node) => { + if (node.type === 'text') acc.push(node.value); + if (node.type === 'range') node.type = 'text'; + return acc; +}, []); + +/** + * Flatten an array + */ + +exports.flatten = (...args) => { + const result = []; + const flat = arr => { + for (let i = 0; i < arr.length; i++) { + let ele = arr[i]; + Array.isArray(ele) ? flat(ele, result) : ele !== void 0 && result.push(ele); + } + return result; + }; + flat(args); + return result; +}; diff --git a/node_modules/braces/package.json b/node_modules/braces/package.json new file mode 100644 index 00000000..3f52e346 --- /dev/null +++ b/node_modules/braces/package.json @@ -0,0 +1,77 @@ +{ + "name": "braces", + "description": "Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.", + "version": "3.0.2", + "homepage": "https://github.com/micromatch/braces", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Brian Woodward (https://twitter.com/doowb)", + "Elan Shanker (https://github.com/es128)", + "Eugene Sharygin (https://github.com/eush77)", + "hemanth.hm (http://h3manth.com)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)" + ], + "repository": "micromatch/braces", + "bugs": { + "url": "https://github.com/micromatch/braces/issues" + }, + "license": "MIT", + "files": [ + "index.js", + "lib" + ], + "main": "index.js", + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "mocha", + "benchmark": "node benchmark" + }, + "dependencies": { + "fill-range": "^7.0.1" + }, + "devDependencies": { + "ansi-colors": "^3.2.4", + "bash-path": "^2.0.1", + "gulp-format-md": "^2.0.0", + "mocha": "^6.1.1" + }, + "keywords": [ + "alpha", + "alphabetical", + "bash", + "brace", + "braces", + "expand", + "expansion", + "filepath", + "fill", + "fs", + "glob", + "globbing", + "letter", + "match", + "matches", + "matching", + "number", + "numerical", + "path", + "range", + "ranges", + "sh" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "lint": { + "reflinks": true + }, + "plugins": [ + "gulp-format-md" + ] + } +} diff --git a/node_modules/chokidar/LICENSE b/node_modules/chokidar/LICENSE new file mode 100644 index 00000000..fa9162b5 --- /dev/null +++ b/node_modules/chokidar/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2012-2019 Paul Miller (https://paulmillr.com), Elan Shanker + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/chokidar/README.md b/node_modules/chokidar/README.md new file mode 100644 index 00000000..d6a57fd9 --- /dev/null +++ b/node_modules/chokidar/README.md @@ -0,0 +1,308 @@ +# Chokidar [![Weekly downloads](https://img.shields.io/npm/dw/chokidar.svg)](https://github.com/paulmillr/chokidar) [![Yearly downloads](https://img.shields.io/npm/dy/chokidar.svg)](https://github.com/paulmillr/chokidar) + +> Minimal and efficient cross-platform file watching library + +[![NPM](https://nodei.co/npm/chokidar.png)](https://www.npmjs.com/package/chokidar) + +## Why? + +Node.js `fs.watch`: + +* Doesn't report filenames on MacOS. +* Doesn't report events at all when using editors like Sublime on MacOS. +* Often reports events twice. +* Emits most changes as `rename`. +* Does not provide an easy way to recursively watch file trees. +* Does not support recursive watching on Linux. + +Node.js `fs.watchFile`: + +* Almost as bad at event handling. +* Also does not provide any recursive watching. +* Results in high CPU utilization. + +Chokidar resolves these problems. + +Initially made for **[Brunch](https://brunch.io/)** (an ultra-swift web app build tool), it is now used in +[Microsoft's Visual Studio Code](https://github.com/microsoft/vscode), +[gulp](https://github.com/gulpjs/gulp/), +[karma](https://karma-runner.github.io/), +[PM2](https://github.com/Unitech/PM2), +[browserify](http://browserify.org/), +[webpack](https://webpack.github.io/), +[BrowserSync](https://www.browsersync.io/), +and [many others](https://www.npmjs.com/browse/depended/chokidar). +It has proven itself in production environments. + +Version 3 is out! Check out our blog post about it: [Chokidar 3: How to save 32TB of traffic every week](https://paulmillr.com/posts/chokidar-3-save-32tb-of-traffic/) + +## How? + +Chokidar does still rely on the Node.js core `fs` module, but when using +`fs.watch` and `fs.watchFile` for watching, it normalizes the events it +receives, often checking for truth by getting file stats and/or dir contents. + +On MacOS, chokidar by default uses a native extension exposing the Darwin +`FSEvents` API. This provides very efficient recursive watching compared with +implementations like `kqueue` available on most \*nix platforms. Chokidar still +does have to do some work to normalize the events received that way as well. + +On most other platforms, the `fs.watch`-based implementation is the default, which +avoids polling and keeps CPU usage down. Be advised that chokidar will initiate +watchers recursively for everything within scope of the paths that have been +specified, so be judicious about not wasting system resources by watching much +more than needed. + +## Getting started + +Install with npm: + +```sh +npm install chokidar +``` + +Then `require` and use it in your code: + +```javascript +const chokidar = require('chokidar'); + +// One-liner for current directory +chokidar.watch('.').on('all', (event, path) => { + console.log(event, path); +}); +``` + +## API + +```javascript +// Example of a more typical implementation structure + +// Initialize watcher. +const watcher = chokidar.watch('file, dir, glob, or array', { + ignored: /(^|[\/\\])\../, // ignore dotfiles + persistent: true +}); + +// Something to use when events are received. +const log = console.log.bind(console); +// Add event listeners. +watcher + .on('add', path => log(`File ${path} has been added`)) + .on('change', path => log(`File ${path} has been changed`)) + .on('unlink', path => log(`File ${path} has been removed`)); + +// More possible events. +watcher + .on('addDir', path => log(`Directory ${path} has been added`)) + .on('unlinkDir', path => log(`Directory ${path} has been removed`)) + .on('error', error => log(`Watcher error: ${error}`)) + .on('ready', () => log('Initial scan complete. Ready for changes')) + .on('raw', (event, path, details) => { // internal + log('Raw event info:', event, path, details); + }); + +// 'add', 'addDir' and 'change' events also receive stat() results as second +// argument when available: https://nodejs.org/api/fs.html#fs_class_fs_stats +watcher.on('change', (path, stats) => { + if (stats) console.log(`File ${path} changed size to ${stats.size}`); +}); + +// Watch new files. +watcher.add('new-file'); +watcher.add(['new-file-2', 'new-file-3', '**/other-file*']); + +// Get list of actual paths being watched on the filesystem +var watchedPaths = watcher.getWatched(); + +// Un-watch some files. +await watcher.unwatch('new-file*'); + +// Stop watching. +// The method is async! +watcher.close().then(() => console.log('closed')); + +// Full list of options. See below for descriptions. +// Do not use this example! +chokidar.watch('file', { + persistent: true, + + ignored: '*.txt', + ignoreInitial: false, + followSymlinks: true, + cwd: '.', + disableGlobbing: false, + + usePolling: false, + interval: 100, + binaryInterval: 300, + alwaysStat: false, + depth: 99, + awaitWriteFinish: { + stabilityThreshold: 2000, + pollInterval: 100 + }, + + ignorePermissionErrors: false, + atomic: true // or a custom 'atomicity delay', in milliseconds (default 100) +}); + +``` + +`chokidar.watch(paths, [options])` + +* `paths` (string or array of strings). Paths to files, dirs to be watched +recursively, or glob patterns. + - Note: globs must not contain windows separators (`\`), + because that's how they work by the standard — + you'll need to replace them with forward slashes (`/`). + - Note 2: for additional glob documentation, check out low-level + library: [picomatch](https://github.com/micromatch/picomatch). +* `options` (object) Options object as defined below: + +#### Persistence + +* `persistent` (default: `true`). Indicates whether the process +should continue to run as long as files are being watched. If set to +`false` when using `fsevents` to watch, no more events will be emitted +after `ready`, even if the process continues to run. + +#### Path filtering + +* `ignored` ([anymatch](https://github.com/es128/anymatch)-compatible definition) +Defines files/paths to be ignored. The whole relative or absolute path is +tested, not just filename. If a function with two arguments is provided, it +gets called twice per path - once with a single argument (the path), second +time with two arguments (the path and the +[`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) +object of that path). +* `ignoreInitial` (default: `false`). If set to `false` then `add`/`addDir` events are also emitted for matching paths while +instantiating the watching as chokidar discovers these file paths (before the `ready` event). +* `followSymlinks` (default: `true`). When `false`, only the +symlinks themselves will be watched for changes instead of following +the link references and bubbling events through the link's path. +* `cwd` (no default). The base directory from which watch `paths` are to be +derived. Paths emitted with events will be relative to this. +* `disableGlobbing` (default: `false`). If set to `true` then the strings passed to `.watch()` and `.add()` are treated as +literal path names, even if they look like globs. + +#### Performance + +* `usePolling` (default: `false`). +Whether to use fs.watchFile (backed by polling), or fs.watch. If polling +leads to high CPU utilization, consider setting this to `false`. It is +typically necessary to **set this to `true` to successfully watch files over +a network**, and it may be necessary to successfully watch files in other +non-standard situations. Setting to `true` explicitly on MacOS overrides the +`useFsEvents` default. You may also set the CHOKIDAR_USEPOLLING env variable +to true (1) or false (0) in order to override this option. +* _Polling-specific settings_ (effective when `usePolling: true`) + * `interval` (default: `100`). Interval of file system polling, in milliseconds. You may also + set the CHOKIDAR_INTERVAL env variable to override this option. + * `binaryInterval` (default: `300`). Interval of file system + polling for binary files. + ([see list of binary extensions](https://github.com/sindresorhus/binary-extensions/blob/master/binary-extensions.json)) +* `useFsEvents` (default: `true` on MacOS). Whether to use the +`fsevents` watching interface if available. When set to `true` explicitly +and `fsevents` is available this supercedes the `usePolling` setting. When +set to `false` on MacOS, `usePolling: true` becomes the default. +* `alwaysStat` (default: `false`). If relying upon the +[`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) +object that may get passed with `add`, `addDir`, and `change` events, set +this to `true` to ensure it is provided even in cases where it wasn't +already available from the underlying watch events. +* `depth` (default: `undefined`). If set, limits how many levels of +subdirectories will be traversed. +* `awaitWriteFinish` (default: `false`). +By default, the `add` event will fire when a file first appears on disk, before +the entire file has been written. Furthermore, in some cases some `change` +events will be emitted while the file is being written. In some cases, +especially when watching for large files there will be a need to wait for the +write operation to finish before responding to a file creation or modification. +Setting `awaitWriteFinish` to `true` (or a truthy value) will poll file size, +holding its `add` and `change` events until the size does not change for a +configurable amount of time. The appropriate duration setting is heavily +dependent on the OS and hardware. For accurate detection this parameter should +be relatively high, making file watching much less responsive. +Use with caution. + * *`options.awaitWriteFinish` can be set to an object in order to adjust + timing params:* + * `awaitWriteFinish.stabilityThreshold` (default: 2000). Amount of time in + milliseconds for a file size to remain constant before emitting its event. + * `awaitWriteFinish.pollInterval` (default: 100). File size polling interval, in milliseconds. + +#### Errors + +* `ignorePermissionErrors` (default: `false`). Indicates whether to watch files +that don't have read permissions if possible. If watching fails due to `EPERM` +or `EACCES` with this set to `true`, the errors will be suppressed silently. +* `atomic` (default: `true` if `useFsEvents` and `usePolling` are `false`). +Automatically filters out artifacts that occur when using editors that use +"atomic writes" instead of writing directly to the source file. If a file is +re-added within 100 ms of being deleted, Chokidar emits a `change` event +rather than `unlink` then `add`. If the default of 100 ms does not work well +for you, you can override it by setting `atomic` to a custom value, in +milliseconds. + +### Methods & Events + +`chokidar.watch()` produces an instance of `FSWatcher`. Methods of `FSWatcher`: + +* `.add(path / paths)`: Add files, directories, or glob patterns for tracking. +Takes an array of strings or just one string. +* `.on(event, callback)`: Listen for an FS event. +Available events: `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `ready`, +`raw`, `error`. +Additionally `all` is available which gets emitted with the underlying event +name and path for every event other than `ready`, `raw`, and `error`. `raw` is internal, use it carefully. +* `.unwatch(path / paths)`: Stop watching files, directories, or glob patterns. +Takes an array of strings or just one string. +* `.close()`: **async** Removes all listeners from watched files. Asynchronous, returns Promise. Use with `await` to ensure bugs don't happen. +* `.getWatched()`: Returns an object representing all the paths on the file +system being watched by this `FSWatcher` instance. The object's keys are all the +directories (using absolute paths unless the `cwd` option was used), and the +values are arrays of the names of the items contained in each directory. + +## CLI + +If you need a CLI interface for your file watching, check out +[chokidar-cli](https://github.com/open-cli-tools/chokidar-cli), allowing you to +execute a command on each change, or get a stdio stream of change events. + +## Install Troubleshooting + +* `npm WARN optional dep failed, continuing fsevents@n.n.n` + * This message is normal part of how `npm` handles optional dependencies and is + not indicative of a problem. Even if accompanied by other related error messages, + Chokidar should function properly. + +* `TypeError: fsevents is not a constructor` + * Update chokidar by doing `rm -rf node_modules package-lock.json yarn.lock && npm install`, or update your dependency that uses chokidar. + +* Chokidar is producing `ENOSP` error on Linux, like this: + * `bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell` + `Error: watch /home/ ENOSPC` + * This means Chokidar ran out of file handles and you'll need to increase their count by executing the following command in Terminal: + `echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p` + +## Changelog + +For more detailed changelog, see [`full_changelog.md`](.github/full_changelog.md). +- **v3.5 (Jan 6, 2021):** Support for ARM Macs with Apple Silicon. Fixes for deleted symlinks. +- **v3.4 (Apr 26, 2020):** Support for directory-based symlinks. Fixes for macos file replacement. +- **v3.3 (Nov 2, 2019):** `FSWatcher#close()` method became async. That fixes IO race conditions related to close method. +- **v3.2 (Oct 1, 2019):** Improve Linux RAM usage by 50%. Race condition fixes. Windows glob fixes. Improve stability by using tight range of dependency versions. +- **v3.1 (Sep 16, 2019):** dotfiles are no longer filtered out by default. Use `ignored` option if needed. Improve initial Linux scan time by 50%. +- **v3 (Apr 30, 2019):** massive CPU & RAM consumption improvements; reduces deps / package size by a factor of 17x and bumps Node.js requirement to v8.16 and higher. +- **v2 (Dec 29, 2017):** Globs are now posix-style-only; without windows support. Tons of bugfixes. +- **v1 (Apr 7, 2015):** Glob support, symlink support, tons of bugfixes. Node 0.8+ is supported +- **v0.1 (Apr 20, 2012):** Initial release, extracted from [Brunch](https://github.com/brunch/brunch/blob/9847a065aea300da99bd0753f90354cde9de1261/src/helpers.coffee#L66) + +## Also + +Why was chokidar named this way? What's the meaning behind it? + +>Chowkidar is a transliteration of a Hindi word meaning 'watchman, gatekeeper', चौकीदार. This ultimately comes from Sanskrit _ चतुष्क_ (crossway, quadrangle, consisting-of-four). + +## License + +MIT (c) Paul Miller (), see [LICENSE](LICENSE) file. diff --git a/node_modules/chokidar/index.js b/node_modules/chokidar/index.js new file mode 100644 index 00000000..ed4b6d5b --- /dev/null +++ b/node_modules/chokidar/index.js @@ -0,0 +1,973 @@ +'use strict'; + +const { EventEmitter } = require('events'); +const fs = require('fs'); +const sysPath = require('path'); +const { promisify } = require('util'); +const readdirp = require('readdirp'); +const anymatch = require('anymatch').default; +const globParent = require('glob-parent'); +const isGlob = require('is-glob'); +const braces = require('braces'); +const normalizePath = require('normalize-path'); + +const NodeFsHandler = require('./lib/nodefs-handler'); +const FsEventsHandler = require('./lib/fsevents-handler'); +const { + EV_ALL, + EV_READY, + EV_ADD, + EV_CHANGE, + EV_UNLINK, + EV_ADD_DIR, + EV_UNLINK_DIR, + EV_RAW, + EV_ERROR, + + STR_CLOSE, + STR_END, + + BACK_SLASH_RE, + DOUBLE_SLASH_RE, + SLASH_OR_BACK_SLASH_RE, + DOT_RE, + REPLACER_RE, + + SLASH, + SLASH_SLASH, + BRACE_START, + BANG, + ONE_DOT, + TWO_DOTS, + GLOBSTAR, + SLASH_GLOBSTAR, + ANYMATCH_OPTS, + STRING_TYPE, + FUNCTION_TYPE, + EMPTY_STR, + EMPTY_FN, + + isWindows, + isMacos, + isIBMi +} = require('./lib/constants'); + +const stat = promisify(fs.stat); +const readdir = promisify(fs.readdir); + +/** + * @typedef {String} Path + * @typedef {'all'|'add'|'addDir'|'change'|'unlink'|'unlinkDir'|'raw'|'error'|'ready'} EventName + * @typedef {'readdir'|'watch'|'add'|'remove'|'change'} ThrottleType + */ + +/** + * + * @typedef {Object} WatchHelpers + * @property {Boolean} followSymlinks + * @property {'stat'|'lstat'} statMethod + * @property {Path} path + * @property {Path} watchPath + * @property {Function} entryPath + * @property {Boolean} hasGlob + * @property {Object} globFilter + * @property {Function} filterPath + * @property {Function} filterDir + */ + +const arrify = (value = []) => Array.isArray(value) ? value : [value]; +const flatten = (list, result = []) => { + list.forEach(item => { + if (Array.isArray(item)) { + flatten(item, result); + } else { + result.push(item); + } + }); + return result; +}; + +const unifyPaths = (paths_) => { + /** + * @type {Array} + */ + const paths = flatten(arrify(paths_)); + if (!paths.every(p => typeof p === STRING_TYPE)) { + throw new TypeError(`Non-string provided as watch path: ${paths}`); + } + return paths.map(normalizePathToUnix); +}; + +// If SLASH_SLASH occurs at the beginning of path, it is not replaced +// because "//StoragePC/DrivePool/Movies" is a valid network path +const toUnix = (string) => { + let str = string.replace(BACK_SLASH_RE, SLASH); + let prepend = false; + if (str.startsWith(SLASH_SLASH)) { + prepend = true; + } + while (str.match(DOUBLE_SLASH_RE)) { + str = str.replace(DOUBLE_SLASH_RE, SLASH); + } + if (prepend) { + str = SLASH + str; + } + return str; +}; + +// Our version of upath.normalize +// TODO: this is not equal to path-normalize module - investigate why +const normalizePathToUnix = (path) => toUnix(sysPath.normalize(toUnix(path))); + +const normalizeIgnored = (cwd = EMPTY_STR) => (path) => { + if (typeof path !== STRING_TYPE) return path; + return normalizePathToUnix(sysPath.isAbsolute(path) ? path : sysPath.join(cwd, path)); +}; + +const getAbsolutePath = (path, cwd) => { + if (sysPath.isAbsolute(path)) { + return path; + } + if (path.startsWith(BANG)) { + return BANG + sysPath.join(cwd, path.slice(1)); + } + return sysPath.join(cwd, path); +}; + +const undef = (opts, key) => opts[key] === undefined; + +/** + * Directory entry. + * @property {Path} path + * @property {Set} items + */ +class DirEntry { + /** + * @param {Path} dir + * @param {Function} removeWatcher + */ + constructor(dir, removeWatcher) { + this.path = dir; + this._removeWatcher = removeWatcher; + /** @type {Set} */ + this.items = new Set(); + } + + add(item) { + const {items} = this; + if (!items) return; + if (item !== ONE_DOT && item !== TWO_DOTS) items.add(item); + } + + async remove(item) { + const {items} = this; + if (!items) return; + items.delete(item); + if (items.size > 0) return; + + const dir = this.path; + try { + await readdir(dir); + } catch (err) { + if (this._removeWatcher) { + this._removeWatcher(sysPath.dirname(dir), sysPath.basename(dir)); + } + } + } + + has(item) { + const {items} = this; + if (!items) return; + return items.has(item); + } + + /** + * @returns {Array} + */ + getChildren() { + const {items} = this; + if (!items) return; + return [...items.values()]; + } + + dispose() { + this.items.clear(); + delete this.path; + delete this._removeWatcher; + delete this.items; + Object.freeze(this); + } +} + +const STAT_METHOD_F = 'stat'; +const STAT_METHOD_L = 'lstat'; +class WatchHelper { + constructor(path, watchPath, follow, fsw) { + this.fsw = fsw; + this.path = path = path.replace(REPLACER_RE, EMPTY_STR); + this.watchPath = watchPath; + this.fullWatchPath = sysPath.resolve(watchPath); + this.hasGlob = watchPath !== path; + /** @type {object|boolean} */ + if (path === EMPTY_STR) this.hasGlob = false; + this.globSymlink = this.hasGlob && follow ? undefined : false; + this.globFilter = this.hasGlob ? anymatch(path, undefined, ANYMATCH_OPTS) : false; + this.dirParts = this.getDirParts(path); + this.dirParts.forEach((parts) => { + if (parts.length > 1) parts.pop(); + }); + this.followSymlinks = follow; + this.statMethod = follow ? STAT_METHOD_F : STAT_METHOD_L; + } + + checkGlobSymlink(entry) { + // only need to resolve once + // first entry should always have entry.parentDir === EMPTY_STR + if (this.globSymlink === undefined) { + this.globSymlink = entry.fullParentDir === this.fullWatchPath ? + false : {realPath: entry.fullParentDir, linkPath: this.fullWatchPath}; + } + + if (this.globSymlink) { + return entry.fullPath.replace(this.globSymlink.realPath, this.globSymlink.linkPath); + } + + return entry.fullPath; + } + + entryPath(entry) { + return sysPath.join(this.watchPath, + sysPath.relative(this.watchPath, this.checkGlobSymlink(entry)) + ); + } + + filterPath(entry) { + const {stats} = entry; + if (stats && stats.isSymbolicLink()) return this.filterDir(entry); + const resolvedPath = this.entryPath(entry); + const matchesGlob = this.hasGlob && typeof this.globFilter === FUNCTION_TYPE ? + this.globFilter(resolvedPath) : true; + return matchesGlob && + this.fsw._isntIgnored(resolvedPath, stats) && + this.fsw._hasReadPermissions(stats); + } + + getDirParts(path) { + if (!this.hasGlob) return []; + const parts = []; + const expandedPath = path.includes(BRACE_START) ? braces.expand(path) : [path]; + expandedPath.forEach((path) => { + parts.push(sysPath.relative(this.watchPath, path).split(SLASH_OR_BACK_SLASH_RE)); + }); + return parts; + } + + filterDir(entry) { + if (this.hasGlob) { + const entryParts = this.getDirParts(this.checkGlobSymlink(entry)); + let globstar = false; + this.unmatchedGlob = !this.dirParts.some((parts) => { + return parts.every((part, i) => { + if (part === GLOBSTAR) globstar = true; + return globstar || !entryParts[0][i] || anymatch(part, entryParts[0][i], ANYMATCH_OPTS); + }); + }); + } + return !this.unmatchedGlob && this.fsw._isntIgnored(this.entryPath(entry), entry.stats); + } +} + +/** + * Watches files & directories for changes. Emitted events: + * `add`, `addDir`, `change`, `unlink`, `unlinkDir`, `all`, `error` + * + * new FSWatcher() + * .add(directories) + * .on('add', path => log('File', path, 'was added')) + */ +class FSWatcher extends EventEmitter { +// Not indenting methods for history sake; for now. +constructor(_opts) { + super(); + + const opts = {}; + if (_opts) Object.assign(opts, _opts); // for frozen objects + + /** @type {Map} */ + this._watched = new Map(); + /** @type {Map} */ + this._closers = new Map(); + /** @type {Set} */ + this._ignoredPaths = new Set(); + + /** @type {Map} */ + this._throttled = new Map(); + + /** @type {Map} */ + this._symlinkPaths = new Map(); + + this._streams = new Set(); + this.closed = false; + + // Set up default options. + if (undef(opts, 'persistent')) opts.persistent = true; + if (undef(opts, 'ignoreInitial')) opts.ignoreInitial = false; + if (undef(opts, 'ignorePermissionErrors')) opts.ignorePermissionErrors = false; + if (undef(opts, 'interval')) opts.interval = 100; + if (undef(opts, 'binaryInterval')) opts.binaryInterval = 300; + if (undef(opts, 'disableGlobbing')) opts.disableGlobbing = false; + opts.enableBinaryInterval = opts.binaryInterval !== opts.interval; + + // Enable fsevents on OS X when polling isn't explicitly enabled. + if (undef(opts, 'useFsEvents')) opts.useFsEvents = !opts.usePolling; + + // If we can't use fsevents, ensure the options reflect it's disabled. + const canUseFsEvents = FsEventsHandler.canUse(); + if (!canUseFsEvents) opts.useFsEvents = false; + + // Use polling on Mac if not using fsevents. + // Other platforms use non-polling fs_watch. + if (undef(opts, 'usePolling') && !opts.useFsEvents) { + opts.usePolling = isMacos; + } + + // Always default to polling on IBM i because fs.watch() is not available on IBM i. + if(isIBMi) { + opts.usePolling = true; + } + + // Global override (useful for end-developers that need to force polling for all + // instances of chokidar, regardless of usage/dependency depth) + const envPoll = process.env.CHOKIDAR_USEPOLLING; + if (envPoll !== undefined) { + const envLower = envPoll.toLowerCase(); + + if (envLower === 'false' || envLower === '0') { + opts.usePolling = false; + } else if (envLower === 'true' || envLower === '1') { + opts.usePolling = true; + } else { + opts.usePolling = !!envLower; + } + } + const envInterval = process.env.CHOKIDAR_INTERVAL; + if (envInterval) { + opts.interval = Number.parseInt(envInterval, 10); + } + + // Editor atomic write normalization enabled by default with fs.watch + if (undef(opts, 'atomic')) opts.atomic = !opts.usePolling && !opts.useFsEvents; + if (opts.atomic) this._pendingUnlinks = new Map(); + + if (undef(opts, 'followSymlinks')) opts.followSymlinks = true; + + if (undef(opts, 'awaitWriteFinish')) opts.awaitWriteFinish = false; + if (opts.awaitWriteFinish === true) opts.awaitWriteFinish = {}; + const awf = opts.awaitWriteFinish; + if (awf) { + if (!awf.stabilityThreshold) awf.stabilityThreshold = 2000; + if (!awf.pollInterval) awf.pollInterval = 100; + this._pendingWrites = new Map(); + } + if (opts.ignored) opts.ignored = arrify(opts.ignored); + + let readyCalls = 0; + this._emitReady = () => { + readyCalls++; + if (readyCalls >= this._readyCount) { + this._emitReady = EMPTY_FN; + this._readyEmitted = true; + // use process.nextTick to allow time for listener to be bound + process.nextTick(() => this.emit(EV_READY)); + } + }; + this._emitRaw = (...args) => this.emit(EV_RAW, ...args); + this._readyEmitted = false; + this.options = opts; + + // Initialize with proper watcher. + if (opts.useFsEvents) { + this._fsEventsHandler = new FsEventsHandler(this); + } else { + this._nodeFsHandler = new NodeFsHandler(this); + } + + // You’re frozen when your heart’s not open. + Object.freeze(opts); +} + +// Public methods + +/** + * Adds paths to be watched on an existing FSWatcher instance + * @param {Path|Array} paths_ + * @param {String=} _origAdd private; for handling non-existent paths to be watched + * @param {Boolean=} _internal private; indicates a non-user add + * @returns {FSWatcher} for chaining + */ +add(paths_, _origAdd, _internal) { + const {cwd, disableGlobbing} = this.options; + this.closed = false; + let paths = unifyPaths(paths_); + if (cwd) { + paths = paths.map((path) => { + const absPath = getAbsolutePath(path, cwd); + + // Check `path` instead of `absPath` because the cwd portion can't be a glob + if (disableGlobbing || !isGlob(path)) { + return absPath; + } + return normalizePath(absPath); + }); + } + + // set aside negated glob strings + paths = paths.filter((path) => { + if (path.startsWith(BANG)) { + this._ignoredPaths.add(path.slice(1)); + return false; + } + + // if a path is being added that was previously ignored, stop ignoring it + this._ignoredPaths.delete(path); + this._ignoredPaths.delete(path + SLASH_GLOBSTAR); + + // reset the cached userIgnored anymatch fn + // to make ignoredPaths changes effective + this._userIgnored = undefined; + + return true; + }); + + if (this.options.useFsEvents && this._fsEventsHandler) { + if (!this._readyCount) this._readyCount = paths.length; + if (this.options.persistent) this._readyCount *= 2; + paths.forEach((path) => this._fsEventsHandler._addToFsEvents(path)); + } else { + if (!this._readyCount) this._readyCount = 0; + this._readyCount += paths.length; + Promise.all( + paths.map(async path => { + const res = await this._nodeFsHandler._addToNodeFs(path, !_internal, 0, 0, _origAdd); + if (res) this._emitReady(); + return res; + }) + ).then(results => { + if (this.closed) return; + results.filter(item => item).forEach(item => { + this.add(sysPath.dirname(item), sysPath.basename(_origAdd || item)); + }); + }); + } + + return this; +} + +/** + * Close watchers or start ignoring events from specified paths. + * @param {Path|Array} paths_ - string or array of strings, file/directory paths and/or globs + * @returns {FSWatcher} for chaining +*/ +unwatch(paths_) { + if (this.closed) return this; + const paths = unifyPaths(paths_); + const {cwd} = this.options; + + paths.forEach((path) => { + // convert to absolute path unless relative path already matches + if (!sysPath.isAbsolute(path) && !this._closers.has(path)) { + if (cwd) path = sysPath.join(cwd, path); + path = sysPath.resolve(path); + } + + this._closePath(path); + + this._ignoredPaths.add(path); + if (this._watched.has(path)) { + this._ignoredPaths.add(path + SLASH_GLOBSTAR); + } + + // reset the cached userIgnored anymatch fn + // to make ignoredPaths changes effective + this._userIgnored = undefined; + }); + + return this; +} + +/** + * Close watchers and remove all listeners from watched paths. + * @returns {Promise}. +*/ +close() { + if (this.closed) return this._closePromise; + this.closed = true; + + // Memory management. + this.removeAllListeners(); + const closers = []; + this._closers.forEach(closerList => closerList.forEach(closer => { + const promise = closer(); + if (promise instanceof Promise) closers.push(promise); + })); + this._streams.forEach(stream => stream.destroy()); + this._userIgnored = undefined; + this._readyCount = 0; + this._readyEmitted = false; + this._watched.forEach(dirent => dirent.dispose()); + ['closers', 'watched', 'streams', 'symlinkPaths', 'throttled'].forEach(key => { + this[`_${key}`].clear(); + }); + + this._closePromise = closers.length ? Promise.all(closers).then(() => undefined) : Promise.resolve(); + return this._closePromise; +} + +/** + * Expose list of watched paths + * @returns {Object} for chaining +*/ +getWatched() { + const watchList = {}; + this._watched.forEach((entry, dir) => { + const key = this.options.cwd ? sysPath.relative(this.options.cwd, dir) : dir; + watchList[key || ONE_DOT] = entry.getChildren().sort(); + }); + return watchList; +} + +emitWithAll(event, args) { + this.emit(...args); + if (event !== EV_ERROR) this.emit(EV_ALL, ...args); +} + +// Common helpers +// -------------- + +/** + * Normalize and emit events. + * Calling _emit DOES NOT MEAN emit() would be called! + * @param {EventName} event Type of event + * @param {Path} path File or directory path + * @param {*=} val1 arguments to be passed with event + * @param {*=} val2 + * @param {*=} val3 + * @returns the error if defined, otherwise the value of the FSWatcher instance's `closed` flag + */ +async _emit(event, path, val1, val2, val3) { + if (this.closed) return; + + const opts = this.options; + if (isWindows) path = sysPath.normalize(path); + if (opts.cwd) path = sysPath.relative(opts.cwd, path); + /** @type Array */ + const args = [event, path]; + if (val3 !== undefined) args.push(val1, val2, val3); + else if (val2 !== undefined) args.push(val1, val2); + else if (val1 !== undefined) args.push(val1); + + const awf = opts.awaitWriteFinish; + let pw; + if (awf && (pw = this._pendingWrites.get(path))) { + pw.lastChange = new Date(); + return this; + } + + if (opts.atomic) { + if (event === EV_UNLINK) { + this._pendingUnlinks.set(path, args); + setTimeout(() => { + this._pendingUnlinks.forEach((entry, path) => { + this.emit(...entry); + this.emit(EV_ALL, ...entry); + this._pendingUnlinks.delete(path); + }); + }, typeof opts.atomic === 'number' ? opts.atomic : 100); + return this; + } + if (event === EV_ADD && this._pendingUnlinks.has(path)) { + event = args[0] = EV_CHANGE; + this._pendingUnlinks.delete(path); + } + } + + if (awf && (event === EV_ADD || event === EV_CHANGE) && this._readyEmitted) { + const awfEmit = (err, stats) => { + if (err) { + event = args[0] = EV_ERROR; + args[1] = err; + this.emitWithAll(event, args); + } else if (stats) { + // if stats doesn't exist the file must have been deleted + if (args.length > 2) { + args[2] = stats; + } else { + args.push(stats); + } + this.emitWithAll(event, args); + } + }; + + this._awaitWriteFinish(path, awf.stabilityThreshold, event, awfEmit); + return this; + } + + if (event === EV_CHANGE) { + const isThrottled = !this._throttle(EV_CHANGE, path, 50); + if (isThrottled) return this; + } + + if (opts.alwaysStat && val1 === undefined && + (event === EV_ADD || event === EV_ADD_DIR || event === EV_CHANGE) + ) { + const fullPath = opts.cwd ? sysPath.join(opts.cwd, path) : path; + let stats; + try { + stats = await stat(fullPath); + } catch (err) {} + // Suppress event when fs_stat fails, to avoid sending undefined 'stat' + if (!stats || this.closed) return; + args.push(stats); + } + this.emitWithAll(event, args); + + return this; +} + +/** + * Common handler for errors + * @param {Error} error + * @returns {Error|Boolean} The error if defined, otherwise the value of the FSWatcher instance's `closed` flag + */ +_handleError(error) { + const code = error && error.code; + if (error && code !== 'ENOENT' && code !== 'ENOTDIR' && + (!this.options.ignorePermissionErrors || (code !== 'EPERM' && code !== 'EACCES')) + ) { + this.emit(EV_ERROR, error); + } + return error || this.closed; +} + +/** + * Helper utility for throttling + * @param {ThrottleType} actionType type being throttled + * @param {Path} path being acted upon + * @param {Number} timeout duration of time to suppress duplicate actions + * @returns {Object|false} tracking object or false if action should be suppressed + */ +_throttle(actionType, path, timeout) { + if (!this._throttled.has(actionType)) { + this._throttled.set(actionType, new Map()); + } + + /** @type {Map} */ + const action = this._throttled.get(actionType); + /** @type {Object} */ + const actionPath = action.get(path); + + if (actionPath) { + actionPath.count++; + return false; + } + + let timeoutObject; + const clear = () => { + const item = action.get(path); + const count = item ? item.count : 0; + action.delete(path); + clearTimeout(timeoutObject); + if (item) clearTimeout(item.timeoutObject); + return count; + }; + timeoutObject = setTimeout(clear, timeout); + const thr = {timeoutObject, clear, count: 0}; + action.set(path, thr); + return thr; +} + +_incrReadyCount() { + return this._readyCount++; +} + +/** + * Awaits write operation to finish. + * Polls a newly created file for size variations. When files size does not change for 'threshold' milliseconds calls callback. + * @param {Path} path being acted upon + * @param {Number} threshold Time in milliseconds a file size must be fixed before acknowledging write OP is finished + * @param {EventName} event + * @param {Function} awfEmit Callback to be called when ready for event to be emitted. + */ +_awaitWriteFinish(path, threshold, event, awfEmit) { + let timeoutHandler; + + let fullPath = path; + if (this.options.cwd && !sysPath.isAbsolute(path)) { + fullPath = sysPath.join(this.options.cwd, path); + } + + const now = new Date(); + + const awaitWriteFinish = (prevStat) => { + fs.stat(fullPath, (err, curStat) => { + if (err || !this._pendingWrites.has(path)) { + if (err && err.code !== 'ENOENT') awfEmit(err); + return; + } + + const now = Number(new Date()); + + if (prevStat && curStat.size !== prevStat.size) { + this._pendingWrites.get(path).lastChange = now; + } + const pw = this._pendingWrites.get(path); + const df = now - pw.lastChange; + + if (df >= threshold) { + this._pendingWrites.delete(path); + awfEmit(undefined, curStat); + } else { + timeoutHandler = setTimeout( + awaitWriteFinish, + this.options.awaitWriteFinish.pollInterval, + curStat + ); + } + }); + }; + + if (!this._pendingWrites.has(path)) { + this._pendingWrites.set(path, { + lastChange: now, + cancelWait: () => { + this._pendingWrites.delete(path); + clearTimeout(timeoutHandler); + return event; + } + }); + timeoutHandler = setTimeout( + awaitWriteFinish, + this.options.awaitWriteFinish.pollInterval + ); + } +} + +_getGlobIgnored() { + return [...this._ignoredPaths.values()]; +} + +/** + * Determines whether user has asked to ignore this path. + * @param {Path} path filepath or dir + * @param {fs.Stats=} stats result of fs.stat + * @returns {Boolean} + */ +_isIgnored(path, stats) { + if (this.options.atomic && DOT_RE.test(path)) return true; + if (!this._userIgnored) { + const {cwd} = this.options; + const ign = this.options.ignored; + + const ignored = ign && ign.map(normalizeIgnored(cwd)); + const paths = arrify(ignored) + .filter((path) => typeof path === STRING_TYPE && !isGlob(path)) + .map((path) => path + SLASH_GLOBSTAR); + const list = this._getGlobIgnored().map(normalizeIgnored(cwd)).concat(ignored, paths); + this._userIgnored = anymatch(list, undefined, ANYMATCH_OPTS); + } + + return this._userIgnored([path, stats]); +} + +_isntIgnored(path, stat) { + return !this._isIgnored(path, stat); +} + +/** + * Provides a set of common helpers and properties relating to symlink and glob handling. + * @param {Path} path file, directory, or glob pattern being watched + * @param {Number=} depth at any depth > 0, this isn't a glob + * @returns {WatchHelper} object containing helpers for this path + */ +_getWatchHelpers(path, depth) { + const watchPath = depth || this.options.disableGlobbing || !isGlob(path) ? path : globParent(path); + const follow = this.options.followSymlinks; + + return new WatchHelper(path, watchPath, follow, this); +} + +// Directory helpers +// ----------------- + +/** + * Provides directory tracking objects + * @param {String} directory path of the directory + * @returns {DirEntry} the directory's tracking object + */ +_getWatchedDir(directory) { + if (!this._boundRemove) this._boundRemove = this._remove.bind(this); + const dir = sysPath.resolve(directory); + if (!this._watched.has(dir)) this._watched.set(dir, new DirEntry(dir, this._boundRemove)); + return this._watched.get(dir); +} + +// File helpers +// ------------ + +/** + * Check for read permissions. + * Based on this answer on SO: https://stackoverflow.com/a/11781404/1358405 + * @param {fs.Stats} stats - object, result of fs_stat + * @returns {Boolean} indicates whether the file can be read +*/ +_hasReadPermissions(stats) { + if (this.options.ignorePermissionErrors) return true; + + // stats.mode may be bigint + const md = stats && Number.parseInt(stats.mode, 10); + const st = md & 0o777; + const it = Number.parseInt(st.toString(8)[0], 10); + return Boolean(4 & it); +} + +/** + * Handles emitting unlink events for + * files and directories, and via recursion, for + * files and directories within directories that are unlinked + * @param {String} directory within which the following item is located + * @param {String} item base path of item/directory + * @returns {void} +*/ +_remove(directory, item, isDirectory) { + // if what is being deleted is a directory, get that directory's paths + // for recursive deleting and cleaning of watched object + // if it is not a directory, nestedDirectoryChildren will be empty array + const path = sysPath.join(directory, item); + const fullPath = sysPath.resolve(path); + isDirectory = isDirectory != null + ? isDirectory + : this._watched.has(path) || this._watched.has(fullPath); + + // prevent duplicate handling in case of arriving here nearly simultaneously + // via multiple paths (such as _handleFile and _handleDir) + if (!this._throttle('remove', path, 100)) return; + + // if the only watched file is removed, watch for its return + if (!isDirectory && !this.options.useFsEvents && this._watched.size === 1) { + this.add(directory, item, true); + } + + // This will create a new entry in the watched object in either case + // so we got to do the directory check beforehand + const wp = this._getWatchedDir(path); + const nestedDirectoryChildren = wp.getChildren(); + + // Recursively remove children directories / files. + nestedDirectoryChildren.forEach(nested => this._remove(path, nested)); + + // Check if item was on the watched list and remove it + const parent = this._getWatchedDir(directory); + const wasTracked = parent.has(item); + parent.remove(item); + + // Fixes issue #1042 -> Relative paths were detected and added as symlinks + // (https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L612), + // but never removed from the map in case the path was deleted. + // This leads to an incorrect state if the path was recreated: + // https://github.com/paulmillr/chokidar/blob/e1753ddbc9571bdc33b4a4af172d52cb6e611c10/lib/nodefs-handler.js#L553 + if (this._symlinkPaths.has(fullPath)) { + this._symlinkPaths.delete(fullPath); + } + + // If we wait for this file to be fully written, cancel the wait. + let relPath = path; + if (this.options.cwd) relPath = sysPath.relative(this.options.cwd, path); + if (this.options.awaitWriteFinish && this._pendingWrites.has(relPath)) { + const event = this._pendingWrites.get(relPath).cancelWait(); + if (event === EV_ADD) return; + } + + // The Entry will either be a directory that just got removed + // or a bogus entry to a file, in either case we have to remove it + this._watched.delete(path); + this._watched.delete(fullPath); + const eventName = isDirectory ? EV_UNLINK_DIR : EV_UNLINK; + if (wasTracked && !this._isIgnored(path)) this._emit(eventName, path); + + // Avoid conflicts if we later create another file with the same name + if (!this.options.useFsEvents) { + this._closePath(path); + } +} + +/** + * Closes all watchers for a path + * @param {Path} path + */ +_closePath(path) { + this._closeFile(path) + const dir = sysPath.dirname(path); + this._getWatchedDir(dir).remove(sysPath.basename(path)); +} + +/** + * Closes only file-specific watchers + * @param {Path} path + */ +_closeFile(path) { + const closers = this._closers.get(path); + if (!closers) return; + closers.forEach(closer => closer()); + this._closers.delete(path); +} + +/** + * + * @param {Path} path + * @param {Function} closer + */ +_addPathCloser(path, closer) { + if (!closer) return; + let list = this._closers.get(path); + if (!list) { + list = []; + this._closers.set(path, list); + } + list.push(closer); +} + +_readdirp(root, opts) { + if (this.closed) return; + const options = {type: EV_ALL, alwaysStat: true, lstat: true, ...opts}; + let stream = readdirp(root, options); + this._streams.add(stream); + stream.once(STR_CLOSE, () => { + stream = undefined; + }); + stream.once(STR_END, () => { + if (stream) { + this._streams.delete(stream); + stream = undefined; + } + }); + return stream; +} + +} + +// Export FSWatcher class +exports.FSWatcher = FSWatcher; + +/** + * Instantiates watcher with paths to be tracked. + * @param {String|Array} paths file/directory paths and/or globs + * @param {Object=} options chokidar opts + * @returns an instance of FSWatcher for chaining. + */ +const watch = (paths, options) => { + const watcher = new FSWatcher(options); + watcher.add(paths); + return watcher; +}; + +exports.watch = watch; diff --git a/node_modules/chokidar/lib/constants.js b/node_modules/chokidar/lib/constants.js new file mode 100644 index 00000000..1454f85b --- /dev/null +++ b/node_modules/chokidar/lib/constants.js @@ -0,0 +1,65 @@ +'use strict'; + +const {sep} = require('path'); +const {platform} = process; +const os = require('os'); + +exports.EV_ALL = 'all'; +exports.EV_READY = 'ready'; +exports.EV_ADD = 'add'; +exports.EV_CHANGE = 'change'; +exports.EV_ADD_DIR = 'addDir'; +exports.EV_UNLINK = 'unlink'; +exports.EV_UNLINK_DIR = 'unlinkDir'; +exports.EV_RAW = 'raw'; +exports.EV_ERROR = 'error'; + +exports.STR_DATA = 'data'; +exports.STR_END = 'end'; +exports.STR_CLOSE = 'close'; + +exports.FSEVENT_CREATED = 'created'; +exports.FSEVENT_MODIFIED = 'modified'; +exports.FSEVENT_DELETED = 'deleted'; +exports.FSEVENT_MOVED = 'moved'; +exports.FSEVENT_CLONED = 'cloned'; +exports.FSEVENT_UNKNOWN = 'unknown'; +exports.FSEVENT_TYPE_FILE = 'file'; +exports.FSEVENT_TYPE_DIRECTORY = 'directory'; +exports.FSEVENT_TYPE_SYMLINK = 'symlink'; + +exports.KEY_LISTENERS = 'listeners'; +exports.KEY_ERR = 'errHandlers'; +exports.KEY_RAW = 'rawEmitters'; +exports.HANDLER_KEYS = [exports.KEY_LISTENERS, exports.KEY_ERR, exports.KEY_RAW]; + +exports.DOT_SLASH = `.${sep}`; + +exports.BACK_SLASH_RE = /\\/g; +exports.DOUBLE_SLASH_RE = /\/\//; +exports.SLASH_OR_BACK_SLASH_RE = /[/\\]/; +exports.DOT_RE = /\..*\.(sw[px])$|~$|\.subl.*\.tmp/; +exports.REPLACER_RE = /^\.[/\\]/; + +exports.SLASH = '/'; +exports.SLASH_SLASH = '//'; +exports.BRACE_START = '{'; +exports.BANG = '!'; +exports.ONE_DOT = '.'; +exports.TWO_DOTS = '..'; +exports.STAR = '*'; +exports.GLOBSTAR = '**'; +exports.ROOT_GLOBSTAR = '/**/*'; +exports.SLASH_GLOBSTAR = '/**'; +exports.DIR_SUFFIX = 'Dir'; +exports.ANYMATCH_OPTS = {dot: true}; +exports.STRING_TYPE = 'string'; +exports.FUNCTION_TYPE = 'function'; +exports.EMPTY_STR = ''; +exports.EMPTY_FN = () => {}; +exports.IDENTITY_FN = val => val; + +exports.isWindows = platform === 'win32'; +exports.isMacos = platform === 'darwin'; +exports.isLinux = platform === 'linux'; +exports.isIBMi = os.type() === 'OS400'; diff --git a/node_modules/chokidar/lib/fsevents-handler.js b/node_modules/chokidar/lib/fsevents-handler.js new file mode 100644 index 00000000..0f7f2cba --- /dev/null +++ b/node_modules/chokidar/lib/fsevents-handler.js @@ -0,0 +1,524 @@ +'use strict'; + +const fs = require('fs'); +const sysPath = require('path'); +const { promisify } = require('util'); + +let fsevents; +try { + fsevents = require('fsevents'); +} catch (error) { + if (process.env.CHOKIDAR_PRINT_FSEVENTS_REQUIRE_ERROR) console.error(error); +} + +if (fsevents) { + // TODO: real check + const mtch = process.version.match(/v(\d+)\.(\d+)/); + if (mtch && mtch[1] && mtch[2]) { + const maj = Number.parseInt(mtch[1], 10); + const min = Number.parseInt(mtch[2], 10); + if (maj === 8 && min < 16) { + fsevents = undefined; + } + } +} + +const { + EV_ADD, + EV_CHANGE, + EV_ADD_DIR, + EV_UNLINK, + EV_ERROR, + STR_DATA, + STR_END, + FSEVENT_CREATED, + FSEVENT_MODIFIED, + FSEVENT_DELETED, + FSEVENT_MOVED, + // FSEVENT_CLONED, + FSEVENT_UNKNOWN, + FSEVENT_TYPE_FILE, + FSEVENT_TYPE_DIRECTORY, + FSEVENT_TYPE_SYMLINK, + + ROOT_GLOBSTAR, + DIR_SUFFIX, + DOT_SLASH, + FUNCTION_TYPE, + EMPTY_FN, + IDENTITY_FN +} = require('./constants'); + +const Depth = (value) => isNaN(value) ? {} : {depth: value}; + +const stat = promisify(fs.stat); +const lstat = promisify(fs.lstat); +const realpath = promisify(fs.realpath); + +const statMethods = { stat, lstat }; + +/** + * @typedef {String} Path + */ + +/** + * @typedef {Object} FsEventsWatchContainer + * @property {Set} listeners + * @property {Function} rawEmitter + * @property {{stop: Function}} watcher + */ + +// fsevents instance helper functions +/** + * Object to hold per-process fsevents instances (may be shared across chokidar FSWatcher instances) + * @type {Map} + */ +const FSEventsWatchers = new Map(); + +// Threshold of duplicate path prefixes at which to start +// consolidating going forward +const consolidateThreshhold = 10; + +const wrongEventFlags = new Set([ + 69888, 70400, 71424, 72704, 73472, 131328, 131840, 262912 +]); + +/** + * Instantiates the fsevents interface + * @param {Path} path path to be watched + * @param {Function} callback called when fsevents is bound and ready + * @returns {{stop: Function}} new fsevents instance + */ +const createFSEventsInstance = (path, callback) => { + const stop = fsevents.watch(path, callback); + return {stop}; +}; + +/** + * Instantiates the fsevents interface or binds listeners to an existing one covering + * the same file tree. + * @param {Path} path - to be watched + * @param {Path} realPath - real path for symlinks + * @param {Function} listener - called when fsevents emits events + * @param {Function} rawEmitter - passes data to listeners of the 'raw' event + * @returns {Function} closer + */ +function setFSEventsListener(path, realPath, listener, rawEmitter) { + let watchPath = sysPath.extname(realPath) ? sysPath.dirname(realPath) : realPath; + + const parentPath = sysPath.dirname(watchPath); + let cont = FSEventsWatchers.get(watchPath); + + // If we've accumulated a substantial number of paths that + // could have been consolidated by watching one directory + // above the current one, create a watcher on the parent + // path instead, so that we do consolidate going forward. + if (couldConsolidate(parentPath)) { + watchPath = parentPath; + } + + const resolvedPath = sysPath.resolve(path); + const hasSymlink = resolvedPath !== realPath; + + const filteredListener = (fullPath, flags, info) => { + if (hasSymlink) fullPath = fullPath.replace(realPath, resolvedPath); + if ( + fullPath === resolvedPath || + !fullPath.indexOf(resolvedPath + sysPath.sep) + ) listener(fullPath, flags, info); + }; + + // check if there is already a watcher on a parent path + // modifies `watchPath` to the parent path when it finds a match + let watchedParent = false; + for (const watchedPath of FSEventsWatchers.keys()) { + if (realPath.indexOf(sysPath.resolve(watchedPath) + sysPath.sep) === 0) { + watchPath = watchedPath; + cont = FSEventsWatchers.get(watchPath); + watchedParent = true; + break; + } + } + + if (cont || watchedParent) { + cont.listeners.add(filteredListener); + } else { + cont = { + listeners: new Set([filteredListener]), + rawEmitter, + watcher: createFSEventsInstance(watchPath, (fullPath, flags) => { + if (!cont.listeners.size) return; + const info = fsevents.getInfo(fullPath, flags); + cont.listeners.forEach(list => { + list(fullPath, flags, info); + }); + + cont.rawEmitter(info.event, fullPath, info); + }) + }; + FSEventsWatchers.set(watchPath, cont); + } + + // removes this instance's listeners and closes the underlying fsevents + // instance if there are no more listeners left + return () => { + const lst = cont.listeners; + + lst.delete(filteredListener); + if (!lst.size) { + FSEventsWatchers.delete(watchPath); + if (cont.watcher) return cont.watcher.stop().then(() => { + cont.rawEmitter = cont.watcher = undefined; + Object.freeze(cont); + }); + } + }; +} + +// Decide whether or not we should start a new higher-level +// parent watcher +const couldConsolidate = (path) => { + let count = 0; + for (const watchPath of FSEventsWatchers.keys()) { + if (watchPath.indexOf(path) === 0) { + count++; + if (count >= consolidateThreshhold) { + return true; + } + } + } + + return false; +}; + +// returns boolean indicating whether fsevents can be used +const canUse = () => fsevents && FSEventsWatchers.size < 128; + +// determines subdirectory traversal levels from root to path +const calcDepth = (path, root) => { + let i = 0; + while (!path.indexOf(root) && (path = sysPath.dirname(path)) !== root) i++; + return i; +}; + +// returns boolean indicating whether the fsevents' event info has the same type +// as the one returned by fs.stat +const sameTypes = (info, stats) => ( + info.type === FSEVENT_TYPE_DIRECTORY && stats.isDirectory() || + info.type === FSEVENT_TYPE_SYMLINK && stats.isSymbolicLink() || + info.type === FSEVENT_TYPE_FILE && stats.isFile() +) + +/** + * @mixin + */ +class FsEventsHandler { + +/** + * @param {import('../index').FSWatcher} fsw + */ +constructor(fsw) { + this.fsw = fsw; +} +checkIgnored(path, stats) { + const ipaths = this.fsw._ignoredPaths; + if (this.fsw._isIgnored(path, stats)) { + ipaths.add(path); + if (stats && stats.isDirectory()) { + ipaths.add(path + ROOT_GLOBSTAR); + } + return true; + } + + ipaths.delete(path); + ipaths.delete(path + ROOT_GLOBSTAR); +} + +addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts) { + const event = watchedDir.has(item) ? EV_CHANGE : EV_ADD; + this.handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts); +} + +async checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts) { + try { + const stats = await stat(path) + if (this.fsw.closed) return; + if (sameTypes(info, stats)) { + this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } else { + this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } catch (error) { + if (error.code === 'EACCES') { + this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } else { + this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } +} + +handleEvent(event, path, fullPath, realPath, parent, watchedDir, item, info, opts) { + if (this.fsw.closed || this.checkIgnored(path)) return; + + if (event === EV_UNLINK) { + const isDirectory = info.type === FSEVENT_TYPE_DIRECTORY + // suppress unlink events on never before seen files + if (isDirectory || watchedDir.has(item)) { + this.fsw._remove(parent, item, isDirectory); + } + } else { + if (event === EV_ADD) { + // track new directories + if (info.type === FSEVENT_TYPE_DIRECTORY) this.fsw._getWatchedDir(path); + + if (info.type === FSEVENT_TYPE_SYMLINK && opts.followSymlinks) { + // push symlinks back to the top of the stack to get handled + const curDepth = opts.depth === undefined ? + undefined : calcDepth(fullPath, realPath) + 1; + return this._addToFsEvents(path, false, true, curDepth); + } + + // track new paths + // (other than symlinks being followed, which will be tracked soon) + this.fsw._getWatchedDir(parent).add(item); + } + /** + * @type {'add'|'addDir'|'unlink'|'unlinkDir'} + */ + const eventName = info.type === FSEVENT_TYPE_DIRECTORY ? event + DIR_SUFFIX : event; + this.fsw._emit(eventName, path); + if (eventName === EV_ADD_DIR) this._addToFsEvents(path, false, true); + } +} + +/** + * Handle symlinks encountered during directory scan + * @param {String} watchPath - file/dir path to be watched with fsevents + * @param {String} realPath - real path (in case of symlinks) + * @param {Function} transform - path transformer + * @param {Function} globFilter - path filter in case a glob pattern was provided + * @returns {Function} closer for the watcher instance +*/ +_watchWithFsEvents(watchPath, realPath, transform, globFilter) { + if (this.fsw.closed || this.fsw._isIgnored(watchPath)) return; + const opts = this.fsw.options; + const watchCallback = async (fullPath, flags, info) => { + if (this.fsw.closed) return; + if ( + opts.depth !== undefined && + calcDepth(fullPath, realPath) > opts.depth + ) return; + const path = transform(sysPath.join( + watchPath, sysPath.relative(watchPath, fullPath) + )); + if (globFilter && !globFilter(path)) return; + // ensure directories are tracked + const parent = sysPath.dirname(path); + const item = sysPath.basename(path); + const watchedDir = this.fsw._getWatchedDir( + info.type === FSEVENT_TYPE_DIRECTORY ? path : parent + ); + + // correct for wrong events emitted + if (wrongEventFlags.has(flags) || info.event === FSEVENT_UNKNOWN) { + if (typeof opts.ignored === FUNCTION_TYPE) { + let stats; + try { + stats = await stat(path); + } catch (error) {} + if (this.fsw.closed) return; + if (this.checkIgnored(path, stats)) return; + if (sameTypes(info, stats)) { + this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } else { + this.handleEvent(EV_UNLINK, path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } else { + this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } else { + switch (info.event) { + case FSEVENT_CREATED: + case FSEVENT_MODIFIED: + return this.addOrChange(path, fullPath, realPath, parent, watchedDir, item, info, opts); + case FSEVENT_DELETED: + case FSEVENT_MOVED: + return this.checkExists(path, fullPath, realPath, parent, watchedDir, item, info, opts); + } + } + }; + + const closer = setFSEventsListener( + watchPath, + realPath, + watchCallback, + this.fsw._emitRaw + ); + + this.fsw._emitReady(); + return closer; +} + +/** + * Handle symlinks encountered during directory scan + * @param {String} linkPath path to symlink + * @param {String} fullPath absolute path to the symlink + * @param {Function} transform pre-existing path transformer + * @param {Number} curDepth level of subdirectories traversed to where symlink is + * @returns {Promise} + */ +async _handleFsEventsSymlink(linkPath, fullPath, transform, curDepth) { + // don't follow the same symlink more than once + if (this.fsw.closed || this.fsw._symlinkPaths.has(fullPath)) return; + + this.fsw._symlinkPaths.set(fullPath, true); + this.fsw._incrReadyCount(); + + try { + const linkTarget = await realpath(linkPath); + if (this.fsw.closed) return; + if (this.fsw._isIgnored(linkTarget)) { + return this.fsw._emitReady(); + } + + this.fsw._incrReadyCount(); + + // add the linkTarget for watching with a wrapper for transform + // that causes emitted paths to incorporate the link's path + this._addToFsEvents(linkTarget || linkPath, (path) => { + let aliasedPath = linkPath; + if (linkTarget && linkTarget !== DOT_SLASH) { + aliasedPath = path.replace(linkTarget, linkPath); + } else if (path !== DOT_SLASH) { + aliasedPath = sysPath.join(linkPath, path); + } + return transform(aliasedPath); + }, false, curDepth); + } catch(error) { + if (this.fsw._handleError(error)) { + return this.fsw._emitReady(); + } + } +} + +/** + * + * @param {Path} newPath + * @param {fs.Stats} stats + */ +emitAdd(newPath, stats, processPath, opts, forceAdd) { + const pp = processPath(newPath); + const isDir = stats.isDirectory(); + const dirObj = this.fsw._getWatchedDir(sysPath.dirname(pp)); + const base = sysPath.basename(pp); + + // ensure empty dirs get tracked + if (isDir) this.fsw._getWatchedDir(pp); + if (dirObj.has(base)) return; + dirObj.add(base); + + if (!opts.ignoreInitial || forceAdd === true) { + this.fsw._emit(isDir ? EV_ADD_DIR : EV_ADD, pp, stats); + } +} + +initWatch(realPath, path, wh, processPath) { + if (this.fsw.closed) return; + const closer = this._watchWithFsEvents( + wh.watchPath, + sysPath.resolve(realPath || wh.watchPath), + processPath, + wh.globFilter + ); + this.fsw._addPathCloser(path, closer); +} + +/** + * Handle added path with fsevents + * @param {String} path file/dir path or glob pattern + * @param {Function|Boolean=} transform converts working path to what the user expects + * @param {Boolean=} forceAdd ensure add is emitted + * @param {Number=} priorDepth Level of subdirectories already traversed. + * @returns {Promise} + */ +async _addToFsEvents(path, transform, forceAdd, priorDepth) { + if (this.fsw.closed) { + return; + } + const opts = this.fsw.options; + const processPath = typeof transform === FUNCTION_TYPE ? transform : IDENTITY_FN; + + const wh = this.fsw._getWatchHelpers(path); + + // evaluate what is at the path we're being asked to watch + try { + const stats = await statMethods[wh.statMethod](wh.watchPath); + if (this.fsw.closed) return; + if (this.fsw._isIgnored(wh.watchPath, stats)) { + throw null; + } + if (stats.isDirectory()) { + // emit addDir unless this is a glob parent + if (!wh.globFilter) this.emitAdd(processPath(path), stats, processPath, opts, forceAdd); + + // don't recurse further if it would exceed depth setting + if (priorDepth && priorDepth > opts.depth) return; + + // scan the contents of the dir + this.fsw._readdirp(wh.watchPath, { + fileFilter: entry => wh.filterPath(entry), + directoryFilter: entry => wh.filterDir(entry), + ...Depth(opts.depth - (priorDepth || 0)) + }).on(STR_DATA, (entry) => { + // need to check filterPath on dirs b/c filterDir is less restrictive + if (this.fsw.closed) { + return; + } + if (entry.stats.isDirectory() && !wh.filterPath(entry)) return; + + const joinedPath = sysPath.join(wh.watchPath, entry.path); + const {fullPath} = entry; + + if (wh.followSymlinks && entry.stats.isSymbolicLink()) { + // preserve the current depth here since it can't be derived from + // real paths past the symlink + const curDepth = opts.depth === undefined ? + undefined : calcDepth(joinedPath, sysPath.resolve(wh.watchPath)) + 1; + + this._handleFsEventsSymlink(joinedPath, fullPath, processPath, curDepth); + } else { + this.emitAdd(joinedPath, entry.stats, processPath, opts, forceAdd); + } + }).on(EV_ERROR, EMPTY_FN).on(STR_END, () => { + this.fsw._emitReady(); + }); + } else { + this.emitAdd(wh.watchPath, stats, processPath, opts, forceAdd); + this.fsw._emitReady(); + } + } catch (error) { + if (!error || this.fsw._handleError(error)) { + // TODO: Strange thing: "should not choke on an ignored watch path" will be failed without 2 ready calls -__- + this.fsw._emitReady(); + this.fsw._emitReady(); + } + } + + if (opts.persistent && forceAdd !== true) { + if (typeof transform === FUNCTION_TYPE) { + // realpath has already been resolved + this.initWatch(undefined, path, wh, processPath); + } else { + let realPath; + try { + realPath = await realpath(wh.watchPath); + } catch (e) {} + this.initWatch(realPath, path, wh, processPath); + } + } +} + +} + +module.exports = FsEventsHandler; +module.exports.canUse = canUse; diff --git a/node_modules/chokidar/lib/nodefs-handler.js b/node_modules/chokidar/lib/nodefs-handler.js new file mode 100644 index 00000000..199cfe9f --- /dev/null +++ b/node_modules/chokidar/lib/nodefs-handler.js @@ -0,0 +1,654 @@ +'use strict'; + +const fs = require('fs'); +const sysPath = require('path'); +const { promisify } = require('util'); +const isBinaryPath = require('is-binary-path'); +const { + isWindows, + isLinux, + EMPTY_FN, + EMPTY_STR, + KEY_LISTENERS, + KEY_ERR, + KEY_RAW, + HANDLER_KEYS, + EV_CHANGE, + EV_ADD, + EV_ADD_DIR, + EV_ERROR, + STR_DATA, + STR_END, + BRACE_START, + STAR +} = require('./constants'); + +const THROTTLE_MODE_WATCH = 'watch'; + +const open = promisify(fs.open); +const stat = promisify(fs.stat); +const lstat = promisify(fs.lstat); +const close = promisify(fs.close); +const fsrealpath = promisify(fs.realpath); + +const statMethods = { lstat, stat }; + +// TODO: emit errors properly. Example: EMFILE on Macos. +const foreach = (val, fn) => { + if (val instanceof Set) { + val.forEach(fn); + } else { + fn(val); + } +}; + +const addAndConvert = (main, prop, item) => { + let container = main[prop]; + if (!(container instanceof Set)) { + main[prop] = container = new Set([container]); + } + container.add(item); +}; + +const clearItem = cont => key => { + const set = cont[key]; + if (set instanceof Set) { + set.clear(); + } else { + delete cont[key]; + } +}; + +const delFromSet = (main, prop, item) => { + const container = main[prop]; + if (container instanceof Set) { + container.delete(item); + } else if (container === item) { + delete main[prop]; + } +}; + +const isEmptySet = (val) => val instanceof Set ? val.size === 0 : !val; + +/** + * @typedef {String} Path + */ + +// fs_watch helpers + +// object to hold per-process fs_watch instances +// (may be shared across chokidar FSWatcher instances) + +/** + * @typedef {Object} FsWatchContainer + * @property {Set} listeners + * @property {Set} errHandlers + * @property {Set} rawEmitters + * @property {fs.FSWatcher=} watcher + * @property {Boolean=} watcherUnusable + */ + +/** + * @type {Map} + */ +const FsWatchInstances = new Map(); + +/** + * Instantiates the fs_watch interface + * @param {String} path to be watched + * @param {Object} options to be passed to fs_watch + * @param {Function} listener main event handler + * @param {Function} errHandler emits info about errors + * @param {Function} emitRaw emits raw event data + * @returns {fs.FSWatcher} new fsevents instance + */ +function createFsWatchInstance(path, options, listener, errHandler, emitRaw) { + const handleEvent = (rawEvent, evPath) => { + listener(path); + emitRaw(rawEvent, evPath, {watchedPath: path}); + + // emit based on events occurring for files from a directory's watcher in + // case the file's watcher misses it (and rely on throttling to de-dupe) + if (evPath && path !== evPath) { + fsWatchBroadcast( + sysPath.resolve(path, evPath), KEY_LISTENERS, sysPath.join(path, evPath) + ); + } + }; + try { + return fs.watch(path, options, handleEvent); + } catch (error) { + errHandler(error); + } +} + +/** + * Helper for passing fs_watch event data to a collection of listeners + * @param {Path} fullPath absolute path bound to fs_watch instance + * @param {String} type listener type + * @param {*=} val1 arguments to be passed to listeners + * @param {*=} val2 + * @param {*=} val3 + */ +const fsWatchBroadcast = (fullPath, type, val1, val2, val3) => { + const cont = FsWatchInstances.get(fullPath); + if (!cont) return; + foreach(cont[type], (listener) => { + listener(val1, val2, val3); + }); +}; + +/** + * Instantiates the fs_watch interface or binds listeners + * to an existing one covering the same file system entry + * @param {String} path + * @param {String} fullPath absolute path + * @param {Object} options to be passed to fs_watch + * @param {Object} handlers container for event listener functions + */ +const setFsWatchListener = (path, fullPath, options, handlers) => { + const {listener, errHandler, rawEmitter} = handlers; + let cont = FsWatchInstances.get(fullPath); + + /** @type {fs.FSWatcher=} */ + let watcher; + if (!options.persistent) { + watcher = createFsWatchInstance( + path, options, listener, errHandler, rawEmitter + ); + return watcher.close.bind(watcher); + } + if (cont) { + addAndConvert(cont, KEY_LISTENERS, listener); + addAndConvert(cont, KEY_ERR, errHandler); + addAndConvert(cont, KEY_RAW, rawEmitter); + } else { + watcher = createFsWatchInstance( + path, + options, + fsWatchBroadcast.bind(null, fullPath, KEY_LISTENERS), + errHandler, // no need to use broadcast here + fsWatchBroadcast.bind(null, fullPath, KEY_RAW) + ); + if (!watcher) return; + watcher.on(EV_ERROR, async (error) => { + const broadcastErr = fsWatchBroadcast.bind(null, fullPath, KEY_ERR); + cont.watcherUnusable = true; // documented since Node 10.4.1 + // Workaround for https://github.com/joyent/node/issues/4337 + if (isWindows && error.code === 'EPERM') { + try { + const fd = await open(path, 'r'); + await close(fd); + broadcastErr(error); + } catch (err) {} + } else { + broadcastErr(error); + } + }); + cont = { + listeners: listener, + errHandlers: errHandler, + rawEmitters: rawEmitter, + watcher + }; + FsWatchInstances.set(fullPath, cont); + } + // const index = cont.listeners.indexOf(listener); + + // removes this instance's listeners and closes the underlying fs_watch + // instance if there are no more listeners left + return () => { + delFromSet(cont, KEY_LISTENERS, listener); + delFromSet(cont, KEY_ERR, errHandler); + delFromSet(cont, KEY_RAW, rawEmitter); + if (isEmptySet(cont.listeners)) { + // Check to protect against issue gh-730. + // if (cont.watcherUnusable) { + cont.watcher.close(); + // } + FsWatchInstances.delete(fullPath); + HANDLER_KEYS.forEach(clearItem(cont)); + cont.watcher = undefined; + Object.freeze(cont); + } + }; +}; + +// fs_watchFile helpers + +// object to hold per-process fs_watchFile instances +// (may be shared across chokidar FSWatcher instances) +const FsWatchFileInstances = new Map(); + +/** + * Instantiates the fs_watchFile interface or binds listeners + * to an existing one covering the same file system entry + * @param {String} path to be watched + * @param {String} fullPath absolute path + * @param {Object} options options to be passed to fs_watchFile + * @param {Object} handlers container for event listener functions + * @returns {Function} closer + */ +const setFsWatchFileListener = (path, fullPath, options, handlers) => { + const {listener, rawEmitter} = handlers; + let cont = FsWatchFileInstances.get(fullPath); + + /* eslint-disable no-unused-vars, prefer-destructuring */ + let listeners = new Set(); + let rawEmitters = new Set(); + + const copts = cont && cont.options; + if (copts && (copts.persistent < options.persistent || copts.interval > options.interval)) { + // "Upgrade" the watcher to persistence or a quicker interval. + // This creates some unlikely edge case issues if the user mixes + // settings in a very weird way, but solving for those cases + // doesn't seem worthwhile for the added complexity. + listeners = cont.listeners; + rawEmitters = cont.rawEmitters; + fs.unwatchFile(fullPath); + cont = undefined; + } + + /* eslint-enable no-unused-vars, prefer-destructuring */ + + if (cont) { + addAndConvert(cont, KEY_LISTENERS, listener); + addAndConvert(cont, KEY_RAW, rawEmitter); + } else { + // TODO + // listeners.add(listener); + // rawEmitters.add(rawEmitter); + cont = { + listeners: listener, + rawEmitters: rawEmitter, + options, + watcher: fs.watchFile(fullPath, options, (curr, prev) => { + foreach(cont.rawEmitters, (rawEmitter) => { + rawEmitter(EV_CHANGE, fullPath, {curr, prev}); + }); + const currmtime = curr.mtimeMs; + if (curr.size !== prev.size || currmtime > prev.mtimeMs || currmtime === 0) { + foreach(cont.listeners, (listener) => listener(path, curr)); + } + }) + }; + FsWatchFileInstances.set(fullPath, cont); + } + // const index = cont.listeners.indexOf(listener); + + // Removes this instance's listeners and closes the underlying fs_watchFile + // instance if there are no more listeners left. + return () => { + delFromSet(cont, KEY_LISTENERS, listener); + delFromSet(cont, KEY_RAW, rawEmitter); + if (isEmptySet(cont.listeners)) { + FsWatchFileInstances.delete(fullPath); + fs.unwatchFile(fullPath); + cont.options = cont.watcher = undefined; + Object.freeze(cont); + } + }; +}; + +/** + * @mixin + */ +class NodeFsHandler { + +/** + * @param {import("../index").FSWatcher} fsW + */ +constructor(fsW) { + this.fsw = fsW; + this._boundHandleError = (error) => fsW._handleError(error); +} + +/** + * Watch file for changes with fs_watchFile or fs_watch. + * @param {String} path to file or dir + * @param {Function} listener on fs change + * @returns {Function} closer for the watcher instance + */ +_watchWithNodeFs(path, listener) { + const opts = this.fsw.options; + const directory = sysPath.dirname(path); + const basename = sysPath.basename(path); + const parent = this.fsw._getWatchedDir(directory); + parent.add(basename); + const absolutePath = sysPath.resolve(path); + const options = {persistent: opts.persistent}; + if (!listener) listener = EMPTY_FN; + + let closer; + if (opts.usePolling) { + options.interval = opts.enableBinaryInterval && isBinaryPath(basename) ? + opts.binaryInterval : opts.interval; + closer = setFsWatchFileListener(path, absolutePath, options, { + listener, + rawEmitter: this.fsw._emitRaw + }); + } else { + closer = setFsWatchListener(path, absolutePath, options, { + listener, + errHandler: this._boundHandleError, + rawEmitter: this.fsw._emitRaw + }); + } + return closer; +} + +/** + * Watch a file and emit add event if warranted. + * @param {Path} file Path + * @param {fs.Stats} stats result of fs_stat + * @param {Boolean} initialAdd was the file added at watch instantiation? + * @returns {Function} closer for the watcher instance + */ +_handleFile(file, stats, initialAdd) { + if (this.fsw.closed) { + return; + } + const dirname = sysPath.dirname(file); + const basename = sysPath.basename(file); + const parent = this.fsw._getWatchedDir(dirname); + // stats is always present + let prevStats = stats; + + // if the file is already being watched, do nothing + if (parent.has(basename)) return; + + const listener = async (path, newStats) => { + if (!this.fsw._throttle(THROTTLE_MODE_WATCH, file, 5)) return; + if (!newStats || newStats.mtimeMs === 0) { + try { + const newStats = await stat(file); + if (this.fsw.closed) return; + // Check that change event was not fired because of changed only accessTime. + const at = newStats.atimeMs; + const mt = newStats.mtimeMs; + if (!at || at <= mt || mt !== prevStats.mtimeMs) { + this.fsw._emit(EV_CHANGE, file, newStats); + } + if (isLinux && prevStats.ino !== newStats.ino) { + this.fsw._closeFile(path) + prevStats = newStats; + this.fsw._addPathCloser(path, this._watchWithNodeFs(file, listener)); + } else { + prevStats = newStats; + } + } catch (error) { + // Fix issues where mtime is null but file is still present + this.fsw._remove(dirname, basename); + } + // add is about to be emitted if file not already tracked in parent + } else if (parent.has(basename)) { + // Check that change event was not fired because of changed only accessTime. + const at = newStats.atimeMs; + const mt = newStats.mtimeMs; + if (!at || at <= mt || mt !== prevStats.mtimeMs) { + this.fsw._emit(EV_CHANGE, file, newStats); + } + prevStats = newStats; + } + } + // kick off the watcher + const closer = this._watchWithNodeFs(file, listener); + + // emit an add event if we're supposed to + if (!(initialAdd && this.fsw.options.ignoreInitial) && this.fsw._isntIgnored(file)) { + if (!this.fsw._throttle(EV_ADD, file, 0)) return; + this.fsw._emit(EV_ADD, file, stats); + } + + return closer; +} + +/** + * Handle symlinks encountered while reading a dir. + * @param {Object} entry returned by readdirp + * @param {String} directory path of dir being read + * @param {String} path of this item + * @param {String} item basename of this item + * @returns {Promise} true if no more processing is needed for this entry. + */ +async _handleSymlink(entry, directory, path, item) { + if (this.fsw.closed) { + return; + } + const full = entry.fullPath; + const dir = this.fsw._getWatchedDir(directory); + + if (!this.fsw.options.followSymlinks) { + // watch symlink directly (don't follow) and detect changes + this.fsw._incrReadyCount(); + + let linkPath; + try { + linkPath = await fsrealpath(path); + } catch (e) { + this.fsw._emitReady(); + return true; + } + + if (this.fsw.closed) return; + if (dir.has(item)) { + if (this.fsw._symlinkPaths.get(full) !== linkPath) { + this.fsw._symlinkPaths.set(full, linkPath); + this.fsw._emit(EV_CHANGE, path, entry.stats); + } + } else { + dir.add(item); + this.fsw._symlinkPaths.set(full, linkPath); + this.fsw._emit(EV_ADD, path, entry.stats); + } + this.fsw._emitReady(); + return true; + } + + // don't follow the same symlink more than once + if (this.fsw._symlinkPaths.has(full)) { + return true; + } + + this.fsw._symlinkPaths.set(full, true); +} + +_handleRead(directory, initialAdd, wh, target, dir, depth, throttler) { + // Normalize the directory name on Windows + directory = sysPath.join(directory, EMPTY_STR); + + if (!wh.hasGlob) { + throttler = this.fsw._throttle('readdir', directory, 1000); + if (!throttler) return; + } + + const previous = this.fsw._getWatchedDir(wh.path); + const current = new Set(); + + let stream = this.fsw._readdirp(directory, { + fileFilter: entry => wh.filterPath(entry), + directoryFilter: entry => wh.filterDir(entry), + depth: 0 + }).on(STR_DATA, async (entry) => { + if (this.fsw.closed) { + stream = undefined; + return; + } + const item = entry.path; + let path = sysPath.join(directory, item); + current.add(item); + + if (entry.stats.isSymbolicLink() && await this._handleSymlink(entry, directory, path, item)) { + return; + } + + if (this.fsw.closed) { + stream = undefined; + return; + } + // Files that present in current directory snapshot + // but absent in previous are added to watch list and + // emit `add` event. + if (item === target || !target && !previous.has(item)) { + this.fsw._incrReadyCount(); + + // ensure relativeness of path is preserved in case of watcher reuse + path = sysPath.join(dir, sysPath.relative(dir, path)); + + this._addToNodeFs(path, initialAdd, wh, depth + 1); + } + }).on(EV_ERROR, this._boundHandleError); + + return new Promise(resolve => + stream.once(STR_END, () => { + if (this.fsw.closed) { + stream = undefined; + return; + } + const wasThrottled = throttler ? throttler.clear() : false; + + resolve(); + + // Files that absent in current directory snapshot + // but present in previous emit `remove` event + // and are removed from @watched[directory]. + previous.getChildren().filter((item) => { + return item !== directory && + !current.has(item) && + // in case of intersecting globs; + // a path may have been filtered out of this readdir, but + // shouldn't be removed because it matches a different glob + (!wh.hasGlob || wh.filterPath({ + fullPath: sysPath.resolve(directory, item) + })); + }).forEach((item) => { + this.fsw._remove(directory, item); + }); + + stream = undefined; + + // one more time for any missed in case changes came in extremely quickly + if (wasThrottled) this._handleRead(directory, false, wh, target, dir, depth, throttler); + }) + ); +} + +/** + * Read directory to add / remove files from `@watched` list and re-read it on change. + * @param {String} dir fs path + * @param {fs.Stats} stats + * @param {Boolean} initialAdd + * @param {Number} depth relative to user-supplied path + * @param {String} target child path targeted for watch + * @param {Object} wh Common watch helpers for this path + * @param {String} realpath + * @returns {Promise} closer for the watcher instance. + */ +async _handleDir(dir, stats, initialAdd, depth, target, wh, realpath) { + const parentDir = this.fsw._getWatchedDir(sysPath.dirname(dir)); + const tracked = parentDir.has(sysPath.basename(dir)); + if (!(initialAdd && this.fsw.options.ignoreInitial) && !target && !tracked) { + if (!wh.hasGlob || wh.globFilter(dir)) this.fsw._emit(EV_ADD_DIR, dir, stats); + } + + // ensure dir is tracked (harmless if redundant) + parentDir.add(sysPath.basename(dir)); + this.fsw._getWatchedDir(dir); + let throttler; + let closer; + + const oDepth = this.fsw.options.depth; + if ((oDepth == null || depth <= oDepth) && !this.fsw._symlinkPaths.has(realpath)) { + if (!target) { + await this._handleRead(dir, initialAdd, wh, target, dir, depth, throttler); + if (this.fsw.closed) return; + } + + closer = this._watchWithNodeFs(dir, (dirPath, stats) => { + // if current directory is removed, do nothing + if (stats && stats.mtimeMs === 0) return; + + this._handleRead(dirPath, false, wh, target, dir, depth, throttler); + }); + } + return closer; +} + +/** + * Handle added file, directory, or glob pattern. + * Delegates call to _handleFile / _handleDir after checks. + * @param {String} path to file or ir + * @param {Boolean} initialAdd was the file added at watch instantiation? + * @param {Object} priorWh depth relative to user-supplied path + * @param {Number} depth Child path actually targeted for watch + * @param {String=} target Child path actually targeted for watch + * @returns {Promise} + */ +async _addToNodeFs(path, initialAdd, priorWh, depth, target) { + const ready = this.fsw._emitReady; + if (this.fsw._isIgnored(path) || this.fsw.closed) { + ready(); + return false; + } + + const wh = this.fsw._getWatchHelpers(path, depth); + if (!wh.hasGlob && priorWh) { + wh.hasGlob = priorWh.hasGlob; + wh.globFilter = priorWh.globFilter; + wh.filterPath = entry => priorWh.filterPath(entry); + wh.filterDir = entry => priorWh.filterDir(entry); + } + + // evaluate what is at the path we're being asked to watch + try { + const stats = await statMethods[wh.statMethod](wh.watchPath); + if (this.fsw.closed) return; + if (this.fsw._isIgnored(wh.watchPath, stats)) { + ready(); + return false; + } + + const follow = this.fsw.options.followSymlinks && !path.includes(STAR) && !path.includes(BRACE_START); + let closer; + if (stats.isDirectory()) { + const absPath = sysPath.resolve(path); + const targetPath = follow ? await fsrealpath(path) : path; + if (this.fsw.closed) return; + closer = await this._handleDir(wh.watchPath, stats, initialAdd, depth, target, wh, targetPath); + if (this.fsw.closed) return; + // preserve this symlink's target path + if (absPath !== targetPath && targetPath !== undefined) { + this.fsw._symlinkPaths.set(absPath, targetPath); + } + } else if (stats.isSymbolicLink()) { + const targetPath = follow ? await fsrealpath(path) : path; + if (this.fsw.closed) return; + const parent = sysPath.dirname(wh.watchPath); + this.fsw._getWatchedDir(parent).add(wh.watchPath); + this.fsw._emit(EV_ADD, wh.watchPath, stats); + closer = await this._handleDir(parent, stats, initialAdd, depth, path, wh, targetPath); + if (this.fsw.closed) return; + + // preserve this symlink's target path + if (targetPath !== undefined) { + this.fsw._symlinkPaths.set(sysPath.resolve(path), targetPath); + } + } else { + closer = this._handleFile(wh.watchPath, stats, initialAdd); + } + ready(); + + this.fsw._addPathCloser(path, closer); + return false; + + } catch (error) { + if (this.fsw._handleError(error)) { + ready(); + return path; + } + } +} + +} + +module.exports = NodeFsHandler; diff --git a/node_modules/chokidar/package.json b/node_modules/chokidar/package.json new file mode 100644 index 00000000..6c3cd27c --- /dev/null +++ b/node_modules/chokidar/package.json @@ -0,0 +1,85 @@ +{ + "name": "chokidar", + "description": "Minimal and efficient cross-platform file watching library", + "version": "3.5.3", + "homepage": "https://github.com/paulmillr/chokidar", + "author": "Paul Miller (https://paulmillr.com)", + "contributors": [ + "Paul Miller (https://paulmillr.com)", + "Elan Shanker" + ], + "engines": { + "node": ">= 8.10.0" + }, + "main": "index.js", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "devDependencies": { + "@types/node": "^14", + "chai": "^4.3", + "dtslint": "^3.3.0", + "eslint": "^7.0.0", + "mocha": "^7.0.0", + "nyc": "^15.0.0", + "rimraf": "^3.0.0", + "sinon": "^9.0.1", + "sinon-chai": "^3.3.0", + "typescript": "~4.4.3", + "upath": "^1.2.0" + }, + "files": [ + "index.js", + "lib/*.js", + "types/index.d.ts" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/paulmillr/chokidar.git" + }, + "bugs": { + "url": "https://github.com/paulmillr/chokidar/issues" + }, + "license": "MIT", + "scripts": { + "dtslint": "dtslint types", + "lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .", + "mocha": "mocha --exit --timeout 90000", + "test": "npm run lint && npm run mocha" + }, + "keywords": [ + "fs", + "watch", + "watchFile", + "watcher", + "watching", + "file", + "fsevents" + ], + "types": "./types/index.d.ts", + "nyc": { + "include": [ + "index.js", + "lib/*.js" + ], + "reporter": [ + "html", + "text" + ] + }, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] +} diff --git a/node_modules/chokidar/types/index.d.ts b/node_modules/chokidar/types/index.d.ts new file mode 100644 index 00000000..aab8e337 --- /dev/null +++ b/node_modules/chokidar/types/index.d.ts @@ -0,0 +1,188 @@ +// TypeScript Version: 3.0 + +/// + +import * as fs from "fs"; +import { EventEmitter } from "events"; +import { Matcher } from 'anymatch'; + +export class FSWatcher extends EventEmitter implements fs.FSWatcher { + options: WatchOptions; + + /** + * Constructs a new FSWatcher instance with optional WatchOptions parameter. + */ + constructor(options?: WatchOptions); + + /** + * Add files, directories, or glob patterns for tracking. Takes an array of strings or just one + * string. + */ + add(paths: string | ReadonlyArray): this; + + /** + * Stop watching files, directories, or glob patterns. Takes an array of strings or just one + * string. + */ + unwatch(paths: string | ReadonlyArray): this; + + /** + * Returns an object representing all the paths on the file system being watched by this + * `FSWatcher` instance. The object's keys are all the directories (using absolute paths unless + * the `cwd` option was used), and the values are arrays of the names of the items contained in + * each directory. + */ + getWatched(): { + [directory: string]: string[]; + }; + + /** + * Removes all listeners from watched files. + */ + close(): Promise; + + on(event: 'add'|'addDir'|'change', listener: (path: string, stats?: fs.Stats) => void): this; + + on(event: 'all', listener: (eventName: 'add'|'addDir'|'change'|'unlink'|'unlinkDir', path: string, stats?: fs.Stats) => void): this; + + /** + * Error occurred + */ + on(event: 'error', listener: (error: Error) => void): this; + + /** + * Exposes the native Node `fs.FSWatcher events` + */ + on(event: 'raw', listener: (eventName: string, path: string, details: any) => void): this; + + /** + * Fires when the initial scan is complete + */ + on(event: 'ready', listener: () => void): this; + + on(event: 'unlink'|'unlinkDir', listener: (path: string) => void): this; + + on(event: string, listener: (...args: any[]) => void): this; +} + +export interface WatchOptions { + /** + * Indicates whether the process should continue to run as long as files are being watched. If + * set to `false` when using `fsevents` to watch, no more events will be emitted after `ready`, + * even if the process continues to run. + */ + persistent?: boolean; + + /** + * ([anymatch](https://github.com/micromatch/anymatch)-compatible definition) Defines files/paths to + * be ignored. The whole relative or absolute path is tested, not just filename. If a function + * with two arguments is provided, it gets called twice per path - once with a single argument + * (the path), second time with two arguments (the path and the + * [`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) object of that path). + */ + ignored?: Matcher; + + /** + * If set to `false` then `add`/`addDir` events are also emitted for matching paths while + * instantiating the watching as chokidar discovers these file paths (before the `ready` event). + */ + ignoreInitial?: boolean; + + /** + * When `false`, only the symlinks themselves will be watched for changes instead of following + * the link references and bubbling events through the link's path. + */ + followSymlinks?: boolean; + + /** + * The base directory from which watch `paths` are to be derived. Paths emitted with events will + * be relative to this. + */ + cwd?: string; + + /** + * If set to true then the strings passed to .watch() and .add() are treated as literal path + * names, even if they look like globs. Default: false. + */ + disableGlobbing?: boolean; + + /** + * Whether to use fs.watchFile (backed by polling), or fs.watch. If polling leads to high CPU + * utilization, consider setting this to `false`. It is typically necessary to **set this to + * `true` to successfully watch files over a network**, and it may be necessary to successfully + * watch files in other non-standard situations. Setting to `true` explicitly on OS X overrides + * the `useFsEvents` default. + */ + usePolling?: boolean; + + /** + * Whether to use the `fsevents` watching interface if available. When set to `true` explicitly + * and `fsevents` is available this supercedes the `usePolling` setting. When set to `false` on + * OS X, `usePolling: true` becomes the default. + */ + useFsEvents?: boolean; + + /** + * If relying upon the [`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) object that + * may get passed with `add`, `addDir`, and `change` events, set this to `true` to ensure it is + * provided even in cases where it wasn't already available from the underlying watch events. + */ + alwaysStat?: boolean; + + /** + * If set, limits how many levels of subdirectories will be traversed. + */ + depth?: number; + + /** + * Interval of file system polling. + */ + interval?: number; + + /** + * Interval of file system polling for binary files. ([see list of binary extensions](https://gi + * thub.com/sindresorhus/binary-extensions/blob/master/binary-extensions.json)) + */ + binaryInterval?: number; + + /** + * Indicates whether to watch files that don't have read permissions if possible. If watching + * fails due to `EPERM` or `EACCES` with this set to `true`, the errors will be suppressed + * silently. + */ + ignorePermissionErrors?: boolean; + + /** + * `true` if `useFsEvents` and `usePolling` are `false`). Automatically filters out artifacts + * that occur when using editors that use "atomic writes" instead of writing directly to the + * source file. If a file is re-added within 100 ms of being deleted, Chokidar emits a `change` + * event rather than `unlink` then `add`. If the default of 100 ms does not work well for you, + * you can override it by setting `atomic` to a custom value, in milliseconds. + */ + atomic?: boolean | number; + + /** + * can be set to an object in order to adjust timing params: + */ + awaitWriteFinish?: AwaitWriteFinishOptions | boolean; +} + +export interface AwaitWriteFinishOptions { + /** + * Amount of time in milliseconds for a file size to remain constant before emitting its event. + */ + stabilityThreshold?: number; + + /** + * File size polling interval. + */ + pollInterval?: number; +} + +/** + * produces an instance of `FSWatcher`. + */ +export function watch( + paths: string | ReadonlyArray, + options?: WatchOptions +): FSWatcher; diff --git a/node_modules/cliui/CHANGELOG.md b/node_modules/cliui/CHANGELOG.md new file mode 100644 index 00000000..d6a7e3f8 --- /dev/null +++ b/node_modules/cliui/CHANGELOG.md @@ -0,0 +1,121 @@ +# Change Log + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +### [7.0.4](https://www.github.com/yargs/cliui/compare/v7.0.3...v7.0.4) (2020-11-08) + + +### Bug Fixes + +* **deno:** import UIOptions from definitions ([#97](https://www.github.com/yargs/cliui/issues/97)) ([f04f343](https://www.github.com/yargs/cliui/commit/f04f3439bc78114c7e90f82ff56f5acf16268ea8)) + +### [7.0.3](https://www.github.com/yargs/cliui/compare/v7.0.2...v7.0.3) (2020-10-16) + + +### Bug Fixes + +* **exports:** node 13.0 and 13.1 require the dotted object form _with_ a string fallback ([#93](https://www.github.com/yargs/cliui/issues/93)) ([eca16fc](https://www.github.com/yargs/cliui/commit/eca16fc05d26255df3280906c36d7f0e5b05c6e9)) + +### [7.0.2](https://www.github.com/yargs/cliui/compare/v7.0.1...v7.0.2) (2020-10-14) + + +### Bug Fixes + +* **exports:** node 13.0-13.6 require a string fallback ([#91](https://www.github.com/yargs/cliui/issues/91)) ([b529d7e](https://www.github.com/yargs/cliui/commit/b529d7e432901af1af7848b23ed6cf634497d961)) + +### [7.0.1](https://www.github.com/yargs/cliui/compare/v7.0.0...v7.0.1) (2020-08-16) + + +### Bug Fixes + +* **build:** main should be build/index.cjs ([dc29a3c](https://www.github.com/yargs/cliui/commit/dc29a3cc617a410aa850e06337b5954b04f2cb4d)) + +## [7.0.0](https://www.github.com/yargs/cliui/compare/v6.0.0...v7.0.0) (2020-08-16) + + +### ⚠ BREAKING CHANGES + +* tsc/ESM/Deno support (#82) +* modernize deps and build (#80) + +### Build System + +* modernize deps and build ([#80](https://www.github.com/yargs/cliui/issues/80)) ([339d08d](https://www.github.com/yargs/cliui/commit/339d08dc71b15a3928aeab09042af94db2f43743)) + + +### Code Refactoring + +* tsc/ESM/Deno support ([#82](https://www.github.com/yargs/cliui/issues/82)) ([4b777a5](https://www.github.com/yargs/cliui/commit/4b777a5fe01c5d8958c6708695d6aab7dbe5706c)) + +## [6.0.0](https://www.github.com/yargs/cliui/compare/v5.0.0...v6.0.0) (2019-11-10) + + +### ⚠ BREAKING CHANGES + +* update deps, drop Node 6 + +### Code Refactoring + +* update deps, drop Node 6 ([62056df](https://www.github.com/yargs/cliui/commit/62056df)) + +## [5.0.0](https://github.com/yargs/cliui/compare/v4.1.0...v5.0.0) (2019-04-10) + + +### Bug Fixes + +* Update wrap-ansi to fix compatibility with latest versions of chalk. ([#60](https://github.com/yargs/cliui/issues/60)) ([7bf79ae](https://github.com/yargs/cliui/commit/7bf79ae)) + + +### BREAKING CHANGES + +* Drop support for node < 6. + + + + +## [4.1.0](https://github.com/yargs/cliui/compare/v4.0.0...v4.1.0) (2018-04-23) + + +### Features + +* add resetOutput method ([#57](https://github.com/yargs/cliui/issues/57)) ([7246902](https://github.com/yargs/cliui/commit/7246902)) + + + + +## [4.0.0](https://github.com/yargs/cliui/compare/v3.2.0...v4.0.0) (2017-12-18) + + +### Bug Fixes + +* downgrades strip-ansi to version 3.0.1 ([#54](https://github.com/yargs/cliui/issues/54)) ([5764c46](https://github.com/yargs/cliui/commit/5764c46)) +* set env variable FORCE_COLOR. ([#56](https://github.com/yargs/cliui/issues/56)) ([7350e36](https://github.com/yargs/cliui/commit/7350e36)) + + +### Chores + +* drop support for node < 4 ([#53](https://github.com/yargs/cliui/issues/53)) ([b105376](https://github.com/yargs/cliui/commit/b105376)) + + +### Features + +* add fallback for window width ([#45](https://github.com/yargs/cliui/issues/45)) ([d064922](https://github.com/yargs/cliui/commit/d064922)) + + +### BREAKING CHANGES + +* officially drop support for Node < 4 + + + + +## [3.2.0](https://github.com/yargs/cliui/compare/v3.1.2...v3.2.0) (2016-04-11) + + +### Bug Fixes + +* reduces tarball size ([acc6c33](https://github.com/yargs/cliui/commit/acc6c33)) + +### Features + +* adds standard-version for release management ([ff84e32](https://github.com/yargs/cliui/commit/ff84e32)) diff --git a/node_modules/cliui/LICENSE.txt b/node_modules/cliui/LICENSE.txt new file mode 100644 index 00000000..c7e27478 --- /dev/null +++ b/node_modules/cliui/LICENSE.txt @@ -0,0 +1,14 @@ +Copyright (c) 2015, Contributors + +Permission to use, copy, modify, and/or distribute this software +for any purpose with or without fee is hereby granted, provided +that the above copyright notice and this permission notice +appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE +LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/cliui/README.md b/node_modules/cliui/README.md new file mode 100644 index 00000000..65b56722 --- /dev/null +++ b/node_modules/cliui/README.md @@ -0,0 +1,141 @@ +# cliui + +![ci](https://github.com/yargs/cliui/workflows/ci/badge.svg) +[![NPM version](https://img.shields.io/npm/v/cliui.svg)](https://www.npmjs.com/package/cliui) +[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org) +![nycrc config on GitHub](https://img.shields.io/nycrc/yargs/cliui) + +easily create complex multi-column command-line-interfaces. + +## Example + +```js +const ui = require('cliui')() + +ui.div('Usage: $0 [command] [options]') + +ui.div({ + text: 'Options:', + padding: [2, 0, 1, 0] +}) + +ui.div( + { + text: "-f, --file", + width: 20, + padding: [0, 4, 0, 4] + }, + { + text: "the file to load." + + chalk.green("(if this description is long it wraps).") + , + width: 20 + }, + { + text: chalk.red("[required]"), + align: 'right' + } +) + +console.log(ui.toString()) +``` + +## Deno/ESM Support + +As of `v7` `cliui` supports [Deno](https://github.com/denoland/deno) and +[ESM](https://nodejs.org/api/esm.html#esm_ecmascript_modules): + +```typescript +import cliui from "https://deno.land/x/cliui/deno.ts"; + +const ui = cliui({}) + +ui.div('Usage: $0 [command] [options]') + +ui.div({ + text: 'Options:', + padding: [2, 0, 1, 0] +}) + +ui.div({ + text: "-f, --file", + width: 20, + padding: [0, 4, 0, 4] +}) + +console.log(ui.toString()) +``` + + + +## Layout DSL + +cliui exposes a simple layout DSL: + +If you create a single `ui.div`, passing a string rather than an +object: + +* `\n`: characters will be interpreted as new rows. +* `\t`: characters will be interpreted as new columns. +* `\s`: characters will be interpreted as padding. + +**as an example...** + +```js +var ui = require('./')({ + width: 60 +}) + +ui.div( + 'Usage: node ./bin/foo.js\n' + + ' \t provide a regex\n' + + ' \t provide a glob\t [required]' +) + +console.log(ui.toString()) +``` + +**will output:** + +```shell +Usage: node ./bin/foo.js + provide a regex + provide a glob [required] +``` + +## Methods + +```js +cliui = require('cliui') +``` + +### cliui({width: integer}) + +Specify the maximum width of the UI being generated. +If no width is provided, cliui will try to get the current window's width and use it, and if that doesn't work, width will be set to `80`. + +### cliui({wrap: boolean}) + +Enable or disable the wrapping of text in a column. + +### cliui.div(column, column, column) + +Create a row with any number of columns, a column +can either be a string, or an object with the following +options: + +* **text:** some text to place in the column. +* **width:** the width of a column. +* **align:** alignment, `right` or `center`. +* **padding:** `[top, right, bottom, left]`. +* **border:** should a border be placed around the div? + +### cliui.span(column, column, column) + +Similar to `div`, except the next row will be appended without +a new line being created. + +### cliui.resetOutput() + +Resets the UI elements of the current cliui instance, maintaining the values +set for `width` and `wrap`. diff --git a/node_modules/cliui/build/index.cjs b/node_modules/cliui/build/index.cjs new file mode 100644 index 00000000..82126b6b --- /dev/null +++ b/node_modules/cliui/build/index.cjs @@ -0,0 +1,302 @@ +'use strict'; + +const align = { + right: alignRight, + center: alignCenter +}; +const top = 0; +const right = 1; +const bottom = 2; +const left = 3; +class UI { + constructor(opts) { + var _a; + this.width = opts.width; + this.wrap = (_a = opts.wrap) !== null && _a !== void 0 ? _a : true; + this.rows = []; + } + span(...args) { + const cols = this.div(...args); + cols.span = true; + } + resetOutput() { + this.rows = []; + } + div(...args) { + if (args.length === 0) { + this.div(''); + } + if (this.wrap && this.shouldApplyLayoutDSL(...args) && typeof args[0] === 'string') { + return this.applyLayoutDSL(args[0]); + } + const cols = args.map(arg => { + if (typeof arg === 'string') { + return this.colFromString(arg); + } + return arg; + }); + this.rows.push(cols); + return cols; + } + shouldApplyLayoutDSL(...args) { + return args.length === 1 && typeof args[0] === 'string' && + /[\t\n]/.test(args[0]); + } + applyLayoutDSL(str) { + const rows = str.split('\n').map(row => row.split('\t')); + let leftColumnWidth = 0; + // simple heuristic for layout, make sure the + // second column lines up along the left-hand. + // don't allow the first column to take up more + // than 50% of the screen. + rows.forEach(columns => { + if (columns.length > 1 && mixin.stringWidth(columns[0]) > leftColumnWidth) { + leftColumnWidth = Math.min(Math.floor(this.width * 0.5), mixin.stringWidth(columns[0])); + } + }); + // generate a table: + // replacing ' ' with padding calculations. + // using the algorithmically generated width. + rows.forEach(columns => { + this.div(...columns.map((r, i) => { + return { + text: r.trim(), + padding: this.measurePadding(r), + width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined + }; + })); + }); + return this.rows[this.rows.length - 1]; + } + colFromString(text) { + return { + text, + padding: this.measurePadding(text) + }; + } + measurePadding(str) { + // measure padding without ansi escape codes + const noAnsi = mixin.stripAnsi(str); + return [0, noAnsi.match(/\s*$/)[0].length, 0, noAnsi.match(/^\s*/)[0].length]; + } + toString() { + const lines = []; + this.rows.forEach(row => { + this.rowToString(row, lines); + }); + // don't display any lines with the + // hidden flag set. + return lines + .filter(line => !line.hidden) + .map(line => line.text) + .join('\n'); + } + rowToString(row, lines) { + this.rasterize(row).forEach((rrow, r) => { + let str = ''; + rrow.forEach((col, c) => { + const { width } = row[c]; // the width with padding. + const wrapWidth = this.negatePadding(row[c]); // the width without padding. + let ts = col; // temporary string used during alignment/padding. + if (wrapWidth > mixin.stringWidth(col)) { + ts += ' '.repeat(wrapWidth - mixin.stringWidth(col)); + } + // align the string within its column. + if (row[c].align && row[c].align !== 'left' && this.wrap) { + const fn = align[row[c].align]; + ts = fn(ts, wrapWidth); + if (mixin.stringWidth(ts) < wrapWidth) { + ts += ' '.repeat((width || 0) - mixin.stringWidth(ts) - 1); + } + } + // apply border and padding to string. + const padding = row[c].padding || [0, 0, 0, 0]; + if (padding[left]) { + str += ' '.repeat(padding[left]); + } + str += addBorder(row[c], ts, '| '); + str += ts; + str += addBorder(row[c], ts, ' |'); + if (padding[right]) { + str += ' '.repeat(padding[right]); + } + // if prior row is span, try to render the + // current row on the prior line. + if (r === 0 && lines.length > 0) { + str = this.renderInline(str, lines[lines.length - 1]); + } + }); + // remove trailing whitespace. + lines.push({ + text: str.replace(/ +$/, ''), + span: row.span + }); + }); + return lines; + } + // if the full 'source' can render in + // the target line, do so. + renderInline(source, previousLine) { + const match = source.match(/^ */); + const leadingWhitespace = match ? match[0].length : 0; + const target = previousLine.text; + const targetTextWidth = mixin.stringWidth(target.trimRight()); + if (!previousLine.span) { + return source; + } + // if we're not applying wrapping logic, + // just always append to the span. + if (!this.wrap) { + previousLine.hidden = true; + return target + source; + } + if (leadingWhitespace < targetTextWidth) { + return source; + } + previousLine.hidden = true; + return target.trimRight() + ' '.repeat(leadingWhitespace - targetTextWidth) + source.trimLeft(); + } + rasterize(row) { + const rrows = []; + const widths = this.columnWidths(row); + let wrapped; + // word wrap all columns, and create + // a data-structure that is easy to rasterize. + row.forEach((col, c) => { + // leave room for left and right padding. + col.width = widths[c]; + if (this.wrap) { + wrapped = mixin.wrap(col.text, this.negatePadding(col), { hard: true }).split('\n'); + } + else { + wrapped = col.text.split('\n'); + } + if (col.border) { + wrapped.unshift('.' + '-'.repeat(this.negatePadding(col) + 2) + '.'); + wrapped.push("'" + '-'.repeat(this.negatePadding(col) + 2) + "'"); + } + // add top and bottom padding. + if (col.padding) { + wrapped.unshift(...new Array(col.padding[top] || 0).fill('')); + wrapped.push(...new Array(col.padding[bottom] || 0).fill('')); + } + wrapped.forEach((str, r) => { + if (!rrows[r]) { + rrows.push([]); + } + const rrow = rrows[r]; + for (let i = 0; i < c; i++) { + if (rrow[i] === undefined) { + rrow.push(''); + } + } + rrow.push(str); + }); + }); + return rrows; + } + negatePadding(col) { + let wrapWidth = col.width || 0; + if (col.padding) { + wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0); + } + if (col.border) { + wrapWidth -= 4; + } + return wrapWidth; + } + columnWidths(row) { + if (!this.wrap) { + return row.map(col => { + return col.width || mixin.stringWidth(col.text); + }); + } + let unset = row.length; + let remainingWidth = this.width; + // column widths can be set in config. + const widths = row.map(col => { + if (col.width) { + unset--; + remainingWidth -= col.width; + return col.width; + } + return undefined; + }); + // any unset widths should be calculated. + const unsetWidth = unset ? Math.floor(remainingWidth / unset) : 0; + return widths.map((w, i) => { + if (w === undefined) { + return Math.max(unsetWidth, _minWidth(row[i])); + } + return w; + }); + } +} +function addBorder(col, ts, style) { + if (col.border) { + if (/[.']-+[.']/.test(ts)) { + return ''; + } + if (ts.trim().length !== 0) { + return style; + } + return ' '; + } + return ''; +} +// calculates the minimum width of +// a column, based on padding preferences. +function _minWidth(col) { + const padding = col.padding || []; + const minWidth = 1 + (padding[left] || 0) + (padding[right] || 0); + if (col.border) { + return minWidth + 4; + } + return minWidth; +} +function getWindowWidth() { + /* istanbul ignore next: depends on terminal */ + if (typeof process === 'object' && process.stdout && process.stdout.columns) { + return process.stdout.columns; + } + return 80; +} +function alignRight(str, width) { + str = str.trim(); + const strWidth = mixin.stringWidth(str); + if (strWidth < width) { + return ' '.repeat(width - strWidth) + str; + } + return str; +} +function alignCenter(str, width) { + str = str.trim(); + const strWidth = mixin.stringWidth(str); + /* istanbul ignore next */ + if (strWidth >= width) { + return str; + } + return ' '.repeat((width - strWidth) >> 1) + str; +} +let mixin; +function cliui(opts, _mixin) { + mixin = _mixin; + return new UI({ + width: (opts === null || opts === void 0 ? void 0 : opts.width) || getWindowWidth(), + wrap: opts === null || opts === void 0 ? void 0 : opts.wrap + }); +} + +// Bootstrap cliui with CommonJS dependencies: +const stringWidth = require('string-width'); +const stripAnsi = require('strip-ansi'); +const wrap = require('wrap-ansi'); +function ui(opts) { + return cliui(opts, { + stringWidth, + stripAnsi, + wrap + }); +} + +module.exports = ui; diff --git a/node_modules/cliui/build/lib/index.js b/node_modules/cliui/build/lib/index.js new file mode 100644 index 00000000..b6eb0544 --- /dev/null +++ b/node_modules/cliui/build/lib/index.js @@ -0,0 +1,287 @@ +'use strict'; +const align = { + right: alignRight, + center: alignCenter +}; +const top = 0; +const right = 1; +const bottom = 2; +const left = 3; +export class UI { + constructor(opts) { + var _a; + this.width = opts.width; + this.wrap = (_a = opts.wrap) !== null && _a !== void 0 ? _a : true; + this.rows = []; + } + span(...args) { + const cols = this.div(...args); + cols.span = true; + } + resetOutput() { + this.rows = []; + } + div(...args) { + if (args.length === 0) { + this.div(''); + } + if (this.wrap && this.shouldApplyLayoutDSL(...args) && typeof args[0] === 'string') { + return this.applyLayoutDSL(args[0]); + } + const cols = args.map(arg => { + if (typeof arg === 'string') { + return this.colFromString(arg); + } + return arg; + }); + this.rows.push(cols); + return cols; + } + shouldApplyLayoutDSL(...args) { + return args.length === 1 && typeof args[0] === 'string' && + /[\t\n]/.test(args[0]); + } + applyLayoutDSL(str) { + const rows = str.split('\n').map(row => row.split('\t')); + let leftColumnWidth = 0; + // simple heuristic for layout, make sure the + // second column lines up along the left-hand. + // don't allow the first column to take up more + // than 50% of the screen. + rows.forEach(columns => { + if (columns.length > 1 && mixin.stringWidth(columns[0]) > leftColumnWidth) { + leftColumnWidth = Math.min(Math.floor(this.width * 0.5), mixin.stringWidth(columns[0])); + } + }); + // generate a table: + // replacing ' ' with padding calculations. + // using the algorithmically generated width. + rows.forEach(columns => { + this.div(...columns.map((r, i) => { + return { + text: r.trim(), + padding: this.measurePadding(r), + width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined + }; + })); + }); + return this.rows[this.rows.length - 1]; + } + colFromString(text) { + return { + text, + padding: this.measurePadding(text) + }; + } + measurePadding(str) { + // measure padding without ansi escape codes + const noAnsi = mixin.stripAnsi(str); + return [0, noAnsi.match(/\s*$/)[0].length, 0, noAnsi.match(/^\s*/)[0].length]; + } + toString() { + const lines = []; + this.rows.forEach(row => { + this.rowToString(row, lines); + }); + // don't display any lines with the + // hidden flag set. + return lines + .filter(line => !line.hidden) + .map(line => line.text) + .join('\n'); + } + rowToString(row, lines) { + this.rasterize(row).forEach((rrow, r) => { + let str = ''; + rrow.forEach((col, c) => { + const { width } = row[c]; // the width with padding. + const wrapWidth = this.negatePadding(row[c]); // the width without padding. + let ts = col; // temporary string used during alignment/padding. + if (wrapWidth > mixin.stringWidth(col)) { + ts += ' '.repeat(wrapWidth - mixin.stringWidth(col)); + } + // align the string within its column. + if (row[c].align && row[c].align !== 'left' && this.wrap) { + const fn = align[row[c].align]; + ts = fn(ts, wrapWidth); + if (mixin.stringWidth(ts) < wrapWidth) { + ts += ' '.repeat((width || 0) - mixin.stringWidth(ts) - 1); + } + } + // apply border and padding to string. + const padding = row[c].padding || [0, 0, 0, 0]; + if (padding[left]) { + str += ' '.repeat(padding[left]); + } + str += addBorder(row[c], ts, '| '); + str += ts; + str += addBorder(row[c], ts, ' |'); + if (padding[right]) { + str += ' '.repeat(padding[right]); + } + // if prior row is span, try to render the + // current row on the prior line. + if (r === 0 && lines.length > 0) { + str = this.renderInline(str, lines[lines.length - 1]); + } + }); + // remove trailing whitespace. + lines.push({ + text: str.replace(/ +$/, ''), + span: row.span + }); + }); + return lines; + } + // if the full 'source' can render in + // the target line, do so. + renderInline(source, previousLine) { + const match = source.match(/^ */); + const leadingWhitespace = match ? match[0].length : 0; + const target = previousLine.text; + const targetTextWidth = mixin.stringWidth(target.trimRight()); + if (!previousLine.span) { + return source; + } + // if we're not applying wrapping logic, + // just always append to the span. + if (!this.wrap) { + previousLine.hidden = true; + return target + source; + } + if (leadingWhitespace < targetTextWidth) { + return source; + } + previousLine.hidden = true; + return target.trimRight() + ' '.repeat(leadingWhitespace - targetTextWidth) + source.trimLeft(); + } + rasterize(row) { + const rrows = []; + const widths = this.columnWidths(row); + let wrapped; + // word wrap all columns, and create + // a data-structure that is easy to rasterize. + row.forEach((col, c) => { + // leave room for left and right padding. + col.width = widths[c]; + if (this.wrap) { + wrapped = mixin.wrap(col.text, this.negatePadding(col), { hard: true }).split('\n'); + } + else { + wrapped = col.text.split('\n'); + } + if (col.border) { + wrapped.unshift('.' + '-'.repeat(this.negatePadding(col) + 2) + '.'); + wrapped.push("'" + '-'.repeat(this.negatePadding(col) + 2) + "'"); + } + // add top and bottom padding. + if (col.padding) { + wrapped.unshift(...new Array(col.padding[top] || 0).fill('')); + wrapped.push(...new Array(col.padding[bottom] || 0).fill('')); + } + wrapped.forEach((str, r) => { + if (!rrows[r]) { + rrows.push([]); + } + const rrow = rrows[r]; + for (let i = 0; i < c; i++) { + if (rrow[i] === undefined) { + rrow.push(''); + } + } + rrow.push(str); + }); + }); + return rrows; + } + negatePadding(col) { + let wrapWidth = col.width || 0; + if (col.padding) { + wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0); + } + if (col.border) { + wrapWidth -= 4; + } + return wrapWidth; + } + columnWidths(row) { + if (!this.wrap) { + return row.map(col => { + return col.width || mixin.stringWidth(col.text); + }); + } + let unset = row.length; + let remainingWidth = this.width; + // column widths can be set in config. + const widths = row.map(col => { + if (col.width) { + unset--; + remainingWidth -= col.width; + return col.width; + } + return undefined; + }); + // any unset widths should be calculated. + const unsetWidth = unset ? Math.floor(remainingWidth / unset) : 0; + return widths.map((w, i) => { + if (w === undefined) { + return Math.max(unsetWidth, _minWidth(row[i])); + } + return w; + }); + } +} +function addBorder(col, ts, style) { + if (col.border) { + if (/[.']-+[.']/.test(ts)) { + return ''; + } + if (ts.trim().length !== 0) { + return style; + } + return ' '; + } + return ''; +} +// calculates the minimum width of +// a column, based on padding preferences. +function _minWidth(col) { + const padding = col.padding || []; + const minWidth = 1 + (padding[left] || 0) + (padding[right] || 0); + if (col.border) { + return minWidth + 4; + } + return minWidth; +} +function getWindowWidth() { + /* istanbul ignore next: depends on terminal */ + if (typeof process === 'object' && process.stdout && process.stdout.columns) { + return process.stdout.columns; + } + return 80; +} +function alignRight(str, width) { + str = str.trim(); + const strWidth = mixin.stringWidth(str); + if (strWidth < width) { + return ' '.repeat(width - strWidth) + str; + } + return str; +} +function alignCenter(str, width) { + str = str.trim(); + const strWidth = mixin.stringWidth(str); + /* istanbul ignore next */ + if (strWidth >= width) { + return str; + } + return ' '.repeat((width - strWidth) >> 1) + str; +} +let mixin; +export function cliui(opts, _mixin) { + mixin = _mixin; + return new UI({ + width: (opts === null || opts === void 0 ? void 0 : opts.width) || getWindowWidth(), + wrap: opts === null || opts === void 0 ? void 0 : opts.wrap + }); +} diff --git a/node_modules/cliui/build/lib/string-utils.js b/node_modules/cliui/build/lib/string-utils.js new file mode 100644 index 00000000..4b87453a --- /dev/null +++ b/node_modules/cliui/build/lib/string-utils.js @@ -0,0 +1,27 @@ +// Minimal replacement for ansi string helpers "wrap-ansi" and "strip-ansi". +// to facilitate ESM and Deno modules. +// TODO: look at porting https://www.npmjs.com/package/wrap-ansi to ESM. +// The npm application +// Copyright (c) npm, Inc. and Contributors +// Licensed on the terms of The Artistic License 2.0 +// See: https://github.com/npm/cli/blob/4c65cd952bc8627811735bea76b9b110cc4fc80e/lib/utils/ansi-trim.js +const ansi = new RegExp('\x1b(?:\\[(?:\\d+[ABCDEFGJKSTm]|\\d+;\\d+[Hfm]|' + + '\\d+;\\d+;\\d+m|6n|s|u|\\?25[lh])|\\w)', 'g'); +export function stripAnsi(str) { + return str.replace(ansi, ''); +} +export function wrap(str, width) { + const [start, end] = str.match(ansi) || ['', '']; + str = stripAnsi(str); + let wrapped = ''; + for (let i = 0; i < str.length; i++) { + if (i !== 0 && (i % width) === 0) { + wrapped += '\n'; + } + wrapped += str.charAt(i); + } + if (start && end) { + wrapped = `${start}${wrapped}${end}`; + } + return wrapped; +} diff --git a/node_modules/cliui/index.mjs b/node_modules/cliui/index.mjs new file mode 100644 index 00000000..bc7a022b --- /dev/null +++ b/node_modules/cliui/index.mjs @@ -0,0 +1,13 @@ +// Bootstrap cliui with CommonJS dependencies: +import { cliui } from './build/lib/index.js' +import { wrap, stripAnsi } from './build/lib/string-utils.js' + +export default function ui (opts) { + return cliui(opts, { + stringWidth: (str) => { + return [...str].length + }, + stripAnsi, + wrap + }) +} diff --git a/node_modules/cliui/package.json b/node_modules/cliui/package.json new file mode 100644 index 00000000..3426665d --- /dev/null +++ b/node_modules/cliui/package.json @@ -0,0 +1,83 @@ +{ + "name": "cliui", + "version": "7.0.4", + "description": "easily create complex multi-column command-line-interfaces", + "main": "build/index.cjs", + "exports": { + ".": [ + { + "import": "./index.mjs", + "require": "./build/index.cjs" + }, + "./build/index.cjs" + ] + }, + "type": "module", + "module": "./index.mjs", + "scripts": { + "check": "standardx '**/*.ts' && standardx '**/*.js' && standardx '**/*.cjs'", + "fix": "standardx --fix '**/*.ts' && standardx --fix '**/*.js' && standardx --fix '**/*.cjs'", + "pretest": "rimraf build && tsc -p tsconfig.test.json && cross-env NODE_ENV=test npm run build:cjs", + "test": "c8 mocha ./test/*.cjs", + "test:esm": "c8 mocha ./test/esm/cliui-test.mjs", + "postest": "check", + "coverage": "c8 report --check-coverage", + "precompile": "rimraf build", + "compile": "tsc", + "postcompile": "npm run build:cjs", + "build:cjs": "rollup -c", + "prepare": "npm run compile" + }, + "repository": "yargs/cliui", + "standard": { + "ignore": [ + "**/example/**" + ], + "globals": [ + "it" + ] + }, + "keywords": [ + "cli", + "command-line", + "layout", + "design", + "console", + "wrap", + "table" + ], + "author": "Ben Coe ", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + }, + "devDependencies": { + "@types/node": "^14.0.27", + "@typescript-eslint/eslint-plugin": "^4.0.0", + "@typescript-eslint/parser": "^4.0.0", + "@wessberg/rollup-plugin-ts": "^1.3.2", + "c8": "^7.3.0", + "chai": "^4.2.0", + "chalk": "^4.1.0", + "cross-env": "^7.0.2", + "eslint": "^7.6.0", + "eslint-plugin-import": "^2.22.0", + "eslint-plugin-node": "^11.1.0", + "gts": "^3.0.0", + "mocha": "^8.1.1", + "rimraf": "^3.0.2", + "rollup": "^2.23.1", + "standardx": "^7.0.0", + "typescript": "^4.0.0" + }, + "files": [ + "build", + "index.mjs", + "!*.d.ts" + ], + "engine": { + "node": ">=10" + } +} diff --git a/node_modules/color-convert/CHANGELOG.md b/node_modules/color-convert/CHANGELOG.md new file mode 100644 index 00000000..0a7bce4f --- /dev/null +++ b/node_modules/color-convert/CHANGELOG.md @@ -0,0 +1,54 @@ +# 1.0.0 - 2016-01-07 + +- Removed: unused speed test +- Added: Automatic routing between previously unsupported conversions +([#27](https://github.com/Qix-/color-convert/pull/27)) +- Removed: `xxx2xxx()` and `xxx2xxxRaw()` functions +([#27](https://github.com/Qix-/color-convert/pull/27)) +- Removed: `convert()` class +([#27](https://github.com/Qix-/color-convert/pull/27)) +- Changed: all functions to lookup dictionary +([#27](https://github.com/Qix-/color-convert/pull/27)) +- Changed: `ansi` to `ansi256` +([#27](https://github.com/Qix-/color-convert/pull/27)) +- Fixed: argument grouping for functions requiring only one argument +([#27](https://github.com/Qix-/color-convert/pull/27)) + +# 0.6.0 - 2015-07-23 + +- Added: methods to handle +[ANSI](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors) 16/256 colors: + - rgb2ansi16 + - rgb2ansi + - hsl2ansi16 + - hsl2ansi + - hsv2ansi16 + - hsv2ansi + - hwb2ansi16 + - hwb2ansi + - cmyk2ansi16 + - cmyk2ansi + - keyword2ansi16 + - keyword2ansi + - ansi162rgb + - ansi162hsl + - ansi162hsv + - ansi162hwb + - ansi162cmyk + - ansi162keyword + - ansi2rgb + - ansi2hsl + - ansi2hsv + - ansi2hwb + - ansi2cmyk + - ansi2keyword +([#18](https://github.com/harthur/color-convert/pull/18)) + +# 0.5.3 - 2015-06-02 + +- Fixed: hsl2hsv does not return `NaN` anymore when using `[0,0,0]` +([#15](https://github.com/harthur/color-convert/issues/15)) + +--- + +Check out commit logs for older releases diff --git a/node_modules/color-convert/LICENSE b/node_modules/color-convert/LICENSE new file mode 100644 index 00000000..5b4c386f --- /dev/null +++ b/node_modules/color-convert/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 2011-2016 Heather Arthur + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/node_modules/color-convert/README.md b/node_modules/color-convert/README.md new file mode 100644 index 00000000..d4b08fc3 --- /dev/null +++ b/node_modules/color-convert/README.md @@ -0,0 +1,68 @@ +# color-convert + +[![Build Status](https://travis-ci.org/Qix-/color-convert.svg?branch=master)](https://travis-ci.org/Qix-/color-convert) + +Color-convert is a color conversion library for JavaScript and node. +It converts all ways between `rgb`, `hsl`, `hsv`, `hwb`, `cmyk`, `ansi`, `ansi16`, `hex` strings, and CSS `keyword`s (will round to closest): + +```js +var convert = require('color-convert'); + +convert.rgb.hsl(140, 200, 100); // [96, 48, 59] +convert.keyword.rgb('blue'); // [0, 0, 255] + +var rgbChannels = convert.rgb.channels; // 3 +var cmykChannels = convert.cmyk.channels; // 4 +var ansiChannels = convert.ansi16.channels; // 1 +``` + +# Install + +```console +$ npm install color-convert +``` + +# API + +Simply get the property of the _from_ and _to_ conversion that you're looking for. + +All functions have a rounded and unrounded variant. By default, return values are rounded. To get the unrounded (raw) results, simply tack on `.raw` to the function. + +All 'from' functions have a hidden property called `.channels` that indicates the number of channels the function expects (not including alpha). + +```js +var convert = require('color-convert'); + +// Hex to LAB +convert.hex.lab('DEADBF'); // [ 76, 21, -2 ] +convert.hex.lab.raw('DEADBF'); // [ 75.56213190997677, 20.653827952644754, -2.290532499330533 ] + +// RGB to CMYK +convert.rgb.cmyk(167, 255, 4); // [ 35, 0, 98, 0 ] +convert.rgb.cmyk.raw(167, 255, 4); // [ 34.509803921568626, 0, 98.43137254901961, 0 ] +``` + +### Arrays +All functions that accept multiple arguments also support passing an array. + +Note that this does **not** apply to functions that convert from a color that only requires one value (e.g. `keyword`, `ansi256`, `hex`, etc.) + +```js +var convert = require('color-convert'); + +convert.rgb.hex(123, 45, 67); // '7B2D43' +convert.rgb.hex([123, 45, 67]); // '7B2D43' +``` + +## Routing + +Conversions that don't have an _explicitly_ defined conversion (in [conversions.js](conversions.js)), but can be converted by means of sub-conversions (e.g. XYZ -> **RGB** -> CMYK), are automatically routed together. This allows just about any color model supported by `color-convert` to be converted to any other model, so long as a sub-conversion path exists. This is also true for conversions requiring more than one step in between (e.g. LCH -> **LAB** -> **XYZ** -> **RGB** -> Hex). + +Keep in mind that extensive conversions _may_ result in a loss of precision, and exist only to be complete. For a list of "direct" (single-step) conversions, see [conversions.js](conversions.js). + +# Contribute + +If there is a new model you would like to support, or want to add a direct conversion between two existing models, please send us a pull request. + +# License +Copyright © 2011-2016, Heather Arthur and Josh Junon. Licensed under the [MIT License](LICENSE). diff --git a/node_modules/color-convert/conversions.js b/node_modules/color-convert/conversions.js new file mode 100644 index 00000000..2657f265 --- /dev/null +++ b/node_modules/color-convert/conversions.js @@ -0,0 +1,839 @@ +/* MIT license */ +/* eslint-disable no-mixed-operators */ +const cssKeywords = require('color-name'); + +// NOTE: conversions should only return primitive values (i.e. arrays, or +// values that give correct `typeof` results). +// do not use box values types (i.e. Number(), String(), etc.) + +const reverseKeywords = {}; +for (const key of Object.keys(cssKeywords)) { + reverseKeywords[cssKeywords[key]] = key; +} + +const convert = { + rgb: {channels: 3, labels: 'rgb'}, + hsl: {channels: 3, labels: 'hsl'}, + hsv: {channels: 3, labels: 'hsv'}, + hwb: {channels: 3, labels: 'hwb'}, + cmyk: {channels: 4, labels: 'cmyk'}, + xyz: {channels: 3, labels: 'xyz'}, + lab: {channels: 3, labels: 'lab'}, + lch: {channels: 3, labels: 'lch'}, + hex: {channels: 1, labels: ['hex']}, + keyword: {channels: 1, labels: ['keyword']}, + ansi16: {channels: 1, labels: ['ansi16']}, + ansi256: {channels: 1, labels: ['ansi256']}, + hcg: {channels: 3, labels: ['h', 'c', 'g']}, + apple: {channels: 3, labels: ['r16', 'g16', 'b16']}, + gray: {channels: 1, labels: ['gray']} +}; + +module.exports = convert; + +// Hide .channels and .labels properties +for (const model of Object.keys(convert)) { + if (!('channels' in convert[model])) { + throw new Error('missing channels property: ' + model); + } + + if (!('labels' in convert[model])) { + throw new Error('missing channel labels property: ' + model); + } + + if (convert[model].labels.length !== convert[model].channels) { + throw new Error('channel and label counts mismatch: ' + model); + } + + const {channels, labels} = convert[model]; + delete convert[model].channels; + delete convert[model].labels; + Object.defineProperty(convert[model], 'channels', {value: channels}); + Object.defineProperty(convert[model], 'labels', {value: labels}); +} + +convert.rgb.hsl = function (rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const min = Math.min(r, g, b); + const max = Math.max(r, g, b); + const delta = max - min; + let h; + let s; + + if (max === min) { + h = 0; + } else if (r === max) { + h = (g - b) / delta; + } else if (g === max) { + h = 2 + (b - r) / delta; + } else if (b === max) { + h = 4 + (r - g) / delta; + } + + h = Math.min(h * 60, 360); + + if (h < 0) { + h += 360; + } + + const l = (min + max) / 2; + + if (max === min) { + s = 0; + } else if (l <= 0.5) { + s = delta / (max + min); + } else { + s = delta / (2 - max - min); + } + + return [h, s * 100, l * 100]; +}; + +convert.rgb.hsv = function (rgb) { + let rdif; + let gdif; + let bdif; + let h; + let s; + + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const v = Math.max(r, g, b); + const diff = v - Math.min(r, g, b); + const diffc = function (c) { + return (v - c) / 6 / diff + 1 / 2; + }; + + if (diff === 0) { + h = 0; + s = 0; + } else { + s = diff / v; + rdif = diffc(r); + gdif = diffc(g); + bdif = diffc(b); + + if (r === v) { + h = bdif - gdif; + } else if (g === v) { + h = (1 / 3) + rdif - bdif; + } else if (b === v) { + h = (2 / 3) + gdif - rdif; + } + + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } + } + + return [ + h * 360, + s * 100, + v * 100 + ]; +}; + +convert.rgb.hwb = function (rgb) { + const r = rgb[0]; + const g = rgb[1]; + let b = rgb[2]; + const h = convert.rgb.hsl(rgb)[0]; + const w = 1 / 255 * Math.min(r, Math.min(g, b)); + + b = 1 - 1 / 255 * Math.max(r, Math.max(g, b)); + + return [h, w * 100, b * 100]; +}; + +convert.rgb.cmyk = function (rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + + const k = Math.min(1 - r, 1 - g, 1 - b); + const c = (1 - r - k) / (1 - k) || 0; + const m = (1 - g - k) / (1 - k) || 0; + const y = (1 - b - k) / (1 - k) || 0; + + return [c * 100, m * 100, y * 100, k * 100]; +}; + +function comparativeDistance(x, y) { + /* + See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance + */ + return ( + ((x[0] - y[0]) ** 2) + + ((x[1] - y[1]) ** 2) + + ((x[2] - y[2]) ** 2) + ); +} + +convert.rgb.keyword = function (rgb) { + const reversed = reverseKeywords[rgb]; + if (reversed) { + return reversed; + } + + let currentClosestDistance = Infinity; + let currentClosestKeyword; + + for (const keyword of Object.keys(cssKeywords)) { + const value = cssKeywords[keyword]; + + // Compute comparative distance + const distance = comparativeDistance(rgb, value); + + // Check if its less, if so set as closest + if (distance < currentClosestDistance) { + currentClosestDistance = distance; + currentClosestKeyword = keyword; + } + } + + return currentClosestKeyword; +}; + +convert.keyword.rgb = function (keyword) { + return cssKeywords[keyword]; +}; + +convert.rgb.xyz = function (rgb) { + let r = rgb[0] / 255; + let g = rgb[1] / 255; + let b = rgb[2] / 255; + + // Assume sRGB + r = r > 0.04045 ? (((r + 0.055) / 1.055) ** 2.4) : (r / 12.92); + g = g > 0.04045 ? (((g + 0.055) / 1.055) ** 2.4) : (g / 12.92); + b = b > 0.04045 ? (((b + 0.055) / 1.055) ** 2.4) : (b / 12.92); + + const x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805); + const y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722); + const z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505); + + return [x * 100, y * 100, z * 100]; +}; + +convert.rgb.lab = function (rgb) { + const xyz = convert.rgb.xyz(rgb); + let x = xyz[0]; + let y = xyz[1]; + let z = xyz[2]; + + x /= 95.047; + y /= 100; + z /= 108.883; + + x = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116); + + const l = (116 * y) - 16; + const a = 500 * (x - y); + const b = 200 * (y - z); + + return [l, a, b]; +}; + +convert.hsl.rgb = function (hsl) { + const h = hsl[0] / 360; + const s = hsl[1] / 100; + const l = hsl[2] / 100; + let t2; + let t3; + let val; + + if (s === 0) { + val = l * 255; + return [val, val, val]; + } + + if (l < 0.5) { + t2 = l * (1 + s); + } else { + t2 = l + s - l * s; + } + + const t1 = 2 * l - t2; + + const rgb = [0, 0, 0]; + for (let i = 0; i < 3; i++) { + t3 = h + 1 / 3 * -(i - 1); + if (t3 < 0) { + t3++; + } + + if (t3 > 1) { + t3--; + } + + if (6 * t3 < 1) { + val = t1 + (t2 - t1) * 6 * t3; + } else if (2 * t3 < 1) { + val = t2; + } else if (3 * t3 < 2) { + val = t1 + (t2 - t1) * (2 / 3 - t3) * 6; + } else { + val = t1; + } + + rgb[i] = val * 255; + } + + return rgb; +}; + +convert.hsl.hsv = function (hsl) { + const h = hsl[0]; + let s = hsl[1] / 100; + let l = hsl[2] / 100; + let smin = s; + const lmin = Math.max(l, 0.01); + + l *= 2; + s *= (l <= 1) ? l : 2 - l; + smin *= lmin <= 1 ? lmin : 2 - lmin; + const v = (l + s) / 2; + const sv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s); + + return [h, sv * 100, v * 100]; +}; + +convert.hsv.rgb = function (hsv) { + const h = hsv[0] / 60; + const s = hsv[1] / 100; + let v = hsv[2] / 100; + const hi = Math.floor(h) % 6; + + const f = h - Math.floor(h); + const p = 255 * v * (1 - s); + const q = 255 * v * (1 - (s * f)); + const t = 255 * v * (1 - (s * (1 - f))); + v *= 255; + + switch (hi) { + case 0: + return [v, t, p]; + case 1: + return [q, v, p]; + case 2: + return [p, v, t]; + case 3: + return [p, q, v]; + case 4: + return [t, p, v]; + case 5: + return [v, p, q]; + } +}; + +convert.hsv.hsl = function (hsv) { + const h = hsv[0]; + const s = hsv[1] / 100; + const v = hsv[2] / 100; + const vmin = Math.max(v, 0.01); + let sl; + let l; + + l = (2 - s) * v; + const lmin = (2 - s) * vmin; + sl = s * vmin; + sl /= (lmin <= 1) ? lmin : 2 - lmin; + sl = sl || 0; + l /= 2; + + return [h, sl * 100, l * 100]; +}; + +// http://dev.w3.org/csswg/css-color/#hwb-to-rgb +convert.hwb.rgb = function (hwb) { + const h = hwb[0] / 360; + let wh = hwb[1] / 100; + let bl = hwb[2] / 100; + const ratio = wh + bl; + let f; + + // Wh + bl cant be > 1 + if (ratio > 1) { + wh /= ratio; + bl /= ratio; + } + + const i = Math.floor(6 * h); + const v = 1 - bl; + f = 6 * h - i; + + if ((i & 0x01) !== 0) { + f = 1 - f; + } + + const n = wh + f * (v - wh); // Linear interpolation + + let r; + let g; + let b; + /* eslint-disable max-statements-per-line,no-multi-spaces */ + switch (i) { + default: + case 6: + case 0: r = v; g = n; b = wh; break; + case 1: r = n; g = v; b = wh; break; + case 2: r = wh; g = v; b = n; break; + case 3: r = wh; g = n; b = v; break; + case 4: r = n; g = wh; b = v; break; + case 5: r = v; g = wh; b = n; break; + } + /* eslint-enable max-statements-per-line,no-multi-spaces */ + + return [r * 255, g * 255, b * 255]; +}; + +convert.cmyk.rgb = function (cmyk) { + const c = cmyk[0] / 100; + const m = cmyk[1] / 100; + const y = cmyk[2] / 100; + const k = cmyk[3] / 100; + + const r = 1 - Math.min(1, c * (1 - k) + k); + const g = 1 - Math.min(1, m * (1 - k) + k); + const b = 1 - Math.min(1, y * (1 - k) + k); + + return [r * 255, g * 255, b * 255]; +}; + +convert.xyz.rgb = function (xyz) { + const x = xyz[0] / 100; + const y = xyz[1] / 100; + const z = xyz[2] / 100; + let r; + let g; + let b; + + r = (x * 3.2406) + (y * -1.5372) + (z * -0.4986); + g = (x * -0.9689) + (y * 1.8758) + (z * 0.0415); + b = (x * 0.0557) + (y * -0.2040) + (z * 1.0570); + + // Assume sRGB + r = r > 0.0031308 + ? ((1.055 * (r ** (1.0 / 2.4))) - 0.055) + : r * 12.92; + + g = g > 0.0031308 + ? ((1.055 * (g ** (1.0 / 2.4))) - 0.055) + : g * 12.92; + + b = b > 0.0031308 + ? ((1.055 * (b ** (1.0 / 2.4))) - 0.055) + : b * 12.92; + + r = Math.min(Math.max(0, r), 1); + g = Math.min(Math.max(0, g), 1); + b = Math.min(Math.max(0, b), 1); + + return [r * 255, g * 255, b * 255]; +}; + +convert.xyz.lab = function (xyz) { + let x = xyz[0]; + let y = xyz[1]; + let z = xyz[2]; + + x /= 95.047; + y /= 100; + z /= 108.883; + + x = x > 0.008856 ? (x ** (1 / 3)) : (7.787 * x) + (16 / 116); + y = y > 0.008856 ? (y ** (1 / 3)) : (7.787 * y) + (16 / 116); + z = z > 0.008856 ? (z ** (1 / 3)) : (7.787 * z) + (16 / 116); + + const l = (116 * y) - 16; + const a = 500 * (x - y); + const b = 200 * (y - z); + + return [l, a, b]; +}; + +convert.lab.xyz = function (lab) { + const l = lab[0]; + const a = lab[1]; + const b = lab[2]; + let x; + let y; + let z; + + y = (l + 16) / 116; + x = a / 500 + y; + z = y - b / 200; + + const y2 = y ** 3; + const x2 = x ** 3; + const z2 = z ** 3; + y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787; + x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787; + z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787; + + x *= 95.047; + y *= 100; + z *= 108.883; + + return [x, y, z]; +}; + +convert.lab.lch = function (lab) { + const l = lab[0]; + const a = lab[1]; + const b = lab[2]; + let h; + + const hr = Math.atan2(b, a); + h = hr * 360 / 2 / Math.PI; + + if (h < 0) { + h += 360; + } + + const c = Math.sqrt(a * a + b * b); + + return [l, c, h]; +}; + +convert.lch.lab = function (lch) { + const l = lch[0]; + const c = lch[1]; + const h = lch[2]; + + const hr = h / 360 * 2 * Math.PI; + const a = c * Math.cos(hr); + const b = c * Math.sin(hr); + + return [l, a, b]; +}; + +convert.rgb.ansi16 = function (args, saturation = null) { + const [r, g, b] = args; + let value = saturation === null ? convert.rgb.hsv(args)[2] : saturation; // Hsv -> ansi16 optimization + + value = Math.round(value / 50); + + if (value === 0) { + return 30; + } + + let ansi = 30 + + ((Math.round(b / 255) << 2) + | (Math.round(g / 255) << 1) + | Math.round(r / 255)); + + if (value === 2) { + ansi += 60; + } + + return ansi; +}; + +convert.hsv.ansi16 = function (args) { + // Optimization here; we already know the value and don't need to get + // it converted for us. + return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]); +}; + +convert.rgb.ansi256 = function (args) { + const r = args[0]; + const g = args[1]; + const b = args[2]; + + // We use the extended greyscale palette here, with the exception of + // black and white. normal palette only has 4 greyscale shades. + if (r === g && g === b) { + if (r < 8) { + return 16; + } + + if (r > 248) { + return 231; + } + + return Math.round(((r - 8) / 247) * 24) + 232; + } + + const ansi = 16 + + (36 * Math.round(r / 255 * 5)) + + (6 * Math.round(g / 255 * 5)) + + Math.round(b / 255 * 5); + + return ansi; +}; + +convert.ansi16.rgb = function (args) { + let color = args % 10; + + // Handle greyscale + if (color === 0 || color === 7) { + if (args > 50) { + color += 3.5; + } + + color = color / 10.5 * 255; + + return [color, color, color]; + } + + const mult = (~~(args > 50) + 1) * 0.5; + const r = ((color & 1) * mult) * 255; + const g = (((color >> 1) & 1) * mult) * 255; + const b = (((color >> 2) & 1) * mult) * 255; + + return [r, g, b]; +}; + +convert.ansi256.rgb = function (args) { + // Handle greyscale + if (args >= 232) { + const c = (args - 232) * 10 + 8; + return [c, c, c]; + } + + args -= 16; + + let rem; + const r = Math.floor(args / 36) / 5 * 255; + const g = Math.floor((rem = args % 36) / 6) / 5 * 255; + const b = (rem % 6) / 5 * 255; + + return [r, g, b]; +}; + +convert.rgb.hex = function (args) { + const integer = ((Math.round(args[0]) & 0xFF) << 16) + + ((Math.round(args[1]) & 0xFF) << 8) + + (Math.round(args[2]) & 0xFF); + + const string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; + +convert.hex.rgb = function (args) { + const match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i); + if (!match) { + return [0, 0, 0]; + } + + let colorString = match[0]; + + if (match[0].length === 3) { + colorString = colorString.split('').map(char => { + return char + char; + }).join(''); + } + + const integer = parseInt(colorString, 16); + const r = (integer >> 16) & 0xFF; + const g = (integer >> 8) & 0xFF; + const b = integer & 0xFF; + + return [r, g, b]; +}; + +convert.rgb.hcg = function (rgb) { + const r = rgb[0] / 255; + const g = rgb[1] / 255; + const b = rgb[2] / 255; + const max = Math.max(Math.max(r, g), b); + const min = Math.min(Math.min(r, g), b); + const chroma = (max - min); + let grayscale; + let hue; + + if (chroma < 1) { + grayscale = min / (1 - chroma); + } else { + grayscale = 0; + } + + if (chroma <= 0) { + hue = 0; + } else + if (max === r) { + hue = ((g - b) / chroma) % 6; + } else + if (max === g) { + hue = 2 + (b - r) / chroma; + } else { + hue = 4 + (r - g) / chroma; + } + + hue /= 6; + hue %= 1; + + return [hue * 360, chroma * 100, grayscale * 100]; +}; + +convert.hsl.hcg = function (hsl) { + const s = hsl[1] / 100; + const l = hsl[2] / 100; + + const c = l < 0.5 ? (2.0 * s * l) : (2.0 * s * (1.0 - l)); + + let f = 0; + if (c < 1.0) { + f = (l - 0.5 * c) / (1.0 - c); + } + + return [hsl[0], c * 100, f * 100]; +}; + +convert.hsv.hcg = function (hsv) { + const s = hsv[1] / 100; + const v = hsv[2] / 100; + + const c = s * v; + let f = 0; + + if (c < 1.0) { + f = (v - c) / (1 - c); + } + + return [hsv[0], c * 100, f * 100]; +}; + +convert.hcg.rgb = function (hcg) { + const h = hcg[0] / 360; + const c = hcg[1] / 100; + const g = hcg[2] / 100; + + if (c === 0.0) { + return [g * 255, g * 255, g * 255]; + } + + const pure = [0, 0, 0]; + const hi = (h % 1) * 6; + const v = hi % 1; + const w = 1 - v; + let mg = 0; + + /* eslint-disable max-statements-per-line */ + switch (Math.floor(hi)) { + case 0: + pure[0] = 1; pure[1] = v; pure[2] = 0; break; + case 1: + pure[0] = w; pure[1] = 1; pure[2] = 0; break; + case 2: + pure[0] = 0; pure[1] = 1; pure[2] = v; break; + case 3: + pure[0] = 0; pure[1] = w; pure[2] = 1; break; + case 4: + pure[0] = v; pure[1] = 0; pure[2] = 1; break; + default: + pure[0] = 1; pure[1] = 0; pure[2] = w; + } + /* eslint-enable max-statements-per-line */ + + mg = (1.0 - c) * g; + + return [ + (c * pure[0] + mg) * 255, + (c * pure[1] + mg) * 255, + (c * pure[2] + mg) * 255 + ]; +}; + +convert.hcg.hsv = function (hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + + const v = c + g * (1.0 - c); + let f = 0; + + if (v > 0.0) { + f = c / v; + } + + return [hcg[0], f * 100, v * 100]; +}; + +convert.hcg.hsl = function (hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + + const l = g * (1.0 - c) + 0.5 * c; + let s = 0; + + if (l > 0.0 && l < 0.5) { + s = c / (2 * l); + } else + if (l >= 0.5 && l < 1.0) { + s = c / (2 * (1 - l)); + } + + return [hcg[0], s * 100, l * 100]; +}; + +convert.hcg.hwb = function (hcg) { + const c = hcg[1] / 100; + const g = hcg[2] / 100; + const v = c + g * (1.0 - c); + return [hcg[0], (v - c) * 100, (1 - v) * 100]; +}; + +convert.hwb.hcg = function (hwb) { + const w = hwb[1] / 100; + const b = hwb[2] / 100; + const v = 1 - b; + const c = v - w; + let g = 0; + + if (c < 1) { + g = (v - c) / (1 - c); + } + + return [hwb[0], c * 100, g * 100]; +}; + +convert.apple.rgb = function (apple) { + return [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255]; +}; + +convert.rgb.apple = function (rgb) { + return [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535]; +}; + +convert.gray.rgb = function (args) { + return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255]; +}; + +convert.gray.hsl = function (args) { + return [0, 0, args[0]]; +}; + +convert.gray.hsv = convert.gray.hsl; + +convert.gray.hwb = function (gray) { + return [0, 100, gray[0]]; +}; + +convert.gray.cmyk = function (gray) { + return [0, 0, 0, gray[0]]; +}; + +convert.gray.lab = function (gray) { + return [gray[0], 0, 0]; +}; + +convert.gray.hex = function (gray) { + const val = Math.round(gray[0] / 100 * 255) & 0xFF; + const integer = (val << 16) + (val << 8) + val; + + const string = integer.toString(16).toUpperCase(); + return '000000'.substring(string.length) + string; +}; + +convert.rgb.gray = function (rgb) { + const val = (rgb[0] + rgb[1] + rgb[2]) / 3; + return [val / 255 * 100]; +}; diff --git a/node_modules/color-convert/index.js b/node_modules/color-convert/index.js new file mode 100644 index 00000000..b648e573 --- /dev/null +++ b/node_modules/color-convert/index.js @@ -0,0 +1,81 @@ +const conversions = require('./conversions'); +const route = require('./route'); + +const convert = {}; + +const models = Object.keys(conversions); + +function wrapRaw(fn) { + const wrappedFn = function (...args) { + const arg0 = args[0]; + if (arg0 === undefined || arg0 === null) { + return arg0; + } + + if (arg0.length > 1) { + args = arg0; + } + + return fn(args); + }; + + // Preserve .conversion property if there is one + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } + + return wrappedFn; +} + +function wrapRounded(fn) { + const wrappedFn = function (...args) { + const arg0 = args[0]; + + if (arg0 === undefined || arg0 === null) { + return arg0; + } + + if (arg0.length > 1) { + args = arg0; + } + + const result = fn(args); + + // We're assuming the result is an array here. + // see notice in conversions.js; don't use box types + // in conversion functions. + if (typeof result === 'object') { + for (let len = result.length, i = 0; i < len; i++) { + result[i] = Math.round(result[i]); + } + } + + return result; + }; + + // Preserve .conversion property if there is one + if ('conversion' in fn) { + wrappedFn.conversion = fn.conversion; + } + + return wrappedFn; +} + +models.forEach(fromModel => { + convert[fromModel] = {}; + + Object.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels}); + Object.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels}); + + const routes = route(fromModel); + const routeModels = Object.keys(routes); + + routeModels.forEach(toModel => { + const fn = routes[toModel]; + + convert[fromModel][toModel] = wrapRounded(fn); + convert[fromModel][toModel].raw = wrapRaw(fn); + }); +}); + +module.exports = convert; diff --git a/node_modules/color-convert/package.json b/node_modules/color-convert/package.json new file mode 100644 index 00000000..6e48000c --- /dev/null +++ b/node_modules/color-convert/package.json @@ -0,0 +1,48 @@ +{ + "name": "color-convert", + "description": "Plain color conversion functions", + "version": "2.0.1", + "author": "Heather Arthur ", + "license": "MIT", + "repository": "Qix-/color-convert", + "scripts": { + "pretest": "xo", + "test": "node test/basic.js" + }, + "engines": { + "node": ">=7.0.0" + }, + "keywords": [ + "color", + "colour", + "convert", + "converter", + "conversion", + "rgb", + "hsl", + "hsv", + "hwb", + "cmyk", + "ansi", + "ansi16" + ], + "files": [ + "index.js", + "conversions.js", + "route.js" + ], + "xo": { + "rules": { + "default-case": 0, + "no-inline-comments": 0, + "operator-linebreak": 0 + } + }, + "devDependencies": { + "chalk": "^2.4.2", + "xo": "^0.24.0" + }, + "dependencies": { + "color-name": "~1.1.4" + } +} diff --git a/node_modules/color-convert/route.js b/node_modules/color-convert/route.js new file mode 100644 index 00000000..1a08521b --- /dev/null +++ b/node_modules/color-convert/route.js @@ -0,0 +1,97 @@ +const conversions = require('./conversions'); + +/* + This function routes a model to all other models. + + all functions that are routed have a property `.conversion` attached + to the returned synthetic function. This property is an array + of strings, each with the steps in between the 'from' and 'to' + color models (inclusive). + + conversions that are not possible simply are not included. +*/ + +function buildGraph() { + const graph = {}; + // https://jsperf.com/object-keys-vs-for-in-with-closure/3 + const models = Object.keys(conversions); + + for (let len = models.length, i = 0; i < len; i++) { + graph[models[i]] = { + // http://jsperf.com/1-vs-infinity + // micro-opt, but this is simple. + distance: -1, + parent: null + }; + } + + return graph; +} + +// https://en.wikipedia.org/wiki/Breadth-first_search +function deriveBFS(fromModel) { + const graph = buildGraph(); + const queue = [fromModel]; // Unshift -> queue -> pop + + graph[fromModel].distance = 0; + + while (queue.length) { + const current = queue.pop(); + const adjacents = Object.keys(conversions[current]); + + for (let len = adjacents.length, i = 0; i < len; i++) { + const adjacent = adjacents[i]; + const node = graph[adjacent]; + + if (node.distance === -1) { + node.distance = graph[current].distance + 1; + node.parent = current; + queue.unshift(adjacent); + } + } + } + + return graph; +} + +function link(from, to) { + return function (args) { + return to(from(args)); + }; +} + +function wrapConversion(toModel, graph) { + const path = [graph[toModel].parent, toModel]; + let fn = conversions[graph[toModel].parent][toModel]; + + let cur = graph[toModel].parent; + while (graph[cur].parent) { + path.unshift(graph[cur].parent); + fn = link(conversions[graph[cur].parent][cur], fn); + cur = graph[cur].parent; + } + + fn.conversion = path; + return fn; +} + +module.exports = function (fromModel) { + const graph = deriveBFS(fromModel); + const conversion = {}; + + const models = Object.keys(graph); + for (let len = models.length, i = 0; i < len; i++) { + const toModel = models[i]; + const node = graph[toModel]; + + if (node.parent === null) { + // No possible conversion, or this node is the source model. + continue; + } + + conversion[toModel] = wrapConversion(toModel, graph); + } + + return conversion; +}; + diff --git a/node_modules/color-name/LICENSE b/node_modules/color-name/LICENSE new file mode 100644 index 00000000..c6b10012 --- /dev/null +++ b/node_modules/color-name/LICENSE @@ -0,0 +1,8 @@ +The MIT License (MIT) +Copyright (c) 2015 Dmitry Ivanov + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/color-name/README.md b/node_modules/color-name/README.md new file mode 100644 index 00000000..932b9791 --- /dev/null +++ b/node_modules/color-name/README.md @@ -0,0 +1,11 @@ +A JSON with color names and its values. Based on http://dev.w3.org/csswg/css-color/#named-colors. + +[![NPM](https://nodei.co/npm/color-name.png?mini=true)](https://nodei.co/npm/color-name/) + + +```js +var colors = require('color-name'); +colors.red //[255,0,0] +``` + + diff --git a/node_modules/color-name/index.js b/node_modules/color-name/index.js new file mode 100644 index 00000000..b7c198a6 --- /dev/null +++ b/node_modules/color-name/index.js @@ -0,0 +1,152 @@ +'use strict' + +module.exports = { + "aliceblue": [240, 248, 255], + "antiquewhite": [250, 235, 215], + "aqua": [0, 255, 255], + "aquamarine": [127, 255, 212], + "azure": [240, 255, 255], + "beige": [245, 245, 220], + "bisque": [255, 228, 196], + "black": [0, 0, 0], + "blanchedalmond": [255, 235, 205], + "blue": [0, 0, 255], + "blueviolet": [138, 43, 226], + "brown": [165, 42, 42], + "burlywood": [222, 184, 135], + "cadetblue": [95, 158, 160], + "chartreuse": [127, 255, 0], + "chocolate": [210, 105, 30], + "coral": [255, 127, 80], + "cornflowerblue": [100, 149, 237], + "cornsilk": [255, 248, 220], + "crimson": [220, 20, 60], + "cyan": [0, 255, 255], + "darkblue": [0, 0, 139], + "darkcyan": [0, 139, 139], + "darkgoldenrod": [184, 134, 11], + "darkgray": [169, 169, 169], + "darkgreen": [0, 100, 0], + "darkgrey": [169, 169, 169], + "darkkhaki": [189, 183, 107], + "darkmagenta": [139, 0, 139], + "darkolivegreen": [85, 107, 47], + "darkorange": [255, 140, 0], + "darkorchid": [153, 50, 204], + "darkred": [139, 0, 0], + "darksalmon": [233, 150, 122], + "darkseagreen": [143, 188, 143], + "darkslateblue": [72, 61, 139], + "darkslategray": [47, 79, 79], + "darkslategrey": [47, 79, 79], + "darkturquoise": [0, 206, 209], + "darkviolet": [148, 0, 211], + "deeppink": [255, 20, 147], + "deepskyblue": [0, 191, 255], + "dimgray": [105, 105, 105], + "dimgrey": [105, 105, 105], + "dodgerblue": [30, 144, 255], + "firebrick": [178, 34, 34], + "floralwhite": [255, 250, 240], + "forestgreen": [34, 139, 34], + "fuchsia": [255, 0, 255], + "gainsboro": [220, 220, 220], + "ghostwhite": [248, 248, 255], + "gold": [255, 215, 0], + "goldenrod": [218, 165, 32], + "gray": [128, 128, 128], + "green": [0, 128, 0], + "greenyellow": [173, 255, 47], + "grey": [128, 128, 128], + "honeydew": [240, 255, 240], + "hotpink": [255, 105, 180], + "indianred": [205, 92, 92], + "indigo": [75, 0, 130], + "ivory": [255, 255, 240], + "khaki": [240, 230, 140], + "lavender": [230, 230, 250], + "lavenderblush": [255, 240, 245], + "lawngreen": [124, 252, 0], + "lemonchiffon": [255, 250, 205], + "lightblue": [173, 216, 230], + "lightcoral": [240, 128, 128], + "lightcyan": [224, 255, 255], + "lightgoldenrodyellow": [250, 250, 210], + "lightgray": [211, 211, 211], + "lightgreen": [144, 238, 144], + "lightgrey": [211, 211, 211], + "lightpink": [255, 182, 193], + "lightsalmon": [255, 160, 122], + "lightseagreen": [32, 178, 170], + "lightskyblue": [135, 206, 250], + "lightslategray": [119, 136, 153], + "lightslategrey": [119, 136, 153], + "lightsteelblue": [176, 196, 222], + "lightyellow": [255, 255, 224], + "lime": [0, 255, 0], + "limegreen": [50, 205, 50], + "linen": [250, 240, 230], + "magenta": [255, 0, 255], + "maroon": [128, 0, 0], + "mediumaquamarine": [102, 205, 170], + "mediumblue": [0, 0, 205], + "mediumorchid": [186, 85, 211], + "mediumpurple": [147, 112, 219], + "mediumseagreen": [60, 179, 113], + "mediumslateblue": [123, 104, 238], + "mediumspringgreen": [0, 250, 154], + "mediumturquoise": [72, 209, 204], + "mediumvioletred": [199, 21, 133], + "midnightblue": [25, 25, 112], + "mintcream": [245, 255, 250], + "mistyrose": [255, 228, 225], + "moccasin": [255, 228, 181], + "navajowhite": [255, 222, 173], + "navy": [0, 0, 128], + "oldlace": [253, 245, 230], + "olive": [128, 128, 0], + "olivedrab": [107, 142, 35], + "orange": [255, 165, 0], + "orangered": [255, 69, 0], + "orchid": [218, 112, 214], + "palegoldenrod": [238, 232, 170], + "palegreen": [152, 251, 152], + "paleturquoise": [175, 238, 238], + "palevioletred": [219, 112, 147], + "papayawhip": [255, 239, 213], + "peachpuff": [255, 218, 185], + "peru": [205, 133, 63], + "pink": [255, 192, 203], + "plum": [221, 160, 221], + "powderblue": [176, 224, 230], + "purple": [128, 0, 128], + "rebeccapurple": [102, 51, 153], + "red": [255, 0, 0], + "rosybrown": [188, 143, 143], + "royalblue": [65, 105, 225], + "saddlebrown": [139, 69, 19], + "salmon": [250, 128, 114], + "sandybrown": [244, 164, 96], + "seagreen": [46, 139, 87], + "seashell": [255, 245, 238], + "sienna": [160, 82, 45], + "silver": [192, 192, 192], + "skyblue": [135, 206, 235], + "slateblue": [106, 90, 205], + "slategray": [112, 128, 144], + "slategrey": [112, 128, 144], + "snow": [255, 250, 250], + "springgreen": [0, 255, 127], + "steelblue": [70, 130, 180], + "tan": [210, 180, 140], + "teal": [0, 128, 128], + "thistle": [216, 191, 216], + "tomato": [255, 99, 71], + "turquoise": [64, 224, 208], + "violet": [238, 130, 238], + "wheat": [245, 222, 179], + "white": [255, 255, 255], + "whitesmoke": [245, 245, 245], + "yellow": [255, 255, 0], + "yellowgreen": [154, 205, 50] +}; diff --git a/node_modules/color-name/package.json b/node_modules/color-name/package.json new file mode 100644 index 00000000..782dd828 --- /dev/null +++ b/node_modules/color-name/package.json @@ -0,0 +1,28 @@ +{ + "name": "color-name", + "version": "1.1.4", + "description": "A list of color names and its values", + "main": "index.js", + "files": [ + "index.js" + ], + "scripts": { + "test": "node test.js" + }, + "repository": { + "type": "git", + "url": "git@github.com:colorjs/color-name.git" + }, + "keywords": [ + "color-name", + "color", + "color-keyword", + "keyword" + ], + "author": "DY ", + "license": "MIT", + "bugs": { + "url": "https://github.com/colorjs/color-name/issues" + }, + "homepage": "https://github.com/colorjs/color-name" +} diff --git a/node_modules/dependency-graph/CHANGELOG.md b/node_modules/dependency-graph/CHANGELOG.md new file mode 100755 index 00000000..5e6c4d95 --- /dev/null +++ b/node_modules/dependency-graph/CHANGELOG.md @@ -0,0 +1,82 @@ +# Dependency Graph Changelog + +## 0.11.0 (March 5, 2021) + +- Add `entryNodes` method that returns the nodes that nothing depends on - thanks [amcdnl](https://github.com/amcdnl)! + +## 0.10.0 (January 9, 2021) + +- Add `directDependenciesOf` and `directDependantsOf` methods for retrieving direct dependency information. (Fixes #40) +- Add aliases `dependentsOf` and `directDependentsOf`. + +## 0.9.0 (February 10, 2020) + +- Rewrite the topological sort DFS to be more efficient (and work!) on large graphs. + - No longer uses recursion to avoid stack overflows with large/deep graphs + - No longer is accidentally `O(N^2)` (thanks [willtennien](https://github.com/willtennien) for pointing this out!) + +## 0.8.1 (December 3, 2019) + +- Ensure all nodes are included in overallOrder when cycles are allowed. (Fixes #33) + +## 0.8.0 (December 11, 2018) + +- Add a `DepGraphCycleError` with cyclePath property - thanks [jhugman](https://github.com/jhugman)! + +## 0.7.2 (August 30, 2018) + +- Make constructor parameter optional in Typescript definition. (Fixes #26) + +## 0.7.1 (June 5, 2018) + +- Fix Typescript definition to include the new constructor arguments added in `0.7.0` - thanks [tbranyen](https://github.com/tbranyen)! + +## 0.7.0 (January 17, 2018) + +- Allow circular dependencies by passing in `{circular: true}` into the constructor - thanks [tbranyen](https://github.com/tbranyen)! + +## 0.6.0 (October 22, 2017) + +- Add a `size` method that will return the number of nodes in the graph. +- Add a `clone` method that will clone the graph. Any custom node data will only be shallow-copied. (Fixes #14) + +## 0.5.2 (October 22, 2017) + +- Add missing parameter in TypeScript definition. (Fixes #19) + +## 0.5.1 (October 7, 2017) + +- Now exposes Typescript type definition - thanks [vangorra](https://github.com/vangorra)! + +## 0.5.0 (April 26, 2016) + +- Add optional data parameter for the addNode method. (Fixes #12) +- Add methods getNodeData and setNodeData to manipulate the data associated with a node name. (Fixes #12) +- Change the hasNode method to be able to cope with falsy node data. (Fixes #12) + +## 0.4.1 (Sept 3, 2015) + +- Check all nodes for potential cycles when calculating overall order. (Fixes #8) + +## 0.4.0 (Aug 1, 2015) + +- Better error messages + - When a cycle is detected, the error message will now include the cycle in it. E.g `Dependency Cycle Found: a -> b -> c -> a` (Fixes #7) + - When calling `addDependency` if one of the nodes does not exist, the error will say which one it was (instead of saying that "one" of the two nodes did not exist and making you manually determine which one) +- Calling `overallOrder` on an empty graph will no longer throw an error about a dependency cycle. It will return an empty array. + +## 0.3.0 (July 24, 2015) + +- Fix issue where if you call `addNode` twice with the same name, it would clear all edges for that node. Now it will do nothing if a node with the specified name already exists. (Fixes #3) + +## 0.2.1 (July 3, 2015) + +- Fixed removeNode leaving references in outgoingEdges and reference to non-existent var edges - thanks [juhoha](https://github.com/juhoha)! (Fixes #2) + +## 0.2.0 (May 1, 2015) + +- Removed dependency on Underscore - thanks [myndzi](https://github.com/myndzi)! (Fixes #1) + +## 0.1.0 (May 18, 2013) + +- Initial Release - extracted out of asset-smasher diff --git a/node_modules/dependency-graph/LICENSE b/node_modules/dependency-graph/LICENSE new file mode 100755 index 00000000..6ebe5b66 --- /dev/null +++ b/node_modules/dependency-graph/LICENSE @@ -0,0 +1,19 @@ +Copyright (C) 2013-2020 by Jim Riecken + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/dependency-graph/README.md b/node_modules/dependency-graph/README.md new file mode 100755 index 00000000..763aaf8c --- /dev/null +++ b/node_modules/dependency-graph/README.md @@ -0,0 +1,78 @@ +# Dependency Graph + +Simple dependency graph + +## Overview + +This is a simple dependency graph useful for determining the order to do a list of things that depend on certain items being done before they are. + +To use, `npm install dependency-graph` and then `require('dependency-graph').DepGraph` + +## API + +### DepGraph + +Nodes in the graph are just simple strings with optional data associated with them. + + - `addNode(name, data)` - add a node in the graph with optional data. If `data` is not given, `name` will be used as data + - `removeNode(name)` - remove a node from the graph + - `hasNode(name)` - check if a node exists in the graph + - `size()` - return the number of nodes in the graph + - `getNodeData(name)` - get the data associated with a node (will throw an `Error` if the node does not exist) + - `setNodeData(name, data)` - set the data for an existing node (will throw an `Error` if the node does not exist) + - `addDependency(from, to)` - add a dependency between two nodes (will throw an `Error` if one of the nodes does not exist) + - `removeDependency(from, to)` - remove a dependency between two nodes + - `clone()` - return a clone of the graph. Any data attached to the nodes will only be *shallow-copied* + - `dependenciesOf(name, leavesOnly)` - get an array containing the nodes that the specified node depends on (transitively). If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned in the array. + - `dependantsOf(name, leavesOnly)` (aliased as `dependentsOf`) - get an array containing the nodes that depend on the specified node (transitively). If `leavesOnly` is true, only nodes that do not have any dependants will be returned in the array. + - `directDependenciesOf(name)` - get an array containing the direct dependencies of the specified node + - `directDependantsOf(name)` (aliased as `directDependentsOf`) - get an array containing the nodes that directly depend on the specified node + - `overallOrder(leavesOnly)` - construct the overall processing order for the dependency graph. If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned. + - `entryNodes()` - array of nodes that have no dependants (i.e. nothing depends on them). + +Dependency Cycles are detected when running `dependenciesOf`, `dependantsOf`, and `overallOrder` and if one is found, a `DepGraphCycleError` will be thrown that includes what the cycle was in the message as well as the `cyclePath` property: e.g. `Dependency Cycle Found: a -> b -> c -> a`. If you wish to silence this error, pass `circular: true` when instantiating `DepGraph` (more below). + +## Examples + + var DepGraph = require('dependency-graph').DepGraph; + + var graph = new DepGraph(); + graph.addNode('a'); + graph.addNode('b'); + graph.addNode('c'); + + graph.size() // 3 + + graph.addDependency('a', 'b'); + graph.addDependency('b', 'c'); + + graph.dependenciesOf('a'); // ['c', 'b'] + graph.dependenciesOf('b'); // ['c'] + graph.dependantsOf('c'); // ['a', 'b'] + + graph.overallOrder(); // ['c', 'b', 'a'] + graph.overallOrder(true); // ['c'] + graph.entryNodes(); // ['a'] + + graph.addNode('d', 'data'); + + graph.getNodeData('d'); // 'data' + + graph.setNodeData('d', 'newData'); + + graph.getNodeData('d'); // 'newData' + + var circularGraph = new DepGraph({ circular: true }); + + circularGraph.addNode('a'); + circularGraph.addNode('b'); + circularGraph.addNode('c'); + circularGraph.addNode('d'); + + circularGraph.addDependency('a', 'b'); + circularGraph.addDependency('b', 'c'); // b depends on c + circularGraph.addDependency('c', 'a'); // c depends on a, which depends on b + circularGraph.addDependency('d', 'a'); + + circularGraph.dependenciesOf('b'); // ['a', 'c'] + circularGraph.overallOrder(); // ['c', 'b', 'a', 'd'] diff --git a/node_modules/dependency-graph/lib/dep_graph.js b/node_modules/dependency-graph/lib/dep_graph.js new file mode 100755 index 00000000..a64f801c --- /dev/null +++ b/node_modules/dependency-graph/lib/dep_graph.js @@ -0,0 +1,364 @@ +/** + * A simple dependency graph + */ + +/** + * Helper for creating a Topological Sort using Depth-First-Search on a set of edges. + * + * Detects cycles and throws an Error if one is detected (unless the "circular" + * parameter is "true" in which case it ignores them). + * + * @param edges The set of edges to DFS through + * @param leavesOnly Whether to only return "leaf" nodes (ones who have no edges) + * @param result An array in which the results will be populated + * @param circular A boolean to allow circular dependencies + */ +function createDFS(edges, leavesOnly, result, circular) { + var visited = {}; + return function (start) { + if (visited[start]) { + return; + } + var inCurrentPath = {}; + var currentPath = []; + var todo = []; // used as a stack + todo.push({ node: start, processed: false }); + while (todo.length > 0) { + var current = todo[todo.length - 1]; // peek at the todo stack + var processed = current.processed; + var node = current.node; + if (!processed) { + // Haven't visited edges yet (visiting phase) + if (visited[node]) { + todo.pop(); + continue; + } else if (inCurrentPath[node]) { + // It's not a DAG + if (circular) { + todo.pop(); + // If we're tolerating cycles, don't revisit the node + continue; + } + currentPath.push(node); + throw new DepGraphCycleError(currentPath); + } + + inCurrentPath[node] = true; + currentPath.push(node); + var nodeEdges = edges[node]; + // (push edges onto the todo stack in reverse order to be order-compatible with the old DFS implementation) + for (var i = nodeEdges.length - 1; i >= 0; i--) { + todo.push({ node: nodeEdges[i], processed: false }); + } + current.processed = true; + } else { + // Have visited edges (stack unrolling phase) + todo.pop(); + currentPath.pop(); + inCurrentPath[node] = false; + visited[node] = true; + if (!leavesOnly || edges[node].length === 0) { + result.push(node); + } + } + } + }; +} + +/** + * Simple Dependency Graph + */ +var DepGraph = (exports.DepGraph = function DepGraph(opts) { + this.nodes = {}; // Node -> Node/Data (treated like a Set) + this.outgoingEdges = {}; // Node -> [Dependency Node] + this.incomingEdges = {}; // Node -> [Dependant Node] + this.circular = opts && !!opts.circular; // Allows circular deps +}); +DepGraph.prototype = { + /** + * The number of nodes in the graph. + */ + size: function () { + return Object.keys(this.nodes).length; + }, + /** + * Add a node to the dependency graph. If a node already exists, this method will do nothing. + */ + addNode: function (node, data) { + if (!this.hasNode(node)) { + // Checking the arguments length allows the user to add a node with undefined data + if (arguments.length === 2) { + this.nodes[node] = data; + } else { + this.nodes[node] = node; + } + this.outgoingEdges[node] = []; + this.incomingEdges[node] = []; + } + }, + /** + * Remove a node from the dependency graph. If a node does not exist, this method will do nothing. + */ + removeNode: function (node) { + if (this.hasNode(node)) { + delete this.nodes[node]; + delete this.outgoingEdges[node]; + delete this.incomingEdges[node]; + [this.incomingEdges, this.outgoingEdges].forEach(function (edgeList) { + Object.keys(edgeList).forEach(function (key) { + var idx = edgeList[key].indexOf(node); + if (idx >= 0) { + edgeList[key].splice(idx, 1); + } + }, this); + }); + } + }, + /** + * Check if a node exists in the graph + */ + hasNode: function (node) { + return this.nodes.hasOwnProperty(node); + }, + /** + * Get the data associated with a node name + */ + getNodeData: function (node) { + if (this.hasNode(node)) { + return this.nodes[node]; + } else { + throw new Error("Node does not exist: " + node); + } + }, + /** + * Set the associated data for a given node name. If the node does not exist, this method will throw an error + */ + setNodeData: function (node, data) { + if (this.hasNode(node)) { + this.nodes[node] = data; + } else { + throw new Error("Node does not exist: " + node); + } + }, + /** + * Add a dependency between two nodes. If either of the nodes does not exist, + * an Error will be thrown. + */ + addDependency: function (from, to) { + if (!this.hasNode(from)) { + throw new Error("Node does not exist: " + from); + } + if (!this.hasNode(to)) { + throw new Error("Node does not exist: " + to); + } + if (this.outgoingEdges[from].indexOf(to) === -1) { + this.outgoingEdges[from].push(to); + } + if (this.incomingEdges[to].indexOf(from) === -1) { + this.incomingEdges[to].push(from); + } + return true; + }, + /** + * Remove a dependency between two nodes. + */ + removeDependency: function (from, to) { + var idx; + if (this.hasNode(from)) { + idx = this.outgoingEdges[from].indexOf(to); + if (idx >= 0) { + this.outgoingEdges[from].splice(idx, 1); + } + } + + if (this.hasNode(to)) { + idx = this.incomingEdges[to].indexOf(from); + if (idx >= 0) { + this.incomingEdges[to].splice(idx, 1); + } + } + }, + /** + * Return a clone of the dependency graph. If any custom data is attached + * to the nodes, it will only be shallow copied. + */ + clone: function () { + var source = this; + var result = new DepGraph(); + var keys = Object.keys(source.nodes); + keys.forEach(function (n) { + result.nodes[n] = source.nodes[n]; + result.outgoingEdges[n] = source.outgoingEdges[n].slice(0); + result.incomingEdges[n] = source.incomingEdges[n].slice(0); + }); + return result; + }, + /** + * Get an array containing the direct dependencies of the specified node. + * + * Throws an Error if the specified node does not exist. + */ + directDependenciesOf: function (node) { + if (this.hasNode(node)) { + return this.outgoingEdges[node].slice(0); + } else { + throw new Error("Node does not exist: " + node); + } + }, + /** + * Get an array containing the nodes that directly depend on the specified node. + * + * Throws an Error if the specified node does not exist. + */ + directDependantsOf: function (node) { + if (this.hasNode(node)) { + return this.incomingEdges[node].slice(0); + } else { + throw new Error("Node does not exist: " + node); + } + }, + /** + * Get an array containing the nodes that the specified node depends on (transitively). + * + * Throws an Error if the graph has a cycle, or the specified node does not exist. + * + * If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned + * in the array. + */ + dependenciesOf: function (node, leavesOnly) { + if (this.hasNode(node)) { + var result = []; + var DFS = createDFS( + this.outgoingEdges, + leavesOnly, + result, + this.circular + ); + DFS(node); + var idx = result.indexOf(node); + if (idx >= 0) { + result.splice(idx, 1); + } + return result; + } else { + throw new Error("Node does not exist: " + node); + } + }, + /** + * get an array containing the nodes that depend on the specified node (transitively). + * + * Throws an Error if the graph has a cycle, or the specified node does not exist. + * + * If `leavesOnly` is true, only nodes that do not have any dependants will be returned in the array. + */ + dependantsOf: function (node, leavesOnly) { + if (this.hasNode(node)) { + var result = []; + var DFS = createDFS( + this.incomingEdges, + leavesOnly, + result, + this.circular + ); + DFS(node); + var idx = result.indexOf(node); + if (idx >= 0) { + result.splice(idx, 1); + } + return result; + } else { + throw new Error("Node does not exist: " + node); + } + }, + /** + * Construct the overall processing order for the dependency graph. + * + * Throws an Error if the graph has a cycle. + * + * If `leavesOnly` is true, only nodes that do not depend on any other nodes will be returned. + */ + overallOrder: function (leavesOnly) { + var self = this; + var result = []; + var keys = Object.keys(this.nodes); + if (keys.length === 0) { + return result; // Empty graph + } else { + if (!this.circular) { + // Look for cycles - we run the DFS starting at all the nodes in case there + // are several disconnected subgraphs inside this dependency graph. + var CycleDFS = createDFS(this.outgoingEdges, false, [], this.circular); + keys.forEach(function (n) { + CycleDFS(n); + }); + } + + var DFS = createDFS( + this.outgoingEdges, + leavesOnly, + result, + this.circular + ); + // Find all potential starting points (nodes with nothing depending on them) an + // run a DFS starting at these points to get the order + keys + .filter(function (node) { + return self.incomingEdges[node].length === 0; + }) + .forEach(function (n) { + DFS(n); + }); + + // If we're allowing cycles - we need to run the DFS against any remaining + // nodes that did not end up in the initial result (as they are part of a + // subgraph that does not have a clear starting point) + if (this.circular) { + keys + .filter(function (node) { + return result.indexOf(node) === -1; + }) + .forEach(function (n) { + DFS(n); + }); + } + + return result; + } + }, + /** + * Get an array of nodes that have no dependants (i.e. nothing depends on them). + */ + entryNodes: function () { + var self = this; + return Object.keys(this.nodes).filter(function (node) { + return self.incomingEdges[node].length === 0; + }); + } +}; + +// Create some aliases +DepGraph.prototype.directDependentsOf = DepGraph.prototype.directDependantsOf; +DepGraph.prototype.dependentsOf = DepGraph.prototype.dependantsOf; + +/** + * Cycle error, including the path of the cycle. + */ +var DepGraphCycleError = (exports.DepGraphCycleError = function (cyclePath) { + var message = "Dependency Cycle Found: " + cyclePath.join(" -> "); + var instance = new Error(message); + instance.cyclePath = cyclePath; + Object.setPrototypeOf(instance, Object.getPrototypeOf(this)); + if (Error.captureStackTrace) { + Error.captureStackTrace(instance, DepGraphCycleError); + } + return instance; +}); +DepGraphCycleError.prototype = Object.create(Error.prototype, { + constructor: { + value: Error, + enumerable: false, + writable: true, + configurable: true + } +}); +Object.setPrototypeOf(DepGraphCycleError, Error); diff --git a/node_modules/dependency-graph/lib/index.d.ts b/node_modules/dependency-graph/lib/index.d.ts new file mode 100755 index 00000000..6ed8de5b --- /dev/null +++ b/node_modules/dependency-graph/lib/index.d.ts @@ -0,0 +1,127 @@ +declare module 'dependency-graph' { + export interface Options { + circular?: boolean; + } + + export class DepGraph { + /** + * Creates an instance of DepGraph with optional Options. + */ + constructor(opts?: Options); + + /** + * The number of nodes in the graph. + */ + size(): number; + + /** + * Add a node in the graph with optional data. If data is not given, name will be used as data. + * @param {string} name + * @param data + */ + addNode(name: string, data?: T): void; + + /** + * Remove a node from the graph. + * @param {string} name + */ + removeNode(name: string): void; + + /** + * Check if a node exists in the graph. + * @param {string} name + */ + hasNode(name: string): boolean; + + /** + * Get the data associated with a node (will throw an Error if the node does not exist). + * @param {string} name + */ + getNodeData(name: string): T; + + /** + * Set the data for an existing node (will throw an Error if the node does not exist). + * @param {string} name + * @param data + */ + setNodeData(name: string, data?: T): void; + + /** + * Add a dependency between two nodes (will throw an Error if one of the nodes does not exist). + * @param {string} from + * @param {string} to + */ + addDependency(from: string, to: string): void; + + /** + * Remove a dependency between two nodes. + * @param {string} from + * @param {string} to + */ + removeDependency(from: string, to: string): void; + + /** + * Return a clone of the dependency graph (If any custom data is attached + * to the nodes, it will only be shallow copied). + */ + clone(): DepGraph; + + /** + * Get an array containing the direct dependency nodes of the specified node. + * @param name + */ + directDependenciesOf(name: string): string[]; + + /** + * Get an array containing the nodes that directly depend on the specified node. + * @param name + */ + directDependantsOf(name: string): string[]; + + /** + * Alias of `directDependantsOf` + * + * @see directDependantsOf + * @param {string} name + */ + directDependentsOf(name: string): string[]; + + /** + * Get an array containing the nodes that the specified node depends on (transitively). If leavesOnly is true, only nodes that do not depend on any other nodes will be returned in the array. + * @param {string} name + * @param {boolean} leavesOnly + */ + dependenciesOf(name: string, leavesOnly?: boolean): string[]; + + /** + * Get an array containing the nodes that depend on the specified node (transitively). If leavesOnly is true, only nodes that do not have any dependants will be returned in the array. + * @param {string} name + * @param {boolean} leavesOnly + */ + dependantsOf(name: string, leavesOnly?: boolean): string[]; + + /** + * Alias of `dependantsOf` + * + * @see dependantsOf + * @param name + * @param leavesOnly + */ + dependentsOf(name: string, leavesOnly?: boolean): string[]; + + /** + * Get an array of nodes that have no dependants (i.e. nothing depends on them). + */ + entryNodes(): string[]; + + /** + * Construct the overall processing order for the dependency graph. If leavesOnly is true, only nodes that do not depend on any other nodes will be returned. + * @param {boolean} leavesOnly + */ + overallOrder(leavesOnly?: boolean): string[]; + } + + export class DepGraphCycleError extends Error { + cyclePath: string[]; + } +} diff --git a/node_modules/dependency-graph/package.json b/node_modules/dependency-graph/package.json new file mode 100755 index 00000000..d965899c --- /dev/null +++ b/node_modules/dependency-graph/package.json @@ -0,0 +1,31 @@ +{ + "name": "dependency-graph", + "description": "Simple dependency graph.", + "version": "0.11.0", + "author": "Jim Riecken ", + "keywords": [ + "dependency", + "graph" + ], + "license": "MIT", + "repository": { + "type": "git", + "url": "git://github.com/jriecken/dependency-graph.git" + }, + "bugs": { + "url": "http://github.com/jriecken/dependency-graph/issues" + }, + "main": "./lib/dep_graph.js", + "scripts": { + "test": "jasmine specs/**/*.js" + }, + "dependencies": {}, + "optionalDependencies": {}, + "devDependencies": { + "jasmine": "3.5.0" + }, + "engines": { + "node": ">= 0.6.0" + }, + "types": "./lib/index.d.ts" +} \ No newline at end of file diff --git a/node_modules/dependency-graph/specs/dep_graph_spec.js b/node_modules/dependency-graph/specs/dep_graph_spec.js new file mode 100755 index 00000000..07aa68e5 --- /dev/null +++ b/node_modules/dependency-graph/specs/dep_graph_spec.js @@ -0,0 +1,542 @@ +var dep_graph = require("../lib/dep_graph"); +var DepGraph = dep_graph.DepGraph; + +describe("DepGraph", function () { + it("should be able to add/remove nodes", function () { + var graph = new DepGraph(); + + graph.addNode("Foo"); + graph.addNode("Bar"); + + expect(graph.hasNode("Foo")).toBeTrue(); + expect(graph.hasNode("Bar")).toBeTrue(); + expect(graph.hasNode("NotThere")).toBeFalse(); + + graph.removeNode("Bar"); + + expect(graph.hasNode("Bar")).toBeFalse(); + }); + + it("should calculate its size", function () { + var graph = new DepGraph(); + + expect(graph.size()).toBe(0); + + graph.addNode("Foo"); + graph.addNode("Bar"); + + expect(graph.size()).toBe(2); + + graph.removeNode("Bar"); + + expect(graph.size()).toBe(1); + }); + + it("should treat the node data parameter as optional and use the node name as data if node data was not given", function () { + var graph = new DepGraph(); + + graph.addNode("Foo"); + + expect(graph.getNodeData("Foo")).toBe("Foo"); + }); + + it("should be able to associate a node name with data on node add", function () { + var graph = new DepGraph(); + + graph.addNode("Foo", "data"); + + expect(graph.getNodeData("Foo")).toBe("data"); + }); + + it("should be able to add undefined as node data", function () { + var graph = new DepGraph(); + + graph.addNode("Foo", undefined); + + expect(graph.getNodeData("Foo")).toBeUndefined(); + }); + + it("should return true when using hasNode with a node which has falsy data", function () { + var graph = new DepGraph(); + + var falsyData = ["", 0, null, undefined, false]; + graph.addNode("Foo"); + + falsyData.forEach(function (data) { + graph.setNodeData("Foo", data); + + expect(graph.hasNode("Foo")).toBeTrue(); + + // Just an extra check to make sure that the saved data is correct + expect(graph.getNodeData("Foo")).toBe(data); + }); + }); + + it("should be able to set data after a node was added", function () { + var graph = new DepGraph(); + + graph.addNode("Foo", "data"); + graph.setNodeData("Foo", "data2"); + + expect(graph.getNodeData("Foo")).toBe("data2"); + }); + + it("should throw an error if we try to set data for a non-existing node", function () { + var graph = new DepGraph(); + + expect(function () { + graph.setNodeData("Foo", "data"); + }).toThrow(new Error("Node does not exist: Foo")); + }); + + it("should throw an error if the node does not exists and we try to get data", function () { + var graph = new DepGraph(); + + expect(function () { + graph.getNodeData("Foo"); + }).toThrow(new Error("Node does not exist: Foo")); + }); + + it("should do nothing if creating a node that already exists", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + + graph.addDependency("a", "b"); + + graph.addNode("a"); + + expect(graph.dependenciesOf("a")).toEqual(["b"]); + }); + + it("should do nothing if removing a node that does not exist", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + expect(graph.hasNode("a")).toBeTrue(); + + graph.removeNode("a"); + expect(graph.hasNode("Foo")).toBeFalse(); + + graph.removeNode("a"); + expect(graph.hasNode("Foo")).toBeFalse(); + }); + + it("should be able to add dependencies between nodes", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + + graph.addDependency("a", "b"); + graph.addDependency("a", "c"); + + expect(graph.dependenciesOf("a")).toEqual(["b", "c"]); + }); + + it("should find entry nodes", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + + graph.addDependency("a", "b"); + graph.addDependency("a", "c"); + + expect(graph.entryNodes()).toEqual(["a"]); + }); + + it("should throw an error if a node does not exist and a dependency is added", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + + expect(function () { + graph.addDependency("a", "b"); + }).toThrow(new Error("Node does not exist: b")); + }); + + it("should detect cycles", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addNode("d"); + + graph.addDependency("a", "b"); + graph.addDependency("b", "c"); + graph.addDependency("c", "a"); + graph.addDependency("d", "a"); + + expect(function () { + graph.dependenciesOf("b"); + }).toThrow(new dep_graph.DepGraphCycleError(["b", "c", "a", "b"])); + }); + + it("should allow cycles when configured", function () { + var graph = new DepGraph({ circular: true }); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addNode("d"); + + graph.addDependency("a", "b"); + graph.addDependency("b", "c"); + graph.addDependency("c", "a"); + graph.addDependency("d", "a"); + + expect(graph.dependenciesOf("b")).toEqual(["a", "c"]); + expect(graph.overallOrder()).toEqual(["c", "b", "a", "d"]); + }); + + it( + "should include all nodes in overall order even from " + + "cycles in disconnected subgraphs when circular is true", + function () { + var graph = new DepGraph({ circular: true }); + + graph.addNode("2a"); + graph.addNode("2b"); + graph.addNode("2c"); + graph.addDependency("2a", "2b"); + graph.addDependency("2b", "2c"); + graph.addDependency("2c", "2a"); + + graph.addNode("1a"); + graph.addNode("1b"); + graph.addNode("1c"); + graph.addNode("1d"); + graph.addNode("1e"); + + graph.addDependency("1a", "1b"); + graph.addDependency("1a", "1c"); + graph.addDependency("1b", "1c"); + graph.addDependency("1c", "1d"); + + expect(graph.overallOrder()).toEqual([ + "1d", + "1c", + "1b", + "1a", + "1e", + "2c", + "2b", + "2a" + ]); + } + ); + + it("should detect cycles in overall order", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addNode("d"); + + graph.addDependency("a", "b"); + graph.addDependency("b", "c"); + graph.addDependency("c", "a"); + graph.addDependency("d", "a"); + + expect(function () { + graph.overallOrder(); + }).toThrow(new dep_graph.DepGraphCycleError(["a", "b", "c", "a"])); + }); + + it("should detect cycles in overall order when all nodes have dependants (incoming edges)", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + + graph.addDependency("a", "b"); + graph.addDependency("b", "c"); + graph.addDependency("c", "a"); + + expect(function () { + graph.overallOrder(); + }).toThrow(new dep_graph.DepGraphCycleError(["a", "b", "c", "a"])); + }); + + it( + "should detect cycles in overall order when there are several " + + "disconnected subgraphs (with one that does not have a cycle", + function () { + var graph = new DepGraph(); + + graph.addNode("a_1"); + graph.addNode("a_2"); + graph.addNode("b_1"); + graph.addNode("b_2"); + graph.addNode("b_3"); + + graph.addDependency("a_1", "a_2"); + graph.addDependency("b_1", "b_2"); + graph.addDependency("b_2", "b_3"); + graph.addDependency("b_3", "b_1"); + + expect(function () { + graph.overallOrder(); + }).toThrow( + new dep_graph.DepGraphCycleError(["b_1", "b_2", "b_3", "b_1"]) + ); + } + ); + + it("should retrieve dependencies and dependants in the correct order", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addNode("d"); + + graph.addDependency("a", "d"); + graph.addDependency("a", "b"); + graph.addDependency("b", "c"); + graph.addDependency("d", "b"); + + expect(graph.dependenciesOf("a")).toEqual(["c", "b", "d"]); + expect(graph.dependenciesOf("b")).toEqual(["c"]); + expect(graph.dependenciesOf("c")).toEqual([]); + expect(graph.dependenciesOf("d")).toEqual(["c", "b"]); + + expect(graph.dependantsOf("a")).toEqual([]); + expect(graph.dependantsOf("b")).toEqual(["a", "d"]); + expect(graph.dependantsOf("c")).toEqual(["a", "d", "b"]); + expect(graph.dependantsOf("d")).toEqual(["a"]); + + // check the alias "dependentsOf" + expect(graph.dependentsOf("a")).toEqual([]); + expect(graph.dependentsOf("b")).toEqual(["a", "d"]); + expect(graph.dependentsOf("c")).toEqual(["a", "d", "b"]); + expect(graph.dependentsOf("d")).toEqual(["a"]); + }); + + it("should be able to retrieve direct dependencies/dependants", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addNode("d"); + + graph.addDependency("a", "d"); + graph.addDependency("a", "b"); + graph.addDependency("b", "c"); + graph.addDependency("d", "b"); + + expect(graph.directDependenciesOf("a")).toEqual(["d", "b"]); + expect(graph.directDependenciesOf("b")).toEqual(["c"]); + expect(graph.directDependenciesOf("c")).toEqual([]); + expect(graph.directDependenciesOf("d")).toEqual(["b"]); + + expect(graph.directDependantsOf("a")).toEqual([]); + expect(graph.directDependantsOf("b")).toEqual(["a", "d"]); + expect(graph.directDependantsOf("c")).toEqual(["b"]); + expect(graph.directDependantsOf("d")).toEqual(["a"]); + + // check the alias "directDependentsOf" + expect(graph.directDependentsOf("a")).toEqual([]); + expect(graph.directDependentsOf("b")).toEqual(["a", "d"]); + expect(graph.directDependentsOf("c")).toEqual(["b"]); + expect(graph.directDependentsOf("d")).toEqual(["a"]); + }); + + it("should be able to resolve the overall order of things", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addNode("d"); + graph.addNode("e"); + + graph.addDependency("a", "b"); + graph.addDependency("a", "c"); + graph.addDependency("b", "c"); + graph.addDependency("c", "d"); + + expect(graph.overallOrder()).toEqual(["d", "c", "b", "a", "e"]); + }); + + it('should be able to only retrieve the "leaves" in the overall order', function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addNode("d"); + graph.addNode("e"); + + graph.addDependency("a", "b"); + graph.addDependency("a", "c"); + graph.addDependency("b", "c"); + graph.addDependency("c", "d"); + + expect(graph.overallOrder(true)).toEqual(["d", "e"]); + }); + + it("should be able to give the overall order for a graph with several disconnected subgraphs", function () { + var graph = new DepGraph(); + + graph.addNode("a_1"); + graph.addNode("a_2"); + graph.addNode("b_1"); + graph.addNode("b_2"); + graph.addNode("b_3"); + + graph.addDependency("a_1", "a_2"); + graph.addDependency("b_1", "b_2"); + graph.addDependency("b_2", "b_3"); + + expect(graph.overallOrder()).toEqual(["a_2", "a_1", "b_3", "b_2", "b_1"]); + }); + + it("should give an empty overall order for an empty graph", function () { + var graph = new DepGraph(); + + expect(graph.overallOrder()).toEqual([]); + }); + + it("should still work after nodes are removed", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addDependency("a", "b"); + graph.addDependency("b", "c"); + + expect(graph.dependenciesOf("a")).toEqual(["c", "b"]); + + graph.removeNode("c"); + + expect(graph.dependenciesOf("a")).toEqual(["b"]); + }); + + it("should clone an empty graph", function () { + var graph = new DepGraph(); + expect(graph.size()).toEqual(0); + var cloned = graph.clone(); + expect(cloned.size()).toEqual(0); + + expect(graph === cloned).toBeFalse(); + }); + + it("should clone a non-empty graph", function () { + var graph = new DepGraph(); + + graph.addNode("a"); + graph.addNode("b"); + graph.addNode("c"); + graph.addDependency("a", "b"); + graph.addDependency("b", "c"); + + var cloned = graph.clone(); + + expect(graph === cloned).toBeFalse(); + expect(cloned.hasNode("a")).toBeTrue(); + expect(cloned.hasNode("b")).toBeTrue(); + expect(cloned.hasNode("c")).toBeTrue(); + expect(cloned.dependenciesOf("a")).toEqual(["c", "b"]); + expect(cloned.dependantsOf("c")).toEqual(["a", "b"]); + + // Changes to the original graph shouldn't affect the clone + graph.removeNode("c"); + expect(graph.dependenciesOf("a")).toEqual(["b"]); + expect(cloned.dependenciesOf("a")).toEqual(["c", "b"]); + + graph.addNode("d"); + graph.addDependency("b", "d"); + expect(graph.dependenciesOf("a")).toEqual(["d", "b"]); + expect(cloned.dependenciesOf("a")).toEqual(["c", "b"]); + }); + + it("should only be a shallow clone", function () { + var graph = new DepGraph(); + + var data = { a: 42 }; + graph.addNode("a", data); + + var cloned = graph.clone(); + expect(graph === cloned).toBeFalse(); + expect(graph.getNodeData("a") === cloned.getNodeData("a")).toBeTrue(); + + graph.getNodeData("a").a = 43; + expect(cloned.getNodeData("a").a).toBe(43); + + cloned.setNodeData("a", { a: 42 }); + expect(cloned.getNodeData("a").a).toBe(42); + expect(graph.getNodeData("a") === cloned.getNodeData("a")).toBeFalse(); + }); +}); + +describe("DepGraph Performance", function () { + it("should not exceed max call stack with a very deep graph", function () { + var g = new DepGraph(); + var expected = []; + for (var i = 0; i < 100000; i++) { + var istr = i.toString(); + g.addNode(istr); + expected.push(istr); + if (i > 0) { + g.addDependency(istr, (i - 1).toString()); + } + } + var order = g.overallOrder(); + expect(order).toEqual(expected); + }); + + it("should run an a reasonable amount of time for a very large graph", function () { + var randInt = function (min, max) { + return Math.floor(Math.random() * (max - min + 1)) + min; + }; + var g = new DepGraph(); + var nodes = []; + // Create a graph with 100000 nodes in it with 10 random connections to + // lower numbered nodes + for (var i = 0; i < 100000; i++) { + nodes.push(i.toString()); + g.addNode(i.toString()); + for (var j = 0; j < 10; j++) { + var dep = randInt(0, i); + if (i !== dep) { + g.addDependency(i.toString(), dep.toString()); + } + } + } + var start = new Date().getTime(); + g.overallOrder(); + var end = new Date().getTime(); + expect(start - end).toBeLessThan(1000); + }); +}); + +describe("DepGraphCycleError", function () { + var DepGraphCycleError = dep_graph.DepGraphCycleError; + + it("should have a message", function () { + var err = new DepGraphCycleError(["a", "b", "c", "a"]); + expect(err.message).toEqual("Dependency Cycle Found: a -> b -> c -> a"); + }); + + it("should be an instanceof DepGraphCycleError", function () { + var err = new DepGraphCycleError(["a", "b", "c", "a"]); + expect(err instanceof DepGraphCycleError).toBeTrue(); + expect(err instanceof Error).toBeTrue(); + }); + + it("should have a cyclePath", function () { + var cyclePath = ["a", "b", "c", "a"]; + var err = new DepGraphCycleError(cyclePath); + expect(err.cyclePath).toEqual(cyclePath); + }); +}); diff --git a/node_modules/dir-glob/index.js b/node_modules/dir-glob/index.js new file mode 100644 index 00000000..c21cdf39 --- /dev/null +++ b/node_modules/dir-glob/index.js @@ -0,0 +1,75 @@ +'use strict'; +const path = require('path'); +const pathType = require('path-type'); + +const getExtensions = extensions => extensions.length > 1 ? `{${extensions.join(',')}}` : extensions[0]; + +const getPath = (filepath, cwd) => { + const pth = filepath[0] === '!' ? filepath.slice(1) : filepath; + return path.isAbsolute(pth) ? pth : path.join(cwd, pth); +}; + +const addExtensions = (file, extensions) => { + if (path.extname(file)) { + return `**/${file}`; + } + + return `**/${file}.${getExtensions(extensions)}`; +}; + +const getGlob = (directory, options) => { + if (options.files && !Array.isArray(options.files)) { + throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof options.files}\``); + } + + if (options.extensions && !Array.isArray(options.extensions)) { + throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof options.extensions}\``); + } + + if (options.files && options.extensions) { + return options.files.map(x => path.posix.join(directory, addExtensions(x, options.extensions))); + } + + if (options.files) { + return options.files.map(x => path.posix.join(directory, `**/${x}`)); + } + + if (options.extensions) { + return [path.posix.join(directory, `**/*.${getExtensions(options.extensions)}`)]; + } + + return [path.posix.join(directory, '**')]; +}; + +module.exports = async (input, options) => { + options = { + cwd: process.cwd(), + ...options + }; + + if (typeof options.cwd !== 'string') { + throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof options.cwd}\``); + } + + const globs = await Promise.all([].concat(input).map(async x => { + const isDirectory = await pathType.isDirectory(getPath(x, options.cwd)); + return isDirectory ? getGlob(x, options) : x; + })); + + return [].concat.apply([], globs); // eslint-disable-line prefer-spread +}; + +module.exports.sync = (input, options) => { + options = { + cwd: process.cwd(), + ...options + }; + + if (typeof options.cwd !== 'string') { + throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof options.cwd}\``); + } + + const globs = [].concat(input).map(x => pathType.isDirectorySync(getPath(x, options.cwd)) ? getGlob(x, options) : x); + + return [].concat.apply([], globs); // eslint-disable-line prefer-spread +}; diff --git a/node_modules/dir-glob/license b/node_modules/dir-glob/license new file mode 100644 index 00000000..db6bc32c --- /dev/null +++ b/node_modules/dir-glob/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Kevin Mårtensson (github.com/kevva) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/dir-glob/package.json b/node_modules/dir-glob/package.json new file mode 100644 index 00000000..b0a397e6 --- /dev/null +++ b/node_modules/dir-glob/package.json @@ -0,0 +1,38 @@ +{ + "name": "dir-glob", + "version": "3.0.1", + "description": "Convert directories to glob compatible strings", + "license": "MIT", + "repository": "kevva/dir-glob", + "author": { + "name": "Kevin Mårtensson", + "email": "kevinmartensson@gmail.com", + "url": "github.com/kevva" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "convert", + "directory", + "extensions", + "files", + "glob" + ], + "dependencies": { + "path-type": "^4.0.0" + }, + "devDependencies": { + "ava": "^2.1.0", + "del": "^4.1.1", + "make-dir": "^3.0.0", + "rimraf": "^2.5.0", + "xo": "^0.24.0" + } +} diff --git a/node_modules/dir-glob/readme.md b/node_modules/dir-glob/readme.md new file mode 100644 index 00000000..cb7313f0 --- /dev/null +++ b/node_modules/dir-glob/readme.md @@ -0,0 +1,76 @@ +# dir-glob [![Build Status](https://travis-ci.org/kevva/dir-glob.svg?branch=master)](https://travis-ci.org/kevva/dir-glob) + +> Convert directories to glob compatible strings + + +## Install + +``` +$ npm install dir-glob +``` + + +## Usage + +```js +const dirGlob = require('dir-glob'); + +(async () => { + console.log(await dirGlob(['index.js', 'test.js', 'fixtures'])); + //=> ['index.js', 'test.js', 'fixtures/**'] + + console.log(await dirGlob(['index.js', 'inner_folder'], {cwd: 'fixtures'})); + //=> ['index.js', 'inner_folder/**'] + + console.log(await dirGlob(['lib/**', 'fixtures'], { + files: ['test', 'unicorn'] + extensions: ['js'] + })); + //=> ['lib/**', 'fixtures/**/test.js', 'fixtures/**/unicorn.js'] + + console.log(await dirGlob(['lib/**', 'fixtures'], { + files: ['test', 'unicorn', '*.jsx'], + extensions: ['js', 'png'] + })); + //=> ['lib/**', 'fixtures/**/test.{js,png}', 'fixtures/**/unicorn.{js,png}', 'fixtures/**/*.jsx'] +})(); +``` + + +## API + +### dirGlob(input, options?) + +Returns a `Promise` with globs. + +### dirGlob.sync(input, options?) + +Returns a `string[]` with globs. + +#### input + +Type: `string | string[]` + +Paths. + +#### options + +Type: `object` + +##### extensions + +Type: `string[]` + +Append extensions to the end of your globs. + +##### files + +Type: `string[]` + +Only glob for certain files. + +##### cwd + +Type: `string[]` + +Test in specific directory. diff --git a/node_modules/emoji-regex/LICENSE-MIT.txt b/node_modules/emoji-regex/LICENSE-MIT.txt new file mode 100644 index 00000000..a41e0a7e --- /dev/null +++ b/node_modules/emoji-regex/LICENSE-MIT.txt @@ -0,0 +1,20 @@ +Copyright Mathias Bynens + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/emoji-regex/README.md b/node_modules/emoji-regex/README.md new file mode 100644 index 00000000..f10e1733 --- /dev/null +++ b/node_modules/emoji-regex/README.md @@ -0,0 +1,73 @@ +# emoji-regex [![Build status](https://travis-ci.org/mathiasbynens/emoji-regex.svg?branch=master)](https://travis-ci.org/mathiasbynens/emoji-regex) + +_emoji-regex_ offers a regular expression to match all emoji symbols (including textual representations of emoji) as per the Unicode Standard. + +This repository contains a script that generates this regular expression based on [the data from Unicode v12](https://github.com/mathiasbynens/unicode-12.0.0). Because of this, the regular expression can easily be updated whenever new emoji are added to the Unicode standard. + +## Installation + +Via [npm](https://www.npmjs.com/): + +```bash +npm install emoji-regex +``` + +In [Node.js](https://nodejs.org/): + +```js +const emojiRegex = require('emoji-regex'); +// Note: because the regular expression has the global flag set, this module +// exports a function that returns the regex rather than exporting the regular +// expression itself, to make it impossible to (accidentally) mutate the +// original regular expression. + +const text = ` +\u{231A}: ⌚ default emoji presentation character (Emoji_Presentation) +\u{2194}\u{FE0F}: ↔️ default text presentation character rendered as emoji +\u{1F469}: 👩 emoji modifier base (Emoji_Modifier_Base) +\u{1F469}\u{1F3FF}: 👩🏿 emoji modifier base followed by a modifier +`; + +const regex = emojiRegex(); +let match; +while (match = regex.exec(text)) { + const emoji = match[0]; + console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`); +} +``` + +Console output: + +``` +Matched sequence ⌚ — code points: 1 +Matched sequence ⌚ — code points: 1 +Matched sequence ↔️ — code points: 2 +Matched sequence ↔️ — code points: 2 +Matched sequence 👩 — code points: 1 +Matched sequence 👩 — code points: 1 +Matched sequence 👩🏿 — code points: 2 +Matched sequence 👩🏿 — code points: 2 +``` + +To match emoji in their textual representation as well (i.e. emoji that are not `Emoji_Presentation` symbols and that aren’t forced to render as emoji by a variation selector), `require` the other regex: + +```js +const emojiRegex = require('emoji-regex/text.js'); +``` + +Additionally, in environments which support ES2015 Unicode escapes, you may `require` ES2015-style versions of the regexes: + +```js +const emojiRegex = require('emoji-regex/es2015/index.js'); +const emojiRegexText = require('emoji-regex/es2015/text.js'); +``` + +## Author + +| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | +|---| +| [Mathias Bynens](https://mathiasbynens.be/) | + +## License + +_emoji-regex_ is available under the [MIT](https://mths.be/mit) license. diff --git a/node_modules/emoji-regex/es2015/index.js b/node_modules/emoji-regex/es2015/index.js new file mode 100644 index 00000000..b4cf3dcd --- /dev/null +++ b/node_modules/emoji-regex/es2015/index.js @@ -0,0 +1,6 @@ +"use strict"; + +module.exports = () => { + // https://mths.be/emoji + return /\u{1F3F4}\u{E0067}\u{E0062}(?:\u{E0065}\u{E006E}\u{E0067}|\u{E0073}\u{E0063}\u{E0074}|\u{E0077}\u{E006C}\u{E0073})\u{E007F}|\u{1F468}(?:\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}\u{1F3FB}|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FE}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u2695\u2696\u2708]\uFE0F|[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|(?:\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708])\uFE0F|\u{1F3FB}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|[\u{1F3FB}-\u{1F3FF}])|(?:\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469})\u{1F3FB}|\u{1F9D1}(?:\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u200D\u{1F91D}\u200D\u{1F9D1})|(?:\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FE}]|(?:\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}\u{1F3FC}]|\u{1F469}(?:\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FD}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FB}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FC}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|(?:\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}-\u{1F3FD}]|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F469}(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}]\uFE0F|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}](?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\u{1F3F4}\u200D\u2620)\uFE0F|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F415}\u200D\u{1F9BA}|\u{1F469}\u200D\u{1F466}|\u{1F469}\u200D\u{1F467}|\u{1F1FD}\u{1F1F0}|\u{1F1F4}\u{1F1F2}|\u{1F1F6}\u{1F1E6}|[#\*0-9]\uFE0F\u20E3|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F469}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270A-\u270D\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F46B}-\u{1F46D}\u{1F470}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F4AA}\u{1F574}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F936}\u{1F9B5}\u{1F9B6}\u{1F9BB}\u{1F9D2}-\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6D5}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]|[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6D5}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]\uFE0F|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93C}-\u{1F93E}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9BB}\u{1F9CD}-\u{1F9CF}\u{1F9D1}-\u{1F9DD}]/gu; +}; diff --git a/node_modules/emoji-regex/es2015/text.js b/node_modules/emoji-regex/es2015/text.js new file mode 100644 index 00000000..780309df --- /dev/null +++ b/node_modules/emoji-regex/es2015/text.js @@ -0,0 +1,6 @@ +"use strict"; + +module.exports = () => { + // https://mths.be/emoji + return /\u{1F3F4}\u{E0067}\u{E0062}(?:\u{E0065}\u{E006E}\u{E0067}|\u{E0073}\u{E0063}\u{E0074}|\u{E0077}\u{E006C}\u{E0073})\u{E007F}|\u{1F468}(?:\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}\u{1F3FB}|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FE}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D)?\u{1F468}|[\u{1F468}\u{1F469}]\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}]|[\u{1F468}\u{1F469}]\u200D[\u{1F466}\u{1F467}]|[\u2695\u2696\u2708]\uFE0F|[\u{1F466}\u{1F467}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|(?:\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708])\uFE0F|\u{1F3FB}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}]|[\u{1F3FB}-\u{1F3FF}])|(?:\u{1F9D1}\u{1F3FB}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F469})\u{1F3FB}|\u{1F9D1}(?:\u{1F3FF}\u200D\u{1F91D}\u200D\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u200D\u{1F91D}\u200D\u{1F9D1})|(?:\u{1F9D1}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FF}\u200D\u{1F91D}\u200D[\u{1F468}\u{1F469}])[\u{1F3FB}-\u{1F3FE}]|(?:\u{1F9D1}\u{1F3FC}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}\u{1F3FC}]|\u{1F469}(?:\u{1F3FE}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}-\u{1F3FD}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FC}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FD}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FB}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FC}-\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FD}\u200D(?:\u{1F91D}\u200D\u{1F468}[\u{1F3FB}\u{1F3FC}\u{1F3FE}\u{1F3FF}]|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u200D(?:\u2764\uFE0F\u200D(?:\u{1F48B}\u200D[\u{1F468}\u{1F469}]|[\u{1F468}\u{1F469}])|[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F3FF}\u200D[\u{1F33E}\u{1F373}\u{1F393}\u{1F3A4}\u{1F3A8}\u{1F3EB}\u{1F3ED}\u{1F4BB}\u{1F4BC}\u{1F527}\u{1F52C}\u{1F680}\u{1F692}\u{1F9AF}-\u{1F9B3}\u{1F9BC}\u{1F9BD}])|\u{1F469}\u200D\u{1F469}\u200D(?:\u{1F466}\u200D\u{1F466}|\u{1F467}\u200D[\u{1F466}\u{1F467}])|(?:\u{1F9D1}\u{1F3FD}\u200D\u{1F91D}\u200D\u{1F9D1}|\u{1F469}\u{1F3FE}\u200D\u{1F91D}\u200D\u{1F469})[\u{1F3FB}-\u{1F3FD}]|\u{1F469}\u200D\u{1F466}\u200D\u{1F466}|\u{1F469}\u200D\u{1F469}\u200D[\u{1F466}\u{1F467}]|(?:\u{1F441}\uFE0F\u200D\u{1F5E8}|\u{1F469}(?:\u{1F3FF}\u200D[\u2695\u2696\u2708]|\u{1F3FE}\u200D[\u2695\u2696\u2708]|\u{1F3FC}\u200D[\u2695\u2696\u2708]|\u{1F3FB}\u200D[\u2695\u2696\u2708]|\u{1F3FD}\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}]\uFE0F|[\u{1F46F}\u{1F93C}\u{1F9DE}\u{1F9DF}])\u200D[\u2640\u2642]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}](?:[\u{1F3FB}-\u{1F3FF}]\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\u{1F3F4}\u200D\u2620)\uFE0F|\u{1F469}\u200D\u{1F467}\u200D[\u{1F466}\u{1F467}]|\u{1F3F3}\uFE0F\u200D\u{1F308}|\u{1F415}\u200D\u{1F9BA}|\u{1F469}\u200D\u{1F466}|\u{1F469}\u200D\u{1F467}|\u{1F1FD}\u{1F1F0}|\u{1F1F4}\u{1F1F2}|\u{1F1F6}\u{1F1E6}|[#\*0-9]\uFE0F\u20E3|\u{1F1E7}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EF}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1F9}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1ED}\u{1F1EF}-\u{1F1F4}\u{1F1F7}\u{1F1F9}\u{1F1FB}\u{1F1FC}\u{1F1FF}]|\u{1F1EA}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1ED}\u{1F1F7}-\u{1F1FA}]|\u{1F9D1}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F7}[\u{1F1EA}\u{1F1F4}\u{1F1F8}\u{1F1FA}\u{1F1FC}]|\u{1F469}[\u{1F3FB}-\u{1F3FF}]|\u{1F1F2}[\u{1F1E6}\u{1F1E8}-\u{1F1ED}\u{1F1F0}-\u{1F1FF}]|\u{1F1E6}[\u{1F1E8}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F2}\u{1F1F4}\u{1F1F6}-\u{1F1FA}\u{1F1FC}\u{1F1FD}\u{1F1FF}]|\u{1F1F0}[\u{1F1EA}\u{1F1EC}-\u{1F1EE}\u{1F1F2}\u{1F1F3}\u{1F1F5}\u{1F1F7}\u{1F1FC}\u{1F1FE}\u{1F1FF}]|\u{1F1ED}[\u{1F1F0}\u{1F1F2}\u{1F1F3}\u{1F1F7}\u{1F1F9}\u{1F1FA}]|\u{1F1E9}[\u{1F1EA}\u{1F1EC}\u{1F1EF}\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1FF}]|\u{1F1FE}[\u{1F1EA}\u{1F1F9}]|\u{1F1EC}[\u{1F1E6}\u{1F1E7}\u{1F1E9}-\u{1F1EE}\u{1F1F1}-\u{1F1F3}\u{1F1F5}-\u{1F1FA}\u{1F1FC}\u{1F1FE}]|\u{1F1F8}[\u{1F1E6}-\u{1F1EA}\u{1F1EC}-\u{1F1F4}\u{1F1F7}-\u{1F1F9}\u{1F1FB}\u{1F1FD}-\u{1F1FF}]|\u{1F1EB}[\u{1F1EE}-\u{1F1F0}\u{1F1F2}\u{1F1F4}\u{1F1F7}]|\u{1F1F5}[\u{1F1E6}\u{1F1EA}-\u{1F1ED}\u{1F1F0}-\u{1F1F3}\u{1F1F7}-\u{1F1F9}\u{1F1FC}\u{1F1FE}]|\u{1F1FB}[\u{1F1E6}\u{1F1E8}\u{1F1EA}\u{1F1EC}\u{1F1EE}\u{1F1F3}\u{1F1FA}]|\u{1F1F3}[\u{1F1E6}\u{1F1E8}\u{1F1EA}-\u{1F1EC}\u{1F1EE}\u{1F1F1}\u{1F1F4}\u{1F1F5}\u{1F1F7}\u{1F1FA}\u{1F1FF}]|\u{1F1E8}[\u{1F1E6}\u{1F1E8}\u{1F1E9}\u{1F1EB}-\u{1F1EE}\u{1F1F0}-\u{1F1F5}\u{1F1F7}\u{1F1FA}-\u{1F1FF}]|\u{1F1F1}[\u{1F1E6}-\u{1F1E8}\u{1F1EE}\u{1F1F0}\u{1F1F7}-\u{1F1FB}\u{1F1FE}]|\u{1F1FF}[\u{1F1E6}\u{1F1F2}\u{1F1FC}]|\u{1F1FC}[\u{1F1EB}\u{1F1F8}]|\u{1F1FA}[\u{1F1E6}\u{1F1EC}\u{1F1F2}\u{1F1F3}\u{1F1F8}\u{1F1FE}\u{1F1FF}]|\u{1F1EE}[\u{1F1E8}-\u{1F1EA}\u{1F1F1}-\u{1F1F4}\u{1F1F6}-\u{1F1F9}]|\u{1F1EF}[\u{1F1EA}\u{1F1F2}\u{1F1F4}\u{1F1F5}]|[\u{1F3C3}\u{1F3C4}\u{1F3CA}\u{1F46E}\u{1F471}\u{1F473}\u{1F477}\u{1F481}\u{1F482}\u{1F486}\u{1F487}\u{1F645}-\u{1F647}\u{1F64B}\u{1F64D}\u{1F64E}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F926}\u{1F937}-\u{1F939}\u{1F93D}\u{1F93E}\u{1F9B8}\u{1F9B9}\u{1F9CD}-\u{1F9CF}\u{1F9D6}-\u{1F9DD}][\u{1F3FB}-\u{1F3FF}]|[\u26F9\u{1F3CB}\u{1F3CC}\u{1F575}][\u{1F3FB}-\u{1F3FF}]|[\u261D\u270A-\u270D\u{1F385}\u{1F3C2}\u{1F3C7}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}\u{1F467}\u{1F46B}-\u{1F46D}\u{1F470}\u{1F472}\u{1F474}-\u{1F476}\u{1F478}\u{1F47C}\u{1F483}\u{1F485}\u{1F4AA}\u{1F574}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F64C}\u{1F64F}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91C}\u{1F91E}\u{1F91F}\u{1F930}-\u{1F936}\u{1F9B5}\u{1F9B6}\u{1F9BB}\u{1F9D2}-\u{1F9D5}][\u{1F3FB}-\u{1F3FF}]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6D5}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]|[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299\u{1F004}\u{1F0CF}\u{1F170}\u{1F171}\u{1F17E}\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E6}-\u{1F1FF}\u{1F201}\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F321}\u{1F324}-\u{1F393}\u{1F396}\u{1F397}\u{1F399}-\u{1F39B}\u{1F39E}-\u{1F3F0}\u{1F3F3}-\u{1F3F5}\u{1F3F7}-\u{1F4FD}\u{1F4FF}-\u{1F53D}\u{1F549}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F56F}\u{1F570}\u{1F573}-\u{1F57A}\u{1F587}\u{1F58A}-\u{1F58D}\u{1F590}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5A5}\u{1F5A8}\u{1F5B1}\u{1F5B2}\u{1F5BC}\u{1F5C2}-\u{1F5C4}\u{1F5D1}-\u{1F5D3}\u{1F5DC}-\u{1F5DE}\u{1F5E1}\u{1F5E3}\u{1F5E8}\u{1F5EF}\u{1F5F3}\u{1F5FA}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CB}-\u{1F6D2}\u{1F6D5}\u{1F6E0}-\u{1F6E5}\u{1F6E9}\u{1F6EB}\u{1F6EC}\u{1F6F0}\u{1F6F3}-\u{1F6FA}\u{1F7E0}-\u{1F7EB}\u{1F90D}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F971}\u{1F973}-\u{1F976}\u{1F97A}-\u{1F9A2}\u{1F9A5}-\u{1F9AA}\u{1F9AE}-\u{1F9CA}\u{1F9CD}-\u{1F9FF}\u{1FA70}-\u{1FA73}\u{1FA78}-\u{1FA7A}\u{1FA80}-\u{1FA82}\u{1FA90}-\u{1FA95}]\uFE0F?|[\u261D\u26F9\u270A-\u270D\u{1F385}\u{1F3C2}-\u{1F3C4}\u{1F3C7}\u{1F3CA}-\u{1F3CC}\u{1F442}\u{1F443}\u{1F446}-\u{1F450}\u{1F466}-\u{1F478}\u{1F47C}\u{1F481}-\u{1F483}\u{1F485}-\u{1F487}\u{1F48F}\u{1F491}\u{1F4AA}\u{1F574}\u{1F575}\u{1F57A}\u{1F590}\u{1F595}\u{1F596}\u{1F645}-\u{1F647}\u{1F64B}-\u{1F64F}\u{1F6A3}\u{1F6B4}-\u{1F6B6}\u{1F6C0}\u{1F6CC}\u{1F90F}\u{1F918}-\u{1F91F}\u{1F926}\u{1F930}-\u{1F939}\u{1F93C}-\u{1F93E}\u{1F9B5}\u{1F9B6}\u{1F9B8}\u{1F9B9}\u{1F9BB}\u{1F9CD}-\u{1F9CF}\u{1F9D1}-\u{1F9DD}]/gu; +}; diff --git a/node_modules/emoji-regex/index.d.ts b/node_modules/emoji-regex/index.d.ts new file mode 100644 index 00000000..1955b470 --- /dev/null +++ b/node_modules/emoji-regex/index.d.ts @@ -0,0 +1,23 @@ +declare module 'emoji-regex' { + function emojiRegex(): RegExp; + + export default emojiRegex; +} + +declare module 'emoji-regex/text' { + function emojiRegex(): RegExp; + + export default emojiRegex; +} + +declare module 'emoji-regex/es2015' { + function emojiRegex(): RegExp; + + export default emojiRegex; +} + +declare module 'emoji-regex/es2015/text' { + function emojiRegex(): RegExp; + + export default emojiRegex; +} diff --git a/node_modules/emoji-regex/index.js b/node_modules/emoji-regex/index.js new file mode 100644 index 00000000..d993a3a9 --- /dev/null +++ b/node_modules/emoji-regex/index.js @@ -0,0 +1,6 @@ +"use strict"; + +module.exports = function () { + // https://mths.be/emoji + return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; +}; diff --git a/node_modules/emoji-regex/package.json b/node_modules/emoji-regex/package.json new file mode 100644 index 00000000..6d323528 --- /dev/null +++ b/node_modules/emoji-regex/package.json @@ -0,0 +1,50 @@ +{ + "name": "emoji-regex", + "version": "8.0.0", + "description": "A regular expression to match all Emoji-only symbols as per the Unicode Standard.", + "homepage": "https://mths.be/emoji-regex", + "main": "index.js", + "types": "index.d.ts", + "keywords": [ + "unicode", + "regex", + "regexp", + "regular expressions", + "code points", + "symbols", + "characters", + "emoji" + ], + "license": "MIT", + "author": { + "name": "Mathias Bynens", + "url": "https://mathiasbynens.be/" + }, + "repository": { + "type": "git", + "url": "https://github.com/mathiasbynens/emoji-regex.git" + }, + "bugs": "https://github.com/mathiasbynens/emoji-regex/issues", + "files": [ + "LICENSE-MIT.txt", + "index.js", + "index.d.ts", + "text.js", + "es2015/index.js", + "es2015/text.js" + ], + "scripts": { + "build": "rm -rf -- es2015; babel src -d .; NODE_ENV=es2015 babel src -d ./es2015; node script/inject-sequences.js", + "test": "mocha", + "test:watch": "npm run test -- --watch" + }, + "devDependencies": { + "@babel/cli": "^7.2.3", + "@babel/core": "^7.3.4", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/preset-env": "^7.3.4", + "mocha": "^6.0.2", + "regexgen": "^1.3.0", + "unicode-12.0.0": "^0.7.9" + } +} diff --git a/node_modules/emoji-regex/text.js b/node_modules/emoji-regex/text.js new file mode 100644 index 00000000..0a55ce2f --- /dev/null +++ b/node_modules/emoji-regex/text.js @@ -0,0 +1,6 @@ +"use strict"; + +module.exports = function () { + // https://mths.be/emoji + return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F?|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; +}; diff --git a/node_modules/escalade/dist/index.js b/node_modules/escalade/dist/index.js new file mode 100644 index 00000000..ad236c49 --- /dev/null +++ b/node_modules/escalade/dist/index.js @@ -0,0 +1,22 @@ +const { dirname, resolve } = require('path'); +const { readdir, stat } = require('fs'); +const { promisify } = require('util'); + +const toStats = promisify(stat); +const toRead = promisify(readdir); + +module.exports = async function (start, callback) { + let dir = resolve('.', start); + let tmp, stats = await toStats(dir); + + if (!stats.isDirectory()) { + dir = dirname(dir); + } + + while (true) { + tmp = await callback(dir, await toRead(dir)); + if (tmp) return resolve(dir, tmp); + dir = dirname(tmp = dir); + if (tmp === dir) break; + } +} diff --git a/node_modules/escalade/dist/index.mjs b/node_modules/escalade/dist/index.mjs new file mode 100644 index 00000000..bf95be03 --- /dev/null +++ b/node_modules/escalade/dist/index.mjs @@ -0,0 +1,22 @@ +import { dirname, resolve } from 'path'; +import { readdir, stat } from 'fs'; +import { promisify } from 'util'; + +const toStats = promisify(stat); +const toRead = promisify(readdir); + +export default async function (start, callback) { + let dir = resolve('.', start); + let tmp, stats = await toStats(dir); + + if (!stats.isDirectory()) { + dir = dirname(dir); + } + + while (true) { + tmp = await callback(dir, await toRead(dir)); + if (tmp) return resolve(dir, tmp); + dir = dirname(tmp = dir); + if (tmp === dir) break; + } +} diff --git a/node_modules/escalade/index.d.ts b/node_modules/escalade/index.d.ts new file mode 100644 index 00000000..283e398d --- /dev/null +++ b/node_modules/escalade/index.d.ts @@ -0,0 +1,3 @@ +type Promisable = T | Promise; +export type Callback = (directory: string, files: string[]) => Promisable; +export default function (directory: string, callback: Callback): Promise; diff --git a/node_modules/escalade/license b/node_modules/escalade/license new file mode 100644 index 00000000..fa6089fa --- /dev/null +++ b/node_modules/escalade/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Luke Edwards (lukeed.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/escalade/package.json b/node_modules/escalade/package.json new file mode 100644 index 00000000..0d1bfce9 --- /dev/null +++ b/node_modules/escalade/package.json @@ -0,0 +1,61 @@ +{ + "name": "escalade", + "version": "3.1.1", + "repository": "lukeed/escalade", + "description": "A tiny (183B to 210B) and fast utility to ascend parent directories", + "module": "dist/index.mjs", + "main": "dist/index.js", + "types": "index.d.ts", + "license": "MIT", + "author": { + "name": "Luke Edwards", + "email": "luke.edwards05@gmail.com", + "url": "https://lukeed.com" + }, + "exports": { + ".": [ + { + "import": "./dist/index.mjs", + "require": "./dist/index.js" + }, + "./dist/index.js" + ], + "./sync": [ + { + "import": "./sync/index.mjs", + "require": "./sync/index.js" + }, + "./sync/index.js" + ] + }, + "files": [ + "*.d.ts", + "dist", + "sync" + ], + "modes": { + "sync": "src/sync.js", + "default": "src/async.js" + }, + "engines": { + "node": ">=6" + }, + "scripts": { + "build": "bundt", + "pretest": "npm run build", + "test": "uvu -r esm test -i fixtures" + }, + "keywords": [ + "find", + "parent", + "parents", + "directory", + "search", + "walk" + ], + "devDependencies": { + "bundt": "1.1.1", + "esm": "3.2.25", + "uvu": "0.3.3" + } +} diff --git a/node_modules/escalade/readme.md b/node_modules/escalade/readme.md new file mode 100644 index 00000000..4e2195c1 --- /dev/null +++ b/node_modules/escalade/readme.md @@ -0,0 +1,211 @@ +# escalade [![CI](https://github.com/lukeed/escalade/workflows/CI/badge.svg)](https://github.com/lukeed/escalade/actions) [![codecov](https://badgen.now.sh/codecov/c/github/lukeed/escalade)](https://codecov.io/gh/lukeed/escalade) + +> A tiny (183B to 210B) and [fast](#benchmarks) utility to ascend parent directories + +With [escalade](https://en.wikipedia.org/wiki/Escalade), you can scale parent directories until you've found what you're looking for.
Given an input file or directory, `escalade` will continue executing your callback function until either: + +1) the callback returns a truthy value +2) `escalade` has reached the system root directory (eg, `/`) + +> **Important:**
Please note that `escalade` only deals with direct ancestry – it will not dive into parents' sibling directories. + +--- + +**Notice:** As of v3.1.0, `escalade` now includes [Deno support](http://deno.land/x/escalade)! Please see [Deno Usage](#deno) below. + +--- + +## Install + +``` +$ npm install --save escalade +``` + + +## Modes + +There are two "versions" of `escalade` available: + +#### "async" +> **Node.js:** >= 8.x
+> **Size (gzip):** 210 bytes
+> **Availability:** [CommonJS](https://unpkg.com/escalade/dist/index.js), [ES Module](https://unpkg.com/escalade/dist/index.mjs) + +This is the primary/default mode. It makes use of `async`/`await` and [`util.promisify`](https://nodejs.org/api/util.html#util_util_promisify_original). + +#### "sync" +> **Node.js:** >= 6.x
+> **Size (gzip):** 183 bytes
+> **Availability:** [CommonJS](https://unpkg.com/escalade/sync/index.js), [ES Module](https://unpkg.com/escalade/sync/index.mjs) + +This is the opt-in mode, ideal for scenarios where `async` usage cannot be supported. + + +## Usage + +***Example Structure*** + +``` +/Users/lukeed + └── oss + ├── license + └── escalade + ├── package.json + └── test + └── fixtures + ├── index.js + └── foobar + └── demo.js +``` + +***Example Usage*** + +```js +//~> demo.js +import { join } from 'path'; +import escalade from 'escalade'; + +const input = join(__dirname, 'demo.js'); +// or: const input = __dirname; + +const pkg = await escalade(input, (dir, names) => { + console.log('~> dir:', dir); + console.log('~> names:', names); + console.log('---'); + + if (names.includes('package.json')) { + // will be resolved into absolute + return 'package.json'; + } +}); + +//~> dir: /Users/lukeed/oss/escalade/test/fixtures/foobar +//~> names: ['demo.js'] +//--- +//~> dir: /Users/lukeed/oss/escalade/test/fixtures +//~> names: ['index.js', 'foobar'] +//--- +//~> dir: /Users/lukeed/oss/escalade/test +//~> names: ['fixtures'] +//--- +//~> dir: /Users/lukeed/oss/escalade +//~> names: ['package.json', 'test'] +//--- + +console.log(pkg); +//=> /Users/lukeed/oss/escalade/package.json + +// Now search for "missing123.txt" +// (Assume it doesn't exist anywhere!) +const missing = await escalade(input, (dir, names) => { + console.log('~> dir:', dir); + return names.includes('missing123.txt') && 'missing123.txt'; +}); + +//~> dir: /Users/lukeed/oss/escalade/test/fixtures/foobar +//~> dir: /Users/lukeed/oss/escalade/test/fixtures +//~> dir: /Users/lukeed/oss/escalade/test +//~> dir: /Users/lukeed/oss/escalade +//~> dir: /Users/lukeed/oss +//~> dir: /Users/lukeed +//~> dir: /Users +//~> dir: / + +console.log(missing); +//=> undefined +``` + +> **Note:** To run the above example with "sync" mode, import from `escalade/sync` and remove the `await` keyword. + + +## API + +### escalade(input, callback) +Returns: `string|void` or `Promise` + +When your `callback` locates a file, `escalade` will resolve/return with an absolute path.
+If your `callback` was never satisfied, then `escalade` will resolve/return with nothing (undefined). + +> **Important:**
The `sync` and `async` versions share the same API.
The **only** difference is that `sync` is not Promise-based. + +#### input +Type: `string` + +The path from which to start ascending. + +This may be a file or a directory path.
However, when `input` is a file, `escalade` will begin with its parent directory. + +> **Important:** Unless given an absolute path, `input` will be resolved from `process.cwd()` location. + +#### callback +Type: `Function` + +The callback to execute for each ancestry level. It always is given two arguments: + +1) `dir` - an absolute path of the current parent directory +2) `names` - a list (`string[]`) of contents _relative to_ the `dir` parent + +> **Note:** The `names` list can contain names of files _and_ directories. + +When your callback returns a _falsey_ value, then `escalade` will continue with `dir`'s parent directory, re-invoking your callback with new argument values. + +When your callback returns a string, then `escalade` stops iteration immediately.
+If the string is an absolute path, then it's left as is. Otherwise, the string is resolved into an absolute path _from_ the `dir` that housed the satisfying condition. + +> **Important:** Your `callback` can be a `Promise/AsyncFunction` when using the "async" version of `escalade`. + +## Benchmarks + +> Running on Node.js v10.13.0 + +``` +# Load Time + find-up 3.891ms + escalade 0.485ms + escalade/sync 0.309ms + +# Levels: 6 (target = "foo.txt"): + find-up x 24,856 ops/sec ±6.46% (55 runs sampled) + escalade x 73,084 ops/sec ±4.23% (73 runs sampled) + find-up.sync x 3,663 ops/sec ±1.12% (83 runs sampled) + escalade/sync x 9,360 ops/sec ±0.62% (88 runs sampled) + +# Levels: 12 (target = "package.json"): + find-up x 29,300 ops/sec ±10.68% (70 runs sampled) + escalade x 73,685 ops/sec ± 5.66% (66 runs sampled) + find-up.sync x 1,707 ops/sec ± 0.58% (91 runs sampled) + escalade/sync x 4,667 ops/sec ± 0.68% (94 runs sampled) + +# Levels: 18 (target = "missing123.txt"): + find-up x 21,818 ops/sec ±17.37% (14 runs sampled) + escalade x 67,101 ops/sec ±21.60% (20 runs sampled) + find-up.sync x 1,037 ops/sec ± 2.86% (88 runs sampled) + escalade/sync x 1,248 ops/sec ± 0.50% (93 runs sampled) +``` + +## Deno + +As of v3.1.0, `escalade` is available on the Deno registry. + +Please note that the [API](#api) is identical and that there are still [two modes](#modes) from which to choose: + +```ts +// Choose "async" mode +import escalade from 'https://deno.land/escalade/async.ts'; + +// Choose "sync" mode +import escalade from 'https://deno.land/escalade/sync.ts'; +``` + +> **Important:** The `allow-read` permission is required! + + +## Related + +- [premove](https://github.com/lukeed/premove) - A tiny (247B) utility to remove items recursively +- [totalist](https://github.com/lukeed/totalist) - A tiny (195B to 224B) utility to recursively list all (total) files in a directory +- [mk-dirs](https://github.com/lukeed/mk-dirs) - A tiny (420B) utility to make a directory and its parents, recursively + +## License + +MIT © [Luke Edwards](https://lukeed.com) diff --git a/node_modules/escalade/sync/index.d.ts b/node_modules/escalade/sync/index.d.ts new file mode 100644 index 00000000..746ddd39 --- /dev/null +++ b/node_modules/escalade/sync/index.d.ts @@ -0,0 +1,2 @@ +export type Callback = (directory: string, files: string[]) => string | false | void; +export default function (directory: string, callback: Callback): string | void; diff --git a/node_modules/escalade/sync/index.js b/node_modules/escalade/sync/index.js new file mode 100644 index 00000000..902cc46c --- /dev/null +++ b/node_modules/escalade/sync/index.js @@ -0,0 +1,18 @@ +const { dirname, resolve } = require('path'); +const { readdirSync, statSync } = require('fs'); + +module.exports = function (start, callback) { + let dir = resolve('.', start); + let tmp, stats = statSync(dir); + + if (!stats.isDirectory()) { + dir = dirname(dir); + } + + while (true) { + tmp = callback(dir, readdirSync(dir)); + if (tmp) return resolve(dir, tmp); + dir = dirname(tmp = dir); + if (tmp === dir) break; + } +} diff --git a/node_modules/escalade/sync/index.mjs b/node_modules/escalade/sync/index.mjs new file mode 100644 index 00000000..3cdc5bd1 --- /dev/null +++ b/node_modules/escalade/sync/index.mjs @@ -0,0 +1,18 @@ +import { dirname, resolve } from 'path'; +import { readdirSync, statSync } from 'fs'; + +export default function (start, callback) { + let dir = resolve('.', start); + let tmp, stats = statSync(dir); + + if (!stats.isDirectory()) { + dir = dirname(dir); + } + + while (true) { + tmp = callback(dir, readdirSync(dir)); + if (tmp) return resolve(dir, tmp); + dir = dirname(tmp = dir); + if (tmp === dir) break; + } +} diff --git a/node_modules/fast-glob/LICENSE b/node_modules/fast-glob/LICENSE new file mode 100644 index 00000000..65a99946 --- /dev/null +++ b/node_modules/fast-glob/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Denis Malinochkin + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/fast-glob/README.md b/node_modules/fast-glob/README.md new file mode 100644 index 00000000..393f4fef --- /dev/null +++ b/node_modules/fast-glob/README.md @@ -0,0 +1,795 @@ +# fast-glob + +> It's a very fast and efficient [glob][glob_definition] library for [Node.js][node_js]. + +This package provides methods for traversing the file system and returning pathnames that matched a defined set of a specified pattern according to the rules used by the Unix Bash shell with some simplifications, meanwhile results are returned in **arbitrary order**. Quick, simple, effective. + +## Table of Contents + +
+Details + +* [Highlights](#highlights) +* [Donation](#donation) +* [Old and modern mode](#old-and-modern-mode) +* [Pattern syntax](#pattern-syntax) + * [Basic syntax](#basic-syntax) + * [Advanced syntax](#advanced-syntax) +* [Installation](#installation) +* [API](#api) + * [Asynchronous](#asynchronous) + * [Synchronous](#synchronous) + * [Stream](#stream) + * [patterns](#patterns) + * [[options]](#options) + * [Helpers](#helpers) + * [generateTasks](#generatetaskspatterns-options) + * [isDynamicPattern](#isdynamicpatternpattern-options) + * [escapePath](#escapepathpattern) +* [Options](#options-3) + * [Common](#common) + * [concurrency](#concurrency) + * [cwd](#cwd) + * [deep](#deep) + * [followSymbolicLinks](#followsymboliclinks) + * [fs](#fs) + * [ignore](#ignore) + * [suppressErrors](#suppresserrors) + * [throwErrorOnBrokenSymbolicLink](#throwerroronbrokensymboliclink) + * [Output control](#output-control) + * [absolute](#absolute) + * [markDirectories](#markdirectories) + * [objectMode](#objectmode) + * [onlyDirectories](#onlydirectories) + * [onlyFiles](#onlyfiles) + * [stats](#stats) + * [unique](#unique) + * [Matching control](#matching-control) + * [braceExpansion](#braceexpansion) + * [caseSensitiveMatch](#casesensitivematch) + * [dot](#dot) + * [extglob](#extglob) + * [globstar](#globstar) + * [baseNameMatch](#basenamematch) +* [FAQ](#faq) + * [What is a static or dynamic pattern?](#what-is-a-static-or-dynamic-pattern) + * [How to write patterns on Windows?](#how-to-write-patterns-on-windows) + * [Why are parentheses match wrong?](#why-are-parentheses-match-wrong) + * [How to exclude directory from reading?](#how-to-exclude-directory-from-reading) + * [How to use UNC path?](#how-to-use-unc-path) + * [Compatible with `node-glob`?](#compatible-with-node-glob) +* [Benchmarks](#benchmarks) + * [Server](#server) + * [Nettop](#nettop) +* [Changelog](#changelog) +* [License](#license) + +
+ +## Highlights + +* Fast. Probably the fastest. +* Supports multiple and negative patterns. +* Synchronous, Promise and Stream API. +* Object mode. Can return more than just strings. +* Error-tolerant. + +## Donation + +Do you like this project? Support it by donating, creating an issue or pull request. + +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)][paypal_mrmlnc] + +## Old and modern mode + +This package works in two modes, depending on the environment in which it is used. + +* **Old mode**. Node.js below 10.10 or when the [`stats`](#stats) option is *enabled*. +* **Modern mode**. Node.js 10.10+ and the [`stats`](#stats) option is *disabled*. + +The modern mode is faster. Learn more about the [internal mechanism][nodelib_fs_scandir_old_and_modern_modern]. + +## Pattern syntax + +> :warning: Always use forward-slashes in glob expressions (patterns and [`ignore`](#ignore) option). Use backslashes for escaping characters. + +There is more than one form of syntax: basic and advanced. Below is a brief overview of the supported features. Also pay attention to our [FAQ](#faq). + +> :book: This package uses a [`micromatch`][micromatch] as a library for pattern matching. + +### Basic syntax + +* An asterisk (`*`) — matches everything except slashes (path separators), hidden files (names starting with `.`). +* A double star or globstar (`**`) — matches zero or more directories. +* Question mark (`?`) – matches any single character except slashes (path separators). +* Sequence (`[seq]`) — matches any character in sequence. + +> :book: A few additional words about the [basic matching behavior][picomatch_matching_behavior]. + +Some examples: + +* `src/**/*.js` — matches all files in the `src` directory (any level of nesting) that have the `.js` extension. +* `src/*.??` — matches all files in the `src` directory (only first level of nesting) that have a two-character extension. +* `file-[01].js` — matches files: `file-0.js`, `file-1.js`. + +### Advanced syntax + +* [Escapes characters][micromatch_backslashes] (`\\`) — matching special characters (`$^*+?()[]`) as literals. +* [POSIX character classes][picomatch_posix_brackets] (`[[:digit:]]`). +* [Extended globs][micromatch_extglobs] (`?(pattern-list)`). +* [Bash style brace expansions][micromatch_braces] (`{}`). +* [Regexp character classes][micromatch_regex_character_classes] (`[1-5]`). +* [Regex groups][regular_expressions_brackets] (`(a|b)`). + +> :book: A few additional words about the [advanced matching behavior][micromatch_extended_globbing]. + +Some examples: + +* `src/**/*.{css,scss}` — matches all files in the `src` directory (any level of nesting) that have the `.css` or `.scss` extension. +* `file-[[:digit:]].js` — matches files: `file-0.js`, `file-1.js`, …, `file-9.js`. +* `file-{1..3}.js` — matches files: `file-1.js`, `file-2.js`, `file-3.js`. +* `file-(1|2)` — matches files: `file-1.js`, `file-2.js`. + +## Installation + +```console +npm install fast-glob +``` + +## API + +### Asynchronous + +```js +fg(patterns, [options]) +``` + +Returns a `Promise` with an array of matching entries. + +```js +const fg = require('fast-glob'); + +const entries = await fg(['.editorconfig', '**/index.js'], { dot: true }); + +// ['.editorconfig', 'services/index.js'] +``` + +### Synchronous + +```js +fg.sync(patterns, [options]) +``` + +Returns an array of matching entries. + +```js +const fg = require('fast-glob'); + +const entries = fg.sync(['.editorconfig', '**/index.js'], { dot: true }); + +// ['.editorconfig', 'services/index.js'] +``` + +### Stream + +```js +fg.stream(patterns, [options]) +``` + +Returns a [`ReadableStream`][node_js_stream_readable_streams] when the `data` event will be emitted with matching entry. + +```js +const fg = require('fast-glob'); + +const stream = fg.stream(['.editorconfig', '**/index.js'], { dot: true }); + +for await (const entry of stream) { + // .editorconfig + // services/index.js +} +``` + +#### patterns + +* Required: `true` +* Type: `string | string[]` + +Any correct pattern(s). + +> :1234: [Pattern syntax](#pattern-syntax) +> +> :warning: This package does not respect the order of patterns. First, all the negative patterns are applied, and only then the positive patterns. If you want to get a certain order of records, use sorting or split calls. + +#### [options] + +* Required: `false` +* Type: [`Options`](#options-3) + +See [Options](#options-3) section. + +### Helpers + +#### `generateTasks(patterns, [options])` + +Returns the internal representation of patterns ([`Task`](./src/managers/tasks.ts) is a combining patterns by base directory). + +```js +fg.generateTasks('*'); + +[{ + base: '.', // Parent directory for all patterns inside this task + dynamic: true, // Dynamic or static patterns are in this task + patterns: ['*'], + positive: ['*'], + negative: [] +}] +``` + +##### patterns + +* Required: `true` +* Type: `string | string[]` + +Any correct pattern(s). + +##### [options] + +* Required: `false` +* Type: [`Options`](#options-3) + +See [Options](#options-3) section. + +#### `isDynamicPattern(pattern, [options])` + +Returns `true` if the passed pattern is a dynamic pattern. + +> :1234: [What is a static or dynamic pattern?](#what-is-a-static-or-dynamic-pattern) + +```js +fg.isDynamicPattern('*'); // true +fg.isDynamicPattern('abc'); // false +``` + +##### pattern + +* Required: `true` +* Type: `string` + +Any correct pattern. + +##### [options] + +* Required: `false` +* Type: [`Options`](#options-3) + +See [Options](#options-3) section. + +#### `escapePath(pattern)` + +Returns a path with escaped special characters (`*?|(){}[]`, `!` at the beginning of line, `@+!` before the opening parenthesis). + +```js +fg.escapePath('!abc'); // \\!abc +fg.escapePath('C:/Program Files (x86)'); // C:/Program Files \\(x86\\) +``` + +##### pattern + +* Required: `true` +* Type: `string` + +Any string, for example, a path to a file. + +## Options + +### Common options + +#### concurrency + +* Type: `number` +* Default: `os.cpus().length` + +Specifies the maximum number of concurrent requests from a reader to read directories. + +> :book: The higher the number, the higher the performance and load on the file system. If you want to read in quiet mode, set the value to a comfortable number or `1`. + +#### cwd + +* Type: `string` +* Default: `process.cwd()` + +The current working directory in which to search. + +#### deep + +* Type: `number` +* Default: `Infinity` + +Specifies the maximum depth of a read directory relative to the start directory. + +For example, you have the following tree: + +```js +dir/ +└── one/ // 1 + └── two/ // 2 + └── file.js // 3 +``` + +```js +// With base directory +fg.sync('dir/**', { onlyFiles: false, deep: 1 }); // ['dir/one'] +fg.sync('dir/**', { onlyFiles: false, deep: 2 }); // ['dir/one', 'dir/one/two'] + +// With cwd option +fg.sync('**', { onlyFiles: false, cwd: 'dir', deep: 1 }); // ['one'] +fg.sync('**', { onlyFiles: false, cwd: 'dir', deep: 2 }); // ['one', 'one/two'] +``` + +> :book: If you specify a pattern with some base directory, this directory will not participate in the calculation of the depth of the found directories. Think of it as a [`cwd`](#cwd) option. + +#### followSymbolicLinks + +* Type: `boolean` +* Default: `true` + +Indicates whether to traverse descendants of symbolic link directories when expanding `**` patterns. + +> :book: Note that this option does not affect the base directory of the pattern. For example, if `./a` is a symlink to directory `./b` and you specified `['./a**', './b/**']` patterns, then directory `./a` will still be read. + +> :book: If the [`stats`](#stats) option is specified, the information about the symbolic link (`fs.lstat`) will be replaced with information about the entry (`fs.stat`) behind it. + +#### fs + +* Type: `FileSystemAdapter` +* Default: `fs.*` + +Custom implementation of methods for working with the file system. + +```ts +export interface FileSystemAdapter { + lstat?: typeof fs.lstat; + stat?: typeof fs.stat; + lstatSync?: typeof fs.lstatSync; + statSync?: typeof fs.statSync; + readdir?: typeof fs.readdir; + readdirSync?: typeof fs.readdirSync; +} +``` + +#### ignore + +* Type: `string[]` +* Default: `[]` + +An array of glob patterns to exclude matches. This is an alternative way to use negative patterns. + +```js +dir/ +├── package-lock.json +└── package.json +``` + +```js +fg.sync(['*.json', '!package-lock.json']); // ['package.json'] +fg.sync('*.json', { ignore: ['package-lock.json'] }); // ['package.json'] +``` + +#### suppressErrors + +* Type: `boolean` +* Default: `false` + +By default this package suppress only `ENOENT` errors. Set to `true` to suppress any error. + +> :book: Can be useful when the directory has entries with a special level of access. + +#### throwErrorOnBrokenSymbolicLink + +* Type: `boolean` +* Default: `false` + +Throw an error when symbolic link is broken if `true` or safely return `lstat` call if `false`. + +> :book: This option has no effect on errors when reading the symbolic link directory. + +### Output control + +#### absolute + +* Type: `boolean` +* Default: `false` + +Return the absolute path for entries. + +```js +fg.sync('*.js', { absolute: false }); // ['index.js'] +fg.sync('*.js', { absolute: true }); // ['/home/user/index.js'] +``` + +> :book: This option is required if you want to use negative patterns with absolute path, for example, `!${__dirname}/*.js`. + +#### markDirectories + +* Type: `boolean` +* Default: `false` + +Mark the directory path with the final slash. + +```js +fg.sync('*', { onlyFiles: false, markDirectories: false }); // ['index.js', 'controllers'] +fg.sync('*', { onlyFiles: false, markDirectories: true }); // ['index.js', 'controllers/'] +``` + +#### objectMode + +* Type: `boolean` +* Default: `false` + +Returns objects (instead of strings) describing entries. + +```js +fg.sync('*', { objectMode: false }); // ['src/index.js'] +fg.sync('*', { objectMode: true }); // [{ name: 'index.js', path: 'src/index.js', dirent: }] +``` + +The object has the following fields: + +* name (`string`) — the last part of the path (basename) +* path (`string`) — full path relative to the pattern base directory +* dirent ([`fs.Dirent`][node_js_fs_class_fs_dirent]) — instance of `fs.Dirent` + +> :book: An object is an internal representation of entry, so getting it does not affect performance. + +#### onlyDirectories + +* Type: `boolean` +* Default: `false` + +Return only directories. + +```js +fg.sync('*', { onlyDirectories: false }); // ['index.js', 'src'] +fg.sync('*', { onlyDirectories: true }); // ['src'] +``` + +> :book: If `true`, the [`onlyFiles`](#onlyfiles) option is automatically `false`. + +#### onlyFiles + +* Type: `boolean` +* Default: `true` + +Return only files. + +```js +fg.sync('*', { onlyFiles: false }); // ['index.js', 'src'] +fg.sync('*', { onlyFiles: true }); // ['index.js'] +``` + +#### stats + +* Type: `boolean` +* Default: `false` + +Enables an [object mode](#objectmode) with an additional field: + +* stats ([`fs.Stats`][node_js_fs_class_fs_stats]) — instance of `fs.Stats` + +```js +fg.sync('*', { stats: false }); // ['src/index.js'] +fg.sync('*', { stats: true }); // [{ name: 'index.js', path: 'src/index.js', dirent: , stats: }] +``` + +> :book: Returns `fs.stat` instead of `fs.lstat` for symbolic links when the [`followSymbolicLinks`](#followsymboliclinks) option is specified. +> +> :warning: Unlike [object mode](#objectmode) this mode requires additional calls to the file system. On average, this mode is slower at least twice. See [old and modern mode](#old-and-modern-mode) for more details. + +#### unique + +* Type: `boolean` +* Default: `true` + +Ensures that the returned entries are unique. + +```js +fg.sync(['*.json', 'package.json'], { unique: false }); // ['package.json', 'package.json'] +fg.sync(['*.json', 'package.json'], { unique: true }); // ['package.json'] +``` + +If `true` and similar entries are found, the result is the first found. + +### Matching control + +#### braceExpansion + +* Type: `boolean` +* Default: `true` + +Enables Bash-like brace expansion. + +> :1234: [Syntax description][bash_hackers_syntax_expansion_brace] or more [detailed description][micromatch_braces]. + +```js +dir/ +├── abd +├── acd +└── a{b,c}d +``` + +```js +fg.sync('a{b,c}d', { braceExpansion: false }); // ['a{b,c}d'] +fg.sync('a{b,c}d', { braceExpansion: true }); // ['abd', 'acd'] +``` + +#### caseSensitiveMatch + +* Type: `boolean` +* Default: `true` + +Enables a [case-sensitive][wikipedia_case_sensitivity] mode for matching files. + +```js +dir/ +├── file.txt +└── File.txt +``` + +```js +fg.sync('file.txt', { caseSensitiveMatch: false }); // ['file.txt', 'File.txt'] +fg.sync('file.txt', { caseSensitiveMatch: true }); // ['file.txt'] +``` + +#### dot + +* Type: `boolean` +* Default: `false` + +Allow patterns to match entries that begin with a period (`.`). + +> :book: Note that an explicit dot in a portion of the pattern will always match dot files. + +```js +dir/ +├── .editorconfig +└── package.json +``` + +```js +fg.sync('*', { dot: false }); // ['package.json'] +fg.sync('*', { dot: true }); // ['.editorconfig', 'package.json'] +``` + +#### extglob + +* Type: `boolean` +* Default: `true` + +Enables Bash-like `extglob` functionality. + +> :1234: [Syntax description][micromatch_extglobs]. + +```js +dir/ +├── README.md +└── package.json +``` + +```js +fg.sync('*.+(json|md)', { extglob: false }); // [] +fg.sync('*.+(json|md)', { extglob: true }); // ['README.md', 'package.json'] +``` + +#### globstar + +* Type: `boolean` +* Default: `true` + +Enables recursively repeats a pattern containing `**`. If `false`, `**` behaves exactly like `*`. + +```js +dir/ +└── a + └── b +``` + +```js +fg.sync('**', { onlyFiles: false, globstar: false }); // ['a'] +fg.sync('**', { onlyFiles: false, globstar: true }); // ['a', 'a/b'] +``` + +#### baseNameMatch + +* Type: `boolean` +* Default: `false` + +If set to `true`, then patterns without slashes will be matched against the basename of the path if it contains slashes. + +```js +dir/ +└── one/ + └── file.md +``` + +```js +fg.sync('*.md', { baseNameMatch: false }); // [] +fg.sync('*.md', { baseNameMatch: true }); // ['one/file.md'] +``` + +## FAQ + +## What is a static or dynamic pattern? + +All patterns can be divided into two types: + +* **static**. A pattern is considered static if it can be used to get an entry on the file system without using matching mechanisms. For example, the `file.js` pattern is a static pattern because we can just verify that it exists on the file system. +* **dynamic**. A pattern is considered dynamic if it cannot be used directly to find occurrences without using a matching mechanisms. For example, the `*` pattern is a dynamic pattern because we cannot use this pattern directly. + +A pattern is considered dynamic if it contains the following characters (`…` — any characters or their absence) or options: + +* The [`caseSensitiveMatch`](#casesensitivematch) option is disabled +* `\\` (the escape character) +* `*`, `?`, `!` (at the beginning of line) +* `[…]` +* `(…|…)` +* `@(…)`, `!(…)`, `*(…)`, `?(…)`, `+(…)` (respects the [`extglob`](#extglob) option) +* `{…,…}`, `{…..…}` (respects the [`braceExpansion`](#braceexpansion) option) + +## How to write patterns on Windows? + +Always use forward-slashes in glob expressions (patterns and [`ignore`](#ignore) option). Use backslashes for escaping characters. With the [`cwd`](#cwd) option use a convenient format. + +**Bad** + +```ts +[ + 'directory\\*', + path.join(process.cwd(), '**') +] +``` + +**Good** + +```ts +[ + 'directory/*', + path.join(process.cwd(), '**').replace(/\\/g, '/') +] +``` + +> :book: Use the [`normalize-path`][npm_normalize_path] or the [`unixify`][npm_unixify] package to convert Windows-style path to a Unix-style path. + +Read more about [matching with backslashes][micromatch_backslashes]. + +## Why are parentheses match wrong? + +```js +dir/ +└── (special-*file).txt +``` + +```js +fg.sync(['(special-*file).txt']) // [] +``` + +Refers to Bash. You need to escape special characters: + +```js +fg.sync(['\\(special-*file\\).txt']) // ['(special-*file).txt'] +``` + +Read more about [matching special characters as literals][picomatch_matching_special_characters_as_literals]. + +## How to exclude directory from reading? + +You can use a negative pattern like this: `!**/node_modules` or `!**/node_modules/**`. Also you can use [`ignore`](#ignore) option. Just look at the example below. + +```js +first/ +├── file.md +└── second/ + └── file.txt +``` + +If you don't want to read the `second` directory, you must write the following pattern: `!**/second` or `!**/second/**`. + +```js +fg.sync(['**/*.md', '!**/second']); // ['first/file.md'] +fg.sync(['**/*.md'], { ignore: ['**/second/**'] }); // ['first/file.md'] +``` + +> :warning: When you write `!**/second/**/*` it means that the directory will be **read**, but all the entries will not be included in the results. + +You have to understand that if you write the pattern to exclude directories, then the directory will not be read under any circumstances. + +## How to use UNC path? + +You cannot use [Uniform Naming Convention (UNC)][unc_path] paths as patterns (due to syntax), but you can use them as [`cwd`](#cwd) directory. + +```ts +fg.sync('*', { cwd: '\\\\?\\C:\\Python27' /* or //?/C:/Python27 */ }); +fg.sync('Python27/*', { cwd: '\\\\?\\C:\\' /* or //?/C:/ */ }); +``` + +## Compatible with `node-glob`? + +| node-glob | fast-glob | +| :----------: | :-------: | +| `cwd` | [`cwd`](#cwd) | +| `root` | – | +| `dot` | [`dot`](#dot) | +| `nomount` | – | +| `mark` | [`markDirectories`](#markdirectories) | +| `nosort` | – | +| `nounique` | [`unique`](#unique) | +| `nobrace` | [`braceExpansion`](#braceexpansion) | +| `noglobstar` | [`globstar`](#globstar) | +| `noext` | [`extglob`](#extglob) | +| `nocase` | [`caseSensitiveMatch`](#casesensitivematch) | +| `matchBase` | [`baseNameMatch`](#basenamematch) | +| `nodir` | [`onlyFiles`](#onlyfiles) | +| `ignore` | [`ignore`](#ignore) | +| `follow` | [`followSymbolicLinks`](#followsymboliclinks) | +| `realpath` | – | +| `absolute` | [`absolute`](#absolute) | + +## Benchmarks + +### Server + +Link: [Vultr Bare Metal][vultr_pricing_baremetal] + +* Processor: E3-1270v6 (8 CPU) +* RAM: 32GB +* Disk: SSD ([Intel DC S3520 SSDSC2BB240G7][intel_ssd]) + +You can see results [here][github_gist_benchmark_server] for latest release. + +### Nettop + +Link: [Zotac bi323][zotac_bi323] + +* Processor: Intel N3150 (4 CPU) +* RAM: 8GB +* Disk: SSD ([Silicon Power SP060GBSS3S55S25][silicon_power_ssd]) + +You can see results [here][github_gist_benchmark_nettop] for latest release. + +## Changelog + +See the [Releases section of our GitHub project][github_releases] for changelog for each release version. + +## License + +This software is released under the terms of the MIT license. + +[bash_hackers_syntax_expansion_brace]: https://wiki.bash-hackers.org/syntax/expansion/brace +[github_gist_benchmark_nettop]: https://gist.github.com/mrmlnc/f06246b197f53c356895fa35355a367c#file-fg-benchmark-nettop-product-txt +[github_gist_benchmark_server]: https://gist.github.com/mrmlnc/f06246b197f53c356895fa35355a367c#file-fg-benchmark-server-product-txt +[github_releases]: https://github.com/mrmlnc/fast-glob/releases +[glob_definition]: https://en.wikipedia.org/wiki/Glob_(programming) +[glob_linux_man]: http://man7.org/linux/man-pages/man3/glob.3.html +[intel_ssd]: https://ark.intel.com/content/www/us/en/ark/products/93012/intel-ssd-dc-s3520-series-240gb-2-5in-sata-6gb-s-3d1-mlc.html +[micromatch_backslashes]: https://github.com/micromatch/micromatch#backslashes +[micromatch_braces]: https://github.com/micromatch/braces +[micromatch_extended_globbing]: https://github.com/micromatch/micromatch#extended-globbing +[micromatch_extglobs]: https://github.com/micromatch/micromatch#extglobs +[micromatch_regex_character_classes]: https://github.com/micromatch/micromatch#regex-character-classes +[micromatch]: https://github.com/micromatch/micromatch +[node_js_fs_class_fs_dirent]: https://nodejs.org/api/fs.html#fs_class_fs_dirent +[node_js_fs_class_fs_stats]: https://nodejs.org/api/fs.html#fs_class_fs_stats +[node_js_stream_readable_streams]: https://nodejs.org/api/stream.html#stream_readable_streams +[node_js]: https://nodejs.org/en +[nodelib_fs_scandir_old_and_modern_modern]: https://github.com/nodelib/nodelib/blob/master/packages/fs/fs.scandir/README.md#old-and-modern-mode +[npm_normalize_path]: https://www.npmjs.com/package/normalize-path +[npm_unixify]: https://www.npmjs.com/package/unixify +[paypal_mrmlnc]:https://paypal.me/mrmlnc +[picomatch_matching_behavior]: https://github.com/micromatch/picomatch#matching-behavior-vs-bash +[picomatch_matching_special_characters_as_literals]: https://github.com/micromatch/picomatch#matching-special-characters-as-literals +[picomatch_posix_brackets]: https://github.com/micromatch/picomatch#posix-brackets +[regular_expressions_brackets]: https://www.regular-expressions.info/brackets.html +[silicon_power_ssd]: https://www.silicon-power.com/web/product-1 +[unc_path]: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/62e862f4-2a51-452e-8eeb-dc4ff5ee33cc +[vultr_pricing_baremetal]: https://www.vultr.com/pricing/baremetal +[wikipedia_case_sensitivity]: https://en.wikipedia.org/wiki/Case_sensitivity +[zotac_bi323]: https://www.zotac.com/ee/product/mini_pcs/zbox-bi323 diff --git a/node_modules/fast-glob/out/index.d.ts b/node_modules/fast-glob/out/index.d.ts new file mode 100644 index 00000000..553e5144 --- /dev/null +++ b/node_modules/fast-glob/out/index.d.ts @@ -0,0 +1,27 @@ +/// +import * as taskManager from './managers/tasks'; +import { Options as OptionsInternal } from './settings'; +import { Entry as EntryInternal, FileSystemAdapter as FileSystemAdapterInternal, Pattern as PatternInternal } from './types'; +declare type EntryObjectModePredicate = { + [TKey in keyof Pick]-?: true; +}; +declare type EntryStatsPredicate = { + [TKey in keyof Pick]-?: true; +}; +declare type EntryObjectPredicate = EntryObjectModePredicate | EntryStatsPredicate; +declare function FastGlob(source: PatternInternal | PatternInternal[], options: OptionsInternal & EntryObjectPredicate): Promise; +declare function FastGlob(source: PatternInternal | PatternInternal[], options?: OptionsInternal): Promise; +declare namespace FastGlob { + type Options = OptionsInternal; + type Entry = EntryInternal; + type Task = taskManager.Task; + type Pattern = PatternInternal; + type FileSystemAdapter = FileSystemAdapterInternal; + function sync(source: PatternInternal | PatternInternal[], options: OptionsInternal & EntryObjectPredicate): EntryInternal[]; + function sync(source: PatternInternal | PatternInternal[], options?: OptionsInternal): string[]; + function stream(source: PatternInternal | PatternInternal[], options?: OptionsInternal): NodeJS.ReadableStream; + function generateTasks(source: PatternInternal | PatternInternal[], options?: OptionsInternal): Task[]; + function isDynamicPattern(source: PatternInternal, options?: OptionsInternal): boolean; + function escapePath(source: PatternInternal): PatternInternal; +} +export = FastGlob; diff --git a/node_modules/fast-glob/out/index.js b/node_modules/fast-glob/out/index.js new file mode 100644 index 00000000..24ebffac --- /dev/null +++ b/node_modules/fast-glob/out/index.js @@ -0,0 +1,68 @@ +"use strict"; +const taskManager = require("./managers/tasks"); +const patternManager = require("./managers/patterns"); +const async_1 = require("./providers/async"); +const stream_1 = require("./providers/stream"); +const sync_1 = require("./providers/sync"); +const settings_1 = require("./settings"); +const utils = require("./utils"); +async function FastGlob(source, options) { + assertPatternsInput(source); + const works = getWorks(source, async_1.default, options); + const result = await Promise.all(works); + return utils.array.flatten(result); +} +// https://github.com/typescript-eslint/typescript-eslint/issues/60 +// eslint-disable-next-line no-redeclare +(function (FastGlob) { + function sync(source, options) { + assertPatternsInput(source); + const works = getWorks(source, sync_1.default, options); + return utils.array.flatten(works); + } + FastGlob.sync = sync; + function stream(source, options) { + assertPatternsInput(source); + const works = getWorks(source, stream_1.default, options); + /** + * The stream returned by the provider cannot work with an asynchronous iterator. + * To support asynchronous iterators, regardless of the number of tasks, we always multiplex streams. + * This affects performance (+25%). I don't see best solution right now. + */ + return utils.stream.merge(works); + } + FastGlob.stream = stream; + function generateTasks(source, options) { + assertPatternsInput(source); + const patterns = patternManager.transform([].concat(source)); + const settings = new settings_1.default(options); + return taskManager.generate(patterns, settings); + } + FastGlob.generateTasks = generateTasks; + function isDynamicPattern(source, options) { + assertPatternsInput(source); + const settings = new settings_1.default(options); + return utils.pattern.isDynamicPattern(source, settings); + } + FastGlob.isDynamicPattern = isDynamicPattern; + function escapePath(source) { + assertPatternsInput(source); + return utils.path.escape(source); + } + FastGlob.escapePath = escapePath; +})(FastGlob || (FastGlob = {})); +function getWorks(source, _Provider, options) { + const patterns = patternManager.transform([].concat(source)); + const settings = new settings_1.default(options); + const tasks = taskManager.generate(patterns, settings); + const provider = new _Provider(settings); + return tasks.map(provider.read, provider); +} +function assertPatternsInput(input) { + const source = [].concat(input); + const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item)); + if (!isValidSource) { + throw new TypeError('Patterns must be a string (non empty) or an array of strings'); + } +} +module.exports = FastGlob; diff --git a/node_modules/fast-glob/out/managers/patterns.d.ts b/node_modules/fast-glob/out/managers/patterns.d.ts new file mode 100644 index 00000000..aa324603 --- /dev/null +++ b/node_modules/fast-glob/out/managers/patterns.d.ts @@ -0,0 +1,6 @@ +export declare function transform(patterns: string[]): string[]; +/** + * This package only works with forward slashes as a path separator. + * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes. + */ +export declare function removeDuplicateSlashes(pattern: string): string; diff --git a/node_modules/fast-glob/out/managers/patterns.js b/node_modules/fast-glob/out/managers/patterns.js new file mode 100644 index 00000000..db0b4073 --- /dev/null +++ b/node_modules/fast-glob/out/managers/patterns.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.removeDuplicateSlashes = exports.transform = void 0; +/** + * Matches a sequence of two or more consecutive slashes, excluding the first two slashes at the beginning of the string. + * The latter is due to the presence of the device path at the beginning of the UNC path. + * @todo rewrite to negative lookbehind with the next major release. + */ +const DOUBLE_SLASH_RE = /(?!^)\/{2,}/g; +function transform(patterns) { + return patterns.map((pattern) => removeDuplicateSlashes(pattern)); +} +exports.transform = transform; +/** + * This package only works with forward slashes as a path separator. + * Because of this, we cannot use the standard `path.normalize` method, because on Windows platform it will use of backslashes. + */ +function removeDuplicateSlashes(pattern) { + return pattern.replace(DOUBLE_SLASH_RE, '/'); +} +exports.removeDuplicateSlashes = removeDuplicateSlashes; diff --git a/node_modules/fast-glob/out/managers/tasks.d.ts b/node_modules/fast-glob/out/managers/tasks.d.ts new file mode 100644 index 00000000..a1c10954 --- /dev/null +++ b/node_modules/fast-glob/out/managers/tasks.d.ts @@ -0,0 +1,22 @@ +import Settings from '../settings'; +import { Pattern, PatternsGroup } from '../types'; +export declare type Task = { + base: string; + dynamic: boolean; + patterns: Pattern[]; + positive: Pattern[]; + negative: Pattern[]; +}; +export declare function generate(patterns: Pattern[], settings: Settings): Task[]; +/** + * Returns tasks grouped by basic pattern directories. + * + * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately. + * This is necessary because directory traversal starts at the base directory and goes deeper. + */ +export declare function convertPatternsToTasks(positive: Pattern[], negative: Pattern[], dynamic: boolean): Task[]; +export declare function getPositivePatterns(patterns: Pattern[]): Pattern[]; +export declare function getNegativePatternsAsPositive(patterns: Pattern[], ignore: Pattern[]): Pattern[]; +export declare function groupPatternsByBaseDirectory(patterns: Pattern[]): PatternsGroup; +export declare function convertPatternGroupsToTasks(positive: PatternsGroup, negative: Pattern[], dynamic: boolean): Task[]; +export declare function convertPatternGroupToTask(base: string, positive: Pattern[], negative: Pattern[], dynamic: boolean): Task; diff --git a/node_modules/fast-glob/out/managers/tasks.js b/node_modules/fast-glob/out/managers/tasks.js new file mode 100644 index 00000000..6b8658d6 --- /dev/null +++ b/node_modules/fast-glob/out/managers/tasks.js @@ -0,0 +1,80 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.convertPatternGroupToTask = exports.convertPatternGroupsToTasks = exports.groupPatternsByBaseDirectory = exports.getNegativePatternsAsPositive = exports.getPositivePatterns = exports.convertPatternsToTasks = exports.generate = void 0; +const utils = require("../utils"); +function generate(patterns, settings) { + const positivePatterns = getPositivePatterns(patterns); + const negativePatterns = getNegativePatternsAsPositive(patterns, settings.ignore); + const staticPatterns = positivePatterns.filter((pattern) => utils.pattern.isStaticPattern(pattern, settings)); + const dynamicPatterns = positivePatterns.filter((pattern) => utils.pattern.isDynamicPattern(pattern, settings)); + const staticTasks = convertPatternsToTasks(staticPatterns, negativePatterns, /* dynamic */ false); + const dynamicTasks = convertPatternsToTasks(dynamicPatterns, negativePatterns, /* dynamic */ true); + return staticTasks.concat(dynamicTasks); +} +exports.generate = generate; +/** + * Returns tasks grouped by basic pattern directories. + * + * Patterns that can be found inside (`./`) and outside (`../`) the current directory are handled separately. + * This is necessary because directory traversal starts at the base directory and goes deeper. + */ +function convertPatternsToTasks(positive, negative, dynamic) { + const tasks = []; + const patternsOutsideCurrentDirectory = utils.pattern.getPatternsOutsideCurrentDirectory(positive); + const patternsInsideCurrentDirectory = utils.pattern.getPatternsInsideCurrentDirectory(positive); + const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory); + const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory); + tasks.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic)); + /* + * For the sake of reducing future accesses to the file system, we merge all tasks within the current directory + * into a global task, if at least one pattern refers to the root (`.`). In this case, the global task covers the rest. + */ + if ('.' in insideCurrentDirectoryGroup) { + tasks.push(convertPatternGroupToTask('.', patternsInsideCurrentDirectory, negative, dynamic)); + } + else { + tasks.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic)); + } + return tasks; +} +exports.convertPatternsToTasks = convertPatternsToTasks; +function getPositivePatterns(patterns) { + return utils.pattern.getPositivePatterns(patterns); +} +exports.getPositivePatterns = getPositivePatterns; +function getNegativePatternsAsPositive(patterns, ignore) { + const negative = utils.pattern.getNegativePatterns(patterns).concat(ignore); + const positive = negative.map(utils.pattern.convertToPositivePattern); + return positive; +} +exports.getNegativePatternsAsPositive = getNegativePatternsAsPositive; +function groupPatternsByBaseDirectory(patterns) { + const group = {}; + return patterns.reduce((collection, pattern) => { + const base = utils.pattern.getBaseDirectory(pattern); + if (base in collection) { + collection[base].push(pattern); + } + else { + collection[base] = [pattern]; + } + return collection; + }, group); +} +exports.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory; +function convertPatternGroupsToTasks(positive, negative, dynamic) { + return Object.keys(positive).map((base) => { + return convertPatternGroupToTask(base, positive[base], negative, dynamic); + }); +} +exports.convertPatternGroupsToTasks = convertPatternGroupsToTasks; +function convertPatternGroupToTask(base, positive, negative, dynamic) { + return { + dynamic, + positive, + negative, + base, + patterns: [].concat(positive, negative.map(utils.pattern.convertToNegativePattern)) + }; +} +exports.convertPatternGroupToTask = convertPatternGroupToTask; diff --git a/node_modules/fast-glob/out/providers/async.d.ts b/node_modules/fast-glob/out/providers/async.d.ts new file mode 100644 index 00000000..a2dc7a90 --- /dev/null +++ b/node_modules/fast-glob/out/providers/async.d.ts @@ -0,0 +1,11 @@ +/// +import { Readable } from 'stream'; +import { Task } from '../managers/tasks'; +import ReaderStream from '../readers/stream'; +import { EntryItem, ReaderOptions } from '../types'; +import Provider from './provider'; +export default class ProviderAsync extends Provider> { + protected _reader: ReaderStream; + read(task: Task): Promise; + api(root: string, task: Task, options: ReaderOptions): Readable; +} diff --git a/node_modules/fast-glob/out/providers/async.js b/node_modules/fast-glob/out/providers/async.js new file mode 100644 index 00000000..477aae57 --- /dev/null +++ b/node_modules/fast-glob/out/providers/async.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const stream_1 = require("../readers/stream"); +const provider_1 = require("./provider"); +class ProviderAsync extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new stream_1.default(this._settings); + } + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const entries = []; + return new Promise((resolve, reject) => { + const stream = this.api(root, task, options); + stream.once('error', reject); + stream.on('data', (entry) => entries.push(options.transform(entry))); + stream.once('end', () => resolve(entries)); + }); + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); + } +} +exports.default = ProviderAsync; diff --git a/node_modules/fast-glob/out/providers/filters/deep.d.ts b/node_modules/fast-glob/out/providers/filters/deep.d.ts new file mode 100644 index 00000000..377fab88 --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/deep.d.ts @@ -0,0 +1,16 @@ +import { MicromatchOptions, EntryFilterFunction, Pattern } from '../../types'; +import Settings from '../../settings'; +export default class DeepFilter { + private readonly _settings; + private readonly _micromatchOptions; + constructor(_settings: Settings, _micromatchOptions: MicromatchOptions); + getFilter(basePath: string, positive: Pattern[], negative: Pattern[]): EntryFilterFunction; + private _getMatcher; + private _getNegativePatternsRe; + private _filter; + private _isSkippedByDeep; + private _getEntryLevel; + private _isSkippedSymbolicLink; + private _isSkippedByPositivePatterns; + private _isSkippedByNegativePatterns; +} diff --git a/node_modules/fast-glob/out/providers/filters/deep.js b/node_modules/fast-glob/out/providers/filters/deep.js new file mode 100644 index 00000000..644bf41b --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/deep.js @@ -0,0 +1,62 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const utils = require("../../utils"); +const partial_1 = require("../matchers/partial"); +class DeepFilter { + constructor(_settings, _micromatchOptions) { + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + } + getFilter(basePath, positive, negative) { + const matcher = this._getMatcher(positive); + const negativeRe = this._getNegativePatternsRe(negative); + return (entry) => this._filter(basePath, entry, matcher, negativeRe); + } + _getMatcher(patterns) { + return new partial_1.default(patterns, this._settings, this._micromatchOptions); + } + _getNegativePatternsRe(patterns) { + const affectDepthOfReadingPatterns = patterns.filter(utils.pattern.isAffectDepthOfReadingPattern); + return utils.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions); + } + _filter(basePath, entry, matcher, negativeRe) { + if (this._isSkippedByDeep(basePath, entry.path)) { + return false; + } + if (this._isSkippedSymbolicLink(entry)) { + return false; + } + const filepath = utils.path.removeLeadingDotSegment(entry.path); + if (this._isSkippedByPositivePatterns(filepath, matcher)) { + return false; + } + return this._isSkippedByNegativePatterns(filepath, negativeRe); + } + _isSkippedByDeep(basePath, entryPath) { + /** + * Avoid unnecessary depth calculations when it doesn't matter. + */ + if (this._settings.deep === Infinity) { + return false; + } + return this._getEntryLevel(basePath, entryPath) >= this._settings.deep; + } + _getEntryLevel(basePath, entryPath) { + const entryPathDepth = entryPath.split('/').length; + if (basePath === '') { + return entryPathDepth; + } + const basePathDepth = basePath.split('/').length; + return entryPathDepth - basePathDepth; + } + _isSkippedSymbolicLink(entry) { + return !this._settings.followSymbolicLinks && entry.dirent.isSymbolicLink(); + } + _isSkippedByPositivePatterns(entryPath, matcher) { + return !this._settings.baseNameMatch && !matcher.match(entryPath); + } + _isSkippedByNegativePatterns(entryPath, patternsRe) { + return !utils.pattern.matchAny(entryPath, patternsRe); + } +} +exports.default = DeepFilter; diff --git a/node_modules/fast-glob/out/providers/filters/entry.d.ts b/node_modules/fast-glob/out/providers/filters/entry.d.ts new file mode 100644 index 00000000..c1fb3141 --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/entry.d.ts @@ -0,0 +1,20 @@ +import Settings from '../../settings'; +import { EntryFilterFunction, MicromatchOptions, Pattern } from '../../types'; +export default class EntryFilter { + private readonly _settings; + private readonly _micromatchOptions; + readonly index: Map; + constructor(_settings: Settings, _micromatchOptions: MicromatchOptions); + getFilter(positive: Pattern[], negative: Pattern[]): EntryFilterFunction; + private _filter; + private _isDuplicateEntry; + private _createIndexRecord; + private _onlyFileFilter; + private _onlyDirectoryFilter; + private _isSkippedByAbsoluteNegativePatterns; + /** + * First, just trying to apply patterns to the path. + * Second, trying to apply patterns to the path with final slash. + */ + private _isMatchToPatterns; +} diff --git a/node_modules/fast-glob/out/providers/filters/entry.js b/node_modules/fast-glob/out/providers/filters/entry.js new file mode 100644 index 00000000..72840e6a --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/entry.js @@ -0,0 +1,60 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const utils = require("../../utils"); +class EntryFilter { + constructor(_settings, _micromatchOptions) { + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + this.index = new Map(); + } + getFilter(positive, negative) { + const positiveRe = utils.pattern.convertPatternsToRe(positive, this._micromatchOptions); + const negativeRe = utils.pattern.convertPatternsToRe(negative, this._micromatchOptions); + return (entry) => this._filter(entry, positiveRe, negativeRe); + } + _filter(entry, positiveRe, negativeRe) { + if (this._settings.unique && this._isDuplicateEntry(entry)) { + return false; + } + if (this._onlyFileFilter(entry) || this._onlyDirectoryFilter(entry)) { + return false; + } + if (this._isSkippedByAbsoluteNegativePatterns(entry.path, negativeRe)) { + return false; + } + const filepath = this._settings.baseNameMatch ? entry.name : entry.path; + const isMatched = this._isMatchToPatterns(filepath, positiveRe) && !this._isMatchToPatterns(entry.path, negativeRe); + if (this._settings.unique && isMatched) { + this._createIndexRecord(entry); + } + return isMatched; + } + _isDuplicateEntry(entry) { + return this.index.has(entry.path); + } + _createIndexRecord(entry) { + this.index.set(entry.path, undefined); + } + _onlyFileFilter(entry) { + return this._settings.onlyFiles && !entry.dirent.isFile(); + } + _onlyDirectoryFilter(entry) { + return this._settings.onlyDirectories && !entry.dirent.isDirectory(); + } + _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) { + if (!this._settings.absolute) { + return false; + } + const fullpath = utils.path.makeAbsolute(this._settings.cwd, entryPath); + return utils.pattern.matchAny(fullpath, patternsRe); + } + /** + * First, just trying to apply patterns to the path. + * Second, trying to apply patterns to the path with final slash. + */ + _isMatchToPatterns(entryPath, patternsRe) { + const filepath = utils.path.removeLeadingDotSegment(entryPath); + return utils.pattern.matchAny(filepath, patternsRe) || utils.pattern.matchAny(filepath + '/', patternsRe); + } +} +exports.default = EntryFilter; diff --git a/node_modules/fast-glob/out/providers/filters/error.d.ts b/node_modules/fast-glob/out/providers/filters/error.d.ts new file mode 100644 index 00000000..170eb251 --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/error.d.ts @@ -0,0 +1,8 @@ +import Settings from '../../settings'; +import { ErrorFilterFunction } from '../../types'; +export default class ErrorFilter { + private readonly _settings; + constructor(_settings: Settings); + getFilter(): ErrorFilterFunction; + private _isNonFatalError; +} diff --git a/node_modules/fast-glob/out/providers/filters/error.js b/node_modules/fast-glob/out/providers/filters/error.js new file mode 100644 index 00000000..1c6f2416 --- /dev/null +++ b/node_modules/fast-glob/out/providers/filters/error.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const utils = require("../../utils"); +class ErrorFilter { + constructor(_settings) { + this._settings = _settings; + } + getFilter() { + return (error) => this._isNonFatalError(error); + } + _isNonFatalError(error) { + return utils.errno.isEnoentCodeError(error) || this._settings.suppressErrors; + } +} +exports.default = ErrorFilter; diff --git a/node_modules/fast-glob/out/providers/matchers/matcher.d.ts b/node_modules/fast-glob/out/providers/matchers/matcher.d.ts new file mode 100644 index 00000000..f3773d46 --- /dev/null +++ b/node_modules/fast-glob/out/providers/matchers/matcher.d.ts @@ -0,0 +1,33 @@ +import { Pattern, MicromatchOptions, PatternRe } from '../../types'; +import Settings from '../../settings'; +export declare type PatternSegment = StaticPatternSegment | DynamicPatternSegment; +declare type StaticPatternSegment = { + dynamic: false; + pattern: Pattern; +}; +declare type DynamicPatternSegment = { + dynamic: true; + pattern: Pattern; + patternRe: PatternRe; +}; +export declare type PatternSection = PatternSegment[]; +export declare type PatternInfo = { + /** + * Indicates that the pattern has a globstar (more than a single section). + */ + complete: boolean; + pattern: Pattern; + segments: PatternSegment[]; + sections: PatternSection[]; +}; +export default abstract class Matcher { + private readonly _patterns; + private readonly _settings; + private readonly _micromatchOptions; + protected readonly _storage: PatternInfo[]; + constructor(_patterns: Pattern[], _settings: Settings, _micromatchOptions: MicromatchOptions); + private _fillStorage; + private _getPatternSegments; + private _splitSegmentsIntoSections; +} +export {}; diff --git a/node_modules/fast-glob/out/providers/matchers/matcher.js b/node_modules/fast-glob/out/providers/matchers/matcher.js new file mode 100644 index 00000000..752d2c2c --- /dev/null +++ b/node_modules/fast-glob/out/providers/matchers/matcher.js @@ -0,0 +1,50 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const utils = require("../../utils"); +class Matcher { + constructor(_patterns, _settings, _micromatchOptions) { + this._patterns = _patterns; + this._settings = _settings; + this._micromatchOptions = _micromatchOptions; + this._storage = []; + this._fillStorage(); + } + _fillStorage() { + /** + * The original pattern may include `{,*,**,a/*}`, which will lead to problems with matching (unresolved level). + * So, before expand patterns with brace expansion into separated patterns. + */ + const patterns = utils.pattern.expandPatternsWithBraceExpansion(this._patterns); + for (const pattern of patterns) { + const segments = this._getPatternSegments(pattern); + const sections = this._splitSegmentsIntoSections(segments); + this._storage.push({ + complete: sections.length <= 1, + pattern, + segments, + sections + }); + } + } + _getPatternSegments(pattern) { + const parts = utils.pattern.getPatternParts(pattern, this._micromatchOptions); + return parts.map((part) => { + const dynamic = utils.pattern.isDynamicPattern(part, this._settings); + if (!dynamic) { + return { + dynamic: false, + pattern: part + }; + } + return { + dynamic: true, + pattern: part, + patternRe: utils.pattern.makeRe(part, this._micromatchOptions) + }; + }); + } + _splitSegmentsIntoSections(segments) { + return utils.array.splitWhen(segments, (segment) => segment.dynamic && utils.pattern.hasGlobStar(segment.pattern)); + } +} +exports.default = Matcher; diff --git a/node_modules/fast-glob/out/providers/matchers/partial.d.ts b/node_modules/fast-glob/out/providers/matchers/partial.d.ts new file mode 100644 index 00000000..91520f64 --- /dev/null +++ b/node_modules/fast-glob/out/providers/matchers/partial.d.ts @@ -0,0 +1,4 @@ +import Matcher from './matcher'; +export default class PartialMatcher extends Matcher { + match(filepath: string): boolean; +} diff --git a/node_modules/fast-glob/out/providers/matchers/partial.js b/node_modules/fast-glob/out/providers/matchers/partial.js new file mode 100644 index 00000000..1dfffeb5 --- /dev/null +++ b/node_modules/fast-glob/out/providers/matchers/partial.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const matcher_1 = require("./matcher"); +class PartialMatcher extends matcher_1.default { + match(filepath) { + const parts = filepath.split('/'); + const levels = parts.length; + const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels); + for (const pattern of patterns) { + const section = pattern.sections[0]; + /** + * In this case, the pattern has a globstar and we must read all directories unconditionally, + * but only if the level has reached the end of the first group. + * + * fixtures/{a,b}/** + * ^ true/false ^ always true + */ + if (!pattern.complete && levels > section.length) { + return true; + } + const match = parts.every((part, index) => { + const segment = pattern.segments[index]; + if (segment.dynamic && segment.patternRe.test(part)) { + return true; + } + if (!segment.dynamic && segment.pattern === part) { + return true; + } + return false; + }); + if (match) { + return true; + } + } + return false; + } +} +exports.default = PartialMatcher; diff --git a/node_modules/fast-glob/out/providers/provider.d.ts b/node_modules/fast-glob/out/providers/provider.d.ts new file mode 100644 index 00000000..1053460a --- /dev/null +++ b/node_modules/fast-glob/out/providers/provider.d.ts @@ -0,0 +1,19 @@ +import { Task } from '../managers/tasks'; +import Settings from '../settings'; +import { MicromatchOptions, ReaderOptions } from '../types'; +import DeepFilter from './filters/deep'; +import EntryFilter from './filters/entry'; +import ErrorFilter from './filters/error'; +import EntryTransformer from './transformers/entry'; +export default abstract class Provider { + protected readonly _settings: Settings; + readonly errorFilter: ErrorFilter; + readonly entryFilter: EntryFilter; + readonly deepFilter: DeepFilter; + readonly entryTransformer: EntryTransformer; + constructor(_settings: Settings); + abstract read(_task: Task): T; + protected _getRootDirectory(task: Task): string; + protected _getReaderOptions(task: Task): ReaderOptions; + protected _getMicromatchOptions(): MicromatchOptions; +} diff --git a/node_modules/fast-glob/out/providers/provider.js b/node_modules/fast-glob/out/providers/provider.js new file mode 100644 index 00000000..da88ee02 --- /dev/null +++ b/node_modules/fast-glob/out/providers/provider.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const deep_1 = require("./filters/deep"); +const entry_1 = require("./filters/entry"); +const error_1 = require("./filters/error"); +const entry_2 = require("./transformers/entry"); +class Provider { + constructor(_settings) { + this._settings = _settings; + this.errorFilter = new error_1.default(this._settings); + this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions()); + this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions()); + this.entryTransformer = new entry_2.default(this._settings); + } + _getRootDirectory(task) { + return path.resolve(this._settings.cwd, task.base); + } + _getReaderOptions(task) { + const basePath = task.base === '.' ? '' : task.base; + return { + basePath, + pathSegmentSeparator: '/', + concurrency: this._settings.concurrency, + deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative), + entryFilter: this.entryFilter.getFilter(task.positive, task.negative), + errorFilter: this.errorFilter.getFilter(), + followSymbolicLinks: this._settings.followSymbolicLinks, + fs: this._settings.fs, + stats: this._settings.stats, + throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink, + transform: this.entryTransformer.getTransformer() + }; + } + _getMicromatchOptions() { + return { + dot: this._settings.dot, + matchBase: this._settings.baseNameMatch, + nobrace: !this._settings.braceExpansion, + nocase: !this._settings.caseSensitiveMatch, + noext: !this._settings.extglob, + noglobstar: !this._settings.globstar, + posix: true, + strictSlashes: false + }; + } +} +exports.default = Provider; diff --git a/node_modules/fast-glob/out/providers/stream.d.ts b/node_modules/fast-glob/out/providers/stream.d.ts new file mode 100644 index 00000000..3d02a1f4 --- /dev/null +++ b/node_modules/fast-glob/out/providers/stream.d.ts @@ -0,0 +1,11 @@ +/// +import { Readable } from 'stream'; +import { Task } from '../managers/tasks'; +import ReaderStream from '../readers/stream'; +import { ReaderOptions } from '../types'; +import Provider from './provider'; +export default class ProviderStream extends Provider { + protected _reader: ReaderStream; + read(task: Task): Readable; + api(root: string, task: Task, options: ReaderOptions): Readable; +} diff --git a/node_modules/fast-glob/out/providers/stream.js b/node_modules/fast-glob/out/providers/stream.js new file mode 100644 index 00000000..85da62eb --- /dev/null +++ b/node_modules/fast-glob/out/providers/stream.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const stream_1 = require("stream"); +const stream_2 = require("../readers/stream"); +const provider_1 = require("./provider"); +class ProviderStream extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new stream_2.default(this._settings); + } + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const source = this.api(root, task, options); + const destination = new stream_1.Readable({ objectMode: true, read: () => { } }); + source + .once('error', (error) => destination.emit('error', error)) + .on('data', (entry) => destination.emit('data', options.transform(entry))) + .once('end', () => destination.emit('end')); + destination + .once('close', () => source.destroy()); + return destination; + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); + } +} +exports.default = ProviderStream; diff --git a/node_modules/fast-glob/out/providers/sync.d.ts b/node_modules/fast-glob/out/providers/sync.d.ts new file mode 100644 index 00000000..9c0fe1e1 --- /dev/null +++ b/node_modules/fast-glob/out/providers/sync.d.ts @@ -0,0 +1,9 @@ +import { Task } from '../managers/tasks'; +import ReaderSync from '../readers/sync'; +import { Entry, EntryItem, ReaderOptions } from '../types'; +import Provider from './provider'; +export default class ProviderSync extends Provider { + protected _reader: ReaderSync; + read(task: Task): EntryItem[]; + api(root: string, task: Task, options: ReaderOptions): Entry[]; +} diff --git a/node_modules/fast-glob/out/providers/sync.js b/node_modules/fast-glob/out/providers/sync.js new file mode 100644 index 00000000..d70aa1b1 --- /dev/null +++ b/node_modules/fast-glob/out/providers/sync.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const sync_1 = require("../readers/sync"); +const provider_1 = require("./provider"); +class ProviderSync extends provider_1.default { + constructor() { + super(...arguments); + this._reader = new sync_1.default(this._settings); + } + read(task) { + const root = this._getRootDirectory(task); + const options = this._getReaderOptions(task); + const entries = this.api(root, task, options); + return entries.map(options.transform); + } + api(root, task, options) { + if (task.dynamic) { + return this._reader.dynamic(root, options); + } + return this._reader.static(task.patterns, options); + } +} +exports.default = ProviderSync; diff --git a/node_modules/fast-glob/out/providers/transformers/entry.d.ts b/node_modules/fast-glob/out/providers/transformers/entry.d.ts new file mode 100644 index 00000000..e9b85fa7 --- /dev/null +++ b/node_modules/fast-glob/out/providers/transformers/entry.d.ts @@ -0,0 +1,8 @@ +import Settings from '../../settings'; +import { EntryTransformerFunction } from '../../types'; +export default class EntryTransformer { + private readonly _settings; + constructor(_settings: Settings); + getTransformer(): EntryTransformerFunction; + private _transform; +} diff --git a/node_modules/fast-glob/out/providers/transformers/entry.js b/node_modules/fast-glob/out/providers/transformers/entry.js new file mode 100644 index 00000000..d11903c8 --- /dev/null +++ b/node_modules/fast-glob/out/providers/transformers/entry.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const utils = require("../../utils"); +class EntryTransformer { + constructor(_settings) { + this._settings = _settings; + } + getTransformer() { + return (entry) => this._transform(entry); + } + _transform(entry) { + let filepath = entry.path; + if (this._settings.absolute) { + filepath = utils.path.makeAbsolute(this._settings.cwd, filepath); + filepath = utils.path.unixify(filepath); + } + if (this._settings.markDirectories && entry.dirent.isDirectory()) { + filepath += '/'; + } + if (!this._settings.objectMode) { + return filepath; + } + return Object.assign(Object.assign({}, entry), { path: filepath }); + } +} +exports.default = EntryTransformer; diff --git a/node_modules/fast-glob/out/readers/reader.d.ts b/node_modules/fast-glob/out/readers/reader.d.ts new file mode 100644 index 00000000..2af16b67 --- /dev/null +++ b/node_modules/fast-glob/out/readers/reader.d.ts @@ -0,0 +1,15 @@ +/// +import * as fs from 'fs'; +import * as fsStat from '@nodelib/fs.stat'; +import Settings from '../settings'; +import { Entry, ErrnoException, Pattern, ReaderOptions } from '../types'; +export default abstract class Reader { + protected readonly _settings: Settings; + protected readonly _fsStatSettings: fsStat.Settings; + constructor(_settings: Settings); + abstract dynamic(root: string, options: ReaderOptions): T; + abstract static(patterns: Pattern[], options: ReaderOptions): T; + protected _getFullEntryPath(filepath: string): string; + protected _makeEntry(stats: fs.Stats, pattern: Pattern): Entry; + protected _isFatalError(error: ErrnoException): boolean; +} diff --git a/node_modules/fast-glob/out/readers/reader.js b/node_modules/fast-glob/out/readers/reader.js new file mode 100644 index 00000000..7b40255a --- /dev/null +++ b/node_modules/fast-glob/out/readers/reader.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const path = require("path"); +const fsStat = require("@nodelib/fs.stat"); +const utils = require("../utils"); +class Reader { + constructor(_settings) { + this._settings = _settings; + this._fsStatSettings = new fsStat.Settings({ + followSymbolicLink: this._settings.followSymbolicLinks, + fs: this._settings.fs, + throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks + }); + } + _getFullEntryPath(filepath) { + return path.resolve(this._settings.cwd, filepath); + } + _makeEntry(stats, pattern) { + const entry = { + name: pattern, + path: pattern, + dirent: utils.fs.createDirentFromStats(pattern, stats) + }; + if (this._settings.stats) { + entry.stats = stats; + } + return entry; + } + _isFatalError(error) { + return !utils.errno.isEnoentCodeError(error) && !this._settings.suppressErrors; + } +} +exports.default = Reader; diff --git a/node_modules/fast-glob/out/readers/stream.d.ts b/node_modules/fast-glob/out/readers/stream.d.ts new file mode 100644 index 00000000..1c74cac6 --- /dev/null +++ b/node_modules/fast-glob/out/readers/stream.d.ts @@ -0,0 +1,14 @@ +/// +import { Readable } from 'stream'; +import * as fsStat from '@nodelib/fs.stat'; +import * as fsWalk from '@nodelib/fs.walk'; +import { Pattern, ReaderOptions } from '../types'; +import Reader from './reader'; +export default class ReaderStream extends Reader { + protected _walkStream: typeof fsWalk.walkStream; + protected _stat: typeof fsStat.stat; + dynamic(root: string, options: ReaderOptions): Readable; + static(patterns: Pattern[], options: ReaderOptions): Readable; + private _getEntry; + private _getStat; +} diff --git a/node_modules/fast-glob/out/readers/stream.js b/node_modules/fast-glob/out/readers/stream.js new file mode 100644 index 00000000..317c6d5d --- /dev/null +++ b/node_modules/fast-glob/out/readers/stream.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const stream_1 = require("stream"); +const fsStat = require("@nodelib/fs.stat"); +const fsWalk = require("@nodelib/fs.walk"); +const reader_1 = require("./reader"); +class ReaderStream extends reader_1.default { + constructor() { + super(...arguments); + this._walkStream = fsWalk.walkStream; + this._stat = fsStat.stat; + } + dynamic(root, options) { + return this._walkStream(root, options); + } + static(patterns, options) { + const filepaths = patterns.map(this._getFullEntryPath, this); + const stream = new stream_1.PassThrough({ objectMode: true }); + stream._write = (index, _enc, done) => { + return this._getEntry(filepaths[index], patterns[index], options) + .then((entry) => { + if (entry !== null && options.entryFilter(entry)) { + stream.push(entry); + } + if (index === filepaths.length - 1) { + stream.end(); + } + done(); + }) + .catch(done); + }; + for (let i = 0; i < filepaths.length; i++) { + stream.write(i); + } + return stream; + } + _getEntry(filepath, pattern, options) { + return this._getStat(filepath) + .then((stats) => this._makeEntry(stats, pattern)) + .catch((error) => { + if (options.errorFilter(error)) { + return null; + } + throw error; + }); + } + _getStat(filepath) { + return new Promise((resolve, reject) => { + this._stat(filepath, this._fsStatSettings, (error, stats) => { + return error === null ? resolve(stats) : reject(error); + }); + }); + } +} +exports.default = ReaderStream; diff --git a/node_modules/fast-glob/out/readers/sync.d.ts b/node_modules/fast-glob/out/readers/sync.d.ts new file mode 100644 index 00000000..c96ffeed --- /dev/null +++ b/node_modules/fast-glob/out/readers/sync.d.ts @@ -0,0 +1,12 @@ +import * as fsStat from '@nodelib/fs.stat'; +import * as fsWalk from '@nodelib/fs.walk'; +import { Entry, Pattern, ReaderOptions } from '../types'; +import Reader from './reader'; +export default class ReaderSync extends Reader { + protected _walkSync: typeof fsWalk.walkSync; + protected _statSync: typeof fsStat.statSync; + dynamic(root: string, options: ReaderOptions): Entry[]; + static(patterns: Pattern[], options: ReaderOptions): Entry[]; + private _getEntry; + private _getStat; +} diff --git a/node_modules/fast-glob/out/readers/sync.js b/node_modules/fast-glob/out/readers/sync.js new file mode 100644 index 00000000..4704d65d --- /dev/null +++ b/node_modules/fast-glob/out/readers/sync.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const fsStat = require("@nodelib/fs.stat"); +const fsWalk = require("@nodelib/fs.walk"); +const reader_1 = require("./reader"); +class ReaderSync extends reader_1.default { + constructor() { + super(...arguments); + this._walkSync = fsWalk.walkSync; + this._statSync = fsStat.statSync; + } + dynamic(root, options) { + return this._walkSync(root, options); + } + static(patterns, options) { + const entries = []; + for (const pattern of patterns) { + const filepath = this._getFullEntryPath(pattern); + const entry = this._getEntry(filepath, pattern, options); + if (entry === null || !options.entryFilter(entry)) { + continue; + } + entries.push(entry); + } + return entries; + } + _getEntry(filepath, pattern, options) { + try { + const stats = this._getStat(filepath); + return this._makeEntry(stats, pattern); + } + catch (error) { + if (options.errorFilter(error)) { + return null; + } + throw error; + } + } + _getStat(filepath) { + return this._statSync(filepath, this._fsStatSettings); + } +} +exports.default = ReaderSync; diff --git a/node_modules/fast-glob/out/settings.d.ts b/node_modules/fast-glob/out/settings.d.ts new file mode 100644 index 00000000..1984854f --- /dev/null +++ b/node_modules/fast-glob/out/settings.d.ts @@ -0,0 +1,164 @@ +import { FileSystemAdapter, Pattern } from './types'; +export declare const DEFAULT_FILE_SYSTEM_ADAPTER: FileSystemAdapter; +export declare type Options = { + /** + * Return the absolute path for entries. + * + * @default false + */ + absolute?: boolean; + /** + * If set to `true`, then patterns without slashes will be matched against + * the basename of the path if it contains slashes. + * + * @default false + */ + baseNameMatch?: boolean; + /** + * Enables Bash-like brace expansion. + * + * @default true + */ + braceExpansion?: boolean; + /** + * Enables a case-sensitive mode for matching files. + * + * @default true + */ + caseSensitiveMatch?: boolean; + /** + * Specifies the maximum number of concurrent requests from a reader to read + * directories. + * + * @default os.cpus().length + */ + concurrency?: number; + /** + * The current working directory in which to search. + * + * @default process.cwd() + */ + cwd?: string; + /** + * Specifies the maximum depth of a read directory relative to the start + * directory. + * + * @default Infinity + */ + deep?: number; + /** + * Allow patterns to match entries that begin with a period (`.`). + * + * @default false + */ + dot?: boolean; + /** + * Enables Bash-like `extglob` functionality. + * + * @default true + */ + extglob?: boolean; + /** + * Indicates whether to traverse descendants of symbolic link directories. + * + * @default true + */ + followSymbolicLinks?: boolean; + /** + * Custom implementation of methods for working with the file system. + * + * @default fs.* + */ + fs?: Partial; + /** + * Enables recursively repeats a pattern containing `**`. + * If `false`, `**` behaves exactly like `*`. + * + * @default true + */ + globstar?: boolean; + /** + * An array of glob patterns to exclude matches. + * This is an alternative way to use negative patterns. + * + * @default [] + */ + ignore?: Pattern[]; + /** + * Mark the directory path with the final slash. + * + * @default false + */ + markDirectories?: boolean; + /** + * Returns objects (instead of strings) describing entries. + * + * @default false + */ + objectMode?: boolean; + /** + * Return only directories. + * + * @default false + */ + onlyDirectories?: boolean; + /** + * Return only files. + * + * @default true + */ + onlyFiles?: boolean; + /** + * Enables an object mode (`objectMode`) with an additional `stats` field. + * + * @default false + */ + stats?: boolean; + /** + * By default this package suppress only `ENOENT` errors. + * Set to `true` to suppress any error. + * + * @default false + */ + suppressErrors?: boolean; + /** + * Throw an error when symbolic link is broken if `true` or safely + * return `lstat` call if `false`. + * + * @default false + */ + throwErrorOnBrokenSymbolicLink?: boolean; + /** + * Ensures that the returned entries are unique. + * + * @default true + */ + unique?: boolean; +}; +export default class Settings { + private readonly _options; + readonly absolute: boolean; + readonly baseNameMatch: boolean; + readonly braceExpansion: boolean; + readonly caseSensitiveMatch: boolean; + readonly concurrency: number; + readonly cwd: string; + readonly deep: number; + readonly dot: boolean; + readonly extglob: boolean; + readonly followSymbolicLinks: boolean; + readonly fs: FileSystemAdapter; + readonly globstar: boolean; + readonly ignore: Pattern[]; + readonly markDirectories: boolean; + readonly objectMode: boolean; + readonly onlyDirectories: boolean; + readonly onlyFiles: boolean; + readonly stats: boolean; + readonly suppressErrors: boolean; + readonly throwErrorOnBrokenSymbolicLink: boolean; + readonly unique: boolean; + constructor(_options?: Options); + private _getValue; + private _getFileSystemMethods; +} diff --git a/node_modules/fast-glob/out/settings.js b/node_modules/fast-glob/out/settings.js new file mode 100644 index 00000000..3752806a --- /dev/null +++ b/node_modules/fast-glob/out/settings.js @@ -0,0 +1,57 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DEFAULT_FILE_SYSTEM_ADAPTER = void 0; +const fs = require("fs"); +const os = require("os"); +/** + * The `os.cpus` method can return zero. We expect the number of cores to be greater than zero. + * https://github.com/nodejs/node/blob/7faeddf23a98c53896f8b574a6e66589e8fb1eb8/lib/os.js#L106-L107 + */ +const CPU_COUNT = Math.max(os.cpus().length, 1); +exports.DEFAULT_FILE_SYSTEM_ADAPTER = { + lstat: fs.lstat, + lstatSync: fs.lstatSync, + stat: fs.stat, + statSync: fs.statSync, + readdir: fs.readdir, + readdirSync: fs.readdirSync +}; +class Settings { + constructor(_options = {}) { + this._options = _options; + this.absolute = this._getValue(this._options.absolute, false); + this.baseNameMatch = this._getValue(this._options.baseNameMatch, false); + this.braceExpansion = this._getValue(this._options.braceExpansion, true); + this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true); + this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT); + this.cwd = this._getValue(this._options.cwd, process.cwd()); + this.deep = this._getValue(this._options.deep, Infinity); + this.dot = this._getValue(this._options.dot, false); + this.extglob = this._getValue(this._options.extglob, true); + this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true); + this.fs = this._getFileSystemMethods(this._options.fs); + this.globstar = this._getValue(this._options.globstar, true); + this.ignore = this._getValue(this._options.ignore, []); + this.markDirectories = this._getValue(this._options.markDirectories, false); + this.objectMode = this._getValue(this._options.objectMode, false); + this.onlyDirectories = this._getValue(this._options.onlyDirectories, false); + this.onlyFiles = this._getValue(this._options.onlyFiles, true); + this.stats = this._getValue(this._options.stats, false); + this.suppressErrors = this._getValue(this._options.suppressErrors, false); + this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false); + this.unique = this._getValue(this._options.unique, true); + if (this.onlyDirectories) { + this.onlyFiles = false; + } + if (this.stats) { + this.objectMode = true; + } + } + _getValue(option, value) { + return option === undefined ? value : option; + } + _getFileSystemMethods(methods = {}) { + return Object.assign(Object.assign({}, exports.DEFAULT_FILE_SYSTEM_ADAPTER), methods); + } +} +exports.default = Settings; diff --git a/node_modules/fast-glob/out/types/index.d.ts b/node_modules/fast-glob/out/types/index.d.ts new file mode 100644 index 00000000..99503997 --- /dev/null +++ b/node_modules/fast-glob/out/types/index.d.ts @@ -0,0 +1,31 @@ +/// +import * as fsWalk from '@nodelib/fs.walk'; +export declare type ErrnoException = NodeJS.ErrnoException; +export declare type Entry = fsWalk.Entry; +export declare type EntryItem = string | Entry; +export declare type Pattern = string; +export declare type PatternRe = RegExp; +export declare type PatternsGroup = Record; +export declare type ReaderOptions = fsWalk.Options & { + transform(entry: Entry): EntryItem; + deepFilter: DeepFilterFunction; + entryFilter: EntryFilterFunction; + errorFilter: ErrorFilterFunction; + fs: FileSystemAdapter; + stats: boolean; +}; +export declare type ErrorFilterFunction = fsWalk.ErrorFilterFunction; +export declare type EntryFilterFunction = fsWalk.EntryFilterFunction; +export declare type DeepFilterFunction = fsWalk.DeepFilterFunction; +export declare type EntryTransformerFunction = (entry: Entry) => EntryItem; +export declare type MicromatchOptions = { + dot?: boolean; + matchBase?: boolean; + nobrace?: boolean; + nocase?: boolean; + noext?: boolean; + noglobstar?: boolean; + posix?: boolean; + strictSlashes?: boolean; +}; +export declare type FileSystemAdapter = fsWalk.FileSystemAdapter; diff --git a/node_modules/fast-glob/out/types/index.js b/node_modules/fast-glob/out/types/index.js new file mode 100644 index 00000000..c8ad2e54 --- /dev/null +++ b/node_modules/fast-glob/out/types/index.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/fast-glob/out/utils/array.d.ts b/node_modules/fast-glob/out/utils/array.d.ts new file mode 100644 index 00000000..98e73250 --- /dev/null +++ b/node_modules/fast-glob/out/utils/array.d.ts @@ -0,0 +1,2 @@ +export declare function flatten(items: T[][]): T[]; +export declare function splitWhen(items: T[], predicate: (item: T) => boolean): T[][]; diff --git a/node_modules/fast-glob/out/utils/array.js b/node_modules/fast-glob/out/utils/array.js new file mode 100644 index 00000000..50c406e8 --- /dev/null +++ b/node_modules/fast-glob/out/utils/array.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.splitWhen = exports.flatten = void 0; +function flatten(items) { + return items.reduce((collection, item) => [].concat(collection, item), []); +} +exports.flatten = flatten; +function splitWhen(items, predicate) { + const result = [[]]; + let groupIndex = 0; + for (const item of items) { + if (predicate(item)) { + groupIndex++; + result[groupIndex] = []; + } + else { + result[groupIndex].push(item); + } + } + return result; +} +exports.splitWhen = splitWhen; diff --git a/node_modules/fast-glob/out/utils/errno.d.ts b/node_modules/fast-glob/out/utils/errno.d.ts new file mode 100644 index 00000000..1c08d3ba --- /dev/null +++ b/node_modules/fast-glob/out/utils/errno.d.ts @@ -0,0 +1,2 @@ +import { ErrnoException } from '../types'; +export declare function isEnoentCodeError(error: ErrnoException): boolean; diff --git a/node_modules/fast-glob/out/utils/errno.js b/node_modules/fast-glob/out/utils/errno.js new file mode 100644 index 00000000..f0bd8015 --- /dev/null +++ b/node_modules/fast-glob/out/utils/errno.js @@ -0,0 +1,7 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isEnoentCodeError = void 0; +function isEnoentCodeError(error) { + return error.code === 'ENOENT'; +} +exports.isEnoentCodeError = isEnoentCodeError; diff --git a/node_modules/fast-glob/out/utils/fs.d.ts b/node_modules/fast-glob/out/utils/fs.d.ts new file mode 100644 index 00000000..64c61ce6 --- /dev/null +++ b/node_modules/fast-glob/out/utils/fs.d.ts @@ -0,0 +1,4 @@ +/// +import * as fs from 'fs'; +import { Dirent } from '@nodelib/fs.walk'; +export declare function createDirentFromStats(name: string, stats: fs.Stats): Dirent; diff --git a/node_modules/fast-glob/out/utils/fs.js b/node_modules/fast-glob/out/utils/fs.js new file mode 100644 index 00000000..ace7c74d --- /dev/null +++ b/node_modules/fast-glob/out/utils/fs.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.createDirentFromStats = void 0; +class DirentFromStats { + constructor(name, stats) { + this.name = name; + this.isBlockDevice = stats.isBlockDevice.bind(stats); + this.isCharacterDevice = stats.isCharacterDevice.bind(stats); + this.isDirectory = stats.isDirectory.bind(stats); + this.isFIFO = stats.isFIFO.bind(stats); + this.isFile = stats.isFile.bind(stats); + this.isSocket = stats.isSocket.bind(stats); + this.isSymbolicLink = stats.isSymbolicLink.bind(stats); + } +} +function createDirentFromStats(name, stats) { + return new DirentFromStats(name, stats); +} +exports.createDirentFromStats = createDirentFromStats; diff --git a/node_modules/fast-glob/out/utils/index.d.ts b/node_modules/fast-glob/out/utils/index.d.ts new file mode 100644 index 00000000..f634cad0 --- /dev/null +++ b/node_modules/fast-glob/out/utils/index.d.ts @@ -0,0 +1,8 @@ +import * as array from './array'; +import * as errno from './errno'; +import * as fs from './fs'; +import * as path from './path'; +import * as pattern from './pattern'; +import * as stream from './stream'; +import * as string from './string'; +export { array, errno, fs, path, pattern, stream, string }; diff --git a/node_modules/fast-glob/out/utils/index.js b/node_modules/fast-glob/out/utils/index.js new file mode 100644 index 00000000..0f92c166 --- /dev/null +++ b/node_modules/fast-glob/out/utils/index.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.string = exports.stream = exports.pattern = exports.path = exports.fs = exports.errno = exports.array = void 0; +const array = require("./array"); +exports.array = array; +const errno = require("./errno"); +exports.errno = errno; +const fs = require("./fs"); +exports.fs = fs; +const path = require("./path"); +exports.path = path; +const pattern = require("./pattern"); +exports.pattern = pattern; +const stream = require("./stream"); +exports.stream = stream; +const string = require("./string"); +exports.string = string; diff --git a/node_modules/fast-glob/out/utils/path.d.ts b/node_modules/fast-glob/out/utils/path.d.ts new file mode 100644 index 00000000..9606d8b7 --- /dev/null +++ b/node_modules/fast-glob/out/utils/path.d.ts @@ -0,0 +1,8 @@ +import { Pattern } from '../types'; +/** + * Designed to work only with simple paths: `dir\\file`. + */ +export declare function unixify(filepath: string): string; +export declare function makeAbsolute(cwd: string, filepath: string): string; +export declare function escape(pattern: Pattern): Pattern; +export declare function removeLeadingDotSegment(entry: string): string; diff --git a/node_modules/fast-glob/out/utils/path.js b/node_modules/fast-glob/out/utils/path.js new file mode 100644 index 00000000..25440324 --- /dev/null +++ b/node_modules/fast-glob/out/utils/path.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.removeLeadingDotSegment = exports.escape = exports.makeAbsolute = exports.unixify = void 0; +const path = require("path"); +const LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2; // ./ or .\\ +const UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g; +/** + * Designed to work only with simple paths: `dir\\file`. + */ +function unixify(filepath) { + return filepath.replace(/\\/g, '/'); +} +exports.unixify = unixify; +function makeAbsolute(cwd, filepath) { + return path.resolve(cwd, filepath); +} +exports.makeAbsolute = makeAbsolute; +function escape(pattern) { + return pattern.replace(UNESCAPED_GLOB_SYMBOLS_RE, '\\$2'); +} +exports.escape = escape; +function removeLeadingDotSegment(entry) { + // We do not use `startsWith` because this is 10x slower than current implementation for some cases. + // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with + if (entry.charAt(0) === '.') { + const secondCharactery = entry.charAt(1); + if (secondCharactery === '/' || secondCharactery === '\\') { + return entry.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT); + } + } + return entry; +} +exports.removeLeadingDotSegment = removeLeadingDotSegment; diff --git a/node_modules/fast-glob/out/utils/pattern.d.ts b/node_modules/fast-glob/out/utils/pattern.d.ts new file mode 100644 index 00000000..dbf17b1f --- /dev/null +++ b/node_modules/fast-glob/out/utils/pattern.d.ts @@ -0,0 +1,42 @@ +import { MicromatchOptions, Pattern, PatternRe } from '../types'; +declare type PatternTypeOptions = { + braceExpansion?: boolean; + caseSensitiveMatch?: boolean; + extglob?: boolean; +}; +export declare function isStaticPattern(pattern: Pattern, options?: PatternTypeOptions): boolean; +export declare function isDynamicPattern(pattern: Pattern, options?: PatternTypeOptions): boolean; +export declare function convertToPositivePattern(pattern: Pattern): Pattern; +export declare function convertToNegativePattern(pattern: Pattern): Pattern; +export declare function isNegativePattern(pattern: Pattern): boolean; +export declare function isPositivePattern(pattern: Pattern): boolean; +export declare function getNegativePatterns(patterns: Pattern[]): Pattern[]; +export declare function getPositivePatterns(patterns: Pattern[]): Pattern[]; +/** + * Returns patterns that can be applied inside the current directory. + * + * @example + * // ['./*', '*', 'a/*'] + * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*']) + */ +export declare function getPatternsInsideCurrentDirectory(patterns: Pattern[]): Pattern[]; +/** + * Returns patterns to be expanded relative to (outside) the current directory. + * + * @example + * // ['../*', './../*'] + * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*']) + */ +export declare function getPatternsOutsideCurrentDirectory(patterns: Pattern[]): Pattern[]; +export declare function isPatternRelatedToParentDirectory(pattern: Pattern): boolean; +export declare function getBaseDirectory(pattern: Pattern): string; +export declare function hasGlobStar(pattern: Pattern): boolean; +export declare function endsWithSlashGlobStar(pattern: Pattern): boolean; +export declare function isAffectDepthOfReadingPattern(pattern: Pattern): boolean; +export declare function expandPatternsWithBraceExpansion(patterns: Pattern[]): Pattern[]; +export declare function expandBraceExpansion(pattern: Pattern): Pattern[]; +export declare function getPatternParts(pattern: Pattern, options: MicromatchOptions): Pattern[]; +export declare function makeRe(pattern: Pattern, options: MicromatchOptions): PatternRe; +export declare function convertPatternsToRe(patterns: Pattern[], options: MicromatchOptions): PatternRe[]; +export declare function matchAny(entry: string, patternsRe: PatternRe[]): boolean; +export {}; diff --git a/node_modules/fast-glob/out/utils/pattern.js b/node_modules/fast-glob/out/utils/pattern.js new file mode 100644 index 00000000..9c97e160 --- /dev/null +++ b/node_modules/fast-glob/out/utils/pattern.js @@ -0,0 +1,169 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.matchAny = exports.convertPatternsToRe = exports.makeRe = exports.getPatternParts = exports.expandBraceExpansion = exports.expandPatternsWithBraceExpansion = exports.isAffectDepthOfReadingPattern = exports.endsWithSlashGlobStar = exports.hasGlobStar = exports.getBaseDirectory = exports.isPatternRelatedToParentDirectory = exports.getPatternsOutsideCurrentDirectory = exports.getPatternsInsideCurrentDirectory = exports.getPositivePatterns = exports.getNegativePatterns = exports.isPositivePattern = exports.isNegativePattern = exports.convertToNegativePattern = exports.convertToPositivePattern = exports.isDynamicPattern = exports.isStaticPattern = void 0; +const path = require("path"); +const globParent = require("glob-parent"); +const micromatch = require("micromatch"); +const GLOBSTAR = '**'; +const ESCAPE_SYMBOL = '\\'; +const COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/; +const REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[[^[]*]/; +const REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\([^(]*\|[^|]*\)/; +const GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\([^(]*\)/; +const BRACE_EXPANSION_SEPARATORS_RE = /,|\.\./; +function isStaticPattern(pattern, options = {}) { + return !isDynamicPattern(pattern, options); +} +exports.isStaticPattern = isStaticPattern; +function isDynamicPattern(pattern, options = {}) { + /** + * A special case with an empty string is necessary for matching patterns that start with a forward slash. + * An empty string cannot be a dynamic pattern. + * For example, the pattern `/lib/*` will be spread into parts: '', 'lib', '*'. + */ + if (pattern === '') { + return false; + } + /** + * When the `caseSensitiveMatch` option is disabled, all patterns must be marked as dynamic, because we cannot check + * filepath directly (without read directory). + */ + if (options.caseSensitiveMatch === false || pattern.includes(ESCAPE_SYMBOL)) { + return true; + } + if (COMMON_GLOB_SYMBOLS_RE.test(pattern) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern) || REGEX_GROUP_SYMBOLS_RE.test(pattern)) { + return true; + } + if (options.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern)) { + return true; + } + if (options.braceExpansion !== false && hasBraceExpansion(pattern)) { + return true; + } + return false; +} +exports.isDynamicPattern = isDynamicPattern; +function hasBraceExpansion(pattern) { + const openingBraceIndex = pattern.indexOf('{'); + if (openingBraceIndex === -1) { + return false; + } + const closingBraceIndex = pattern.indexOf('}', openingBraceIndex + 1); + if (closingBraceIndex === -1) { + return false; + } + const braceContent = pattern.slice(openingBraceIndex, closingBraceIndex); + return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent); +} +function convertToPositivePattern(pattern) { + return isNegativePattern(pattern) ? pattern.slice(1) : pattern; +} +exports.convertToPositivePattern = convertToPositivePattern; +function convertToNegativePattern(pattern) { + return '!' + pattern; +} +exports.convertToNegativePattern = convertToNegativePattern; +function isNegativePattern(pattern) { + return pattern.startsWith('!') && pattern[1] !== '('; +} +exports.isNegativePattern = isNegativePattern; +function isPositivePattern(pattern) { + return !isNegativePattern(pattern); +} +exports.isPositivePattern = isPositivePattern; +function getNegativePatterns(patterns) { + return patterns.filter(isNegativePattern); +} +exports.getNegativePatterns = getNegativePatterns; +function getPositivePatterns(patterns) { + return patterns.filter(isPositivePattern); +} +exports.getPositivePatterns = getPositivePatterns; +/** + * Returns patterns that can be applied inside the current directory. + * + * @example + * // ['./*', '*', 'a/*'] + * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*']) + */ +function getPatternsInsideCurrentDirectory(patterns) { + return patterns.filter((pattern) => !isPatternRelatedToParentDirectory(pattern)); +} +exports.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory; +/** + * Returns patterns to be expanded relative to (outside) the current directory. + * + * @example + * // ['../*', './../*'] + * getPatternsInsideCurrentDirectory(['./*', '*', 'a/*', '../*', './../*']) + */ +function getPatternsOutsideCurrentDirectory(patterns) { + return patterns.filter(isPatternRelatedToParentDirectory); +} +exports.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory; +function isPatternRelatedToParentDirectory(pattern) { + return pattern.startsWith('..') || pattern.startsWith('./..'); +} +exports.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory; +function getBaseDirectory(pattern) { + return globParent(pattern, { flipBackslashes: false }); +} +exports.getBaseDirectory = getBaseDirectory; +function hasGlobStar(pattern) { + return pattern.includes(GLOBSTAR); +} +exports.hasGlobStar = hasGlobStar; +function endsWithSlashGlobStar(pattern) { + return pattern.endsWith('/' + GLOBSTAR); +} +exports.endsWithSlashGlobStar = endsWithSlashGlobStar; +function isAffectDepthOfReadingPattern(pattern) { + const basename = path.basename(pattern); + return endsWithSlashGlobStar(pattern) || isStaticPattern(basename); +} +exports.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern; +function expandPatternsWithBraceExpansion(patterns) { + return patterns.reduce((collection, pattern) => { + return collection.concat(expandBraceExpansion(pattern)); + }, []); +} +exports.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion; +function expandBraceExpansion(pattern) { + return micromatch.braces(pattern, { + expand: true, + nodupes: true + }); +} +exports.expandBraceExpansion = expandBraceExpansion; +function getPatternParts(pattern, options) { + let { parts } = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { parts: true })); + /** + * The scan method returns an empty array in some cases. + * See micromatch/picomatch#58 for more details. + */ + if (parts.length === 0) { + parts = [pattern]; + } + /** + * The scan method does not return an empty part for the pattern with a forward slash. + * This is another part of micromatch/picomatch#58. + */ + if (parts[0].startsWith('/')) { + parts[0] = parts[0].slice(1); + parts.unshift(''); + } + return parts; +} +exports.getPatternParts = getPatternParts; +function makeRe(pattern, options) { + return micromatch.makeRe(pattern, options); +} +exports.makeRe = makeRe; +function convertPatternsToRe(patterns, options) { + return patterns.map((pattern) => makeRe(pattern, options)); +} +exports.convertPatternsToRe = convertPatternsToRe; +function matchAny(entry, patternsRe) { + return patternsRe.some((patternRe) => patternRe.test(entry)); +} +exports.matchAny = matchAny; diff --git a/node_modules/fast-glob/out/utils/stream.d.ts b/node_modules/fast-glob/out/utils/stream.d.ts new file mode 100644 index 00000000..aafacefa --- /dev/null +++ b/node_modules/fast-glob/out/utils/stream.d.ts @@ -0,0 +1,3 @@ +/// +import { Readable } from 'stream'; +export declare function merge(streams: Readable[]): NodeJS.ReadableStream; diff --git a/node_modules/fast-glob/out/utils/stream.js b/node_modules/fast-glob/out/utils/stream.js new file mode 100644 index 00000000..b32028ce --- /dev/null +++ b/node_modules/fast-glob/out/utils/stream.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.merge = void 0; +const merge2 = require("merge2"); +function merge(streams) { + const mergedStream = merge2(streams); + streams.forEach((stream) => { + stream.once('error', (error) => mergedStream.emit('error', error)); + }); + mergedStream.once('close', () => propagateCloseEventToSources(streams)); + mergedStream.once('end', () => propagateCloseEventToSources(streams)); + return mergedStream; +} +exports.merge = merge; +function propagateCloseEventToSources(streams) { + streams.forEach((stream) => stream.emit('close')); +} diff --git a/node_modules/fast-glob/out/utils/string.d.ts b/node_modules/fast-glob/out/utils/string.d.ts new file mode 100644 index 00000000..c8847356 --- /dev/null +++ b/node_modules/fast-glob/out/utils/string.d.ts @@ -0,0 +1,2 @@ +export declare function isString(input: unknown): input is string; +export declare function isEmpty(input: string): boolean; diff --git a/node_modules/fast-glob/out/utils/string.js b/node_modules/fast-glob/out/utils/string.js new file mode 100644 index 00000000..76e7ea54 --- /dev/null +++ b/node_modules/fast-glob/out/utils/string.js @@ -0,0 +1,11 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isEmpty = exports.isString = void 0; +function isString(input) { + return typeof input === 'string'; +} +exports.isString = isString; +function isEmpty(input) { + return input === ''; +} +exports.isEmpty = isEmpty; diff --git a/node_modules/fast-glob/package.json b/node_modules/fast-glob/package.json new file mode 100644 index 00000000..c917469a --- /dev/null +++ b/node_modules/fast-glob/package.json @@ -0,0 +1,94 @@ +{ + "name": "fast-glob", + "version": "3.2.11", + "description": "It's a very fast and efficient glob library for Node.js", + "license": "MIT", + "repository": "mrmlnc/fast-glob", + "author": { + "name": "Denis Malinochkin", + "url": "https://mrmlnc.com" + }, + "engines": { + "node": ">=8.6.0" + }, + "main": "out/index.js", + "typings": "out/index.d.ts", + "files": [ + "out", + "!out/{benchmark,tests}", + "!out/**/*.map", + "!out/**/*.spec.*" + ], + "keywords": [ + "glob", + "patterns", + "fast", + "implementation" + ], + "devDependencies": { + "@nodelib/fs.macchiato": "^1.0.1", + "@types/compute-stdev": "^1.0.0", + "@types/easy-table": "^0.0.32", + "@types/glob": "^7.1.1", + "@types/glob-parent": "^5.1.0", + "@types/is-ci": "^2.0.0", + "@types/merge2": "^1.1.4", + "@types/micromatch": "^4.0.0", + "@types/minimist": "^1.2.0", + "@types/mocha": "^5.2.7", + "@types/node": "^12.7.8", + "@types/rimraf": "^2.0.2", + "@types/sinon": "^7.5.0", + "compute-stdev": "^1.0.0", + "easy-table": "^1.1.1", + "eslint": "^6.5.1", + "eslint-config-mrmlnc": "^1.1.0", + "execa": "^2.0.4", + "fast-glob": "^3.0.4", + "fdir": "^5.1.0", + "glob": "^7.1.4", + "is-ci": "^2.0.0", + "log-update": "^4.0.0", + "minimist": "^1.2.0", + "mocha": "^6.2.1", + "rimraf": "^3.0.0", + "sinon": "^7.5.0", + "tiny-glob": "^0.2.6", + "typescript": "^3.6.3" + }, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "scripts": { + "clean": "rimraf out", + "lint": "eslint \"src/**/*.ts\" --cache", + "compile": "tsc", + "test": "mocha \"out/**/*.spec.js\" -s 0", + "smoke": "mocha \"out/**/*.smoke.js\" -s 0", + "smoke:sync": "mocha \"out/**/*.smoke.js\" -s 0 --grep \"\\(sync\\)\"", + "smoke:async": "mocha \"out/**/*.smoke.js\" -s 0 --grep \"\\(async\\)\"", + "smoke:stream": "mocha \"out/**/*.smoke.js\" -s 0 --grep \"\\(stream\\)\"", + "build": "npm run clean && npm run compile && npm run lint && npm test", + "watch": "npm run clean && npm run compile -- --sourceMap --watch", + "bench": "npm run bench-async && npm run bench-stream && npm run bench-sync", + "bench-async": "npm run bench-async-flatten && npm run bench-async-deep && npm run bench-async-partial-flatten && npm run bench-async-partial-deep", + "bench-stream": "npm run bench-stream-flatten && npm run bench-stream-deep && npm run bench-stream-partial-flatten && npm run bench-stream-partial-deep", + "bench-sync": "npm run bench-sync-flatten && npm run bench-sync-deep && npm run bench-sync-partial-flatten && npm run bench-sync-partial-deep", + "bench-async-flatten": "node ./out/benchmark --mode async --pattern \"*\"", + "bench-async-deep": "node ./out/benchmark --mode async --pattern \"**\"", + "bench-async-partial-flatten": "node ./out/benchmark --mode async --pattern \"{fixtures,out}/{first,second}/*\"", + "bench-async-partial-deep": "node ./out/benchmark --mode async --pattern \"{fixtures,out}/**\"", + "bench-stream-flatten": "node ./out/benchmark --mode stream --pattern \"*\"", + "bench-stream-deep": "node ./out/benchmark --mode stream --pattern \"**\"", + "bench-stream-partial-flatten": "node ./out/benchmark --mode stream --pattern \"{fixtures,out}/{first,second}/*\"", + "bench-stream-partial-deep": "node ./out/benchmark --mode stream --pattern \"{fixtures,out}/**\"", + "bench-sync-flatten": "node ./out/benchmark --mode sync --pattern \"*\"", + "bench-sync-deep": "node ./out/benchmark --mode sync --pattern \"**\"", + "bench-sync-partial-flatten": "node ./out/benchmark --mode sync --pattern \"{fixtures,out}/{first,second}/*\"", + "bench-sync-partial-deep": "node ./out/benchmark --mode sync --pattern \"{fixtures,out}/**\"" + } +} diff --git a/node_modules/fastq/.github/dependabot.yml b/node_modules/fastq/.github/dependabot.yml new file mode 100644 index 00000000..7e7cbe1b --- /dev/null +++ b/node_modules/fastq/.github/dependabot.yml @@ -0,0 +1,11 @@ +version: 2 +updates: +- package-ecosystem: npm + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 10 + ignore: + - dependency-name: standard + versions: + - 16.0.3 diff --git a/node_modules/fastq/.github/workflows/ci.yml b/node_modules/fastq/.github/workflows/ci.yml new file mode 100644 index 00000000..50e66b5e --- /dev/null +++ b/node_modules/fastq/.github/workflows/ci.yml @@ -0,0 +1,50 @@ +name: ci + +on: [push, pull_request] + +jobs: + legacy: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: ['0.10', '0.12', 4.x, 6.x, 8.x] + + steps: + - uses: actions/checkout@v2 + + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Install + run: | + npm install --production && npm install tape + + - name: Run tests + run: | + npm run legacy + + test: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [10.x, 12.x, 13.x, 14.x, 15.x, 16.x] + + steps: + - uses: actions/checkout@v2 + + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Install + run: | + npm install + + - name: Run tests + run: | + npm run test diff --git a/node_modules/fastq/LICENSE b/node_modules/fastq/LICENSE new file mode 100644 index 00000000..27c7bb46 --- /dev/null +++ b/node_modules/fastq/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2015-2020, Matteo Collina + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/fastq/README.md b/node_modules/fastq/README.md new file mode 100644 index 00000000..9a908dee --- /dev/null +++ b/node_modules/fastq/README.md @@ -0,0 +1,309 @@ +# fastq + +![ci][ci-url] +[![npm version][npm-badge]][npm-url] +[![Dependency Status][david-badge]][david-url] + +Fast, in memory work queue. + +Benchmarks (1 million tasks): + +* setImmediate: 812ms +* fastq: 854ms +* async.queue: 1298ms +* neoAsync.queue: 1249ms + +Obtained on node 12.16.1, on a dedicated server. + +If you need zero-overhead series function call, check out +[fastseries](http://npm.im/fastseries). For zero-overhead parallel +function call, check out [fastparallel](http://npm.im/fastparallel). + +[![js-standard-style](https://raw.githubusercontent.com/feross/standard/master/badge.png)](https://github.com/feross/standard) + + * Installation + * Usage + * API + * Licence & copyright + +## Install + +`npm i fastq --save` + +## Usage (callback API) + +```js +'use strict' + +const queue = require('fastq')(worker, 1) + +queue.push(42, function (err, result) { + if (err) { throw err } + console.log('the result is', result) +}) + +function worker (arg, cb) { + cb(null, arg * 2) +} +``` + +## Usage (promise API) + +```js +const queue = require('fastq').promise(worker, 1) + +async function worker (arg) { + return arg * 2 +} + +async function run () { + const result = await queue.push(42) + console.log('the result is', result) +} + +run() +``` + +### Setting "this" + +```js +'use strict' + +const that = { hello: 'world' } +const queue = require('fastq')(that, worker, 1) + +queue.push(42, function (err, result) { + if (err) { throw err } + console.log(this) + console.log('the result is', result) +}) + +function worker (arg, cb) { + console.log(this) + cb(null, arg * 2) +} +``` + +### Using with TypeScript (callback API) + +```ts +'use strict' + +import * as fastq from "fastq"; +import type { queue, done } from "fastq"; + +type Task = { + id: number +} + +const q: queue = fastq(worker, 1) + +q.push({ id: 42}) + +function worker (arg: Task, cb: done) { + console.log(arg.id) + cb(null) +} +``` + +### Using with TypeScript (promise API) + +```ts +'use strict' + +import * as fastq from "fastq"; +import type { queueAsPromised } from "fastq"; + +type Task = { + id: number +} + +const q: queueAsPromised = fastq.promise(asyncWorker, 1) + +q.push({ id: 42}).catch((err) => console.error(err)) + +async function asyncWorker (arg: Task): Promise { + // No need for a try-catch block, fastq handles errors automatically + console.log(arg.id) +} +``` + +## API + +* fastqueue() +* queue#push() +* queue#unshift() +* queue#pause() +* queue#resume() +* queue#idle() +* queue#length() +* queue#getQueue() +* queue#kill() +* queue#killAndDrain() +* queue#error() +* queue#concurrency +* queue#drain +* queue#empty +* queue#saturated +* fastqueue.promise() + +------------------------------------------------------- + +### fastqueue([that], worker, concurrency) + +Creates a new queue. + +Arguments: + +* `that`, optional context of the `worker` function. +* `worker`, worker function, it would be called with `that` as `this`, + if that is specified. +* `concurrency`, number of concurrent tasks that could be executed in + parallel. + +------------------------------------------------------- + +### queue.push(task, done) + +Add a task at the end of the queue. `done(err, result)` will be called +when the task was processed. + +------------------------------------------------------- + +### queue.unshift(task, done) + +Add a task at the beginning of the queue. `done(err, result)` will be called +when the task was processed. + +------------------------------------------------------- + +### queue.pause() + +Pause the processing of tasks. Currently worked tasks are not +stopped. + +------------------------------------------------------- + +### queue.resume() + +Resume the processing of tasks. + +------------------------------------------------------- + +### queue.idle() + +Returns `false` if there are tasks being processed or waiting to be processed. +`true` otherwise. + +------------------------------------------------------- + +### queue.length() + +Returns the number of tasks waiting to be processed (in the queue). + +------------------------------------------------------- + +### queue.getQueue() + +Returns all the tasks be processed (in the queue). Returns empty array when there are no tasks + +------------------------------------------------------- + +### queue.kill() + +Removes all tasks waiting to be processed, and reset `drain` to an empty +function. + +------------------------------------------------------- + +### queue.killAndDrain() + +Same than `kill` but the `drain` function will be called before reset to empty. + +------------------------------------------------------- + +### queue.error(handler) + +Set a global error handler. `handler(err, task)` will be called +when any of the tasks return an error. + +------------------------------------------------------- + +### queue.concurrency + +Property that returns the number of concurrent tasks that could be executed in +parallel. It can be altered at runtime. + +------------------------------------------------------- + +### queue.drain + +Function that will be called when the last +item from the queue has been processed by a worker. +It can be altered at runtime. + +------------------------------------------------------- + +### queue.empty + +Function that will be called when the last +item from the queue has been assigned to a worker. +It can be altered at runtime. + +------------------------------------------------------- + +### queue.saturated + +Function that will be called when the queue hits the concurrency +limit. +It can be altered at runtime. + +------------------------------------------------------- + +### fastqueue.promise([that], worker(arg), concurrency) + +Creates a new queue with `Promise` apis. It also offers all the methods +and properties of the object returned by [`fastqueue`](#fastqueue) with the modified +[`push`](#pushPromise) and [`unshift`](#unshiftPromise) methods. + +Node v10+ is required to use the promisified version. + +Arguments: +* `that`, optional context of the `worker` function. +* `worker`, worker function, it would be called with `that` as `this`, + if that is specified. It MUST return a `Promise`. +* `concurrency`, number of concurrent tasks that could be executed in + parallel. + + +#### queue.push(task) => Promise + +Add a task at the end of the queue. The returned `Promise` will be fulfilled (rejected) +when the task is completed successfully (unsuccessfully). + +This promise could be ignored as it will not lead to a `'unhandledRejection'`. + + +#### queue.unshift(task) => Promise + +Add a task at the beginning of the queue. The returned `Promise` will be fulfilled (rejected) +when the task is completed successfully (unsuccessfully). + +This promise could be ignored as it will not lead to a `'unhandledRejection'`. + + +#### queue.drained() => Promise + +Wait for the queue to be drained. The returned `Promise` will be resolved when all tasks in the queue have been processed by a worker. + +This promise could be ignored as it will not lead to a `'unhandledRejection'`. + +## License + +ISC + +[ci-url]: https://github.com/mcollina/fastq/workflows/ci/badge.svg +[npm-badge]: https://badge.fury.io/js/fastq.svg +[npm-url]: https://badge.fury.io/js/fastq +[david-badge]: https://david-dm.org/mcollina/fastq.svg +[david-url]: https://david-dm.org/mcollina/fastq diff --git a/node_modules/fastq/bench.js b/node_modules/fastq/bench.js new file mode 100644 index 00000000..4eaa829f --- /dev/null +++ b/node_modules/fastq/bench.js @@ -0,0 +1,66 @@ +'use strict' + +const max = 1000000 +const fastqueue = require('./')(worker, 1) +const { promisify } = require('util') +const immediate = promisify(setImmediate) +const qPromise = require('./').promise(immediate, 1) +const async = require('async') +const neo = require('neo-async') +const asyncqueue = async.queue(worker, 1) +const neoqueue = neo.queue(worker, 1) + +function bench (func, done) { + const key = max + '*' + func.name + let count = -1 + + console.time(key) + end() + + function end () { + if (++count < max) { + func(end) + } else { + console.timeEnd(key) + if (done) { + done() + } + } + } +} + +function benchFastQ (done) { + fastqueue.push(42, done) +} + +function benchAsyncQueue (done) { + asyncqueue.push(42, done) +} + +function benchNeoQueue (done) { + neoqueue.push(42, done) +} + +function worker (arg, cb) { + setImmediate(cb) +} + +function benchSetImmediate (cb) { + worker(42, cb) +} + +function benchFastQPromise (done) { + qPromise.push(42).then(function () { done() }, done) +} + +function runBench (done) { + async.eachSeries([ + benchSetImmediate, + benchFastQ, + benchNeoQueue, + benchAsyncQueue, + benchFastQPromise + ], bench, done) +} + +runBench(runBench) diff --git a/node_modules/fastq/example.js b/node_modules/fastq/example.js new file mode 100644 index 00000000..665fdc84 --- /dev/null +++ b/node_modules/fastq/example.js @@ -0,0 +1,14 @@ +'use strict' + +/* eslint-disable no-var */ + +var queue = require('./')(worker, 1) + +queue.push(42, function (err, result) { + if (err) { throw err } + console.log('the result is', result) +}) + +function worker (arg, cb) { + cb(null, 42 * 2) +} diff --git a/node_modules/fastq/example.mjs b/node_modules/fastq/example.mjs new file mode 100644 index 00000000..81be789a --- /dev/null +++ b/node_modules/fastq/example.mjs @@ -0,0 +1,11 @@ +import { promise as queueAsPromised } from './queue.js' + +/* eslint-disable */ + +const queue = queueAsPromised(worker, 1) + +console.log('the result is', await queue.push(42)) + +async function worker (arg) { + return 42 * 2 +} diff --git a/node_modules/fastq/index.d.ts b/node_modules/fastq/index.d.ts new file mode 100644 index 00000000..ec5ed5c9 --- /dev/null +++ b/node_modules/fastq/index.d.ts @@ -0,0 +1,37 @@ +declare function fastq(context: C, worker: fastq.worker, concurrency: number): fastq.queue +declare function fastq(worker: fastq.worker, concurrency: number): fastq.queue + +declare namespace fastq { + type worker = (this: C, task: T, cb: fastq.done) => void + type asyncWorker = (this: C, task: T) => Promise + type done = (err: Error | null, result?: R) => void + type errorHandler = (err: Error, task: T) => void + + interface queue { + push(task: T, done?: done): void + unshift(task: T, done?: done): void + pause(): any + resume(): any + idle(): boolean + length(): number + getQueue(): T[] + kill(): any + killAndDrain(): any + error(handler: errorHandler): void + concurrency: number + drain(): any + empty: () => void + saturated: () => void + } + + interface queueAsPromised extends queue { + push(task: T): Promise + unshift(task: T): Promise + drained(): Promise + } + + function promise(context: C, worker: fastq.asyncWorker, concurrency: number): fastq.queueAsPromised + function promise(worker: fastq.asyncWorker, concurrency: number): fastq.queueAsPromised +} + +export = fastq diff --git a/node_modules/fastq/package.json b/node_modules/fastq/package.json new file mode 100644 index 00000000..98370317 --- /dev/null +++ b/node_modules/fastq/package.json @@ -0,0 +1,52 @@ +{ + "name": "fastq", + "version": "1.13.0", + "description": "Fast, in memory work queue", + "main": "queue.js", + "scripts": { + "lint": "standard --verbose | snazzy", + "unit": "nyc --lines 100 --branches 100 --functions 100 --check-coverage --reporter=text tape test/test.js test/promise.js", + "coverage": "nyc --reporter=html --reporter=cobertura --reporter=text tape test/test.js test/promise.js", + "test:report": "npm run lint && npm run unit:report", + "test": "npm run lint && npm run unit && npm run typescript", + "typescript": "tsc --project ./test/tsconfig.json", + "legacy": "tape test/test.js" + }, + "pre-commit": [ + "test" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/mcollina/fastq.git" + }, + "keywords": [ + "fast", + "queue", + "async", + "worker" + ], + "author": "Matteo Collina ", + "license": "ISC", + "bugs": { + "url": "https://github.com/mcollina/fastq/issues" + }, + "homepage": "https://github.com/mcollina/fastq#readme", + "devDependencies": { + "async": "^3.1.0", + "neo-async": "^2.6.1", + "nyc": "^15.0.0", + "pre-commit": "^1.2.2", + "snazzy": "^9.0.0", + "standard": "^16.0.0", + "tape": "^5.0.0", + "typescript": "^4.0.2" + }, + "dependencies": { + "reusify": "^1.0.4" + }, + "standard": { + "ignore": [ + "example.mjs" + ] + } +} diff --git a/node_modules/fastq/queue.js b/node_modules/fastq/queue.js new file mode 100644 index 00000000..84e7bbdf --- /dev/null +++ b/node_modules/fastq/queue.js @@ -0,0 +1,283 @@ +'use strict' + +/* eslint-disable no-var */ + +var reusify = require('reusify') + +function fastqueue (context, worker, concurrency) { + if (typeof context === 'function') { + concurrency = worker + worker = context + context = null + } + + if (concurrency < 1) { + throw new Error('fastqueue concurrency must be greater than 1') + } + + var cache = reusify(Task) + var queueHead = null + var queueTail = null + var _running = 0 + var errorHandler = null + + var self = { + push: push, + drain: noop, + saturated: noop, + pause: pause, + paused: false, + concurrency: concurrency, + running: running, + resume: resume, + idle: idle, + length: length, + getQueue: getQueue, + unshift: unshift, + empty: noop, + kill: kill, + killAndDrain: killAndDrain, + error: error + } + + return self + + function running () { + return _running + } + + function pause () { + self.paused = true + } + + function length () { + var current = queueHead + var counter = 0 + + while (current) { + current = current.next + counter++ + } + + return counter + } + + function getQueue () { + var current = queueHead + var tasks = [] + + while (current) { + tasks.push(current.value) + current = current.next + } + + return tasks + } + + function resume () { + if (!self.paused) return + self.paused = false + for (var i = 0; i < self.concurrency; i++) { + _running++ + release() + } + } + + function idle () { + return _running === 0 && self.length() === 0 + } + + function push (value, done) { + var current = cache.get() + + current.context = context + current.release = release + current.value = value + current.callback = done || noop + current.errorHandler = errorHandler + + if (_running === self.concurrency || self.paused) { + if (queueTail) { + queueTail.next = current + queueTail = current + } else { + queueHead = current + queueTail = current + self.saturated() + } + } else { + _running++ + worker.call(context, current.value, current.worked) + } + } + + function unshift (value, done) { + var current = cache.get() + + current.context = context + current.release = release + current.value = value + current.callback = done || noop + + if (_running === self.concurrency || self.paused) { + if (queueHead) { + current.next = queueHead + queueHead = current + } else { + queueHead = current + queueTail = current + self.saturated() + } + } else { + _running++ + worker.call(context, current.value, current.worked) + } + } + + function release (holder) { + if (holder) { + cache.release(holder) + } + var next = queueHead + if (next) { + if (!self.paused) { + if (queueTail === queueHead) { + queueTail = null + } + queueHead = next.next + next.next = null + worker.call(context, next.value, next.worked) + if (queueTail === null) { + self.empty() + } + } else { + _running-- + } + } else if (--_running === 0) { + self.drain() + } + } + + function kill () { + queueHead = null + queueTail = null + self.drain = noop + } + + function killAndDrain () { + queueHead = null + queueTail = null + self.drain() + self.drain = noop + } + + function error (handler) { + errorHandler = handler + } +} + +function noop () {} + +function Task () { + this.value = null + this.callback = noop + this.next = null + this.release = noop + this.context = null + this.errorHandler = null + + var self = this + + this.worked = function worked (err, result) { + var callback = self.callback + var errorHandler = self.errorHandler + var val = self.value + self.value = null + self.callback = noop + if (self.errorHandler) { + errorHandler(err, val) + } + callback.call(self.context, err, result) + self.release(self) + } +} + +function queueAsPromised (context, worker, concurrency) { + if (typeof context === 'function') { + concurrency = worker + worker = context + context = null + } + + function asyncWrapper (arg, cb) { + worker.call(this, arg) + .then(function (res) { + cb(null, res) + }, cb) + } + + var queue = fastqueue(context, asyncWrapper, concurrency) + + var pushCb = queue.push + var unshiftCb = queue.unshift + + queue.push = push + queue.unshift = unshift + queue.drained = drained + + return queue + + function push (value) { + var p = new Promise(function (resolve, reject) { + pushCb(value, function (err, result) { + if (err) { + reject(err) + return + } + resolve(result) + }) + }) + + // Let's fork the promise chain to + // make the error bubble up to the user but + // not lead to a unhandledRejection + p.catch(noop) + + return p + } + + function unshift (value) { + var p = new Promise(function (resolve, reject) { + unshiftCb(value, function (err, result) { + if (err) { + reject(err) + return + } + resolve(result) + }) + }) + + // Let's fork the promise chain to + // make the error bubble up to the user but + // not lead to a unhandledRejection + p.catch(noop) + + return p + } + + function drained () { + var previousDrain = queue.drain + + var p = new Promise(function (resolve) { + queue.drain = function () { + previousDrain() + resolve() + } + }) + + return p + } +} + +module.exports = fastqueue +module.exports.promise = queueAsPromised diff --git a/node_modules/fastq/test/example.ts b/node_modules/fastq/test/example.ts new file mode 100644 index 00000000..c454e9d0 --- /dev/null +++ b/node_modules/fastq/test/example.ts @@ -0,0 +1,81 @@ +import * as fastq from '../' +import { promise as queueAsPromised } from '../' + +// Basic example + +const queue = fastq(worker, 1) + +queue.push('world', (err, result) => { + if (err) throw err + console.log('the result is', result) +}) + +queue.push('push without cb') + +queue.concurrency + +queue.drain() + +queue.empty = () => undefined + +console.log('the queue tasks are', queue.getQueue()) + +queue.idle() + +queue.kill() + +queue.killAndDrain() + +queue.length + +queue.pause() + +queue.resume() + +queue.saturated = () => undefined + +queue.unshift('world', (err, result) => { + if (err) throw err + console.log('the result is', result) +}) + +queue.unshift('unshift without cb') + +function worker(task: any, cb: fastq.done) { + cb(null, 'hello ' + task) +} + +// Generics example + +interface GenericsContext { + base: number; +} + +const genericsQueue = fastq({ base: 6 }, genericsWorker, 1) + +genericsQueue.push(7, (err, done) => { + if (err) throw err + console.log('the result is', done) +}) + +genericsQueue.unshift(7, (err, done) => { + if (err) throw err + console.log('the result is', done) +}) + +function genericsWorker(this: GenericsContext, task: number, cb: fastq.done) { + cb(null, 'the meaning of life is ' + (this.base * task)) +} + +const queue2 = queueAsPromised(asyncWorker, 1) + +async function asyncWorker(task: any) { + return 'hello ' + task +} + +async function run () { + await queue.push(42) + await queue.unshift(42) +} + +run() diff --git a/node_modules/fastq/test/promise.js b/node_modules/fastq/test/promise.js new file mode 100644 index 00000000..6e123d61 --- /dev/null +++ b/node_modules/fastq/test/promise.js @@ -0,0 +1,221 @@ +'use strict' + +const test = require('tape') +const buildQueue = require('../').promise +const { promisify } = require('util') +const sleep = promisify(setTimeout) +const immediate = promisify(setImmediate) + +test('concurrency', function (t) { + t.plan(2) + t.throws(buildQueue.bind(null, worker, 0)) + t.doesNotThrow(buildQueue.bind(null, worker, 1)) + + async function worker (arg) { + return true + } +}) + +test('worker execution', async function (t) { + const queue = buildQueue(worker, 1) + + const result = await queue.push(42) + + t.equal(result, true, 'result matches') + + async function worker (arg) { + t.equal(arg, 42) + return true + } +}) + +test('limit', async function (t) { + const queue = buildQueue(worker, 1) + + const [res1, res2] = await Promise.all([queue.push(10), queue.push(0)]) + t.equal(res1, 10, 'the result matches') + t.equal(res2, 0, 'the result matches') + + async function worker (arg) { + await sleep(arg) + return arg + } +}) + +test('multiple executions', async function (t) { + const queue = buildQueue(worker, 1) + const toExec = [1, 2, 3, 4, 5] + const expected = ['a', 'b', 'c', 'd', 'e'] + let count = 0 + + await Promise.all(toExec.map(async function (task, i) { + const result = await queue.push(task) + t.equal(result, expected[i], 'the result matches') + })) + + async function worker (arg) { + t.equal(arg, toExec[count], 'arg matches') + return expected[count++] + } +}) + +test('drained', async function (t) { + const queue = buildQueue(worker, 2) + + const toExec = new Array(10).fill(10) + let count = 0 + + async function worker (arg) { + await sleep(arg) + count++ + } + + toExec.forEach(function (i) { + queue.push(i) + }) + + await queue.drained() + + t.equal(count, toExec.length) + + toExec.forEach(function (i) { + queue.push(i) + }) + + await queue.drained() + + t.equal(count, toExec.length * 2) +}) + +test('drained with exception should not throw', async function (t) { + const queue = buildQueue(worker, 2) + + const toExec = new Array(10).fill(10) + + async function worker () { + throw new Error('foo') + } + + toExec.forEach(function (i) { + queue.push(i) + }) + + await queue.drained() +}) + +test('drained with drain function', async function (t) { + let drainCalled = false + const queue = buildQueue(worker, 2) + + queue.drain = function () { + drainCalled = true + } + + const toExec = new Array(10).fill(10) + let count = 0 + + async function worker (arg) { + await sleep(arg) + count++ + } + + toExec.forEach(function () { + queue.push() + }) + + await queue.drained() + + t.equal(count, toExec.length) + t.equal(drainCalled, true) +}) + +test('set this', async function (t) { + t.plan(1) + const that = {} + const queue = buildQueue(that, worker, 1) + + await queue.push(42) + + async function worker (arg) { + t.equal(this, that, 'this matches') + } +}) + +test('unshift', async function (t) { + const queue = buildQueue(worker, 1) + const expected = [1, 2, 3, 4] + + await Promise.all([ + queue.push(1), + queue.push(4), + queue.unshift(3), + queue.unshift(2) + ]) + + t.is(expected.length, 0) + + async function worker (arg) { + t.equal(expected.shift(), arg, 'tasks come in order') + } +}) + +test('push with worker throwing error', async function (t) { + t.plan(5) + const q = buildQueue(async function (task, cb) { + throw new Error('test error') + }, 1) + q.error(function (err, task) { + t.ok(err instanceof Error, 'global error handler should catch the error') + t.match(err.message, /test error/, 'error message should be "test error"') + t.equal(task, 42, 'The task executed should be passed') + }) + try { + await q.push(42) + } catch (err) { + t.ok(err instanceof Error, 'push callback should catch the error') + t.match(err.message, /test error/, 'error message should be "test error"') + } +}) + +test('unshift with worker throwing error', async function (t) { + t.plan(2) + const q = buildQueue(async function (task, cb) { + throw new Error('test error') + }, 1) + try { + await q.unshift(42) + } catch (err) { + t.ok(err instanceof Error, 'push callback should catch the error') + t.match(err.message, /test error/, 'error message should be "test error"') + } +}) + +test('no unhandledRejection (push)', async function (t) { + function handleRejection () { + t.fail('unhandledRejection') + } + process.once('unhandledRejection', handleRejection) + const q = buildQueue(async function (task, cb) { + throw new Error('test error') + }, 1) + + q.push(42) + + await immediate() + process.removeListener('unhandledRejection', handleRejection) +}) + +test('no unhandledRejection (unshift)', async function (t) { + function handleRejection () { + t.fail('unhandledRejection') + } + process.once('unhandledRejection', handleRejection) + const q = buildQueue(async function (task, cb) { + throw new Error('test error') + }, 1) + + q.unshift(42) + + await immediate() + process.removeListener('unhandledRejection', handleRejection) +}) diff --git a/node_modules/fastq/test/test.js b/node_modules/fastq/test/test.js new file mode 100644 index 00000000..1cc78a56 --- /dev/null +++ b/node_modules/fastq/test/test.js @@ -0,0 +1,566 @@ +'use strict' + +/* eslint-disable no-var */ + +var test = require('tape') +var buildQueue = require('../') + +test('concurrency', function (t) { + t.plan(2) + t.throws(buildQueue.bind(null, worker, 0)) + t.doesNotThrow(buildQueue.bind(null, worker, 1)) + + function worker (arg, cb) { + cb(null, true) + } +}) + +test('worker execution', function (t) { + t.plan(3) + + var queue = buildQueue(worker, 1) + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + }) + + function worker (arg, cb) { + t.equal(arg, 42) + cb(null, true) + } +}) + +test('limit', function (t) { + t.plan(4) + + var expected = [10, 0] + var queue = buildQueue(worker, 1) + + queue.push(10, result) + queue.push(0, result) + + function result (err, arg) { + t.error(err, 'no error') + t.equal(arg, expected.shift(), 'the result matches') + } + + function worker (arg, cb) { + setTimeout(cb, arg, null, arg) + } +}) + +test('multiple executions', function (t) { + t.plan(15) + + var queue = buildQueue(worker, 1) + var toExec = [1, 2, 3, 4, 5] + var count = 0 + + toExec.forEach(function (task) { + queue.push(task, done) + }) + + function done (err, result) { + t.error(err, 'no error') + t.equal(result, toExec[count - 1], 'the result matches') + } + + function worker (arg, cb) { + t.equal(arg, toExec[count], 'arg matches') + count++ + setImmediate(cb, null, arg) + } +}) + +test('multiple executions, one after another', function (t) { + t.plan(15) + + var queue = buildQueue(worker, 1) + var toExec = [1, 2, 3, 4, 5] + var count = 0 + + queue.push(toExec[0], done) + + function done (err, result) { + t.error(err, 'no error') + t.equal(result, toExec[count - 1], 'the result matches') + if (count < toExec.length) { + queue.push(toExec[count], done) + } + } + + function worker (arg, cb) { + t.equal(arg, toExec[count], 'arg matches') + count++ + setImmediate(cb, null, arg) + } +}) + +test('set this', function (t) { + t.plan(3) + + var that = {} + var queue = buildQueue(that, worker, 1) + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(this, that, 'this matches') + }) + + function worker (arg, cb) { + t.equal(this, that, 'this matches') + cb(null, true) + } +}) + +test('drain', function (t) { + t.plan(4) + + var queue = buildQueue(worker, 1) + var worked = false + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + }) + + queue.drain = function () { + t.equal(true, worked, 'drained') + } + + function worker (arg, cb) { + t.equal(arg, 42) + worked = true + setImmediate(cb, null, true) + } +}) + +test('pause && resume', function (t) { + t.plan(7) + + var queue = buildQueue(worker, 1) + var worked = false + + t.notOk(queue.paused, 'it should not be paused') + + queue.pause() + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + }) + + t.notOk(worked, 'it should be paused') + t.ok(queue.paused, 'it should be paused') + + queue.resume() + queue.resume() // second resume is a no-op + + t.notOk(queue.paused, 'it should not be paused') + + function worker (arg, cb) { + t.equal(arg, 42) + worked = true + cb(null, true) + } +}) + +test('pause in flight && resume', function (t) { + t.plan(9) + + var queue = buildQueue(worker, 1) + var expected = [42, 24] + + t.notOk(queue.paused, 'it should not be paused') + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + t.ok(queue.paused, 'it should be paused') + process.nextTick(function () { queue.resume() }) + }) + + queue.push(24, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + t.notOk(queue.paused, 'it should not be paused') + }) + + queue.pause() + + function worker (arg, cb) { + t.equal(arg, expected.shift()) + process.nextTick(function () { cb(null, true) }) + } +}) + +test('altering concurrency', function (t) { + t.plan(7) + + var queue = buildQueue(worker, 1) + var count = 0 + + queue.pause() + + queue.push(24, workDone) + queue.push(24, workDone) + + queue.concurrency = 2 + + queue.resume() + + t.equal(queue.running(), 2, '2 jobs running') + + function workDone (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + } + + function worker (arg, cb) { + t.equal(0, count, 'works in parallel') + setImmediate(function () { + count++ + cb(null, true) + }) + } +}) + +test('idle()', function (t) { + t.plan(12) + + var queue = buildQueue(worker, 1) + + t.ok(queue.idle(), 'queue is idle') + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + t.notOk(queue.idle(), 'queue is not idle') + }) + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + // it will go idle after executing this function + setImmediate(function () { + t.ok(queue.idle(), 'queue is now idle') + }) + }) + + t.notOk(queue.idle(), 'queue is not idle') + + function worker (arg, cb) { + t.notOk(queue.idle(), 'queue is not idle') + t.equal(arg, 42) + setImmediate(cb, null, true) + } +}) + +test('saturated', function (t) { + t.plan(9) + + var queue = buildQueue(worker, 1) + var preworked = 0 + var worked = 0 + + queue.saturated = function () { + t.pass('saturated') + t.equal(preworked, 1, 'started 1 task') + t.equal(worked, 0, 'worked zero task') + } + + queue.push(42, done) + queue.push(42, done) + + function done (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + } + + function worker (arg, cb) { + t.equal(arg, 42) + preworked++ + setImmediate(function () { + worked++ + cb(null, true) + }) + } +}) + +test('length', function (t) { + t.plan(7) + + var queue = buildQueue(worker, 1) + + t.equal(queue.length(), 0, 'nothing waiting') + queue.push(42, done) + t.equal(queue.length(), 0, 'nothing waiting') + queue.push(42, done) + t.equal(queue.length(), 1, 'one task waiting') + queue.push(42, done) + t.equal(queue.length(), 2, 'two tasks waiting') + + function done (err, result) { + t.error(err, 'no error') + } + + function worker (arg, cb) { + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('getQueue', function (t) { + t.plan(10) + + var queue = buildQueue(worker, 1) + + t.equal(queue.getQueue().length, 0, 'nothing waiting') + queue.push(42, done) + t.equal(queue.getQueue().length, 0, 'nothing waiting') + queue.push(42, done) + t.equal(queue.getQueue().length, 1, 'one task waiting') + t.equal(queue.getQueue()[0], 42, 'should be equal') + queue.push(43, done) + t.equal(queue.getQueue().length, 2, 'two tasks waiting') + t.equal(queue.getQueue()[0], 42, 'should be equal') + t.equal(queue.getQueue()[1], 43, 'should be equal') + + function done (err, result) { + t.error(err, 'no error') + } + + function worker (arg, cb) { + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('unshift', function (t) { + t.plan(8) + + var queue = buildQueue(worker, 1) + var expected = [1, 2, 3, 4] + + queue.push(1, done) + queue.push(4, done) + queue.unshift(3, done) + queue.unshift(2, done) + + function done (err, result) { + t.error(err, 'no error') + } + + function worker (arg, cb) { + t.equal(expected.shift(), arg, 'tasks come in order') + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('unshift && empty', function (t) { + t.plan(2) + + var queue = buildQueue(worker, 1) + var completed = false + + queue.pause() + + queue.empty = function () { + t.notOk(completed, 'the task has not completed yet') + } + + queue.unshift(1, done) + + queue.resume() + + function done (err, result) { + completed = true + t.error(err, 'no error') + } + + function worker (arg, cb) { + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('push && empty', function (t) { + t.plan(2) + + var queue = buildQueue(worker, 1) + var completed = false + + queue.pause() + + queue.empty = function () { + t.notOk(completed, 'the task has not completed yet') + } + + queue.push(1, done) + + queue.resume() + + function done (err, result) { + completed = true + t.error(err, 'no error') + } + + function worker (arg, cb) { + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('kill', function (t) { + t.plan(5) + + var queue = buildQueue(worker, 1) + var expected = [1] + + var predrain = queue.drain + + queue.drain = function drain () { + t.fail('drain should never be called') + } + + queue.push(1, done) + queue.push(4, done) + queue.unshift(3, done) + queue.unshift(2, done) + queue.kill() + + function done (err, result) { + t.error(err, 'no error') + setImmediate(function () { + t.equal(queue.length(), 0, 'no queued tasks') + t.equal(queue.running(), 0, 'no running tasks') + t.equal(queue.drain, predrain, 'drain is back to default') + }) + } + + function worker (arg, cb) { + t.equal(expected.shift(), arg, 'tasks come in order') + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('killAndDrain', function (t) { + t.plan(6) + + var queue = buildQueue(worker, 1) + var expected = [1] + + var predrain = queue.drain + + queue.drain = function drain () { + t.pass('drain has been called') + } + + queue.push(1, done) + queue.push(4, done) + queue.unshift(3, done) + queue.unshift(2, done) + queue.killAndDrain() + + function done (err, result) { + t.error(err, 'no error') + setImmediate(function () { + t.equal(queue.length(), 0, 'no queued tasks') + t.equal(queue.running(), 0, 'no running tasks') + t.equal(queue.drain, predrain, 'drain is back to default') + }) + } + + function worker (arg, cb) { + t.equal(expected.shift(), arg, 'tasks come in order') + setImmediate(function () { + cb(null, true) + }) + } +}) + +test('pause && idle', function (t) { + t.plan(11) + + var queue = buildQueue(worker, 1) + var worked = false + + t.notOk(queue.paused, 'it should not be paused') + t.ok(queue.idle(), 'should be idle') + + queue.pause() + + queue.push(42, function (err, result) { + t.error(err, 'no error') + t.equal(result, true, 'result matches') + }) + + t.notOk(worked, 'it should be paused') + t.ok(queue.paused, 'it should be paused') + t.notOk(queue.idle(), 'should not be idle') + + queue.resume() + + t.notOk(queue.paused, 'it should not be paused') + t.notOk(queue.idle(), 'it should not be idle') + + function worker (arg, cb) { + t.equal(arg, 42) + worked = true + process.nextTick(cb.bind(null, null, true)) + process.nextTick(function () { + t.ok(queue.idle(), 'is should be idle') + }) + } +}) + +test('push without cb', function (t) { + t.plan(1) + + var queue = buildQueue(worker, 1) + + queue.push(42) + + function worker (arg, cb) { + t.equal(arg, 42) + cb() + } +}) + +test('unshift without cb', function (t) { + t.plan(1) + + var queue = buildQueue(worker, 1) + + queue.unshift(42) + + function worker (arg, cb) { + t.equal(arg, 42) + cb() + } +}) + +test('push with worker throwing error', function (t) { + t.plan(5) + var q = buildQueue(function (task, cb) { + cb(new Error('test error'), null) + }, 1) + q.error(function (err, task) { + t.ok(err instanceof Error, 'global error handler should catch the error') + t.match(err.message, /test error/, 'error message should be "test error"') + t.equal(task, 42, 'The task executed should be passed') + }) + q.push(42, function (err) { + t.ok(err instanceof Error, 'push callback should catch the error') + t.match(err.message, /test error/, 'error message should be "test error"') + }) +}) diff --git a/node_modules/fastq/test/tsconfig.json b/node_modules/fastq/test/tsconfig.json new file mode 100644 index 00000000..66e16e93 --- /dev/null +++ b/node_modules/fastq/test/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "noEmit": true, + "strict": true + }, + "files": [ + "./example.ts" + ] +} diff --git a/node_modules/fill-range/LICENSE b/node_modules/fill-range/LICENSE new file mode 100644 index 00000000..9af4a67d --- /dev/null +++ b/node_modules/fill-range/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/fill-range/README.md b/node_modules/fill-range/README.md new file mode 100644 index 00000000..8d756fe9 --- /dev/null +++ b/node_modules/fill-range/README.md @@ -0,0 +1,237 @@ +# fill-range [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/fill-range.svg?style=flat)](https://www.npmjs.com/package/fill-range) [![NPM monthly downloads](https://img.shields.io/npm/dm/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![NPM total downloads](https://img.shields.io/npm/dt/fill-range.svg?style=flat)](https://npmjs.org/package/fill-range) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/fill-range.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/fill-range) + +> Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex` + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save fill-range +``` + +## Usage + +Expands numbers and letters, optionally using a `step` as the last argument. _(Numbers may be defined as JavaScript numbers or strings)_. + +```js +const fill = require('fill-range'); +// fill(from, to[, step, options]); + +console.log(fill('1', '10')); //=> ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10'] +console.log(fill('1', '10', { toRegex: true })); //=> [1-9]|10 +``` + +**Params** + +* `from`: **{String|Number}** the number or letter to start with +* `to`: **{String|Number}** the number or letter to end with +* `step`: **{String|Number|Object|Function}** Optionally pass a [step](#optionsstep) to use. +* `options`: **{Object|Function}**: See all available [options](#options) + +## Examples + +By default, an array of values is returned. + +**Alphabetical ranges** + +```js +console.log(fill('a', 'e')); //=> ['a', 'b', 'c', 'd', 'e'] +console.log(fill('A', 'E')); //=> [ 'A', 'B', 'C', 'D', 'E' ] +``` + +**Numerical ranges** + +Numbers can be defined as actual numbers or strings. + +```js +console.log(fill(1, 5)); //=> [ 1, 2, 3, 4, 5 ] +console.log(fill('1', '5')); //=> [ 1, 2, 3, 4, 5 ] +``` + +**Negative ranges** + +Numbers can be defined as actual numbers or strings. + +```js +console.log(fill('-5', '-1')); //=> [ '-5', '-4', '-3', '-2', '-1' ] +console.log(fill('-5', '5')); //=> [ '-5', '-4', '-3', '-2', '-1', '0', '1', '2', '3', '4', '5' ] +``` + +**Steps (increments)** + +```js +// numerical ranges with increments +console.log(fill('0', '25', 4)); //=> [ '0', '4', '8', '12', '16', '20', '24' ] +console.log(fill('0', '25', 5)); //=> [ '0', '5', '10', '15', '20', '25' ] +console.log(fill('0', '25', 6)); //=> [ '0', '6', '12', '18', '24' ] + +// alphabetical ranges with increments +console.log(fill('a', 'z', 4)); //=> [ 'a', 'e', 'i', 'm', 'q', 'u', 'y' ] +console.log(fill('a', 'z', 5)); //=> [ 'a', 'f', 'k', 'p', 'u', 'z' ] +console.log(fill('a', 'z', 6)); //=> [ 'a', 'g', 'm', 's', 'y' ] +``` + +## Options + +### options.step + +**Type**: `number` (formatted as a string or number) + +**Default**: `undefined` + +**Description**: The increment to use for the range. Can be used with letters or numbers. + +**Example(s)** + +```js +// numbers +console.log(fill('1', '10', 2)); //=> [ '1', '3', '5', '7', '9' ] +console.log(fill('1', '10', 3)); //=> [ '1', '4', '7', '10' ] +console.log(fill('1', '10', 4)); //=> [ '1', '5', '9' ] + +// letters +console.log(fill('a', 'z', 5)); //=> [ 'a', 'f', 'k', 'p', 'u', 'z' ] +console.log(fill('a', 'z', 7)); //=> [ 'a', 'h', 'o', 'v' ] +console.log(fill('a', 'z', 9)); //=> [ 'a', 'j', 's' ] +``` + +### options.strictRanges + +**Type**: `boolean` + +**Default**: `false` + +**Description**: By default, `null` is returned when an invalid range is passed. Enable this option to throw a `RangeError` on invalid ranges. + +**Example(s)** + +The following are all invalid: + +```js +fill('1.1', '2'); // decimals not supported in ranges +fill('a', '2'); // incompatible range values +fill(1, 10, 'foo'); // invalid "step" argument +``` + +### options.stringify + +**Type**: `boolean` + +**Default**: `undefined` + +**Description**: Cast all returned values to strings. By default, integers are returned as numbers. + +**Example(s)** + +```js +console.log(fill(1, 5)); //=> [ 1, 2, 3, 4, 5 ] +console.log(fill(1, 5, { stringify: true })); //=> [ '1', '2', '3', '4', '5' ] +``` + +### options.toRegex + +**Type**: `boolean` + +**Default**: `undefined` + +**Description**: Create a regex-compatible source string, instead of expanding values to an array. + +**Example(s)** + +```js +// alphabetical range +console.log(fill('a', 'e', { toRegex: true })); //=> '[a-e]' +// alphabetical with step +console.log(fill('a', 'z', 3, { toRegex: true })); //=> 'a|d|g|j|m|p|s|v|y' +// numerical range +console.log(fill('1', '100', { toRegex: true })); //=> '[1-9]|[1-9][0-9]|100' +// numerical range with zero padding +console.log(fill('000001', '100000', { toRegex: true })); +//=> '0{5}[1-9]|0{4}[1-9][0-9]|0{3}[1-9][0-9]{2}|0{2}[1-9][0-9]{3}|0[1-9][0-9]{4}|100000' +``` + +### options.transform + +**Type**: `function` + +**Default**: `undefined` + +**Description**: Customize each value in the returned array (or [string](#optionstoRegex)). _(you can also pass this function as the last argument to `fill()`)_. + +**Example(s)** + +```js +// add zero padding +console.log(fill(1, 5, value => String(value).padStart(4, '0'))); +//=> ['0001', '0002', '0003', '0004', '0005'] +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 116 | [jonschlinkert](https://github.com/jonschlinkert) | +| 4 | [paulmillr](https://github.com/paulmillr) | +| 2 | [realityking](https://github.com/realityking) | +| 2 | [bluelovers](https://github.com/bluelovers) | +| 1 | [edorivai](https://github.com/edorivai) | +| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +Please consider supporting me on Patreon, or [start your own Patreon page](https://patreon.com/invite/bxpbvm)! + + + + + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 08, 2019._ \ No newline at end of file diff --git a/node_modules/fill-range/index.js b/node_modules/fill-range/index.js new file mode 100644 index 00000000..97ce35a5 --- /dev/null +++ b/node_modules/fill-range/index.js @@ -0,0 +1,249 @@ +/*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + */ + +'use strict'; + +const util = require('util'); +const toRegexRange = require('to-regex-range'); + +const isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); + +const transform = toNumber => { + return value => toNumber === true ? Number(value) : String(value); +}; + +const isValidValue = value => { + return typeof value === 'number' || (typeof value === 'string' && value !== ''); +}; + +const isNumber = num => Number.isInteger(+num); + +const zeros = input => { + let value = `${input}`; + let index = -1; + if (value[0] === '-') value = value.slice(1); + if (value === '0') return false; + while (value[++index] === '0'); + return index > 0; +}; + +const stringify = (start, end, options) => { + if (typeof start === 'string' || typeof end === 'string') { + return true; + } + return options.stringify === true; +}; + +const pad = (input, maxLength, toNumber) => { + if (maxLength > 0) { + let dash = input[0] === '-' ? '-' : ''; + if (dash) input = input.slice(1); + input = (dash + input.padStart(dash ? maxLength - 1 : maxLength, '0')); + } + if (toNumber === false) { + return String(input); + } + return input; +}; + +const toMaxLen = (input, maxLength) => { + let negative = input[0] === '-' ? '-' : ''; + if (negative) { + input = input.slice(1); + maxLength--; + } + while (input.length < maxLength) input = '0' + input; + return negative ? ('-' + input) : input; +}; + +const toSequence = (parts, options) => { + parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0); + + let prefix = options.capture ? '' : '?:'; + let positives = ''; + let negatives = ''; + let result; + + if (parts.positives.length) { + positives = parts.positives.join('|'); + } + + if (parts.negatives.length) { + negatives = `-(${prefix}${parts.negatives.join('|')})`; + } + + if (positives && negatives) { + result = `${positives}|${negatives}`; + } else { + result = positives || negatives; + } + + if (options.wrap) { + return `(${prefix}${result})`; + } + + return result; +}; + +const toRange = (a, b, isNumbers, options) => { + if (isNumbers) { + return toRegexRange(a, b, { wrap: false, ...options }); + } + + let start = String.fromCharCode(a); + if (a === b) return start; + + let stop = String.fromCharCode(b); + return `[${start}-${stop}]`; +}; + +const toRegex = (start, end, options) => { + if (Array.isArray(start)) { + let wrap = options.wrap === true; + let prefix = options.capture ? '' : '?:'; + return wrap ? `(${prefix}${start.join('|')})` : start.join('|'); + } + return toRegexRange(start, end, options); +}; + +const rangeError = (...args) => { + return new RangeError('Invalid range arguments: ' + util.inspect(...args)); +}; + +const invalidRange = (start, end, options) => { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; +}; + +const invalidStep = (step, options) => { + if (options.strictRanges === true) { + throw new TypeError(`Expected step "${step}" to be a number`); + } + return []; +}; + +const fillNumbers = (start, end, step = 1, options = {}) => { + let a = Number(start); + let b = Number(end); + + if (!Number.isInteger(a) || !Number.isInteger(b)) { + if (options.strictRanges === true) throw rangeError([start, end]); + return []; + } + + // fix negative zero + if (a === 0) a = 0; + if (b === 0) b = 0; + + let descending = a > b; + let startString = String(start); + let endString = String(end); + let stepString = String(step); + step = Math.max(Math.abs(step), 1); + + let padded = zeros(startString) || zeros(endString) || zeros(stepString); + let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0; + let toNumber = padded === false && stringify(start, end, options) === false; + let format = options.transform || transform(toNumber); + + if (options.toRegex && step === 1) { + return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options); + } + + let parts = { negatives: [], positives: [] }; + let push = num => parts[num < 0 ? 'negatives' : 'positives'].push(Math.abs(num)); + let range = []; + let index = 0; + + while (descending ? a >= b : a <= b) { + if (options.toRegex === true && step > 1) { + push(a); + } else { + range.push(pad(format(a, index), maxLen, toNumber)); + } + a = descending ? a - step : a + step; + index++; + } + + if (options.toRegex === true) { + return step > 1 + ? toSequence(parts, options) + : toRegex(range, null, { wrap: false, ...options }); + } + + return range; +}; + +const fillLetters = (start, end, step = 1, options = {}) => { + if ((!isNumber(start) && start.length > 1) || (!isNumber(end) && end.length > 1)) { + return invalidRange(start, end, options); + } + + + let format = options.transform || (val => String.fromCharCode(val)); + let a = `${start}`.charCodeAt(0); + let b = `${end}`.charCodeAt(0); + + let descending = a > b; + let min = Math.min(a, b); + let max = Math.max(a, b); + + if (options.toRegex && step === 1) { + return toRange(min, max, false, options); + } + + let range = []; + let index = 0; + + while (descending ? a >= b : a <= b) { + range.push(format(a, index)); + a = descending ? a - step : a + step; + index++; + } + + if (options.toRegex === true) { + return toRegex(range, null, { wrap: false, options }); + } + + return range; +}; + +const fill = (start, end, step, options = {}) => { + if (end == null && isValidValue(start)) { + return [start]; + } + + if (!isValidValue(start) || !isValidValue(end)) { + return invalidRange(start, end, options); + } + + if (typeof step === 'function') { + return fill(start, end, 1, { transform: step }); + } + + if (isObject(step)) { + return fill(start, end, 0, step); + } + + let opts = { ...options }; + if (opts.capture === true) opts.wrap = true; + step = step || opts.step || 1; + + if (!isNumber(step)) { + if (step != null && !isObject(step)) return invalidStep(step, opts); + return fill(start, end, 1, step); + } + + if (isNumber(start) && isNumber(end)) { + return fillNumbers(start, end, step, opts); + } + + return fillLetters(start, end, Math.max(Math.abs(step), 1), opts); +}; + +module.exports = fill; diff --git a/node_modules/fill-range/package.json b/node_modules/fill-range/package.json new file mode 100644 index 00000000..07d30767 --- /dev/null +++ b/node_modules/fill-range/package.json @@ -0,0 +1,69 @@ +{ + "name": "fill-range", + "description": "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`", + "version": "7.0.1", + "homepage": "https://github.com/jonschlinkert/fill-range", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Edo Rivai (edo.rivai.nl)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Paul Miller (paulmillr.com)", + "Rouven Weßling (www.rouvenwessling.de)", + "(https://github.com/wtgtybhertgeghgtwtg)" + ], + "repository": "jonschlinkert/fill-range", + "bugs": { + "url": "https://github.com/jonschlinkert/fill-range/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "mocha" + }, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "devDependencies": { + "gulp-format-md": "^2.0.0", + "mocha": "^6.1.1" + }, + "keywords": [ + "alpha", + "alphabetical", + "array", + "bash", + "brace", + "expand", + "expansion", + "fill", + "glob", + "match", + "matches", + "matching", + "number", + "numerical", + "range", + "ranges", + "regex", + "sh" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/fs-extra/CHANGELOG.md b/node_modules/fs-extra/CHANGELOG.md new file mode 100644 index 00000000..42d3e9e5 --- /dev/null +++ b/node_modules/fs-extra/CHANGELOG.md @@ -0,0 +1,932 @@ +10.0.0 / 2021-05-03 +------------------- + +### Breaking changes + +- Require Node.js v12+ ([#886](https://github.com/jprichardson/node-fs-extra/issues/886), [#893](https://github.com/jprichardson/node-fs-extra/pull/893), [#890](https://github.com/jprichardson/node-fs-extra/pull/890), [#894](https://github.com/jprichardson/node-fs-extra/pull/894), [#895]( https://github.com/jprichardson/node-fs-extra/pull/895)) +- Allow copying broken symlinks ([#779](https://github.com/jprichardson/node-fs-extra/pull/779), [#765](https://github.com/jprichardson/node-fs-extra/issues/765), [#638](https://github.com/jprichardson/node-fs-extra/issues/638), [#761](https://github.com/jprichardson/node-fs-extra/issues/761)) + +**The following changes, although technically semver-major, will not affect the vast majority of users:** + +- Ensure correct type when destination exists for `ensureLink*()`/`ensureSymlink*()` ([#826](https://github.com/jprichardson/node-fs-extra/pull/826), [#786](https://github.com/jprichardson/node-fs-extra/issues/786), [#870](https://github.com/jprichardson/node-fs-extra/issues/870)) +- Error when attempting to `copy*()` unknown file type ([#880](https://github.com/jprichardson/node-fs-extra/pull/880)) +- Remove undocumented options for `remove*()` ([#882](https://github.com/jprichardson/node-fs-extra/pull/882)) + +### Improvements + +- Allow changing case of filenames with `move*()`, even on technically case-insensitive filesystems ([#759](https://github.com/jprichardson/node-fs-extra/issues/759), [#801](https://github.com/jprichardson/node-fs-extra/pull/801)) +- Use native `fs.rm*()` for `remove*()` in environments that support it ([#882](https://github.com/jprichardson/node-fs-extra/pull/882), [#806](https://github.com/jprichardson/node-fs-extra/issues/806)) +- Improve `emptyDir()` performance ([#885](https://github.com/jprichardson/node-fs-extra/pull/885)) + +### Bugfixes + +- Ensure `copy*()`'s `filter` function is not called more than necessary ([#883](https://github.com/jprichardson/node-fs-extra/pull/883), [#809](https://github.com/jprichardson/node-fs-extra/issues/809)) +- Fix `move*()` raising `EPERM` error when moving a file to the root of a drive on Windows ([#897](https://github.com/jprichardson/node-fs-extra/pull/897), [#819](https://github.com/jprichardson/node-fs-extra/issues/819)) + +### Miscellaneous changes + +- Do not use `at-least-node` as a dependency ([#896](https://github.com/jprichardson/node-fs-extra/pull/896)) +- Improve documentation ([#888](https://github.com/jprichardson/node-fs-extra/pull/888), [#830](https://github.com/jprichardson/node-fs-extra/issues/830), [#884](https://github.com/jprichardson/node-fs-extra/pull/884), [#843](https://github.com/jprichardson/node-fs-extra/issues/843)) + +9.1.0 / 2021-01-19 +------------------ + +- Add promise support for `fs.rm()` ([#841](https://github.com/jprichardson/node-fs-extra/issues/841), [#860](https://github.com/jprichardson/node-fs-extra/pull/860)) +- Upgrade universalify for performance improvments ([#825](https://github.com/jprichardson/node-fs-extra/pull/825)) + +9.0.1 / 2020-06-03 +------------------ + +- Fix issue with `ensureFile()` when used with Jest on Windows ([#804](https://github.com/jprichardson/node-fs-extra/issues/804), [#805](https://github.com/jprichardson/node-fs-extra/pull/805)) +- Remove unneeded `process.umask()` call ([#791](https://github.com/jprichardson/node-fs-extra/pull/791)) +- Docs improvements ([#753](https://github.com/jprichardson/node-fs-extra/pull/753), [#795](https://github.com/jprichardson/node-fs-extra/pull/795), [#797](https://github.com/jprichardson/node-fs-extra/pull/797)) + +9.0.0 / 2020-03-19 +------------------ + +### Breaking changes + +- Requires Node.js version 10 or greater ([#725](https://github.com/jprichardson/node-fs-extra/issues/725), [#751](https://github.com/jprichardson/node-fs-extra/pull/751)) +- Switched `ensureDir*` to use a fork of https://github.com/sindresorhus/make-dir to make use of native recursive `fs.mkdir` where possible ([#619](https://github.com/jprichardson/node-fs-extra/issues/619), [#756](https://github.com/jprichardson/node-fs-extra/pull/756)) +- Properly preserve `atime` for `copy*` with `preserveTimestamps` option ([#633](https://github.com/jprichardson/node-fs-extra/pull/633)) + +**The following changes, allthough technically breaking, will not affect the vast majority of users:** + +- `outputJson` now outputs objects as they were when the function was called, even if they are mutated later ([#702](https://github.com/jprichardson/node-fs-extra/issues/702), [#768](https://github.com/jprichardson/node-fs-extra/pull/768)) +- Cannot pass `null` as an options parameter to `*Json*` methods ([#745](https://github.com/jprichardson/node-fs-extra/issues/745), [#768](https://github.com/jprichardson/node-fs-extra/pull/768)) + +### Improvements + +- Add promise shims for `fs.writev` & `fs.opendir` ([#747](https://github.com/jprichardson/node-fs-extra/pull/747)) +- Better errors for `ensureFile` ([#696](https://github.com/jprichardson/node-fs-extra/issues/696), [#744](https://github.com/jprichardson/node-fs-extra/pull/744)) +- Better file comparison for older Node versions ([#694](https://github.com/jprichardson/node-fs-extra/pull/694)) + +### Miscellaneous changes +- Peformance optimizations ([#762](https://github.com/jprichardson/node-fs-extra/issues/762), [#764](https://github.com/jprichardson/node-fs-extra/pull/764)) +- Add missing documentation for aliases ([#758](https://github.com/jprichardson/node-fs-extra/issues/758), [#766](https://github.com/jprichardson/node-fs-extra/pull/766)) +- Update `universalify` dependency ([#767](https://github.com/jprichardson/node-fs-extra/pull/767)) + +8.1.0 / 2019-06-28 +------------------ + +- Add support for promisified `fs.realpath.native` in Node v9.2+ ([#650](https://github.com/jprichardson/node-fs-extra/issues/650), [#682](https://github.com/jprichardson/node-fs-extra/pull/682)) +- Update `graceful-fs` dependency ([#700](https://github.com/jprichardson/node-fs-extra/pull/700)) +- Use `graceful-fs` everywhere ([#700](https://github.com/jprichardson/node-fs-extra/pull/700)) + +8.0.1 / 2019-05-13 +------------------ + +- Fix bug `Maximum call stack size exceeded` error in `util/stat` ([#679](https://github.com/jprichardson/node-fs-extra/pull/679)) + +8.0.0 / 2019-05-11 +------------------ + +**NOTE:** Node.js v6 support is deprecated, and will be dropped in the next major release. + +- Use `renameSync()` under the hood in `moveSync()` +- Fix bug with bind-mounted directories in `copy*()` ([#613](https://github.com/jprichardson/node-fs-extra/issues/613), [#618](https://github.com/jprichardson/node-fs-extra/pull/618)) +- Fix bug in `move()` with case-insensitive file systems +- Use `fs.stat()`'s `bigint` option in `copy*()` & `move*()` where possible ([#657](https://github.com/jprichardson/node-fs-extra/issues/657)) + +7.0.1 / 2018-11-07 +------------------ + +- Fix `removeSync()` on Windows, in some cases, it would error out with `ENOTEMPTY` ([#646](https://github.com/jprichardson/node-fs-extra/pull/646)) +- Document `mode` option for `ensureDir*()` ([#587](https://github.com/jprichardson/node-fs-extra/pull/587)) +- Don't include documentation files in npm package tarball ([#642](https://github.com/jprichardson/node-fs-extra/issues/642), [#643](https://github.com/jprichardson/node-fs-extra/pull/643)) + +7.0.0 / 2018-07-16 +------------------ + +- **BREAKING:** Refine `copy*()` handling of symlinks to properly detect symlinks that point to the same file. ([#582](https://github.com/jprichardson/node-fs-extra/pull/582)) +- Fix bug with copying write-protected directories ([#600](https://github.com/jprichardson/node-fs-extra/pull/600)) +- Universalify `fs.lchmod()` ([#596](https://github.com/jprichardson/node-fs-extra/pull/596)) +- Add `engines` field to `package.json` ([#580](https://github.com/jprichardson/node-fs-extra/pull/580)) + +6.0.1 / 2018-05-09 +------------------ + +- Fix `fs.promises` `ExperimentalWarning` on Node v10.1.0 ([#578](https://github.com/jprichardson/node-fs-extra/pull/578)) + +6.0.0 / 2018-05-01 +------------------ + +- Drop support for Node.js versions 4, 5, & 7 ([#564](https://github.com/jprichardson/node-fs-extra/pull/564)) +- Rewrite `move` to use `fs.rename` where possible ([#549](https://github.com/jprichardson/node-fs-extra/pull/549)) +- Don't convert relative paths to absolute paths for `filter` ([#554](https://github.com/jprichardson/node-fs-extra/pull/554)) +- `copy*`'s behavior when `preserveTimestamps` is `false` has been OS-dependent since 5.0.0, but that's now explicitly noted in the docs ([#563](https://github.com/jprichardson/node-fs-extra/pull/563)) +- Fix subdirectory detection for `copy*` & `move*` ([#541](https://github.com/jprichardson/node-fs-extra/pull/541)) +- Handle case-insensitive paths correctly in `copy*` ([#568](https://github.com/jprichardson/node-fs-extra/pull/568)) + +5.0.0 / 2017-12-11 +------------------ + +Significant refactor of `copy()` & `copySync()`, including breaking changes. No changes to other functions in this release. + +Huge thanks to **[@manidlou](https://github.com/manidlou)** for doing most of the work on this release. + +- The `filter` option can no longer be a RegExp (must be a function). This was deprecated since fs-extra v1.0.0. [#512](https://github.com/jprichardson/node-fs-extra/pull/512) +- `copy()`'s `filter` option can now be a function that returns a Promise. [#518](https://github.com/jprichardson/node-fs-extra/pull/518) +- `copy()` & `copySync()` now use `fs.copyFile()`/`fs.copyFileSync()` in environments that support it (currently Node 8.5.0+). Older Node versions still get the old implementation. [#505](https://github.com/jprichardson/node-fs-extra/pull/505) +- Don't allow copying a directory into itself. [#83](https://github.com/jprichardson/node-fs-extra/issues/83) +- Handle copying between identical files. [#198](https://github.com/jprichardson/node-fs-extra/issues/198) +- Error out when copying an empty folder to a path that already exists. [#464](https://github.com/jprichardson/node-fs-extra/issues/464) +- Don't create `dest`'s parent if the `filter` function aborts the `copy()` operation. [#517](https://github.com/jprichardson/node-fs-extra/pull/517) +- Fix `writeStream` not being closed if there was an error in `copy()`. [#516](https://github.com/jprichardson/node-fs-extra/pull/516) + +4.0.3 / 2017-12-05 +------------------ + +- Fix wrong `chmod` values in `fs.remove()` [#501](https://github.com/jprichardson/node-fs-extra/pull/501) +- Fix `TypeError` on systems that don't have some `fs` operations like `lchown` [#520](https://github.com/jprichardson/node-fs-extra/pull/520) + +4.0.2 / 2017-09-12 +------------------ + +- Added `EOL` option to `writeJson*` & `outputJson*` (via upgrade to jsonfile v4) +- Added promise support to [`fs.copyFile()`](https://nodejs.org/api/fs.html#fs_fs_copyfile_src_dest_flags_callback) in Node 8.5+ +- Added `.js` extension to `main` field in `package.json` for better tooling compatibility. [#485](https://github.com/jprichardson/node-fs-extra/pull/485) + +4.0.1 / 2017-07-31 +------------------ + +### Fixed + +- Previously, `ensureFile()` & `ensureFileSync()` would do nothing if the path was a directory. Now, they error out for consistency with `ensureDir()`. [#465](https://github.com/jprichardson/node-fs-extra/issues/465), [#466](https://github.com/jprichardson/node-fs-extra/pull/466), [#470](https://github.com/jprichardson/node-fs-extra/issues/470) + +4.0.0 / 2017-07-14 +------------------ + +### Changed + +- **BREAKING:** The promisified versions of `fs.read()` & `fs.write()` now return objects. See [the docs](docs/fs-read-write.md) for details. [#436](https://github.com/jprichardson/node-fs-extra/issues/436), [#449](https://github.com/jprichardson/node-fs-extra/pull/449) +- `fs.move()` now errors out when destination is a subdirectory of source. [#458](https://github.com/jprichardson/node-fs-extra/pull/458) +- Applied upstream fixes from `rimraf` to `fs.remove()` & `fs.removeSync()`. [#459](https://github.com/jprichardson/node-fs-extra/pull/459) + +### Fixed + +- Got `fs.outputJSONSync()` working again; it was broken due to refactoring. [#428](https://github.com/jprichardson/node-fs-extra/pull/428) + +Also clarified the docs in a few places. + +3.0.1 / 2017-05-04 +------------------ + +- Fix bug in `move()` & `moveSync()` when source and destination are the same, and source does not exist. [#415](https://github.com/jprichardson/node-fs-extra/pull/415) + +3.0.0 / 2017-04-27 +------------------ + +### Added + +- **BREAKING:** Added Promise support. All asynchronous native fs methods and fs-extra methods now return a promise if the callback is not passed. [#403](https://github.com/jprichardson/node-fs-extra/pull/403) +- `pathExists()`, a replacement for the deprecated `fs.exists`. `pathExists` has a normal error-first callback signature. Also added `pathExistsSync`, an alias to `fs.existsSync`, for completeness. [#406](https://github.com/jprichardson/node-fs-extra/pull/406) + +### Removed + +- **BREAKING:** Removed support for setting the default spaces for `writeJson()`, `writeJsonSync()`, `outputJson()`, & `outputJsonSync()`. This was undocumented. [#402](https://github.com/jprichardson/node-fs-extra/pull/402) + +### Changed + +- Upgraded jsonfile dependency to v3.0.0: + - **BREAKING:** Changed behavior of `throws` option for `readJsonSync()`; now does not throw filesystem errors when `throws` is `false`. +- **BREAKING:** `writeJson()`, `writeJsonSync()`, `outputJson()`, & `outputJsonSync()` now output minified JSON by default for consistency with `JSON.stringify()`; set the `spaces` option to `2` to override this new behavior. [#402](https://github.com/jprichardson/node-fs-extra/pull/402) +- Use `Buffer.allocUnsafe()` instead of `new Buffer()` in environments that support it. [#394](https://github.com/jprichardson/node-fs-extra/pull/394) + +### Fixed + +- `removeSync()` silently failed on Windows in some cases. Now throws an `EBUSY` error. [#408](https://github.com/jprichardson/node-fs-extra/pull/408) + +2.1.2 / 2017-03-16 +------------------ + +### Fixed + +- Weird windows bug that resulted in `ensureDir()`'s callback being called twice in some cases. This bug may have also affected `remove()`. See [#392](https://github.com/jprichardson/node-fs-extra/issues/392), [#393](https://github.com/jprichardson/node-fs-extra/pull/393) + +2.1.1 / 2017-03-15 +------------------ + +### Fixed + +- Reverted [`5597bd`](https://github.com/jprichardson/node-fs-extra/commit/5597bd5b67f7d060f5f5bf26e9635be48330f5d7), this broke compatibility with Node.js versions v4+ but less than `v4.5.0`. +- Remove `Buffer.alloc()` usage in `moveSync()`. + +2.1.0 / 2017-03-15 +------------------ + +Thanks to [Mani Maghsoudlou (@manidlou)](https://github.com/manidlou) & [Jan Peer Stöcklmair (@JPeer264)](https://github.com/JPeer264) for their extraordinary help with this release! + +### Added +- `moveSync()` See [#309], [#381](https://github.com/jprichardson/node-fs-extra/pull/381). ([@manidlou](https://github.com/manidlou)) +- `copy()` and `copySync()`'s `filter` option now gets the destination path passed as the second parameter. [#366](https://github.com/jprichardson/node-fs-extra/pull/366) ([@manidlou](https://github.com/manidlou)) + +### Changed +- Use `Buffer.alloc()` instead of deprecated `new Buffer()` in `copySync()`. [#380](https://github.com/jprichardson/node-fs-extra/pull/380) ([@manidlou](https://github.com/manidlou)) +- Refactored entire codebase to use ES6 features supported by Node.js v4+ [#355](https://github.com/jprichardson/node-fs-extra/issues/355). [(@JPeer264)](https://github.com/JPeer264) +- Refactored docs. ([@manidlou](https://github.com/manidlou)) + +### Fixed + +- `move()` shouldn't error out when source and dest are the same. [#377](https://github.com/jprichardson/node-fs-extra/issues/377), [#378](https://github.com/jprichardson/node-fs-extra/pull/378) ([@jdalton](https://github.com/jdalton)) + +2.0.0 / 2017-01-16 +------------------ + +### Removed +- **BREAKING:** Removed support for Node `v0.12`. The Node foundation stopped officially supporting it +on Jan 1st, 2017. +- **BREAKING:** Remove `walk()` and `walkSync()`. `walkSync()` was only part of `fs-extra` for a little +over two months. Use [klaw](https://github.com/jprichardson/node-klaw) instead of `walk()`, in fact, `walk()` was just +an alias to klaw. For `walkSync()` use [klaw-sync](https://github.com/mawni/node-klaw-sync). See: [#338], [#339] + +### Changed +- **BREAKING:** Renamed `clobber` to `overwrite`. This affects `copy()`, `copySync()`, and `move()`. [#330], [#333] +- Moved docs, to `docs/`. [#340] + +### Fixed +- Apply filters to directories in `copySync()` like in `copy()`. [#324] +- A specific condition when disk is under heavy use, `copy()` can fail. [#326] + + +1.0.0 / 2016-11-01 +------------------ + +After five years of development, we finally have reach the 1.0.0 milestone! Big thanks goes +to [Ryan Zim](https://github.com/RyanZim) for leading the charge on this release! + +### Added +- `walkSync()` + +### Changed +- **BREAKING**: dropped Node v0.10 support. +- disabled `rimaf` globbing, wasn't used. [#280] +- deprecate `copy()/copySync()` option `filter` if it's a `RegExp`. `filter` should now be a function. +- inline `rimraf`. This is temporary and was done because `rimraf` depended upon the beefy `glob` which `fs-extra` does not use. [#300] + +### Fixed +- bug fix proper closing of file handle on `utimesMillis()` [#271] +- proper escaping of files with dollar signs [#291] +- `copySync()` failed if user didn't own file. [#199], [#301] + + +0.30.0 / 2016-04-28 +------------------- +- Brought back Node v0.10 support. I didn't realize there was still demand. Official support will end **2016-10-01**. + +0.29.0 / 2016-04-27 +------------------- +- **BREAKING**: removed support for Node v0.10. If you still want to use Node v0.10, everything should work except for `ensureLink()/ensureSymlink()`. Node v0.12 is still supported but will be dropped in the near future as well. + +0.28.0 / 2016-04-17 +------------------- +- **BREAKING**: removed `createOutputStream()`. Use https://www.npmjs.com/package/create-output-stream. See: [#192][#192] +- `mkdirs()/mkdirsSync()` check for invalid win32 path chars. See: [#209][#209], [#237][#237] +- `mkdirs()/mkdirsSync()` if drive not mounted, error. See: [#93][#93] + +0.27.0 / 2016-04-15 +------------------- +- add `dereference` option to `copySync()`. [#235][#235] + +0.26.7 / 2016-03-16 +------------------- +- fixed `copy()` if source and dest are the same. [#230][#230] + +0.26.6 / 2016-03-15 +------------------- +- fixed if `emptyDir()` does not have a callback: [#229][#229] + +0.26.5 / 2016-01-27 +------------------- +- `copy()` with two arguments (w/o callback) was broken. See: [#215][#215] + +0.26.4 / 2016-01-05 +------------------- +- `copySync()` made `preserveTimestamps` default consistent with `copy()` which is `false`. See: [#208][#208] + +0.26.3 / 2015-12-17 +------------------- +- fixed `copy()` hangup in copying blockDevice / characterDevice / `/dev/null`. See: [#193][#193] + +0.26.2 / 2015-11-02 +------------------- +- fixed `outputJson{Sync}()` spacing adherence to `fs.spaces` + +0.26.1 / 2015-11-02 +------------------- +- fixed `copySync()` when `clogger=true` and the destination is read only. See: [#190][#190] + +0.26.0 / 2015-10-25 +------------------- +- extracted the `walk()` function into its own module [`klaw`](https://github.com/jprichardson/node-klaw). + +0.25.0 / 2015-10-24 +------------------- +- now has a file walker `walk()` + +0.24.0 / 2015-08-28 +------------------- +- removed alias `delete()` and `deleteSync()`. See: [#171][#171] + +0.23.1 / 2015-08-07 +------------------- +- Better handling of errors for `move()` when moving across devices. [#170][#170] +- `ensureSymlink()` and `ensureLink()` should not throw errors if link exists. [#169][#169] + +0.23.0 / 2015-08-06 +------------------- +- added `ensureLink{Sync}()` and `ensureSymlink{Sync}()`. See: [#165][#165] + +0.22.1 / 2015-07-09 +------------------- +- Prevent calling `hasMillisResSync()` on module load. See: [#149][#149]. +Fixes regression that was introduced in `0.21.0`. + +0.22.0 / 2015-07-09 +------------------- +- preserve permissions / ownership in `copy()`. See: [#54][#54] + +0.21.0 / 2015-07-04 +------------------- +- add option to preserve timestamps in `copy()` and `copySync()`. See: [#141][#141] +- updated `graceful-fs@3.x` to `4.x`. This brings in features from `amazing-graceful-fs` (much cleaner code / less hacks) + +0.20.1 / 2015-06-23 +------------------- +- fixed regression caused by latest jsonfile update: See: https://github.com/jprichardson/node-jsonfile/issues/26 + +0.20.0 / 2015-06-19 +------------------- +- removed `jsonfile` aliases with `File` in the name, they weren't documented and probably weren't in use e.g. +this package had both `fs.readJsonFile` and `fs.readJson` that were aliases to each other, now use `fs.readJson`. +- preliminary walker created. Intentionally not documented. If you use it, it will almost certainly change and break your code. +- started moving tests inline +- upgraded to `jsonfile@2.1.0`, can now pass JSON revivers/replacers to `readJson()`, `writeJson()`, `outputJson()` + +0.19.0 / 2015-06-08 +------------------- +- `fs.copy()` had support for Node v0.8, dropped support + +0.18.4 / 2015-05-22 +------------------- +- fixed license field according to this: [#136][#136] and https://github.com/npm/npm/releases/tag/v2.10.0 + +0.18.3 / 2015-05-08 +------------------- +- bugfix: handle `EEXIST` when clobbering on some Linux systems. [#134][#134] + +0.18.2 / 2015-04-17 +------------------- +- bugfix: allow `F_OK` ([#120][#120]) + +0.18.1 / 2015-04-15 +------------------- +- improved windows support for `move()` a bit. https://github.com/jprichardson/node-fs-extra/commit/92838980f25dc2ee4ec46b43ee14d3c4a1d30c1b +- fixed a lot of tests for Windows (appveyor) + +0.18.0 / 2015-03-31 +------------------- +- added `emptyDir()` and `emptyDirSync()` + +0.17.0 / 2015-03-28 +------------------- +- `copySync` added `clobber` option (before always would clobber, now if `clobber` is `false` it throws an error if the destination exists). +**Only works with files at the moment.** +- `createOutputStream()` added. See: [#118][#118] + +0.16.5 / 2015-03-08 +------------------- +- fixed `fs.move` when `clobber` is `true` and destination is a directory, it should clobber. [#114][#114] + +0.16.4 / 2015-03-01 +------------------- +- `fs.mkdirs` fix infinite loop on Windows. See: See https://github.com/substack/node-mkdirp/pull/74 and https://github.com/substack/node-mkdirp/issues/66 + +0.16.3 / 2015-01-28 +------------------- +- reverted https://github.com/jprichardson/node-fs-extra/commit/1ee77c8a805eba5b99382a2591ff99667847c9c9 + + +0.16.2 / 2015-01-28 +------------------- +- fixed `fs.copy` for Node v0.8 (support is temporary and will be removed in the near future) + +0.16.1 / 2015-01-28 +------------------- +- if `setImmediate` is not available, fall back to `process.nextTick` + +0.16.0 / 2015-01-28 +------------------- +- bugfix `fs.move()` into itself. Closes [#104] +- bugfix `fs.move()` moving directory across device. Closes [#108] +- added coveralls support +- bugfix: nasty multiple callback `fs.copy()` bug. Closes [#98] +- misc fs.copy code cleanups + +0.15.0 / 2015-01-21 +------------------- +- dropped `ncp`, imported code in +- because of previous, now supports `io.js` +- `graceful-fs` is now a dependency + +0.14.0 / 2015-01-05 +------------------- +- changed `copy`/`copySync` from `fs.copy(src, dest, [filters], callback)` to `fs.copy(src, dest, [options], callback)` [#100][#100] +- removed mockfs tests for mkdirp (this may be temporary, but was getting in the way of other tests) + +0.13.0 / 2014-12-10 +------------------- +- removed `touch` and `touchSync` methods (they didn't handle permissions like UNIX touch) +- updated `"ncp": "^0.6.0"` to `"ncp": "^1.0.1"` +- imported `mkdirp` => `minimist` and `mkdirp` are no longer dependences, should now appease people who wanted `mkdirp` to be `--use_strict` safe. See [#59]([#59][#59]) + +0.12.0 / 2014-09-22 +------------------- +- copy symlinks in `copySync()` [#85][#85] + +0.11.1 / 2014-09-02 +------------------- +- bugfix `copySync()` preserve file permissions [#80][#80] + +0.11.0 / 2014-08-11 +------------------- +- upgraded `"ncp": "^0.5.1"` to `"ncp": "^0.6.0"` +- upgrade `jsonfile": "^1.2.0"` to `jsonfile": "^2.0.0"` => on write, json files now have `\n` at end. Also adds `options.throws` to `readJsonSync()` +see https://github.com/jprichardson/node-jsonfile#readfilesyncfilename-options for more details. + +0.10.0 / 2014-06-29 +------------------ +* bugfix: upgaded `"jsonfile": "~1.1.0"` to `"jsonfile": "^1.2.0"`, bumped minor because of `jsonfile` dep change +from `~` to `^`. [#67] + +0.9.1 / 2014-05-22 +------------------ +* removed Node.js `0.8.x` support, `0.9.0` was published moments ago and should have been done there + +0.9.0 / 2014-05-22 +------------------ +* upgraded `ncp` from `~0.4.2` to `^0.5.1`, [#58] +* upgraded `rimraf` from `~2.2.6` to `^2.2.8` +* upgraded `mkdirp` from `0.3.x` to `^0.5.0` +* added methods `ensureFile()`, `ensureFileSync()` +* added methods `ensureDir()`, `ensureDirSync()` [#31] +* added `move()` method. From: https://github.com/andrewrk/node-mv + + +0.8.1 / 2013-10-24 +------------------ +* copy failed to return an error to the callback if a file doesn't exist (ulikoehler [#38], [#39]) + +0.8.0 / 2013-10-14 +------------------ +* `filter` implemented on `copy()` and `copySync()`. (Srirangan / [#36]) + +0.7.1 / 2013-10-12 +------------------ +* `copySync()` implemented (Srirangan / [#33]) +* updated to the latest `jsonfile` version `1.1.0` which gives `options` params for the JSON methods. Closes [#32] + +0.7.0 / 2013-10-07 +------------------ +* update readme conventions +* `copy()` now works if destination directory does not exist. Closes [#29] + +0.6.4 / 2013-09-05 +------------------ +* changed `homepage` field in package.json to remove NPM warning + +0.6.3 / 2013-06-28 +------------------ +* changed JSON spacing default from `4` to `2` to follow Node conventions +* updated `jsonfile` dep +* updated `rimraf` dep + +0.6.2 / 2013-06-28 +------------------ +* added .npmignore, [#25] + +0.6.1 / 2013-05-14 +------------------ +* modified for `strict` mode, closes [#24] +* added `outputJson()/outputJsonSync()`, closes [#23] + +0.6.0 / 2013-03-18 +------------------ +* removed node 0.6 support +* added node 0.10 support +* upgraded to latest `ncp` and `rimraf`. +* optional `graceful-fs` support. Closes [#17] + + +0.5.0 / 2013-02-03 +------------------ +* Removed `readTextFile`. +* Renamed `readJSONFile` to `readJSON` and `readJson`, same with write. +* Restructured documentation a bit. Added roadmap. + +0.4.0 / 2013-01-28 +------------------ +* Set default spaces in `jsonfile` from 4 to 2. +* Updated `testutil` deps for tests. +* Renamed `touch()` to `createFile()` +* Added `outputFile()` and `outputFileSync()` +* Changed creation of testing diretories so the /tmp dir is not littered. +* Added `readTextFile()` and `readTextFileSync()`. + +0.3.2 / 2012-11-01 +------------------ +* Added `touch()` and `touchSync()` methods. + +0.3.1 / 2012-10-11 +------------------ +* Fixed some stray globals. + +0.3.0 / 2012-10-09 +------------------ +* Removed all CoffeeScript from tests. +* Renamed `mkdir` to `mkdirs`/`mkdirp`. + +0.2.1 / 2012-09-11 +------------------ +* Updated `rimraf` dep. + +0.2.0 / 2012-09-10 +------------------ +* Rewrote module into JavaScript. (Must still rewrite tests into JavaScript) +* Added all methods of [jsonfile](https://github.com/jprichardson/node-jsonfile) +* Added Travis-CI. + +0.1.3 / 2012-08-13 +------------------ +* Added method `readJSONFile`. + +0.1.2 / 2012-06-15 +------------------ +* Bug fix: `deleteSync()` didn't exist. +* Verified Node v0.8 compatibility. + +0.1.1 / 2012-06-15 +------------------ +* Fixed bug in `remove()`/`delete()` that wouldn't execute the function if a callback wasn't passed. + +0.1.0 / 2012-05-31 +------------------ +* Renamed `copyFile()` to `copy()`. `copy()` can now copy directories (recursively) too. +* Renamed `rmrf()` to `remove()`. +* `remove()` aliased with `delete()`. +* Added `mkdirp` capabilities. Named: `mkdir()`. Hides Node.js native `mkdir()`. +* Instead of exporting the native `fs` module with new functions, I now copy over the native methods to a new object and export that instead. + +0.0.4 / 2012-03-14 +------------------ +* Removed CoffeeScript dependency + +0.0.3 / 2012-01-11 +------------------ +* Added methods rmrf and rmrfSync +* Moved tests from Jasmine to Mocha + + +[#344]: https://github.com/jprichardson/node-fs-extra/issues/344 "Licence Year" +[#343]: https://github.com/jprichardson/node-fs-extra/pull/343 "Add klaw-sync link to readme" +[#342]: https://github.com/jprichardson/node-fs-extra/pull/342 "allow preserveTimestamps when use move" +[#341]: https://github.com/jprichardson/node-fs-extra/issues/341 "mkdirp(path.dirname(dest) in move() logic needs cleaning up [question]" +[#340]: https://github.com/jprichardson/node-fs-extra/pull/340 "Move docs to seperate docs folder [documentation]" +[#339]: https://github.com/jprichardson/node-fs-extra/pull/339 "Remove walk() & walkSync() [feature-walk]" +[#338]: https://github.com/jprichardson/node-fs-extra/issues/338 "Remove walk() and walkSync() [feature-walk]" +[#337]: https://github.com/jprichardson/node-fs-extra/issues/337 "copy doesn't return a yieldable value" +[#336]: https://github.com/jprichardson/node-fs-extra/pull/336 "Docs enhanced walk sync [documentation, feature-walk]" +[#335]: https://github.com/jprichardson/node-fs-extra/pull/335 "Refactor move() tests [feature-move]" +[#334]: https://github.com/jprichardson/node-fs-extra/pull/334 "Cleanup lib/move/index.js [feature-move]" +[#333]: https://github.com/jprichardson/node-fs-extra/pull/333 "Rename clobber to overwrite [feature-copy, feature-move]" +[#332]: https://github.com/jprichardson/node-fs-extra/pull/332 "BREAKING: Drop Node v0.12 & io.js support" +[#331]: https://github.com/jprichardson/node-fs-extra/issues/331 "Add support for chmodr [enhancement, future]" +[#330]: https://github.com/jprichardson/node-fs-extra/pull/330 "BREAKING: Do not error when copy destination exists & clobber: false [feature-copy]" +[#329]: https://github.com/jprichardson/node-fs-extra/issues/329 "Does .walk() scale to large directories? [question]" +[#328]: https://github.com/jprichardson/node-fs-extra/issues/328 "Copying files corrupts [feature-copy, needs-confirmed]" +[#327]: https://github.com/jprichardson/node-fs-extra/pull/327 "Use writeStream 'finish' event instead of 'close' [bug, feature-copy]" +[#326]: https://github.com/jprichardson/node-fs-extra/issues/326 "fs.copy fails with chmod error when disk under heavy use [bug, feature-copy]" +[#325]: https://github.com/jprichardson/node-fs-extra/issues/325 "ensureDir is difficult to promisify [enhancement]" +[#324]: https://github.com/jprichardson/node-fs-extra/pull/324 "copySync() should apply filter to directories like copy() [bug, feature-copy]" +[#323]: https://github.com/jprichardson/node-fs-extra/issues/323 "Support for `dest` being a directory when using `copy*()`?" +[#322]: https://github.com/jprichardson/node-fs-extra/pull/322 "Add fs-promise as fs-extra-promise alternative" +[#321]: https://github.com/jprichardson/node-fs-extra/issues/321 "fs.copy() with clobber set to false return EEXIST error [feature-copy]" +[#320]: https://github.com/jprichardson/node-fs-extra/issues/320 "fs.copySync: Error: EPERM: operation not permitted, unlink " +[#319]: https://github.com/jprichardson/node-fs-extra/issues/319 "Create directory if not exists" +[#318]: https://github.com/jprichardson/node-fs-extra/issues/318 "Support glob patterns [enhancement, future]" +[#317]: https://github.com/jprichardson/node-fs-extra/pull/317 "Adding copy sync test for src file without write perms" +[#316]: https://github.com/jprichardson/node-fs-extra/pull/316 "Remove move()'s broken limit option [feature-move]" +[#315]: https://github.com/jprichardson/node-fs-extra/pull/315 "Fix move clobber tests to work around graceful-fs bug." +[#314]: https://github.com/jprichardson/node-fs-extra/issues/314 "move() limit option [documentation, enhancement, feature-move]" +[#313]: https://github.com/jprichardson/node-fs-extra/pull/313 "Test that remove() ignores glob characters." +[#312]: https://github.com/jprichardson/node-fs-extra/pull/312 "Enhance walkSync() to return items with path and stats [feature-walk]" +[#311]: https://github.com/jprichardson/node-fs-extra/issues/311 "move() not work when dest name not provided [feature-move]" +[#310]: https://github.com/jprichardson/node-fs-extra/issues/310 "Edit walkSync to return items like what walk emits [documentation, enhancement, feature-walk]" +[#309]: https://github.com/jprichardson/node-fs-extra/issues/309 "moveSync support [enhancement, feature-move]" +[#308]: https://github.com/jprichardson/node-fs-extra/pull/308 "Fix incorrect anchor link" +[#307]: https://github.com/jprichardson/node-fs-extra/pull/307 "Fix coverage" +[#306]: https://github.com/jprichardson/node-fs-extra/pull/306 "Update devDeps, fix lint error" +[#305]: https://github.com/jprichardson/node-fs-extra/pull/305 "Re-add Coveralls" +[#304]: https://github.com/jprichardson/node-fs-extra/pull/304 "Remove path-is-absolute [enhancement]" +[#303]: https://github.com/jprichardson/node-fs-extra/pull/303 "Document copySync filter inconsistency [documentation, feature-copy]" +[#302]: https://github.com/jprichardson/node-fs-extra/pull/302 "fix(console): depreciated -> deprecated" +[#301]: https://github.com/jprichardson/node-fs-extra/pull/301 "Remove chmod call from copySync [feature-copy]" +[#300]: https://github.com/jprichardson/node-fs-extra/pull/300 "Inline Rimraf [enhancement, feature-move, feature-remove]" +[#299]: https://github.com/jprichardson/node-fs-extra/pull/299 "Warn when filter is a RegExp [feature-copy]" +[#298]: https://github.com/jprichardson/node-fs-extra/issues/298 "API Docs [documentation]" +[#297]: https://github.com/jprichardson/node-fs-extra/pull/297 "Warn about using preserveTimestamps on 32-bit node" +[#296]: https://github.com/jprichardson/node-fs-extra/pull/296 "Improve EEXIST error message for copySync [enhancement]" +[#295]: https://github.com/jprichardson/node-fs-extra/pull/295 "Depreciate using regular expressions for copy's filter option [documentation]" +[#294]: https://github.com/jprichardson/node-fs-extra/pull/294 "BREAKING: Refactor lib/copy/ncp.js [feature-copy]" +[#293]: https://github.com/jprichardson/node-fs-extra/pull/293 "Update CI configs" +[#292]: https://github.com/jprichardson/node-fs-extra/issues/292 "Rewrite lib/copy/ncp.js [enhancement, feature-copy]" +[#291]: https://github.com/jprichardson/node-fs-extra/pull/291 "Escape '$' in replacement string for async file copying" +[#290]: https://github.com/jprichardson/node-fs-extra/issues/290 "Exclude files pattern while copying using copy.config.js [question]" +[#289]: https://github.com/jprichardson/node-fs-extra/pull/289 "(Closes #271) lib/util/utimes: properly close file descriptors in the event of an error" +[#288]: https://github.com/jprichardson/node-fs-extra/pull/288 "(Closes #271) lib/util/utimes: properly close file descriptors in the event of an error" +[#287]: https://github.com/jprichardson/node-fs-extra/issues/287 "emptyDir() callback arguments are inconsistent [enhancement, feature-remove]" +[#286]: https://github.com/jprichardson/node-fs-extra/pull/286 "Added walkSync function" +[#285]: https://github.com/jprichardson/node-fs-extra/issues/285 "CITGM test failing on s390" +[#284]: https://github.com/jprichardson/node-fs-extra/issues/284 "outputFile method is missing a check to determine if existing item is a folder or not" +[#283]: https://github.com/jprichardson/node-fs-extra/pull/283 "Apply filter also on directories and symlinks for copySync()" +[#282]: https://github.com/jprichardson/node-fs-extra/pull/282 "Apply filter also on directories and symlinks for copySync()" +[#281]: https://github.com/jprichardson/node-fs-extra/issues/281 "remove function executes 'successfully' but doesn't do anything?" +[#280]: https://github.com/jprichardson/node-fs-extra/pull/280 "Disable rimraf globbing" +[#279]: https://github.com/jprichardson/node-fs-extra/issues/279 "Some code is vendored instead of included [awaiting-reply]" +[#278]: https://github.com/jprichardson/node-fs-extra/issues/278 "copy() does not preserve file/directory ownership" +[#277]: https://github.com/jprichardson/node-fs-extra/pull/277 "Mention defaults for clobber and dereference options" +[#276]: https://github.com/jprichardson/node-fs-extra/issues/276 "Cannot connect to Shared Folder [awaiting-reply]" +[#275]: https://github.com/jprichardson/node-fs-extra/issues/275 "EMFILE, too many open files on Mac OS with JSON API" +[#274]: https://github.com/jprichardson/node-fs-extra/issues/274 "Use with memory-fs? [enhancement, future]" +[#273]: https://github.com/jprichardson/node-fs-extra/pull/273 "tests: rename `remote.test.js` to `remove.test.js`" +[#272]: https://github.com/jprichardson/node-fs-extra/issues/272 "Copy clobber flag never err even when true [bug, feature-copy]" +[#271]: https://github.com/jprichardson/node-fs-extra/issues/271 "Unclosed file handle on futimes error" +[#270]: https://github.com/jprichardson/node-fs-extra/issues/270 "copy not working as desired on Windows [feature-copy, platform-windows]" +[#269]: https://github.com/jprichardson/node-fs-extra/issues/269 "Copying with preserveTimeStamps: true is inaccurate using 32bit node [feature-copy]" +[#268]: https://github.com/jprichardson/node-fs-extra/pull/268 "port fix for mkdirp issue #111" +[#267]: https://github.com/jprichardson/node-fs-extra/issues/267 "WARN deprecated wrench@1.5.9: wrench.js is deprecated!" +[#266]: https://github.com/jprichardson/node-fs-extra/issues/266 "fs-extra" +[#265]: https://github.com/jprichardson/node-fs-extra/issues/265 "Link the `fs.stat fs.exists` etc. methods for replace the `fs` module forever?" +[#264]: https://github.com/jprichardson/node-fs-extra/issues/264 "Renaming a file using move fails when a file inside is open (at least on windows) [wont-fix]" +[#263]: https://github.com/jprichardson/node-fs-extra/issues/263 "ENOSYS: function not implemented, link [needs-confirmed]" +[#262]: https://github.com/jprichardson/node-fs-extra/issues/262 "Add .exists() and .existsSync()" +[#261]: https://github.com/jprichardson/node-fs-extra/issues/261 "Cannot read property 'prototype' of undefined" +[#260]: https://github.com/jprichardson/node-fs-extra/pull/260 "use more specific path for method require" +[#259]: https://github.com/jprichardson/node-fs-extra/issues/259 "Feature Request: isEmpty" +[#258]: https://github.com/jprichardson/node-fs-extra/issues/258 "copy files does not preserve file timestamp" +[#257]: https://github.com/jprichardson/node-fs-extra/issues/257 "Copying a file on windows fails" +[#256]: https://github.com/jprichardson/node-fs-extra/pull/256 "Updated Readme " +[#255]: https://github.com/jprichardson/node-fs-extra/issues/255 "Update rimraf required version" +[#254]: https://github.com/jprichardson/node-fs-extra/issues/254 "request for readTree, readTreeSync, walkSync method" +[#253]: https://github.com/jprichardson/node-fs-extra/issues/253 "outputFile does not touch mtime when file exists" +[#252]: https://github.com/jprichardson/node-fs-extra/pull/252 "Fixing problem when copying file with no write permission" +[#251]: https://github.com/jprichardson/node-fs-extra/issues/251 "Just wanted to say thank you" +[#250]: https://github.com/jprichardson/node-fs-extra/issues/250 "`fs.remove()` not removing files (works with `rm -rf`)" +[#249]: https://github.com/jprichardson/node-fs-extra/issues/249 "Just a Question ... Remove Servers" +[#248]: https://github.com/jprichardson/node-fs-extra/issues/248 "Allow option to not preserve permissions for copy" +[#247]: https://github.com/jprichardson/node-fs-extra/issues/247 "Add TypeScript typing directly in the fs-extra package" +[#246]: https://github.com/jprichardson/node-fs-extra/issues/246 "fse.remove() && fse.removeSync() don't throw error on ENOENT file" +[#245]: https://github.com/jprichardson/node-fs-extra/issues/245 "filter for empty dir [enhancement]" +[#244]: https://github.com/jprichardson/node-fs-extra/issues/244 "copySync doesn't apply the filter to directories" +[#243]: https://github.com/jprichardson/node-fs-extra/issues/243 "Can I request fs.walk() to be synchronous?" +[#242]: https://github.com/jprichardson/node-fs-extra/issues/242 "Accidentally truncates file names ending with $$ [bug, feature-copy]" +[#241]: https://github.com/jprichardson/node-fs-extra/pull/241 "Remove link to createOutputStream" +[#240]: https://github.com/jprichardson/node-fs-extra/issues/240 "walkSync request" +[#239]: https://github.com/jprichardson/node-fs-extra/issues/239 "Depreciate regular expressions for copy's filter [documentation, feature-copy]" +[#238]: https://github.com/jprichardson/node-fs-extra/issues/238 "Can't write to files while in a worker thread." +[#237]: https://github.com/jprichardson/node-fs-extra/issues/237 ".ensureDir(..) fails silently when passed an invalid path..." +[#236]: https://github.com/jprichardson/node-fs-extra/issues/236 "[Removed] Filed under wrong repo" +[#235]: https://github.com/jprichardson/node-fs-extra/pull/235 "Adds symlink dereference option to `fse.copySync` (#191)" +[#234]: https://github.com/jprichardson/node-fs-extra/issues/234 "ensureDirSync fails silent when EACCES: permission denied on travis-ci" +[#233]: https://github.com/jprichardson/node-fs-extra/issues/233 "please make sure the first argument in callback is error object [feature-copy]" +[#232]: https://github.com/jprichardson/node-fs-extra/issues/232 "Copy a folder content to its child folder. " +[#231]: https://github.com/jprichardson/node-fs-extra/issues/231 "Adding read/write/output functions for YAML" +[#230]: https://github.com/jprichardson/node-fs-extra/pull/230 "throw error if src and dest are the same to avoid zeroing out + test" +[#229]: https://github.com/jprichardson/node-fs-extra/pull/229 "fix 'TypeError: callback is not a function' in emptyDir" +[#228]: https://github.com/jprichardson/node-fs-extra/pull/228 "Throw error when target is empty so file is not accidentally zeroed out" +[#227]: https://github.com/jprichardson/node-fs-extra/issues/227 "Uncatchable errors when there are invalid arguments [feature-move]" +[#226]: https://github.com/jprichardson/node-fs-extra/issues/226 "Moving to the current directory" +[#225]: https://github.com/jprichardson/node-fs-extra/issues/225 "EBUSY: resource busy or locked, unlink" +[#224]: https://github.com/jprichardson/node-fs-extra/issues/224 "fse.copy ENOENT error" +[#223]: https://github.com/jprichardson/node-fs-extra/issues/223 "Suspicious behavior of fs.existsSync" +[#222]: https://github.com/jprichardson/node-fs-extra/pull/222 "A clearer description of emtpyDir function" +[#221]: https://github.com/jprichardson/node-fs-extra/pull/221 "Update README.md" +[#220]: https://github.com/jprichardson/node-fs-extra/pull/220 "Non-breaking feature: add option 'passStats' to copy methods." +[#219]: https://github.com/jprichardson/node-fs-extra/pull/219 "Add closing parenthesis in copySync example" +[#218]: https://github.com/jprichardson/node-fs-extra/pull/218 "fix #187 #70 options.filter bug" +[#217]: https://github.com/jprichardson/node-fs-extra/pull/217 "fix #187 #70 options.filter bug" +[#216]: https://github.com/jprichardson/node-fs-extra/pull/216 "fix #187 #70 options.filter bug" +[#215]: https://github.com/jprichardson/node-fs-extra/pull/215 "fse.copy throws error when only src and dest provided [bug, documentation, feature-copy]" +[#214]: https://github.com/jprichardson/node-fs-extra/pull/214 "Fixing copySync anchor tag" +[#213]: https://github.com/jprichardson/node-fs-extra/issues/213 "Merge extfs with this repo" +[#212]: https://github.com/jprichardson/node-fs-extra/pull/212 "Update year to 2016 in README.md and LICENSE" +[#211]: https://github.com/jprichardson/node-fs-extra/issues/211 "Not copying all files" +[#210]: https://github.com/jprichardson/node-fs-extra/issues/210 "copy/copySync behave differently when copying a symbolic file [bug, documentation, feature-copy]" +[#209]: https://github.com/jprichardson/node-fs-extra/issues/209 "In Windows invalid directory name causes infinite loop in ensureDir(). [bug]" +[#208]: https://github.com/jprichardson/node-fs-extra/pull/208 "fix options.preserveTimestamps to false in copy-sync by default [feature-copy]" +[#207]: https://github.com/jprichardson/node-fs-extra/issues/207 "Add `compare` suite of functions" +[#206]: https://github.com/jprichardson/node-fs-extra/issues/206 "outputFileSync" +[#205]: https://github.com/jprichardson/node-fs-extra/issues/205 "fix documents about copy/copySync [documentation, feature-copy]" +[#204]: https://github.com/jprichardson/node-fs-extra/pull/204 "allow copy of block and character device files" +[#203]: https://github.com/jprichardson/node-fs-extra/issues/203 "copy method's argument options couldn't be undefined [bug, feature-copy]" +[#202]: https://github.com/jprichardson/node-fs-extra/issues/202 "why there is not a walkSync method?" +[#201]: https://github.com/jprichardson/node-fs-extra/issues/201 "clobber for directories [feature-copy, future]" +[#200]: https://github.com/jprichardson/node-fs-extra/issues/200 "'copySync' doesn't work in sync" +[#199]: https://github.com/jprichardson/node-fs-extra/issues/199 "fs.copySync fails if user does not own file [bug, feature-copy]" +[#198]: https://github.com/jprichardson/node-fs-extra/issues/198 "handle copying between identical files [feature-copy]" +[#197]: https://github.com/jprichardson/node-fs-extra/issues/197 "Missing documentation for `outputFile` `options` 3rd parameter [documentation]" +[#196]: https://github.com/jprichardson/node-fs-extra/issues/196 "copy filter: async function and/or function called with `fs.stat` result [future]" +[#195]: https://github.com/jprichardson/node-fs-extra/issues/195 "How to override with outputFile?" +[#194]: https://github.com/jprichardson/node-fs-extra/pull/194 "allow ensureFile(Sync) to provide data to be written to created file" +[#193]: https://github.com/jprichardson/node-fs-extra/issues/193 "`fs.copy` fails silently if source file is /dev/null [bug, feature-copy]" +[#192]: https://github.com/jprichardson/node-fs-extra/issues/192 "Remove fs.createOutputStream()" +[#191]: https://github.com/jprichardson/node-fs-extra/issues/191 "How to copy symlinks to target as normal folders [feature-copy]" +[#190]: https://github.com/jprichardson/node-fs-extra/pull/190 "copySync to overwrite destination file if readonly and clobber true" +[#189]: https://github.com/jprichardson/node-fs-extra/pull/189 "move.test fix to support CRLF on Windows" +[#188]: https://github.com/jprichardson/node-fs-extra/issues/188 "move.test failing on windows platform" +[#187]: https://github.com/jprichardson/node-fs-extra/issues/187 "Not filter each file, stops on first false [feature-copy]" +[#186]: https://github.com/jprichardson/node-fs-extra/issues/186 "Do you need a .size() function in this module? [future]" +[#185]: https://github.com/jprichardson/node-fs-extra/issues/185 "Doesn't work on NodeJS v4.x" +[#184]: https://github.com/jprichardson/node-fs-extra/issues/184 "CLI equivalent for fs-extra" +[#183]: https://github.com/jprichardson/node-fs-extra/issues/183 "with clobber true, copy and copySync behave differently if destination file is read only [bug, feature-copy]" +[#182]: https://github.com/jprichardson/node-fs-extra/issues/182 "ensureDir(dir, callback) second callback parameter not specified" +[#181]: https://github.com/jprichardson/node-fs-extra/issues/181 "Add ability to remove file securely [enhancement, wont-fix]" +[#180]: https://github.com/jprichardson/node-fs-extra/issues/180 "Filter option doesn't work the same way in copy and copySync [bug, feature-copy]" +[#179]: https://github.com/jprichardson/node-fs-extra/issues/179 "Include opendir" +[#178]: https://github.com/jprichardson/node-fs-extra/issues/178 "ENOTEMPTY is thrown on removeSync " +[#177]: https://github.com/jprichardson/node-fs-extra/issues/177 "fix `remove()` wildcards (introduced by rimraf) [feature-remove]" +[#176]: https://github.com/jprichardson/node-fs-extra/issues/176 "createOutputStream doesn't emit 'end' event" +[#175]: https://github.com/jprichardson/node-fs-extra/issues/175 "[Feature Request].moveSync support [feature-move, future]" +[#174]: https://github.com/jprichardson/node-fs-extra/pull/174 "Fix copy formatting and document options.filter" +[#173]: https://github.com/jprichardson/node-fs-extra/issues/173 "Feature Request: writeJson should mkdirs" +[#172]: https://github.com/jprichardson/node-fs-extra/issues/172 "rename `clobber` flags to `overwrite`" +[#171]: https://github.com/jprichardson/node-fs-extra/issues/171 "remove unnecessary aliases" +[#170]: https://github.com/jprichardson/node-fs-extra/pull/170 "More robust handling of errors moving across virtual drives" +[#169]: https://github.com/jprichardson/node-fs-extra/pull/169 "suppress ensureLink & ensureSymlink dest exists error" +[#168]: https://github.com/jprichardson/node-fs-extra/pull/168 "suppress ensurelink dest exists error" +[#167]: https://github.com/jprichardson/node-fs-extra/pull/167 "Adds basic (string, buffer) support for ensureFile content [future]" +[#166]: https://github.com/jprichardson/node-fs-extra/pull/166 "Adds basic (string, buffer) support for ensureFile content" +[#165]: https://github.com/jprichardson/node-fs-extra/pull/165 "ensure for link & symlink" +[#164]: https://github.com/jprichardson/node-fs-extra/issues/164 "Feature Request: ensureFile to take optional argument for file content" +[#163]: https://github.com/jprichardson/node-fs-extra/issues/163 "ouputJson not formatted out of the box [bug]" +[#162]: https://github.com/jprichardson/node-fs-extra/pull/162 "ensure symlink & link" +[#161]: https://github.com/jprichardson/node-fs-extra/pull/161 "ensure symlink & link" +[#160]: https://github.com/jprichardson/node-fs-extra/pull/160 "ensure symlink & link" +[#159]: https://github.com/jprichardson/node-fs-extra/pull/159 "ensure symlink & link" +[#158]: https://github.com/jprichardson/node-fs-extra/issues/158 "Feature Request: ensureLink and ensureSymlink methods" +[#157]: https://github.com/jprichardson/node-fs-extra/issues/157 "writeJson isn't formatted" +[#156]: https://github.com/jprichardson/node-fs-extra/issues/156 "Promise.promisifyAll doesn't work for some methods" +[#155]: https://github.com/jprichardson/node-fs-extra/issues/155 "Readme" +[#154]: https://github.com/jprichardson/node-fs-extra/issues/154 "/tmp/millis-test-sync" +[#153]: https://github.com/jprichardson/node-fs-extra/pull/153 "Make preserveTimes also work on read-only files. Closes #152" +[#152]: https://github.com/jprichardson/node-fs-extra/issues/152 "fs.copy fails for read-only files with preserveTimestamp=true [feature-copy]" +[#151]: https://github.com/jprichardson/node-fs-extra/issues/151 "TOC does not work correctly on npm [documentation]" +[#150]: https://github.com/jprichardson/node-fs-extra/issues/150 "Remove test file fixtures, create with code." +[#149]: https://github.com/jprichardson/node-fs-extra/issues/149 "/tmp/millis-test-sync" +[#148]: https://github.com/jprichardson/node-fs-extra/issues/148 "split out `Sync` methods in documentation" +[#147]: https://github.com/jprichardson/node-fs-extra/issues/147 "Adding rmdirIfEmpty" +[#146]: https://github.com/jprichardson/node-fs-extra/pull/146 "ensure test.js works" +[#145]: https://github.com/jprichardson/node-fs-extra/issues/145 "Add `fs.exists` and `fs.existsSync` if it doesn't exist." +[#144]: https://github.com/jprichardson/node-fs-extra/issues/144 "tests failing" +[#143]: https://github.com/jprichardson/node-fs-extra/issues/143 "update graceful-fs" +[#142]: https://github.com/jprichardson/node-fs-extra/issues/142 "PrependFile Feature" +[#141]: https://github.com/jprichardson/node-fs-extra/pull/141 "Add option to preserve timestamps" +[#140]: https://github.com/jprichardson/node-fs-extra/issues/140 "Json file reading fails with 'utf8'" +[#139]: https://github.com/jprichardson/node-fs-extra/pull/139 "Preserve file timestamp on copy. Closes #138" +[#138]: https://github.com/jprichardson/node-fs-extra/issues/138 "Preserve timestamps on copying files" +[#137]: https://github.com/jprichardson/node-fs-extra/issues/137 "outputFile/outputJson: Unexpected end of input" +[#136]: https://github.com/jprichardson/node-fs-extra/pull/136 "Update license attribute" +[#135]: https://github.com/jprichardson/node-fs-extra/issues/135 "emptyDir throws Error if no callback is provided" +[#134]: https://github.com/jprichardson/node-fs-extra/pull/134 "Handle EEXIST error when clobbering dir" +[#133]: https://github.com/jprichardson/node-fs-extra/pull/133 "Travis runs with `sudo: false`" +[#132]: https://github.com/jprichardson/node-fs-extra/pull/132 "isDirectory method" +[#131]: https://github.com/jprichardson/node-fs-extra/issues/131 "copySync is not working iojs 1.8.4 on linux [feature-copy]" +[#130]: https://github.com/jprichardson/node-fs-extra/pull/130 "Please review additional features." +[#129]: https://github.com/jprichardson/node-fs-extra/pull/129 "can you review this feature?" +[#128]: https://github.com/jprichardson/node-fs-extra/issues/128 "fsExtra.move(filepath, newPath) broken;" +[#127]: https://github.com/jprichardson/node-fs-extra/issues/127 "consider using fs.access to remove deprecated warnings for fs.exists" +[#126]: https://github.com/jprichardson/node-fs-extra/issues/126 " TypeError: Object # has no method 'access'" +[#125]: https://github.com/jprichardson/node-fs-extra/issues/125 "Question: What do the *Sync function do different from non-sync" +[#124]: https://github.com/jprichardson/node-fs-extra/issues/124 "move with clobber option 'ENOTEMPTY'" +[#123]: https://github.com/jprichardson/node-fs-extra/issues/123 "Only copy the content of a directory" +[#122]: https://github.com/jprichardson/node-fs-extra/pull/122 "Update section links in README to match current section ids." +[#121]: https://github.com/jprichardson/node-fs-extra/issues/121 "emptyDir is undefined" +[#120]: https://github.com/jprichardson/node-fs-extra/issues/120 "usage bug caused by shallow cloning methods of 'graceful-fs'" +[#119]: https://github.com/jprichardson/node-fs-extra/issues/119 "mkdirs and ensureDir never invoke callback and consume CPU indefinitely if provided a path with invalid characters on Windows" +[#118]: https://github.com/jprichardson/node-fs-extra/pull/118 "createOutputStream" +[#117]: https://github.com/jprichardson/node-fs-extra/pull/117 "Fixed issue with slash separated paths on windows" +[#116]: https://github.com/jprichardson/node-fs-extra/issues/116 "copySync can only copy directories not files [documentation, feature-copy]" +[#115]: https://github.com/jprichardson/node-fs-extra/issues/115 ".Copy & .CopySync [feature-copy]" +[#114]: https://github.com/jprichardson/node-fs-extra/issues/114 "Fails to move (rename) directory to non-empty directory even with clobber: true" +[#113]: https://github.com/jprichardson/node-fs-extra/issues/113 "fs.copy seems to callback early if the destination file already exists" +[#112]: https://github.com/jprichardson/node-fs-extra/pull/112 "Copying a file into an existing directory" +[#111]: https://github.com/jprichardson/node-fs-extra/pull/111 "Moving a file into an existing directory " +[#110]: https://github.com/jprichardson/node-fs-extra/pull/110 "Moving a file into an existing directory" +[#109]: https://github.com/jprichardson/node-fs-extra/issues/109 "fs.move across windows drives fails" +[#108]: https://github.com/jprichardson/node-fs-extra/issues/108 "fse.move directories across multiple devices doesn't work" +[#107]: https://github.com/jprichardson/node-fs-extra/pull/107 "Check if dest path is an existing dir and copy or move source in it" +[#106]: https://github.com/jprichardson/node-fs-extra/issues/106 "fse.copySync crashes while copying across devices D: [feature-copy]" +[#105]: https://github.com/jprichardson/node-fs-extra/issues/105 "fs.copy hangs on iojs" +[#104]: https://github.com/jprichardson/node-fs-extra/issues/104 "fse.move deletes folders [bug]" +[#103]: https://github.com/jprichardson/node-fs-extra/issues/103 "Error: EMFILE with copy" +[#102]: https://github.com/jprichardson/node-fs-extra/issues/102 "touch / touchSync was removed ?" +[#101]: https://github.com/jprichardson/node-fs-extra/issues/101 "fs-extra promisified" +[#100]: https://github.com/jprichardson/node-fs-extra/pull/100 "copy: options object or filter to pass to ncp" +[#99]: https://github.com/jprichardson/node-fs-extra/issues/99 "ensureDir() modes [future]" +[#98]: https://github.com/jprichardson/node-fs-extra/issues/98 "fs.copy() incorrect async behavior [bug]" +[#97]: https://github.com/jprichardson/node-fs-extra/pull/97 "use path.join; fix copySync bug" +[#96]: https://github.com/jprichardson/node-fs-extra/issues/96 "destFolderExists in copySync is always undefined." +[#95]: https://github.com/jprichardson/node-fs-extra/pull/95 "Using graceful-ncp instead of ncp" +[#94]: https://github.com/jprichardson/node-fs-extra/issues/94 "Error: EEXIST, file already exists '../mkdirp/bin/cmd.js' on fs.copySync() [enhancement, feature-copy]" +[#93]: https://github.com/jprichardson/node-fs-extra/issues/93 "Confusing error if drive not mounted [enhancement]" +[#92]: https://github.com/jprichardson/node-fs-extra/issues/92 "Problems with Bluebird" +[#91]: https://github.com/jprichardson/node-fs-extra/issues/91 "fs.copySync('/test', '/haha') is different with 'cp -r /test /haha' [enhancement]" +[#90]: https://github.com/jprichardson/node-fs-extra/issues/90 "Folder creation and file copy is Happening in 64 bit machine but not in 32 bit machine" +[#89]: https://github.com/jprichardson/node-fs-extra/issues/89 "Error: EEXIST using fs-extra's fs.copy to copy a directory on Windows" +[#88]: https://github.com/jprichardson/node-fs-extra/issues/88 "Stacking those libraries" +[#87]: https://github.com/jprichardson/node-fs-extra/issues/87 "createWriteStream + outputFile = ?" +[#86]: https://github.com/jprichardson/node-fs-extra/issues/86 "no moveSync?" +[#85]: https://github.com/jprichardson/node-fs-extra/pull/85 "Copy symlinks in copySync" +[#84]: https://github.com/jprichardson/node-fs-extra/issues/84 "Push latest version to npm ?" +[#83]: https://github.com/jprichardson/node-fs-extra/issues/83 "Prevent copying a directory into itself [feature-copy]" +[#82]: https://github.com/jprichardson/node-fs-extra/pull/82 "README updates for move" +[#81]: https://github.com/jprichardson/node-fs-extra/issues/81 "fd leak after fs.move" +[#80]: https://github.com/jprichardson/node-fs-extra/pull/80 "Preserve file mode in copySync" +[#79]: https://github.com/jprichardson/node-fs-extra/issues/79 "fs.copy only .html file empty" +[#78]: https://github.com/jprichardson/node-fs-extra/pull/78 "copySync was not applying filters to directories" +[#77]: https://github.com/jprichardson/node-fs-extra/issues/77 "Create README reference to bluebird" +[#76]: https://github.com/jprichardson/node-fs-extra/issues/76 "Create README reference to typescript" +[#75]: https://github.com/jprichardson/node-fs-extra/issues/75 "add glob as a dep? [question]" +[#74]: https://github.com/jprichardson/node-fs-extra/pull/74 "including new emptydir module" +[#73]: https://github.com/jprichardson/node-fs-extra/pull/73 "add dependency status in readme" +[#72]: https://github.com/jprichardson/node-fs-extra/pull/72 "Use svg instead of png to get better image quality" +[#71]: https://github.com/jprichardson/node-fs-extra/issues/71 "fse.copy not working on Windows 7 x64 OS, but, copySync does work" +[#70]: https://github.com/jprichardson/node-fs-extra/issues/70 "Not filter each file, stops on first false [bug]" +[#69]: https://github.com/jprichardson/node-fs-extra/issues/69 "How to check if folder exist and read the folder name" +[#68]: https://github.com/jprichardson/node-fs-extra/issues/68 "consider flag to readJsonSync (throw false) [enhancement]" +[#67]: https://github.com/jprichardson/node-fs-extra/issues/67 "docs for readJson incorrectly states that is accepts options" +[#66]: https://github.com/jprichardson/node-fs-extra/issues/66 "ENAMETOOLONG" +[#65]: https://github.com/jprichardson/node-fs-extra/issues/65 "exclude filter in fs.copy" +[#64]: https://github.com/jprichardson/node-fs-extra/issues/64 "Announce: mfs - monitor your fs-extra calls" +[#63]: https://github.com/jprichardson/node-fs-extra/issues/63 "Walk" +[#62]: https://github.com/jprichardson/node-fs-extra/issues/62 "npm install fs-extra doesn't work" +[#61]: https://github.com/jprichardson/node-fs-extra/issues/61 "No longer supports node 0.8 due to use of `^` in package.json dependencies" +[#60]: https://github.com/jprichardson/node-fs-extra/issues/60 "chmod & chown for mkdirs" +[#59]: https://github.com/jprichardson/node-fs-extra/issues/59 "Consider including mkdirp and making fs-extra '--use_strict' safe [question]" +[#58]: https://github.com/jprichardson/node-fs-extra/issues/58 "Stack trace not included in fs.copy error" +[#57]: https://github.com/jprichardson/node-fs-extra/issues/57 "Possible to include wildcards in delete?" +[#56]: https://github.com/jprichardson/node-fs-extra/issues/56 "Crash when have no access to write to destination file in copy " +[#55]: https://github.com/jprichardson/node-fs-extra/issues/55 "Is it possible to have any console output similar to Grunt copy module?" +[#54]: https://github.com/jprichardson/node-fs-extra/issues/54 "`copy` does not preserve file ownership and permissons" +[#53]: https://github.com/jprichardson/node-fs-extra/issues/53 "outputFile() - ability to write data in appending mode" +[#52]: https://github.com/jprichardson/node-fs-extra/pull/52 "This fixes (what I think) is a bug in copySync" +[#51]: https://github.com/jprichardson/node-fs-extra/pull/51 "Add a Bitdeli Badge to README" +[#50]: https://github.com/jprichardson/node-fs-extra/issues/50 "Replace mechanism in createFile" +[#49]: https://github.com/jprichardson/node-fs-extra/pull/49 "update rimraf to v2.2.6" +[#48]: https://github.com/jprichardson/node-fs-extra/issues/48 "fs.copy issue [bug]" +[#47]: https://github.com/jprichardson/node-fs-extra/issues/47 "Bug in copy - callback called on readStream 'close' - Fixed in ncp 0.5.0" +[#46]: https://github.com/jprichardson/node-fs-extra/pull/46 "update copyright year" +[#45]: https://github.com/jprichardson/node-fs-extra/pull/45 "Added note about fse.outputFile() being the one that overwrites" +[#44]: https://github.com/jprichardson/node-fs-extra/pull/44 "Proposal: Stream support" +[#43]: https://github.com/jprichardson/node-fs-extra/issues/43 "Better error reporting " +[#42]: https://github.com/jprichardson/node-fs-extra/issues/42 "Performance issue?" +[#41]: https://github.com/jprichardson/node-fs-extra/pull/41 "There does seem to be a synchronous version now" +[#40]: https://github.com/jprichardson/node-fs-extra/issues/40 "fs.copy throw unexplained error ENOENT, utime " +[#39]: https://github.com/jprichardson/node-fs-extra/pull/39 "Added regression test for copy() return callback on error" +[#38]: https://github.com/jprichardson/node-fs-extra/pull/38 "Return err in copy() fstat cb, because stat could be undefined or null" +[#37]: https://github.com/jprichardson/node-fs-extra/issues/37 "Maybe include a line reader? [enhancement, question]" +[#36]: https://github.com/jprichardson/node-fs-extra/pull/36 "`filter` parameter `fs.copy` and `fs.copySync`" +[#35]: https://github.com/jprichardson/node-fs-extra/pull/35 "`filter` parameter `fs.copy` and `fs.copySync` " +[#34]: https://github.com/jprichardson/node-fs-extra/issues/34 "update docs to include options for JSON methods [enhancement]" +[#33]: https://github.com/jprichardson/node-fs-extra/pull/33 "fs_extra.copySync" +[#32]: https://github.com/jprichardson/node-fs-extra/issues/32 "update to latest jsonfile [enhancement]" +[#31]: https://github.com/jprichardson/node-fs-extra/issues/31 "Add ensure methods [enhancement]" +[#30]: https://github.com/jprichardson/node-fs-extra/issues/30 "update package.json optional dep `graceful-fs`" +[#29]: https://github.com/jprichardson/node-fs-extra/issues/29 "Copy failing if dest directory doesn't exist. Is this intended?" +[#28]: https://github.com/jprichardson/node-fs-extra/issues/28 "homepage field must be a string url. Deleted." +[#27]: https://github.com/jprichardson/node-fs-extra/issues/27 "Update Readme" +[#26]: https://github.com/jprichardson/node-fs-extra/issues/26 "Add readdir recursive method. [enhancement]" +[#25]: https://github.com/jprichardson/node-fs-extra/pull/25 "adding an `.npmignore` file" +[#24]: https://github.com/jprichardson/node-fs-extra/issues/24 "[bug] cannot run in strict mode [bug]" +[#23]: https://github.com/jprichardson/node-fs-extra/issues/23 "`writeJSON()` should create parent directories" +[#22]: https://github.com/jprichardson/node-fs-extra/pull/22 "Add a limit option to mkdirs()" +[#21]: https://github.com/jprichardson/node-fs-extra/issues/21 "touch() in 0.10.0" +[#20]: https://github.com/jprichardson/node-fs-extra/issues/20 "fs.remove yields callback before directory is really deleted" +[#19]: https://github.com/jprichardson/node-fs-extra/issues/19 "fs.copy err is empty array" +[#18]: https://github.com/jprichardson/node-fs-extra/pull/18 "Exposed copyFile Function" +[#17]: https://github.com/jprichardson/node-fs-extra/issues/17 "Use `require('graceful-fs')` if found instead of `require('fs')`" +[#16]: https://github.com/jprichardson/node-fs-extra/pull/16 "Update README.md" +[#15]: https://github.com/jprichardson/node-fs-extra/issues/15 "Implement cp -r but sync aka copySync. [enhancement]" +[#14]: https://github.com/jprichardson/node-fs-extra/issues/14 "fs.mkdirSync is broken in 0.3.1" +[#13]: https://github.com/jprichardson/node-fs-extra/issues/13 "Thoughts on including a directory tree / file watcher? [enhancement, question]" +[#12]: https://github.com/jprichardson/node-fs-extra/issues/12 "copyFile & copyFileSync are global" +[#11]: https://github.com/jprichardson/node-fs-extra/issues/11 "Thoughts on including a file walker? [enhancement, question]" +[#10]: https://github.com/jprichardson/node-fs-extra/issues/10 "move / moveFile API [enhancement]" +[#9]: https://github.com/jprichardson/node-fs-extra/issues/9 "don't import normal fs stuff into fs-extra" +[#8]: https://github.com/jprichardson/node-fs-extra/pull/8 "Update rimraf to latest version" +[#6]: https://github.com/jprichardson/node-fs-extra/issues/6 "Remove CoffeeScript development dependency" +[#5]: https://github.com/jprichardson/node-fs-extra/issues/5 "comments on naming" +[#4]: https://github.com/jprichardson/node-fs-extra/issues/4 "version bump to 0.2" +[#3]: https://github.com/jprichardson/node-fs-extra/pull/3 "Hi! I fixed some code for you!" +[#2]: https://github.com/jprichardson/node-fs-extra/issues/2 "Merge with fs.extra and mkdirp" +[#1]: https://github.com/jprichardson/node-fs-extra/issues/1 "file-extra npm !exist" diff --git a/node_modules/fs-extra/LICENSE b/node_modules/fs-extra/LICENSE new file mode 100644 index 00000000..93546dfb --- /dev/null +++ b/node_modules/fs-extra/LICENSE @@ -0,0 +1,15 @@ +(The MIT License) + +Copyright (c) 2011-2017 JP Richardson + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files +(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, + merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/fs-extra/README.md b/node_modules/fs-extra/README.md new file mode 100644 index 00000000..b4a5370b --- /dev/null +++ b/node_modules/fs-extra/README.md @@ -0,0 +1,264 @@ +Node.js: fs-extra +================= + +`fs-extra` adds file system methods that aren't included in the native `fs` module and adds promise support to the `fs` methods. It also uses [`graceful-fs`](https://github.com/isaacs/node-graceful-fs) to prevent `EMFILE` errors. It should be a drop in replacement for `fs`. + +[![npm Package](https://img.shields.io/npm/v/fs-extra.svg)](https://www.npmjs.org/package/fs-extra) +[![License](https://img.shields.io/npm/l/express.svg)](https://github.com/jprichardson/node-fs-extra/blob/master/LICENSE) +[![build status](https://img.shields.io/travis/jprichardson/node-fs-extra/master.svg)](http://travis-ci.org/jprichardson/node-fs-extra) +[![windows Build status](https://img.shields.io/appveyor/ci/jprichardson/node-fs-extra/master.svg?label=windows%20build)](https://ci.appveyor.com/project/jprichardson/node-fs-extra/branch/master) +[![downloads per month](http://img.shields.io/npm/dm/fs-extra.svg)](https://www.npmjs.org/package/fs-extra) +[![Coverage Status](https://img.shields.io/coveralls/github/jprichardson/node-fs-extra/master.svg)](https://coveralls.io/github/jprichardson/node-fs-extra) +[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) + +Why? +---- + +I got tired of including `mkdirp`, `rimraf`, and `ncp` in most of my projects. + + + + +Installation +------------ + + npm install fs-extra + + + +Usage +----- + +`fs-extra` is a drop in replacement for native `fs`. All methods in `fs` are attached to `fs-extra`. All `fs` methods return promises if the callback isn't passed. + +You don't ever need to include the original `fs` module again: + +```js +const fs = require('fs') // this is no longer necessary +``` + +you can now do this: + +```js +const fs = require('fs-extra') +``` + +or if you prefer to make it clear that you're using `fs-extra` and not `fs`, you may want +to name your `fs` variable `fse` like so: + +```js +const fse = require('fs-extra') +``` + +you can also keep both, but it's redundant: + +```js +const fs = require('fs') +const fse = require('fs-extra') +``` + +Sync vs Async vs Async/Await +------------- +Most methods are async by default. All async methods will return a promise if the callback isn't passed. + +Sync methods on the other hand will throw if an error occurs. + +Also Async/Await will throw an error if one occurs. + +Example: + +```js +const fs = require('fs-extra') + +// Async with promises: +fs.copy('/tmp/myfile', '/tmp/mynewfile') + .then(() => console.log('success!')) + .catch(err => console.error(err)) + +// Async with callbacks: +fs.copy('/tmp/myfile', '/tmp/mynewfile', err => { + if (err) return console.error(err) + console.log('success!') +}) + +// Sync: +try { + fs.copySync('/tmp/myfile', '/tmp/mynewfile') + console.log('success!') +} catch (err) { + console.error(err) +} + +// Async/Await: +async function copyFiles () { + try { + await fs.copy('/tmp/myfile', '/tmp/mynewfile') + console.log('success!') + } catch (err) { + console.error(err) + } +} + +copyFiles() +``` + + +Methods +------- + +### Async + +- [copy](docs/copy.md) +- [emptyDir](docs/emptyDir.md) +- [ensureFile](docs/ensureFile.md) +- [ensureDir](docs/ensureDir.md) +- [ensureLink](docs/ensureLink.md) +- [ensureSymlink](docs/ensureSymlink.md) +- [mkdirp](docs/ensureDir.md) +- [mkdirs](docs/ensureDir.md) +- [move](docs/move.md) +- [outputFile](docs/outputFile.md) +- [outputJson](docs/outputJson.md) +- [pathExists](docs/pathExists.md) +- [readJson](docs/readJson.md) +- [remove](docs/remove.md) +- [writeJson](docs/writeJson.md) + +### Sync + +- [copySync](docs/copy-sync.md) +- [emptyDirSync](docs/emptyDir-sync.md) +- [ensureFileSync](docs/ensureFile-sync.md) +- [ensureDirSync](docs/ensureDir-sync.md) +- [ensureLinkSync](docs/ensureLink-sync.md) +- [ensureSymlinkSync](docs/ensureSymlink-sync.md) +- [mkdirpSync](docs/ensureDir-sync.md) +- [mkdirsSync](docs/ensureDir-sync.md) +- [moveSync](docs/move-sync.md) +- [outputFileSync](docs/outputFile-sync.md) +- [outputJsonSync](docs/outputJson-sync.md) +- [pathExistsSync](docs/pathExists-sync.md) +- [readJsonSync](docs/readJson-sync.md) +- [removeSync](docs/remove-sync.md) +- [writeJsonSync](docs/writeJson-sync.md) + + +**NOTE:** You can still use the native Node.js methods. They are promisified and copied over to `fs-extra`. See [notes on `fs.read()`, `fs.write()`, & `fs.writev()`](docs/fs-read-write-writev.md) + +### What happened to `walk()` and `walkSync()`? + +They were removed from `fs-extra` in v2.0.0. If you need the functionality, `walk` and `walkSync` are available as separate packages, [`klaw`](https://github.com/jprichardson/node-klaw) and [`klaw-sync`](https://github.com/manidlou/node-klaw-sync). + + +Third Party +----------- + +### CLI + +[fse-cli](https://www.npmjs.com/package/@atao60/fse-cli) allows you to run `fs-extra` from a console or from [npm](https://www.npmjs.com) scripts. + +### TypeScript + +If you like TypeScript, you can use `fs-extra` with it: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/fs-extra + + +### File / Directory Watching + +If you want to watch for changes to files or directories, then you should use [chokidar](https://github.com/paulmillr/chokidar). + +### Obtain Filesystem (Devices, Partitions) Information + +[fs-filesystem](https://github.com/arthurintelligence/node-fs-filesystem) allows you to read the state of the filesystem of the host on which it is run. It returns information about both the devices and the partitions (volumes) of the system. + +### Misc. + +- [fs-extra-debug](https://github.com/jdxcode/fs-extra-debug) - Send your fs-extra calls to [debug](https://npmjs.org/package/debug). +- [mfs](https://github.com/cadorn/mfs) - Monitor your fs-extra calls. + + + +Hacking on fs-extra +------------------- + +Wanna hack on `fs-extra`? Great! Your help is needed! [fs-extra is one of the most depended upon Node.js packages](http://nodei.co/npm/fs-extra.png?downloads=true&downloadRank=true&stars=true). This project +uses [JavaScript Standard Style](https://github.com/feross/standard) - if the name or style choices bother you, +you're gonna have to get over it :) If `standard` is good enough for `npm`, it's good enough for `fs-extra`. + +[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard) + +What's needed? +- First, take a look at existing issues. Those are probably going to be where the priority lies. +- More tests for edge cases. Specifically on different platforms. There can never be enough tests. +- Improve test coverage. See coveralls output for more info. + +Note: If you make any big changes, **you should definitely file an issue for discussion first.** + +### Running the Test Suite + +fs-extra contains hundreds of tests. + +- `npm run lint`: runs the linter ([standard](http://standardjs.com/)) +- `npm run unit`: runs the unit tests +- `npm test`: runs both the linter and the tests + + +### Windows + +If you run the tests on the Windows and receive a lot of symbolic link `EPERM` permission errors, it's +because on Windows you need elevated privilege to create symbolic links. You can add this to your Windows's +account by following the instructions here: http://superuser.com/questions/104845/permission-to-make-symbolic-links-in-windows-7 +However, I didn't have much luck doing this. + +Since I develop on Mac OS X, I use VMWare Fusion for Windows testing. I create a shared folder that I map to a drive on Windows. +I open the `Node.js command prompt` and run as `Administrator`. I then map the network drive running the following command: + + net use z: "\\vmware-host\Shared Folders" + +I can then navigate to my `fs-extra` directory and run the tests. + + +Naming +------ + +I put a lot of thought into the naming of these functions. Inspired by @coolaj86's request. So he deserves much of the credit for raising the issue. See discussion(s) here: + +* https://github.com/jprichardson/node-fs-extra/issues/2 +* https://github.com/flatiron/utile/issues/11 +* https://github.com/ryanmcgrath/wrench-js/issues/29 +* https://github.com/substack/node-mkdirp/issues/17 + +First, I believe that in as many cases as possible, the [Node.js naming schemes](http://nodejs.org/api/fs.html) should be chosen. However, there are problems with the Node.js own naming schemes. + +For example, `fs.readFile()` and `fs.readdir()`: the **F** is capitalized in *File* and the **d** is not capitalized in *dir*. Perhaps a bit pedantic, but they should still be consistent. Also, Node.js has chosen a lot of POSIX naming schemes, which I believe is great. See: `fs.mkdir()`, `fs.rmdir()`, `fs.chown()`, etc. + +We have a dilemma though. How do you consistently name methods that perform the following POSIX commands: `cp`, `cp -r`, `mkdir -p`, and `rm -rf`? + +My perspective: when in doubt, err on the side of simplicity. A directory is just a hierarchical grouping of directories and files. Consider that for a moment. So when you want to copy it or remove it, in most cases you'll want to copy or remove all of its contents. When you want to create a directory, if the directory that it's suppose to be contained in does not exist, then in most cases you'll want to create that too. + +So, if you want to remove a file or a directory regardless of whether it has contents, just call `fs.remove(path)`. If you want to copy a file or a directory whether it has contents, just call `fs.copy(source, destination)`. If you want to create a directory regardless of whether its parent directories exist, just call `fs.mkdirs(path)` or `fs.mkdirp(path)`. + + +Credit +------ + +`fs-extra` wouldn't be possible without using the modules from the following authors: + +- [Isaac Shlueter](https://github.com/isaacs) +- [Charlie McConnel](https://github.com/avianflu) +- [James Halliday](https://github.com/substack) +- [Andrew Kelley](https://github.com/andrewrk) + + + + +License +------- + +Licensed under MIT + +Copyright (c) 2011-2017 [JP Richardson](https://github.com/jprichardson) + +[1]: http://nodejs.org/docs/latest/api/fs.html + + +[jsonfile]: https://github.com/jprichardson/node-jsonfile diff --git a/node_modules/fs-extra/lib/copy-sync/copy-sync.js b/node_modules/fs-extra/lib/copy-sync/copy-sync.js new file mode 100644 index 00000000..5e245b91 --- /dev/null +++ b/node_modules/fs-extra/lib/copy-sync/copy-sync.js @@ -0,0 +1,166 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const mkdirsSync = require('../mkdirs').mkdirsSync +const utimesMillisSync = require('../util/utimes').utimesMillisSync +const stat = require('../util/stat') + +function copySync (src, dest, opts) { + if (typeof opts === 'function') { + opts = { filter: opts } + } + + opts = opts || {} + opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now + opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber + + // Warn about using preserveTimestamps on 32-bit node + if (opts.preserveTimestamps && process.arch === 'ia32') { + console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n + see https://github.com/jprichardson/node-fs-extra/issues/269`) + } + + const { srcStat, destStat } = stat.checkPathsSync(src, dest, 'copy', opts) + stat.checkParentPathsSync(src, srcStat, dest, 'copy') + return handleFilterAndCopy(destStat, src, dest, opts) +} + +function handleFilterAndCopy (destStat, src, dest, opts) { + if (opts.filter && !opts.filter(src, dest)) return + const destParent = path.dirname(dest) + if (!fs.existsSync(destParent)) mkdirsSync(destParent) + return getStats(destStat, src, dest, opts) +} + +function startCopy (destStat, src, dest, opts) { + if (opts.filter && !opts.filter(src, dest)) return + return getStats(destStat, src, dest, opts) +} + +function getStats (destStat, src, dest, opts) { + const statSync = opts.dereference ? fs.statSync : fs.lstatSync + const srcStat = statSync(src) + + if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts) + else if (srcStat.isFile() || + srcStat.isCharacterDevice() || + srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts) + else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts) + else if (srcStat.isSocket()) throw new Error(`Cannot copy a socket file: ${src}`) + else if (srcStat.isFIFO()) throw new Error(`Cannot copy a FIFO pipe: ${src}`) + throw new Error(`Unknown file: ${src}`) +} + +function onFile (srcStat, destStat, src, dest, opts) { + if (!destStat) return copyFile(srcStat, src, dest, opts) + return mayCopyFile(srcStat, src, dest, opts) +} + +function mayCopyFile (srcStat, src, dest, opts) { + if (opts.overwrite) { + fs.unlinkSync(dest) + return copyFile(srcStat, src, dest, opts) + } else if (opts.errorOnExist) { + throw new Error(`'${dest}' already exists`) + } +} + +function copyFile (srcStat, src, dest, opts) { + fs.copyFileSync(src, dest) + if (opts.preserveTimestamps) handleTimestamps(srcStat.mode, src, dest) + return setDestMode(dest, srcStat.mode) +} + +function handleTimestamps (srcMode, src, dest) { + // Make sure the file is writable before setting the timestamp + // otherwise open fails with EPERM when invoked with 'r+' + // (through utimes call) + if (fileIsNotWritable(srcMode)) makeFileWritable(dest, srcMode) + return setDestTimestamps(src, dest) +} + +function fileIsNotWritable (srcMode) { + return (srcMode & 0o200) === 0 +} + +function makeFileWritable (dest, srcMode) { + return setDestMode(dest, srcMode | 0o200) +} + +function setDestMode (dest, srcMode) { + return fs.chmodSync(dest, srcMode) +} + +function setDestTimestamps (src, dest) { + // The initial srcStat.atime cannot be trusted + // because it is modified by the read(2) system call + // (See https://nodejs.org/api/fs.html#fs_stat_time_values) + const updatedSrcStat = fs.statSync(src) + return utimesMillisSync(dest, updatedSrcStat.atime, updatedSrcStat.mtime) +} + +function onDir (srcStat, destStat, src, dest, opts) { + if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts) + return copyDir(src, dest, opts) +} + +function mkDirAndCopy (srcMode, src, dest, opts) { + fs.mkdirSync(dest) + copyDir(src, dest, opts) + return setDestMode(dest, srcMode) +} + +function copyDir (src, dest, opts) { + fs.readdirSync(src).forEach(item => copyDirItem(item, src, dest, opts)) +} + +function copyDirItem (item, src, dest, opts) { + const srcItem = path.join(src, item) + const destItem = path.join(dest, item) + const { destStat } = stat.checkPathsSync(srcItem, destItem, 'copy', opts) + return startCopy(destStat, srcItem, destItem, opts) +} + +function onLink (destStat, src, dest, opts) { + let resolvedSrc = fs.readlinkSync(src) + if (opts.dereference) { + resolvedSrc = path.resolve(process.cwd(), resolvedSrc) + } + + if (!destStat) { + return fs.symlinkSync(resolvedSrc, dest) + } else { + let resolvedDest + try { + resolvedDest = fs.readlinkSync(dest) + } catch (err) { + // dest exists and is a regular file or directory, + // Windows may throw UNKNOWN error. If dest already exists, + // fs throws error anyway, so no need to guard against it here. + if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlinkSync(resolvedSrc, dest) + throw err + } + if (opts.dereference) { + resolvedDest = path.resolve(process.cwd(), resolvedDest) + } + if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) { + throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`) + } + + // prevent copy if src is a subdir of dest since unlinking + // dest in this case would result in removing src contents + // and therefore a broken symlink would be created. + if (fs.statSync(dest).isDirectory() && stat.isSrcSubdir(resolvedDest, resolvedSrc)) { + throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`) + } + return copyLink(resolvedSrc, dest) + } +} + +function copyLink (resolvedSrc, dest) { + fs.unlinkSync(dest) + return fs.symlinkSync(resolvedSrc, dest) +} + +module.exports = copySync diff --git a/node_modules/fs-extra/lib/copy-sync/index.js b/node_modules/fs-extra/lib/copy-sync/index.js new file mode 100644 index 00000000..65945aed --- /dev/null +++ b/node_modules/fs-extra/lib/copy-sync/index.js @@ -0,0 +1,5 @@ +'use strict' + +module.exports = { + copySync: require('./copy-sync') +} diff --git a/node_modules/fs-extra/lib/copy/copy.js b/node_modules/fs-extra/lib/copy/copy.js new file mode 100644 index 00000000..2a2874f3 --- /dev/null +++ b/node_modules/fs-extra/lib/copy/copy.js @@ -0,0 +1,232 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const mkdirs = require('../mkdirs').mkdirs +const pathExists = require('../path-exists').pathExists +const utimesMillis = require('../util/utimes').utimesMillis +const stat = require('../util/stat') + +function copy (src, dest, opts, cb) { + if (typeof opts === 'function' && !cb) { + cb = opts + opts = {} + } else if (typeof opts === 'function') { + opts = { filter: opts } + } + + cb = cb || function () {} + opts = opts || {} + + opts.clobber = 'clobber' in opts ? !!opts.clobber : true // default to true for now + opts.overwrite = 'overwrite' in opts ? !!opts.overwrite : opts.clobber // overwrite falls back to clobber + + // Warn about using preserveTimestamps on 32-bit node + if (opts.preserveTimestamps && process.arch === 'ia32') { + console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n + see https://github.com/jprichardson/node-fs-extra/issues/269`) + } + + stat.checkPaths(src, dest, 'copy', opts, (err, stats) => { + if (err) return cb(err) + const { srcStat, destStat } = stats + stat.checkParentPaths(src, srcStat, dest, 'copy', err => { + if (err) return cb(err) + if (opts.filter) return handleFilter(checkParentDir, destStat, src, dest, opts, cb) + return checkParentDir(destStat, src, dest, opts, cb) + }) + }) +} + +function checkParentDir (destStat, src, dest, opts, cb) { + const destParent = path.dirname(dest) + pathExists(destParent, (err, dirExists) => { + if (err) return cb(err) + if (dirExists) return getStats(destStat, src, dest, opts, cb) + mkdirs(destParent, err => { + if (err) return cb(err) + return getStats(destStat, src, dest, opts, cb) + }) + }) +} + +function handleFilter (onInclude, destStat, src, dest, opts, cb) { + Promise.resolve(opts.filter(src, dest)).then(include => { + if (include) return onInclude(destStat, src, dest, opts, cb) + return cb() + }, error => cb(error)) +} + +function startCopy (destStat, src, dest, opts, cb) { + if (opts.filter) return handleFilter(getStats, destStat, src, dest, opts, cb) + return getStats(destStat, src, dest, opts, cb) +} + +function getStats (destStat, src, dest, opts, cb) { + const stat = opts.dereference ? fs.stat : fs.lstat + stat(src, (err, srcStat) => { + if (err) return cb(err) + + if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts, cb) + else if (srcStat.isFile() || + srcStat.isCharacterDevice() || + srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts, cb) + else if (srcStat.isSymbolicLink()) return onLink(destStat, src, dest, opts, cb) + else if (srcStat.isSocket()) return cb(new Error(`Cannot copy a socket file: ${src}`)) + else if (srcStat.isFIFO()) return cb(new Error(`Cannot copy a FIFO pipe: ${src}`)) + return cb(new Error(`Unknown file: ${src}`)) + }) +} + +function onFile (srcStat, destStat, src, dest, opts, cb) { + if (!destStat) return copyFile(srcStat, src, dest, opts, cb) + return mayCopyFile(srcStat, src, dest, opts, cb) +} + +function mayCopyFile (srcStat, src, dest, opts, cb) { + if (opts.overwrite) { + fs.unlink(dest, err => { + if (err) return cb(err) + return copyFile(srcStat, src, dest, opts, cb) + }) + } else if (opts.errorOnExist) { + return cb(new Error(`'${dest}' already exists`)) + } else return cb() +} + +function copyFile (srcStat, src, dest, opts, cb) { + fs.copyFile(src, dest, err => { + if (err) return cb(err) + if (opts.preserveTimestamps) return handleTimestampsAndMode(srcStat.mode, src, dest, cb) + return setDestMode(dest, srcStat.mode, cb) + }) +} + +function handleTimestampsAndMode (srcMode, src, dest, cb) { + // Make sure the file is writable before setting the timestamp + // otherwise open fails with EPERM when invoked with 'r+' + // (through utimes call) + if (fileIsNotWritable(srcMode)) { + return makeFileWritable(dest, srcMode, err => { + if (err) return cb(err) + return setDestTimestampsAndMode(srcMode, src, dest, cb) + }) + } + return setDestTimestampsAndMode(srcMode, src, dest, cb) +} + +function fileIsNotWritable (srcMode) { + return (srcMode & 0o200) === 0 +} + +function makeFileWritable (dest, srcMode, cb) { + return setDestMode(dest, srcMode | 0o200, cb) +} + +function setDestTimestampsAndMode (srcMode, src, dest, cb) { + setDestTimestamps(src, dest, err => { + if (err) return cb(err) + return setDestMode(dest, srcMode, cb) + }) +} + +function setDestMode (dest, srcMode, cb) { + return fs.chmod(dest, srcMode, cb) +} + +function setDestTimestamps (src, dest, cb) { + // The initial srcStat.atime cannot be trusted + // because it is modified by the read(2) system call + // (See https://nodejs.org/api/fs.html#fs_stat_time_values) + fs.stat(src, (err, updatedSrcStat) => { + if (err) return cb(err) + return utimesMillis(dest, updatedSrcStat.atime, updatedSrcStat.mtime, cb) + }) +} + +function onDir (srcStat, destStat, src, dest, opts, cb) { + if (!destStat) return mkDirAndCopy(srcStat.mode, src, dest, opts, cb) + return copyDir(src, dest, opts, cb) +} + +function mkDirAndCopy (srcMode, src, dest, opts, cb) { + fs.mkdir(dest, err => { + if (err) return cb(err) + copyDir(src, dest, opts, err => { + if (err) return cb(err) + return setDestMode(dest, srcMode, cb) + }) + }) +} + +function copyDir (src, dest, opts, cb) { + fs.readdir(src, (err, items) => { + if (err) return cb(err) + return copyDirItems(items, src, dest, opts, cb) + }) +} + +function copyDirItems (items, src, dest, opts, cb) { + const item = items.pop() + if (!item) return cb() + return copyDirItem(items, item, src, dest, opts, cb) +} + +function copyDirItem (items, item, src, dest, opts, cb) { + const srcItem = path.join(src, item) + const destItem = path.join(dest, item) + stat.checkPaths(srcItem, destItem, 'copy', opts, (err, stats) => { + if (err) return cb(err) + const { destStat } = stats + startCopy(destStat, srcItem, destItem, opts, err => { + if (err) return cb(err) + return copyDirItems(items, src, dest, opts, cb) + }) + }) +} + +function onLink (destStat, src, dest, opts, cb) { + fs.readlink(src, (err, resolvedSrc) => { + if (err) return cb(err) + if (opts.dereference) { + resolvedSrc = path.resolve(process.cwd(), resolvedSrc) + } + + if (!destStat) { + return fs.symlink(resolvedSrc, dest, cb) + } else { + fs.readlink(dest, (err, resolvedDest) => { + if (err) { + // dest exists and is a regular file or directory, + // Windows may throw UNKNOWN error. If dest already exists, + // fs throws error anyway, so no need to guard against it here. + if (err.code === 'EINVAL' || err.code === 'UNKNOWN') return fs.symlink(resolvedSrc, dest, cb) + return cb(err) + } + if (opts.dereference) { + resolvedDest = path.resolve(process.cwd(), resolvedDest) + } + if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) { + return cb(new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`)) + } + + // do not copy if src is a subdir of dest since unlinking + // dest in this case would result in removing src contents + // and therefore a broken symlink would be created. + if (destStat.isDirectory() && stat.isSrcSubdir(resolvedDest, resolvedSrc)) { + return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`)) + } + return copyLink(resolvedSrc, dest, cb) + }) + } + }) +} + +function copyLink (resolvedSrc, dest, cb) { + fs.unlink(dest, err => { + if (err) return cb(err) + return fs.symlink(resolvedSrc, dest, cb) + }) +} + +module.exports = copy diff --git a/node_modules/fs-extra/lib/copy/index.js b/node_modules/fs-extra/lib/copy/index.js new file mode 100644 index 00000000..b7e4f7f8 --- /dev/null +++ b/node_modules/fs-extra/lib/copy/index.js @@ -0,0 +1,6 @@ +'use strict' + +const u = require('universalify').fromCallback +module.exports = { + copy: u(require('./copy')) +} diff --git a/node_modules/fs-extra/lib/empty/index.js b/node_modules/fs-extra/lib/empty/index.js new file mode 100644 index 00000000..b4a2e823 --- /dev/null +++ b/node_modules/fs-extra/lib/empty/index.js @@ -0,0 +1,39 @@ +'use strict' + +const u = require('universalify').fromPromise +const fs = require('../fs') +const path = require('path') +const mkdir = require('../mkdirs') +const remove = require('../remove') + +const emptyDir = u(async function emptyDir (dir) { + let items + try { + items = await fs.readdir(dir) + } catch { + return mkdir.mkdirs(dir) + } + + return Promise.all(items.map(item => remove.remove(path.join(dir, item)))) +}) + +function emptyDirSync (dir) { + let items + try { + items = fs.readdirSync(dir) + } catch { + return mkdir.mkdirsSync(dir) + } + + items.forEach(item => { + item = path.join(dir, item) + remove.removeSync(item) + }) +} + +module.exports = { + emptyDirSync, + emptydirSync: emptyDirSync, + emptyDir, + emptydir: emptyDir +} diff --git a/node_modules/fs-extra/lib/ensure/file.js b/node_modules/fs-extra/lib/ensure/file.js new file mode 100644 index 00000000..15cc473c --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/file.js @@ -0,0 +1,69 @@ +'use strict' + +const u = require('universalify').fromCallback +const path = require('path') +const fs = require('graceful-fs') +const mkdir = require('../mkdirs') + +function createFile (file, callback) { + function makeFile () { + fs.writeFile(file, '', err => { + if (err) return callback(err) + callback() + }) + } + + fs.stat(file, (err, stats) => { // eslint-disable-line handle-callback-err + if (!err && stats.isFile()) return callback() + const dir = path.dirname(file) + fs.stat(dir, (err, stats) => { + if (err) { + // if the directory doesn't exist, make it + if (err.code === 'ENOENT') { + return mkdir.mkdirs(dir, err => { + if (err) return callback(err) + makeFile() + }) + } + return callback(err) + } + + if (stats.isDirectory()) makeFile() + else { + // parent is not a directory + // This is just to cause an internal ENOTDIR error to be thrown + fs.readdir(dir, err => { + if (err) return callback(err) + }) + } + }) + }) +} + +function createFileSync (file) { + let stats + try { + stats = fs.statSync(file) + } catch {} + if (stats && stats.isFile()) return + + const dir = path.dirname(file) + try { + if (!fs.statSync(dir).isDirectory()) { + // parent is not a directory + // This is just to cause an internal ENOTDIR error to be thrown + fs.readdirSync(dir) + } + } catch (err) { + // If the stat call above failed because the directory doesn't exist, create it + if (err && err.code === 'ENOENT') mkdir.mkdirsSync(dir) + else throw err + } + + fs.writeFileSync(file, '') +} + +module.exports = { + createFile: u(createFile), + createFileSync +} diff --git a/node_modules/fs-extra/lib/ensure/index.js b/node_modules/fs-extra/lib/ensure/index.js new file mode 100644 index 00000000..c1f67b71 --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/index.js @@ -0,0 +1,23 @@ +'use strict' + +const file = require('./file') +const link = require('./link') +const symlink = require('./symlink') + +module.exports = { + // file + createFile: file.createFile, + createFileSync: file.createFileSync, + ensureFile: file.createFile, + ensureFileSync: file.createFileSync, + // link + createLink: link.createLink, + createLinkSync: link.createLinkSync, + ensureLink: link.createLink, + ensureLinkSync: link.createLinkSync, + // symlink + createSymlink: symlink.createSymlink, + createSymlinkSync: symlink.createSymlinkSync, + ensureSymlink: symlink.createSymlink, + ensureSymlinkSync: symlink.createSymlinkSync +} diff --git a/node_modules/fs-extra/lib/ensure/link.js b/node_modules/fs-extra/lib/ensure/link.js new file mode 100644 index 00000000..f6d67486 --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/link.js @@ -0,0 +1,64 @@ +'use strict' + +const u = require('universalify').fromCallback +const path = require('path') +const fs = require('graceful-fs') +const mkdir = require('../mkdirs') +const pathExists = require('../path-exists').pathExists +const { areIdentical } = require('../util/stat') + +function createLink (srcpath, dstpath, callback) { + function makeLink (srcpath, dstpath) { + fs.link(srcpath, dstpath, err => { + if (err) return callback(err) + callback(null) + }) + } + + fs.lstat(dstpath, (_, dstStat) => { + fs.lstat(srcpath, (err, srcStat) => { + if (err) { + err.message = err.message.replace('lstat', 'ensureLink') + return callback(err) + } + if (dstStat && areIdentical(srcStat, dstStat)) return callback(null) + + const dir = path.dirname(dstpath) + pathExists(dir, (err, dirExists) => { + if (err) return callback(err) + if (dirExists) return makeLink(srcpath, dstpath) + mkdir.mkdirs(dir, err => { + if (err) return callback(err) + makeLink(srcpath, dstpath) + }) + }) + }) + }) +} + +function createLinkSync (srcpath, dstpath) { + let dstStat + try { + dstStat = fs.lstatSync(dstpath) + } catch {} + + try { + const srcStat = fs.lstatSync(srcpath) + if (dstStat && areIdentical(srcStat, dstStat)) return + } catch (err) { + err.message = err.message.replace('lstat', 'ensureLink') + throw err + } + + const dir = path.dirname(dstpath) + const dirExists = fs.existsSync(dir) + if (dirExists) return fs.linkSync(srcpath, dstpath) + mkdir.mkdirsSync(dir) + + return fs.linkSync(srcpath, dstpath) +} + +module.exports = { + createLink: u(createLink), + createLinkSync +} diff --git a/node_modules/fs-extra/lib/ensure/symlink-paths.js b/node_modules/fs-extra/lib/ensure/symlink-paths.js new file mode 100644 index 00000000..33cd7600 --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/symlink-paths.js @@ -0,0 +1,99 @@ +'use strict' + +const path = require('path') +const fs = require('graceful-fs') +const pathExists = require('../path-exists').pathExists + +/** + * Function that returns two types of paths, one relative to symlink, and one + * relative to the current working directory. Checks if path is absolute or + * relative. If the path is relative, this function checks if the path is + * relative to symlink or relative to current working directory. This is an + * initiative to find a smarter `srcpath` to supply when building symlinks. + * This allows you to determine which path to use out of one of three possible + * types of source paths. The first is an absolute path. This is detected by + * `path.isAbsolute()`. When an absolute path is provided, it is checked to + * see if it exists. If it does it's used, if not an error is returned + * (callback)/ thrown (sync). The other two options for `srcpath` are a + * relative url. By default Node's `fs.symlink` works by creating a symlink + * using `dstpath` and expects the `srcpath` to be relative to the newly + * created symlink. If you provide a `srcpath` that does not exist on the file + * system it results in a broken symlink. To minimize this, the function + * checks to see if the 'relative to symlink' source file exists, and if it + * does it will use it. If it does not, it checks if there's a file that + * exists that is relative to the current working directory, if does its used. + * This preserves the expectations of the original fs.symlink spec and adds + * the ability to pass in `relative to current working direcotry` paths. + */ + +function symlinkPaths (srcpath, dstpath, callback) { + if (path.isAbsolute(srcpath)) { + return fs.lstat(srcpath, (err) => { + if (err) { + err.message = err.message.replace('lstat', 'ensureSymlink') + return callback(err) + } + return callback(null, { + toCwd: srcpath, + toDst: srcpath + }) + }) + } else { + const dstdir = path.dirname(dstpath) + const relativeToDst = path.join(dstdir, srcpath) + return pathExists(relativeToDst, (err, exists) => { + if (err) return callback(err) + if (exists) { + return callback(null, { + toCwd: relativeToDst, + toDst: srcpath + }) + } else { + return fs.lstat(srcpath, (err) => { + if (err) { + err.message = err.message.replace('lstat', 'ensureSymlink') + return callback(err) + } + return callback(null, { + toCwd: srcpath, + toDst: path.relative(dstdir, srcpath) + }) + }) + } + }) + } +} + +function symlinkPathsSync (srcpath, dstpath) { + let exists + if (path.isAbsolute(srcpath)) { + exists = fs.existsSync(srcpath) + if (!exists) throw new Error('absolute srcpath does not exist') + return { + toCwd: srcpath, + toDst: srcpath + } + } else { + const dstdir = path.dirname(dstpath) + const relativeToDst = path.join(dstdir, srcpath) + exists = fs.existsSync(relativeToDst) + if (exists) { + return { + toCwd: relativeToDst, + toDst: srcpath + } + } else { + exists = fs.existsSync(srcpath) + if (!exists) throw new Error('relative srcpath does not exist') + return { + toCwd: srcpath, + toDst: path.relative(dstdir, srcpath) + } + } + } +} + +module.exports = { + symlinkPaths, + symlinkPathsSync +} diff --git a/node_modules/fs-extra/lib/ensure/symlink-type.js b/node_modules/fs-extra/lib/ensure/symlink-type.js new file mode 100644 index 00000000..42dc0ce7 --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/symlink-type.js @@ -0,0 +1,31 @@ +'use strict' + +const fs = require('graceful-fs') + +function symlinkType (srcpath, type, callback) { + callback = (typeof type === 'function') ? type : callback + type = (typeof type === 'function') ? false : type + if (type) return callback(null, type) + fs.lstat(srcpath, (err, stats) => { + if (err) return callback(null, 'file') + type = (stats && stats.isDirectory()) ? 'dir' : 'file' + callback(null, type) + }) +} + +function symlinkTypeSync (srcpath, type) { + let stats + + if (type) return type + try { + stats = fs.lstatSync(srcpath) + } catch { + return 'file' + } + return (stats && stats.isDirectory()) ? 'dir' : 'file' +} + +module.exports = { + symlinkType, + symlinkTypeSync +} diff --git a/node_modules/fs-extra/lib/ensure/symlink.js b/node_modules/fs-extra/lib/ensure/symlink.js new file mode 100644 index 00000000..2b93052f --- /dev/null +++ b/node_modules/fs-extra/lib/ensure/symlink.js @@ -0,0 +1,82 @@ +'use strict' + +const u = require('universalify').fromCallback +const path = require('path') +const fs = require('../fs') +const _mkdirs = require('../mkdirs') +const mkdirs = _mkdirs.mkdirs +const mkdirsSync = _mkdirs.mkdirsSync + +const _symlinkPaths = require('./symlink-paths') +const symlinkPaths = _symlinkPaths.symlinkPaths +const symlinkPathsSync = _symlinkPaths.symlinkPathsSync + +const _symlinkType = require('./symlink-type') +const symlinkType = _symlinkType.symlinkType +const symlinkTypeSync = _symlinkType.symlinkTypeSync + +const pathExists = require('../path-exists').pathExists + +const { areIdentical } = require('../util/stat') + +function createSymlink (srcpath, dstpath, type, callback) { + callback = (typeof type === 'function') ? type : callback + type = (typeof type === 'function') ? false : type + + fs.lstat(dstpath, (err, stats) => { + if (!err && stats.isSymbolicLink()) { + Promise.all([ + fs.stat(srcpath), + fs.stat(dstpath) + ]).then(([srcStat, dstStat]) => { + if (areIdentical(srcStat, dstStat)) return callback(null) + _createSymlink(srcpath, dstpath, type, callback) + }) + } else _createSymlink(srcpath, dstpath, type, callback) + }) +} + +function _createSymlink (srcpath, dstpath, type, callback) { + symlinkPaths(srcpath, dstpath, (err, relative) => { + if (err) return callback(err) + srcpath = relative.toDst + symlinkType(relative.toCwd, type, (err, type) => { + if (err) return callback(err) + const dir = path.dirname(dstpath) + pathExists(dir, (err, dirExists) => { + if (err) return callback(err) + if (dirExists) return fs.symlink(srcpath, dstpath, type, callback) + mkdirs(dir, err => { + if (err) return callback(err) + fs.symlink(srcpath, dstpath, type, callback) + }) + }) + }) + }) +} + +function createSymlinkSync (srcpath, dstpath, type) { + let stats + try { + stats = fs.lstatSync(dstpath) + } catch {} + if (stats && stats.isSymbolicLink()) { + const srcStat = fs.statSync(srcpath) + const dstStat = fs.statSync(dstpath) + if (areIdentical(srcStat, dstStat)) return + } + + const relative = symlinkPathsSync(srcpath, dstpath) + srcpath = relative.toDst + type = symlinkTypeSync(relative.toCwd, type) + const dir = path.dirname(dstpath) + const exists = fs.existsSync(dir) + if (exists) return fs.symlinkSync(srcpath, dstpath, type) + mkdirsSync(dir) + return fs.symlinkSync(srcpath, dstpath, type) +} + +module.exports = { + createSymlink: u(createSymlink), + createSymlinkSync +} diff --git a/node_modules/fs-extra/lib/fs/index.js b/node_modules/fs-extra/lib/fs/index.js new file mode 100644 index 00000000..e460b747 --- /dev/null +++ b/node_modules/fs-extra/lib/fs/index.js @@ -0,0 +1,119 @@ +'use strict' +// This is adapted from https://github.com/normalize/mz +// Copyright (c) 2014-2016 Jonathan Ong me@jongleberry.com and Contributors +const u = require('universalify').fromCallback +const fs = require('graceful-fs') + +const api = [ + 'access', + 'appendFile', + 'chmod', + 'chown', + 'close', + 'copyFile', + 'fchmod', + 'fchown', + 'fdatasync', + 'fstat', + 'fsync', + 'ftruncate', + 'futimes', + 'lchmod', + 'lchown', + 'link', + 'lstat', + 'mkdir', + 'mkdtemp', + 'open', + 'opendir', + 'readdir', + 'readFile', + 'readlink', + 'realpath', + 'rename', + 'rm', + 'rmdir', + 'stat', + 'symlink', + 'truncate', + 'unlink', + 'utimes', + 'writeFile' +].filter(key => { + // Some commands are not available on some systems. Ex: + // fs.opendir was added in Node.js v12.12.0 + // fs.rm was added in Node.js v14.14.0 + // fs.lchown is not available on at least some Linux + return typeof fs[key] === 'function' +}) + +// Export cloned fs: +Object.assign(exports, fs) + +// Universalify async methods: +api.forEach(method => { + exports[method] = u(fs[method]) +}) +exports.realpath.native = u(fs.realpath.native) + +// We differ from mz/fs in that we still ship the old, broken, fs.exists() +// since we are a drop-in replacement for the native module +exports.exists = function (filename, callback) { + if (typeof callback === 'function') { + return fs.exists(filename, callback) + } + return new Promise(resolve => { + return fs.exists(filename, resolve) + }) +} + +// fs.read(), fs.write(), & fs.writev() need special treatment due to multiple callback args + +exports.read = function (fd, buffer, offset, length, position, callback) { + if (typeof callback === 'function') { + return fs.read(fd, buffer, offset, length, position, callback) + } + return new Promise((resolve, reject) => { + fs.read(fd, buffer, offset, length, position, (err, bytesRead, buffer) => { + if (err) return reject(err) + resolve({ bytesRead, buffer }) + }) + }) +} + +// Function signature can be +// fs.write(fd, buffer[, offset[, length[, position]]], callback) +// OR +// fs.write(fd, string[, position[, encoding]], callback) +// We need to handle both cases, so we use ...args +exports.write = function (fd, buffer, ...args) { + if (typeof args[args.length - 1] === 'function') { + return fs.write(fd, buffer, ...args) + } + + return new Promise((resolve, reject) => { + fs.write(fd, buffer, ...args, (err, bytesWritten, buffer) => { + if (err) return reject(err) + resolve({ bytesWritten, buffer }) + }) + }) +} + +// fs.writev only available in Node v12.9.0+ +if (typeof fs.writev === 'function') { + // Function signature is + // s.writev(fd, buffers[, position], callback) + // We need to handle the optional arg, so we use ...args + exports.writev = function (fd, buffers, ...args) { + if (typeof args[args.length - 1] === 'function') { + return fs.writev(fd, buffers, ...args) + } + + return new Promise((resolve, reject) => { + fs.writev(fd, buffers, ...args, (err, bytesWritten, buffers) => { + if (err) return reject(err) + resolve({ bytesWritten, buffers }) + }) + }) + } +} diff --git a/node_modules/fs-extra/lib/index.js b/node_modules/fs-extra/lib/index.js new file mode 100644 index 00000000..cbc2aaec --- /dev/null +++ b/node_modules/fs-extra/lib/index.js @@ -0,0 +1,18 @@ +'use strict' + +module.exports = { + // Export promiseified graceful-fs: + ...require('./fs'), + // Export extra methods: + ...require('./copy-sync'), + ...require('./copy'), + ...require('./empty'), + ...require('./ensure'), + ...require('./json'), + ...require('./mkdirs'), + ...require('./move-sync'), + ...require('./move'), + ...require('./output'), + ...require('./path-exists'), + ...require('./remove') +} diff --git a/node_modules/fs-extra/lib/json/index.js b/node_modules/fs-extra/lib/json/index.js new file mode 100644 index 00000000..900126ad --- /dev/null +++ b/node_modules/fs-extra/lib/json/index.js @@ -0,0 +1,16 @@ +'use strict' + +const u = require('universalify').fromPromise +const jsonFile = require('./jsonfile') + +jsonFile.outputJson = u(require('./output-json')) +jsonFile.outputJsonSync = require('./output-json-sync') +// aliases +jsonFile.outputJSON = jsonFile.outputJson +jsonFile.outputJSONSync = jsonFile.outputJsonSync +jsonFile.writeJSON = jsonFile.writeJson +jsonFile.writeJSONSync = jsonFile.writeJsonSync +jsonFile.readJSON = jsonFile.readJson +jsonFile.readJSONSync = jsonFile.readJsonSync + +module.exports = jsonFile diff --git a/node_modules/fs-extra/lib/json/jsonfile.js b/node_modules/fs-extra/lib/json/jsonfile.js new file mode 100644 index 00000000..f11d34d6 --- /dev/null +++ b/node_modules/fs-extra/lib/json/jsonfile.js @@ -0,0 +1,11 @@ +'use strict' + +const jsonFile = require('jsonfile') + +module.exports = { + // jsonfile exports + readJson: jsonFile.readFile, + readJsonSync: jsonFile.readFileSync, + writeJson: jsonFile.writeFile, + writeJsonSync: jsonFile.writeFileSync +} diff --git a/node_modules/fs-extra/lib/json/output-json-sync.js b/node_modules/fs-extra/lib/json/output-json-sync.js new file mode 100644 index 00000000..f76b4744 --- /dev/null +++ b/node_modules/fs-extra/lib/json/output-json-sync.js @@ -0,0 +1,12 @@ +'use strict' + +const { stringify } = require('jsonfile/utils') +const { outputFileSync } = require('../output') + +function outputJsonSync (file, data, options) { + const str = stringify(data, options) + + outputFileSync(file, str, options) +} + +module.exports = outputJsonSync diff --git a/node_modules/fs-extra/lib/json/output-json.js b/node_modules/fs-extra/lib/json/output-json.js new file mode 100644 index 00000000..0fc66897 --- /dev/null +++ b/node_modules/fs-extra/lib/json/output-json.js @@ -0,0 +1,12 @@ +'use strict' + +const { stringify } = require('jsonfile/utils') +const { outputFile } = require('../output') + +async function outputJson (file, data, options = {}) { + const str = stringify(data, options) + + await outputFile(file, str, options) +} + +module.exports = outputJson diff --git a/node_modules/fs-extra/lib/mkdirs/index.js b/node_modules/fs-extra/lib/mkdirs/index.js new file mode 100644 index 00000000..9edecee0 --- /dev/null +++ b/node_modules/fs-extra/lib/mkdirs/index.js @@ -0,0 +1,14 @@ +'use strict' +const u = require('universalify').fromPromise +const { makeDir: _makeDir, makeDirSync } = require('./make-dir') +const makeDir = u(_makeDir) + +module.exports = { + mkdirs: makeDir, + mkdirsSync: makeDirSync, + // alias + mkdirp: makeDir, + mkdirpSync: makeDirSync, + ensureDir: makeDir, + ensureDirSync: makeDirSync +} diff --git a/node_modules/fs-extra/lib/mkdirs/make-dir.js b/node_modules/fs-extra/lib/mkdirs/make-dir.js new file mode 100644 index 00000000..45ece64d --- /dev/null +++ b/node_modules/fs-extra/lib/mkdirs/make-dir.js @@ -0,0 +1,27 @@ +'use strict' +const fs = require('../fs') +const { checkPath } = require('./utils') + +const getMode = options => { + const defaults = { mode: 0o777 } + if (typeof options === 'number') return options + return ({ ...defaults, ...options }).mode +} + +module.exports.makeDir = async (dir, options) => { + checkPath(dir) + + return fs.mkdir(dir, { + mode: getMode(options), + recursive: true + }) +} + +module.exports.makeDirSync = (dir, options) => { + checkPath(dir) + + return fs.mkdirSync(dir, { + mode: getMode(options), + recursive: true + }) +} diff --git a/node_modules/fs-extra/lib/mkdirs/utils.js b/node_modules/fs-extra/lib/mkdirs/utils.js new file mode 100644 index 00000000..a4059ad4 --- /dev/null +++ b/node_modules/fs-extra/lib/mkdirs/utils.js @@ -0,0 +1,21 @@ +// Adapted from https://github.com/sindresorhus/make-dir +// Copyright (c) Sindre Sorhus (sindresorhus.com) +// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +'use strict' +const path = require('path') + +// https://github.com/nodejs/node/issues/8987 +// https://github.com/libuv/libuv/pull/1088 +module.exports.checkPath = function checkPath (pth) { + if (process.platform === 'win32') { + const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path.parse(pth).root, '')) + + if (pathHasInvalidWinCharacters) { + const error = new Error(`Path contains invalid characters: ${pth}`) + error.code = 'EINVAL' + throw error + } + } +} diff --git a/node_modules/fs-extra/lib/move-sync/index.js b/node_modules/fs-extra/lib/move-sync/index.js new file mode 100644 index 00000000..af90b06b --- /dev/null +++ b/node_modules/fs-extra/lib/move-sync/index.js @@ -0,0 +1,5 @@ +'use strict' + +module.exports = { + moveSync: require('./move-sync') +} diff --git a/node_modules/fs-extra/lib/move-sync/move-sync.js b/node_modules/fs-extra/lib/move-sync/move-sync.js new file mode 100644 index 00000000..1c36799a --- /dev/null +++ b/node_modules/fs-extra/lib/move-sync/move-sync.js @@ -0,0 +1,54 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const copySync = require('../copy-sync').copySync +const removeSync = require('../remove').removeSync +const mkdirpSync = require('../mkdirs').mkdirpSync +const stat = require('../util/stat') + +function moveSync (src, dest, opts) { + opts = opts || {} + const overwrite = opts.overwrite || opts.clobber || false + + const { srcStat, isChangingCase = false } = stat.checkPathsSync(src, dest, 'move', opts) + stat.checkParentPathsSync(src, srcStat, dest, 'move') + if (!isParentRoot(dest)) mkdirpSync(path.dirname(dest)) + return doRename(src, dest, overwrite, isChangingCase) +} + +function isParentRoot (dest) { + const parent = path.dirname(dest) + const parsedPath = path.parse(parent) + return parsedPath.root === parent +} + +function doRename (src, dest, overwrite, isChangingCase) { + if (isChangingCase) return rename(src, dest, overwrite) + if (overwrite) { + removeSync(dest) + return rename(src, dest, overwrite) + } + if (fs.existsSync(dest)) throw new Error('dest already exists.') + return rename(src, dest, overwrite) +} + +function rename (src, dest, overwrite) { + try { + fs.renameSync(src, dest) + } catch (err) { + if (err.code !== 'EXDEV') throw err + return moveAcrossDevice(src, dest, overwrite) + } +} + +function moveAcrossDevice (src, dest, overwrite) { + const opts = { + overwrite, + errorOnExist: true + } + copySync(src, dest, opts) + return removeSync(src) +} + +module.exports = moveSync diff --git a/node_modules/fs-extra/lib/move/index.js b/node_modules/fs-extra/lib/move/index.js new file mode 100644 index 00000000..3785345b --- /dev/null +++ b/node_modules/fs-extra/lib/move/index.js @@ -0,0 +1,6 @@ +'use strict' + +const u = require('universalify').fromCallback +module.exports = { + move: u(require('./move')) +} diff --git a/node_modules/fs-extra/lib/move/move.js b/node_modules/fs-extra/lib/move/move.js new file mode 100644 index 00000000..e9523e65 --- /dev/null +++ b/node_modules/fs-extra/lib/move/move.js @@ -0,0 +1,73 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const copy = require('../copy').copy +const remove = require('../remove').remove +const mkdirp = require('../mkdirs').mkdirp +const pathExists = require('../path-exists').pathExists +const stat = require('../util/stat') + +function move (src, dest, opts, cb) { + if (typeof opts === 'function') { + cb = opts + opts = {} + } + + const overwrite = opts.overwrite || opts.clobber || false + + stat.checkPaths(src, dest, 'move', opts, (err, stats) => { + if (err) return cb(err) + const { srcStat, isChangingCase = false } = stats + stat.checkParentPaths(src, srcStat, dest, 'move', err => { + if (err) return cb(err) + if (isParentRoot(dest)) return doRename(src, dest, overwrite, isChangingCase, cb) + mkdirp(path.dirname(dest), err => { + if (err) return cb(err) + return doRename(src, dest, overwrite, isChangingCase, cb) + }) + }) + }) +} + +function isParentRoot (dest) { + const parent = path.dirname(dest) + const parsedPath = path.parse(parent) + return parsedPath.root === parent +} + +function doRename (src, dest, overwrite, isChangingCase, cb) { + if (isChangingCase) return rename(src, dest, overwrite, cb) + if (overwrite) { + return remove(dest, err => { + if (err) return cb(err) + return rename(src, dest, overwrite, cb) + }) + } + pathExists(dest, (err, destExists) => { + if (err) return cb(err) + if (destExists) return cb(new Error('dest already exists.')) + return rename(src, dest, overwrite, cb) + }) +} + +function rename (src, dest, overwrite, cb) { + fs.rename(src, dest, err => { + if (!err) return cb() + if (err.code !== 'EXDEV') return cb(err) + return moveAcrossDevice(src, dest, overwrite, cb) + }) +} + +function moveAcrossDevice (src, dest, overwrite, cb) { + const opts = { + overwrite, + errorOnExist: true + } + copy(src, dest, opts, err => { + if (err) return cb(err) + return remove(src, cb) + }) +} + +module.exports = move diff --git a/node_modules/fs-extra/lib/output/index.js b/node_modules/fs-extra/lib/output/index.js new file mode 100644 index 00000000..92297ca3 --- /dev/null +++ b/node_modules/fs-extra/lib/output/index.js @@ -0,0 +1,40 @@ +'use strict' + +const u = require('universalify').fromCallback +const fs = require('graceful-fs') +const path = require('path') +const mkdir = require('../mkdirs') +const pathExists = require('../path-exists').pathExists + +function outputFile (file, data, encoding, callback) { + if (typeof encoding === 'function') { + callback = encoding + encoding = 'utf8' + } + + const dir = path.dirname(file) + pathExists(dir, (err, itDoes) => { + if (err) return callback(err) + if (itDoes) return fs.writeFile(file, data, encoding, callback) + + mkdir.mkdirs(dir, err => { + if (err) return callback(err) + + fs.writeFile(file, data, encoding, callback) + }) + }) +} + +function outputFileSync (file, ...args) { + const dir = path.dirname(file) + if (fs.existsSync(dir)) { + return fs.writeFileSync(file, ...args) + } + mkdir.mkdirsSync(dir) + fs.writeFileSync(file, ...args) +} + +module.exports = { + outputFile: u(outputFile), + outputFileSync +} diff --git a/node_modules/fs-extra/lib/path-exists/index.js b/node_modules/fs-extra/lib/path-exists/index.js new file mode 100644 index 00000000..ddd9bc71 --- /dev/null +++ b/node_modules/fs-extra/lib/path-exists/index.js @@ -0,0 +1,12 @@ +'use strict' +const u = require('universalify').fromPromise +const fs = require('../fs') + +function pathExists (path) { + return fs.access(path).then(() => true).catch(() => false) +} + +module.exports = { + pathExists: u(pathExists), + pathExistsSync: fs.existsSync +} diff --git a/node_modules/fs-extra/lib/remove/index.js b/node_modules/fs-extra/lib/remove/index.js new file mode 100644 index 00000000..4428e59a --- /dev/null +++ b/node_modules/fs-extra/lib/remove/index.js @@ -0,0 +1,22 @@ +'use strict' + +const fs = require('graceful-fs') +const u = require('universalify').fromCallback +const rimraf = require('./rimraf') + +function remove (path, callback) { + // Node 14.14.0+ + if (fs.rm) return fs.rm(path, { recursive: true, force: true }, callback) + rimraf(path, callback) +} + +function removeSync (path) { + // Node 14.14.0+ + if (fs.rmSync) return fs.rmSync(path, { recursive: true, force: true }) + rimraf.sync(path) +} + +module.exports = { + remove: u(remove), + removeSync +} diff --git a/node_modules/fs-extra/lib/remove/rimraf.js b/node_modules/fs-extra/lib/remove/rimraf.js new file mode 100644 index 00000000..2c771026 --- /dev/null +++ b/node_modules/fs-extra/lib/remove/rimraf.js @@ -0,0 +1,302 @@ +'use strict' + +const fs = require('graceful-fs') +const path = require('path') +const assert = require('assert') + +const isWindows = (process.platform === 'win32') + +function defaults (options) { + const methods = [ + 'unlink', + 'chmod', + 'stat', + 'lstat', + 'rmdir', + 'readdir' + ] + methods.forEach(m => { + options[m] = options[m] || fs[m] + m = m + 'Sync' + options[m] = options[m] || fs[m] + }) + + options.maxBusyTries = options.maxBusyTries || 3 +} + +function rimraf (p, options, cb) { + let busyTries = 0 + + if (typeof options === 'function') { + cb = options + options = {} + } + + assert(p, 'rimraf: missing path') + assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string') + assert.strictEqual(typeof cb, 'function', 'rimraf: callback function required') + assert(options, 'rimraf: invalid options argument provided') + assert.strictEqual(typeof options, 'object', 'rimraf: options should be object') + + defaults(options) + + rimraf_(p, options, function CB (er) { + if (er) { + if ((er.code === 'EBUSY' || er.code === 'ENOTEMPTY' || er.code === 'EPERM') && + busyTries < options.maxBusyTries) { + busyTries++ + const time = busyTries * 100 + // try again, with the same exact callback as this one. + return setTimeout(() => rimraf_(p, options, CB), time) + } + + // already gone + if (er.code === 'ENOENT') er = null + } + + cb(er) + }) +} + +// Two possible strategies. +// 1. Assume it's a file. unlink it, then do the dir stuff on EPERM or EISDIR +// 2. Assume it's a directory. readdir, then do the file stuff on ENOTDIR +// +// Both result in an extra syscall when you guess wrong. However, there +// are likely far more normal files in the world than directories. This +// is based on the assumption that a the average number of files per +// directory is >= 1. +// +// If anyone ever complains about this, then I guess the strategy could +// be made configurable somehow. But until then, YAGNI. +function rimraf_ (p, options, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + + // sunos lets the root user unlink directories, which is... weird. + // so we have to lstat here and make sure it's not a dir. + options.lstat(p, (er, st) => { + if (er && er.code === 'ENOENT') { + return cb(null) + } + + // Windows can EPERM on stat. Life is suffering. + if (er && er.code === 'EPERM' && isWindows) { + return fixWinEPERM(p, options, er, cb) + } + + if (st && st.isDirectory()) { + return rmdir(p, options, er, cb) + } + + options.unlink(p, er => { + if (er) { + if (er.code === 'ENOENT') { + return cb(null) + } + if (er.code === 'EPERM') { + return (isWindows) + ? fixWinEPERM(p, options, er, cb) + : rmdir(p, options, er, cb) + } + if (er.code === 'EISDIR') { + return rmdir(p, options, er, cb) + } + } + return cb(er) + }) + }) +} + +function fixWinEPERM (p, options, er, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + + options.chmod(p, 0o666, er2 => { + if (er2) { + cb(er2.code === 'ENOENT' ? null : er) + } else { + options.stat(p, (er3, stats) => { + if (er3) { + cb(er3.code === 'ENOENT' ? null : er) + } else if (stats.isDirectory()) { + rmdir(p, options, er, cb) + } else { + options.unlink(p, cb) + } + }) + } + }) +} + +function fixWinEPERMSync (p, options, er) { + let stats + + assert(p) + assert(options) + + try { + options.chmodSync(p, 0o666) + } catch (er2) { + if (er2.code === 'ENOENT') { + return + } else { + throw er + } + } + + try { + stats = options.statSync(p) + } catch (er3) { + if (er3.code === 'ENOENT') { + return + } else { + throw er + } + } + + if (stats.isDirectory()) { + rmdirSync(p, options, er) + } else { + options.unlinkSync(p) + } +} + +function rmdir (p, options, originalEr, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + + // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS) + // if we guessed wrong, and it's not a directory, then + // raise the original error. + options.rmdir(p, er => { + if (er && (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM')) { + rmkids(p, options, cb) + } else if (er && er.code === 'ENOTDIR') { + cb(originalEr) + } else { + cb(er) + } + }) +} + +function rmkids (p, options, cb) { + assert(p) + assert(options) + assert(typeof cb === 'function') + + options.readdir(p, (er, files) => { + if (er) return cb(er) + + let n = files.length + let errState + + if (n === 0) return options.rmdir(p, cb) + + files.forEach(f => { + rimraf(path.join(p, f), options, er => { + if (errState) { + return + } + if (er) return cb(errState = er) + if (--n === 0) { + options.rmdir(p, cb) + } + }) + }) + }) +} + +// this looks simpler, and is strictly *faster*, but will +// tie up the JavaScript thread and fail on excessively +// deep directory trees. +function rimrafSync (p, options) { + let st + + options = options || {} + defaults(options) + + assert(p, 'rimraf: missing path') + assert.strictEqual(typeof p, 'string', 'rimraf: path should be a string') + assert(options, 'rimraf: missing options') + assert.strictEqual(typeof options, 'object', 'rimraf: options should be object') + + try { + st = options.lstatSync(p) + } catch (er) { + if (er.code === 'ENOENT') { + return + } + + // Windows can EPERM on stat. Life is suffering. + if (er.code === 'EPERM' && isWindows) { + fixWinEPERMSync(p, options, er) + } + } + + try { + // sunos lets the root user unlink directories, which is... weird. + if (st && st.isDirectory()) { + rmdirSync(p, options, null) + } else { + options.unlinkSync(p) + } + } catch (er) { + if (er.code === 'ENOENT') { + return + } else if (er.code === 'EPERM') { + return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er) + } else if (er.code !== 'EISDIR') { + throw er + } + rmdirSync(p, options, er) + } +} + +function rmdirSync (p, options, originalEr) { + assert(p) + assert(options) + + try { + options.rmdirSync(p) + } catch (er) { + if (er.code === 'ENOTDIR') { + throw originalEr + } else if (er.code === 'ENOTEMPTY' || er.code === 'EEXIST' || er.code === 'EPERM') { + rmkidsSync(p, options) + } else if (er.code !== 'ENOENT') { + throw er + } + } +} + +function rmkidsSync (p, options) { + assert(p) + assert(options) + options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options)) + + if (isWindows) { + // We only end up here once we got ENOTEMPTY at least once, and + // at this point, we are guaranteed to have removed all the kids. + // So, we know that it won't be ENOENT or ENOTDIR or anything else. + // try really hard to delete stuff on windows, because it has a + // PROFOUNDLY annoying habit of not closing handles promptly when + // files are deleted, resulting in spurious ENOTEMPTY errors. + const startTime = Date.now() + do { + try { + const ret = options.rmdirSync(p, options) + return ret + } catch {} + } while (Date.now() - startTime < 500) // give up after 500ms + } else { + const ret = options.rmdirSync(p, options) + return ret + } +} + +module.exports = rimraf +rimraf.sync = rimrafSync diff --git a/node_modules/fs-extra/lib/util/stat.js b/node_modules/fs-extra/lib/util/stat.js new file mode 100644 index 00000000..0ed5aecf --- /dev/null +++ b/node_modules/fs-extra/lib/util/stat.js @@ -0,0 +1,154 @@ +'use strict' + +const fs = require('../fs') +const path = require('path') +const util = require('util') + +function getStats (src, dest, opts) { + const statFunc = opts.dereference + ? (file) => fs.stat(file, { bigint: true }) + : (file) => fs.lstat(file, { bigint: true }) + return Promise.all([ + statFunc(src), + statFunc(dest).catch(err => { + if (err.code === 'ENOENT') return null + throw err + }) + ]).then(([srcStat, destStat]) => ({ srcStat, destStat })) +} + +function getStatsSync (src, dest, opts) { + let destStat + const statFunc = opts.dereference + ? (file) => fs.statSync(file, { bigint: true }) + : (file) => fs.lstatSync(file, { bigint: true }) + const srcStat = statFunc(src) + try { + destStat = statFunc(dest) + } catch (err) { + if (err.code === 'ENOENT') return { srcStat, destStat: null } + throw err + } + return { srcStat, destStat } +} + +function checkPaths (src, dest, funcName, opts, cb) { + util.callbackify(getStats)(src, dest, opts, (err, stats) => { + if (err) return cb(err) + const { srcStat, destStat } = stats + + if (destStat) { + if (areIdentical(srcStat, destStat)) { + const srcBaseName = path.basename(src) + const destBaseName = path.basename(dest) + if (funcName === 'move' && + srcBaseName !== destBaseName && + srcBaseName.toLowerCase() === destBaseName.toLowerCase()) { + return cb(null, { srcStat, destStat, isChangingCase: true }) + } + return cb(new Error('Source and destination must not be the same.')) + } + if (srcStat.isDirectory() && !destStat.isDirectory()) { + return cb(new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`)) + } + if (!srcStat.isDirectory() && destStat.isDirectory()) { + return cb(new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`)) + } + } + + if (srcStat.isDirectory() && isSrcSubdir(src, dest)) { + return cb(new Error(errMsg(src, dest, funcName))) + } + return cb(null, { srcStat, destStat }) + }) +} + +function checkPathsSync (src, dest, funcName, opts) { + const { srcStat, destStat } = getStatsSync(src, dest, opts) + + if (destStat) { + if (areIdentical(srcStat, destStat)) { + const srcBaseName = path.basename(src) + const destBaseName = path.basename(dest) + if (funcName === 'move' && + srcBaseName !== destBaseName && + srcBaseName.toLowerCase() === destBaseName.toLowerCase()) { + return { srcStat, destStat, isChangingCase: true } + } + throw new Error('Source and destination must not be the same.') + } + if (srcStat.isDirectory() && !destStat.isDirectory()) { + throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`) + } + if (!srcStat.isDirectory() && destStat.isDirectory()) { + throw new Error(`Cannot overwrite directory '${dest}' with non-directory '${src}'.`) + } + } + + if (srcStat.isDirectory() && isSrcSubdir(src, dest)) { + throw new Error(errMsg(src, dest, funcName)) + } + return { srcStat, destStat } +} + +// recursively check if dest parent is a subdirectory of src. +// It works for all file types including symlinks since it +// checks the src and dest inodes. It starts from the deepest +// parent and stops once it reaches the src parent or the root path. +function checkParentPaths (src, srcStat, dest, funcName, cb) { + const srcParent = path.resolve(path.dirname(src)) + const destParent = path.resolve(path.dirname(dest)) + if (destParent === srcParent || destParent === path.parse(destParent).root) return cb() + fs.stat(destParent, { bigint: true }, (err, destStat) => { + if (err) { + if (err.code === 'ENOENT') return cb() + return cb(err) + } + if (areIdentical(srcStat, destStat)) { + return cb(new Error(errMsg(src, dest, funcName))) + } + return checkParentPaths(src, srcStat, destParent, funcName, cb) + }) +} + +function checkParentPathsSync (src, srcStat, dest, funcName) { + const srcParent = path.resolve(path.dirname(src)) + const destParent = path.resolve(path.dirname(dest)) + if (destParent === srcParent || destParent === path.parse(destParent).root) return + let destStat + try { + destStat = fs.statSync(destParent, { bigint: true }) + } catch (err) { + if (err.code === 'ENOENT') return + throw err + } + if (areIdentical(srcStat, destStat)) { + throw new Error(errMsg(src, dest, funcName)) + } + return checkParentPathsSync(src, srcStat, destParent, funcName) +} + +function areIdentical (srcStat, destStat) { + return destStat.ino && destStat.dev && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev +} + +// return true if dest is a subdir of src, otherwise false. +// It only checks the path strings. +function isSrcSubdir (src, dest) { + const srcArr = path.resolve(src).split(path.sep).filter(i => i) + const destArr = path.resolve(dest).split(path.sep).filter(i => i) + return srcArr.reduce((acc, cur, i) => acc && destArr[i] === cur, true) +} + +function errMsg (src, dest, funcName) { + return `Cannot ${funcName} '${src}' to a subdirectory of itself, '${dest}'.` +} + +module.exports = { + checkPaths, + checkPathsSync, + checkParentPaths, + checkParentPathsSync, + isSrcSubdir, + areIdentical +} diff --git a/node_modules/fs-extra/lib/util/utimes.js b/node_modules/fs-extra/lib/util/utimes.js new file mode 100644 index 00000000..75395def --- /dev/null +++ b/node_modules/fs-extra/lib/util/utimes.js @@ -0,0 +1,26 @@ +'use strict' + +const fs = require('graceful-fs') + +function utimesMillis (path, atime, mtime, callback) { + // if (!HAS_MILLIS_RES) return fs.utimes(path, atime, mtime, callback) + fs.open(path, 'r+', (err, fd) => { + if (err) return callback(err) + fs.futimes(fd, atime, mtime, futimesErr => { + fs.close(fd, closeErr => { + if (callback) callback(futimesErr || closeErr) + }) + }) + }) +} + +function utimesMillisSync (path, atime, mtime) { + const fd = fs.openSync(path, 'r+') + fs.futimesSync(fd, atime, mtime) + return fs.closeSync(fd) +} + +module.exports = { + utimesMillis, + utimesMillisSync +} diff --git a/node_modules/fs-extra/package.json b/node_modules/fs-extra/package.json new file mode 100644 index 00000000..b25936ca --- /dev/null +++ b/node_modules/fs-extra/package.json @@ -0,0 +1,70 @@ +{ + "name": "fs-extra", + "version": "10.0.0", + "description": "fs-extra contains methods that aren't included in the vanilla Node.js fs package. Such as recursive mkdir, copy, and remove.", + "engines": { + "node": ">=12" + }, + "homepage": "https://github.com/jprichardson/node-fs-extra", + "repository": { + "type": "git", + "url": "https://github.com/jprichardson/node-fs-extra" + }, + "keywords": [ + "fs", + "file", + "file system", + "copy", + "directory", + "extra", + "mkdirp", + "mkdir", + "mkdirs", + "recursive", + "json", + "read", + "write", + "extra", + "delete", + "remove", + "touch", + "create", + "text", + "output", + "move", + "promise" + ], + "author": "JP Richardson ", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "devDependencies": { + "at-least-node": "^1.0.0", + "coveralls": "^3.0.0", + "klaw": "^2.1.1", + "klaw-sync": "^3.0.2", + "minimist": "^1.1.1", + "mocha": "^5.0.5", + "nyc": "^15.0.0", + "proxyquire": "^2.0.1", + "read-dir-files": "^0.1.1", + "standard": "^14.1.0" + }, + "main": "./lib/index.js", + "files": [ + "lib/", + "!lib/**/__tests__/" + ], + "scripts": { + "full-ci": "npm run lint && npm run coverage", + "coverage": "nyc -r lcovonly npm run unit", + "coveralls": "coveralls < coverage/lcov.info", + "lint": "standard", + "test-find": "find ./lib/**/__tests__ -name *.test.js | xargs mocha", + "test": "npm run lint && npm run unit", + "unit": "node test.js" + } +} diff --git a/node_modules/get-caller-file/LICENSE.md b/node_modules/get-caller-file/LICENSE.md new file mode 100644 index 00000000..bf3e1c07 --- /dev/null +++ b/node_modules/get-caller-file/LICENSE.md @@ -0,0 +1,6 @@ +ISC License (ISC) +Copyright 2018 Stefan Penner + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/get-caller-file/README.md b/node_modules/get-caller-file/README.md new file mode 100644 index 00000000..a7d8c079 --- /dev/null +++ b/node_modules/get-caller-file/README.md @@ -0,0 +1,41 @@ +# get-caller-file + +[![Build Status](https://travis-ci.org/stefanpenner/get-caller-file.svg?branch=master)](https://travis-ci.org/stefanpenner/get-caller-file) +[![Build status](https://ci.appveyor.com/api/projects/status/ol2q94g1932cy14a/branch/master?svg=true)](https://ci.appveyor.com/project/embercli/get-caller-file/branch/master) + +This is a utility, which allows a function to figure out from which file it was invoked. It does so by inspecting v8's stack trace at the time it is invoked. + +Inspired by http://stackoverflow.com/questions/13227489 + +*note: this relies on Node/V8 specific APIs, as such other runtimes may not work* + +## Installation + +```bash +yarn add get-caller-file +``` + +## Usage + +Given: + +```js +// ./foo.js +const getCallerFile = require('get-caller-file'); + +module.exports = function() { + return getCallerFile(); // figures out who called it +}; +``` + +```js +// index.js +const foo = require('./foo'); + +foo() // => /full/path/to/this/file/index.js +``` + + +## Options: + +* `getCallerFile(position = 2)`: where position is stack frame whos fileName we want. diff --git a/node_modules/get-caller-file/index.d.ts b/node_modules/get-caller-file/index.d.ts new file mode 100644 index 00000000..babed696 --- /dev/null +++ b/node_modules/get-caller-file/index.d.ts @@ -0,0 +1,2 @@ +declare const _default: (position?: number) => any; +export = _default; diff --git a/node_modules/get-caller-file/index.js b/node_modules/get-caller-file/index.js new file mode 100644 index 00000000..57304f80 --- /dev/null +++ b/node_modules/get-caller-file/index.js @@ -0,0 +1,22 @@ +"use strict"; +// Call this function in a another function to find out the file from +// which that function was called from. (Inspects the v8 stack trace) +// +// Inspired by http://stackoverflow.com/questions/13227489 +module.exports = function getCallerFile(position) { + if (position === void 0) { position = 2; } + if (position >= Error.stackTraceLimit) { + throw new TypeError('getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `' + position + '` and Error.stackTraceLimit was: `' + Error.stackTraceLimit + '`'); + } + var oldPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = function (_, stack) { return stack; }; + var stack = new Error().stack; + Error.prepareStackTrace = oldPrepareStackTrace; + if (stack !== null && typeof stack === 'object') { + // stack[0] holds this file + // stack[1] holds where this function was called + // stack[2] holds the file we're interested in + return stack[position] ? stack[position].getFileName() : undefined; + } +}; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/get-caller-file/index.js.map b/node_modules/get-caller-file/index.js.map new file mode 100644 index 00000000..89c655c0 --- /dev/null +++ b/node_modules/get-caller-file/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,qEAAqE;AACrE,EAAE;AACF,0DAA0D;AAE1D,iBAAS,SAAS,aAAa,CAAC,QAAY;IAAZ,yBAAA,EAAA,YAAY;IAC1C,IAAI,QAAQ,IAAI,KAAK,CAAC,eAAe,EAAE;QACrC,MAAM,IAAI,SAAS,CAAC,kGAAkG,GAAG,QAAQ,GAAG,oCAAoC,GAAG,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;KACzM;IAED,IAAM,oBAAoB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACrD,KAAK,CAAC,iBAAiB,GAAG,UAAC,CAAC,EAAE,KAAK,IAAM,OAAA,KAAK,EAAL,CAAK,CAAC;IAC/C,IAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,KAAK,CAAC;IAChC,KAAK,CAAC,iBAAiB,GAAG,oBAAoB,CAAC;IAG/C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC/C,2BAA2B;QAC3B,gDAAgD;QAChD,8CAA8C;QAC9C,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,QAAQ,CAAS,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;KAC7E;AACH,CAAC,CAAC"} \ No newline at end of file diff --git a/node_modules/get-caller-file/package.json b/node_modules/get-caller-file/package.json new file mode 100644 index 00000000..b0dd5713 --- /dev/null +++ b/node_modules/get-caller-file/package.json @@ -0,0 +1,42 @@ +{ + "name": "get-caller-file", + "version": "2.0.5", + "description": "", + "main": "index.js", + "directories": { + "test": "tests" + }, + "files": [ + "index.js", + "index.js.map", + "index.d.ts" + ], + "scripts": { + "prepare": "tsc", + "test": "mocha test", + "test:debug": "mocha test" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/stefanpenner/get-caller-file.git" + }, + "author": "Stefan Penner", + "license": "ISC", + "bugs": { + "url": "https://github.com/stefanpenner/get-caller-file/issues" + }, + "homepage": "https://github.com/stefanpenner/get-caller-file#readme", + "devDependencies": { + "@types/chai": "^4.1.7", + "@types/ensure-posix-path": "^1.0.0", + "@types/mocha": "^5.2.6", + "@types/node": "^11.10.5", + "chai": "^4.1.2", + "ensure-posix-path": "^1.0.1", + "mocha": "^5.2.0", + "typescript": "^3.3.3333" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } +} diff --git a/node_modules/get-stdin/index.d.ts b/node_modules/get-stdin/index.d.ts new file mode 100644 index 00000000..c2a06051 --- /dev/null +++ b/node_modules/get-stdin/index.d.ts @@ -0,0 +1,29 @@ +declare const getStdin: { + /** + Get [`stdin`](https://nodejs.org/api/process.html#process_process_stdin) as a `string`. + + @returns A promise that is resolved when the `end` event fires on the `stdin` stream, indicating that there is no more data to be read. In a TTY context, an empty `string` is returned. + + @example + ``` + // example.ts + import getStdin from 'get-stdin'; + + console.log(await getStdin()); + //=> 'unicorns' + + // $ echo unicorns | ts-node example.ts + // unicorns + ``` + */ + (): Promise; + + /** + Get [`stdin`](https://nodejs.org/api/process.html#process_process_stdin) as a `Buffer`. + + @returns A promise that is resolved when the `end` event fires on the `stdin` stream, indicating that there is no more data to be read. In a TTY context, an empty `Buffer` is returned. + */ + buffer(): Promise; +}; + +export default getStdin; diff --git a/node_modules/get-stdin/index.js b/node_modules/get-stdin/index.js new file mode 100644 index 00000000..e8182da3 --- /dev/null +++ b/node_modules/get-stdin/index.js @@ -0,0 +1,33 @@ +const {stdin} = process; + +export default async function getStdin() { + let result = ''; + + if (stdin.isTTY) { + return result; + } + + stdin.setEncoding('utf8'); + + for await (const chunk of stdin) { + result += chunk; + } + + return result; +} + +getStdin.buffer = async () => { + const result = []; + let length = 0; + + if (stdin.isTTY) { + return Buffer.concat([]); + } + + for await (const chunk of stdin) { + result.push(chunk); + length += chunk.length; + } + + return Buffer.concat(result, length); +}; diff --git a/node_modules/get-stdin/license b/node_modules/get-stdin/license new file mode 100644 index 00000000..fa7ceba3 --- /dev/null +++ b/node_modules/get-stdin/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/get-stdin/package.json b/node_modules/get-stdin/package.json new file mode 100644 index 00000000..bd758aac --- /dev/null +++ b/node_modules/get-stdin/package.json @@ -0,0 +1,42 @@ +{ + "name": "get-stdin", + "version": "9.0.0", + "description": "Get stdin as a string or buffer", + "license": "MIT", + "repository": "sindresorhus/get-stdin", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "type": "module", + "exports": "./index.js", + "engines": { + "node": ">=12" + }, + "scripts": { + "test": "xo && ava test.js test-buffer.js && echo unicorns | node test-real.js && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "std", + "stdin", + "stdio", + "concat", + "buffer", + "stream", + "process", + "read" + ], + "devDependencies": { + "@types/node": "^14.14.41", + "ava": "^3.15.0", + "delay": "^5.0.0", + "tsd": "^0.14.0", + "xo": "^0.38.2" + } +} diff --git a/node_modules/get-stdin/readme.md b/node_modules/get-stdin/readme.md new file mode 100644 index 00000000..ede347a0 --- /dev/null +++ b/node_modules/get-stdin/readme.md @@ -0,0 +1,56 @@ +# get-stdin + +> Get [stdin](https://nodejs.org/api/process.html#process_process_stdin) as a string or buffer + +## Install + +``` +$ npm install get-stdin +``` + +## Usage + +```js +// example.js +import getStdin from 'get-stdin'; + +console.log(await getStdin()); +//=> 'unicorns' +``` + +``` +$ echo unicorns | node example.js +unicorns +``` + +## API + +Both methods returns a promise that is resolved when the `end` event fires on the `stdin` stream, indicating that there is no more data to be read. + +### getStdin() + +Get `stdin` as a `string`. + +In a TTY context, a promise that resolves to an empty `string` is returned. + +### getStdin.buffer() + +Get `stdin` as a `Buffer`. + +In a TTY context, a promise that resolves to an empty `Buffer` is returned. + +## Related + +- [get-stream](https://github.com/sindresorhus/get-stream) - Get a stream as a string or buffer + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/glob-parent/CHANGELOG.md b/node_modules/glob-parent/CHANGELOG.md new file mode 100644 index 00000000..fb9de961 --- /dev/null +++ b/node_modules/glob-parent/CHANGELOG.md @@ -0,0 +1,110 @@ +### [5.1.2](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2) (2021-03-06) + + +### Bug Fixes + +* eliminate ReDoS ([#36](https://github.com/gulpjs/glob-parent/issues/36)) ([f923116](https://github.com/gulpjs/glob-parent/commit/f9231168b0041fea3f8f954b3cceb56269fc6366)) + +### [5.1.1](https://github.com/gulpjs/glob-parent/compare/v5.1.0...v5.1.1) (2021-01-27) + + +### Bug Fixes + +* unescape exclamation mark ([#26](https://github.com/gulpjs/glob-parent/issues/26)) ([a98874f](https://github.com/gulpjs/glob-parent/commit/a98874f1a59e407f4fb1beb0db4efa8392da60bb)) + +## [5.1.0](https://github.com/gulpjs/glob-parent/compare/v5.0.0...v5.1.0) (2021-01-27) + + +### Features + +* add `flipBackslashes` option to disable auto conversion of slashes (closes [#24](https://github.com/gulpjs/glob-parent/issues/24)) ([#25](https://github.com/gulpjs/glob-parent/issues/25)) ([eecf91d](https://github.com/gulpjs/glob-parent/commit/eecf91d5e3834ed78aee39c4eaaae654d76b87b3)) + +## [5.0.0](https://github.com/gulpjs/glob-parent/compare/v4.0.0...v5.0.0) (2021-01-27) + + +### ⚠ BREAKING CHANGES + +* Drop support for node <6 & bump dependencies + +### Miscellaneous Chores + +* Drop support for node <6 & bump dependencies ([896c0c0](https://github.com/gulpjs/glob-parent/commit/896c0c00b4e7362f60b96e7fc295ae929245255a)) + +## [4.0.0](https://github.com/gulpjs/glob-parent/compare/v3.1.0...v4.0.0) (2021-01-27) + + +### ⚠ BREAKING CHANGES + +* question marks are valid path characters on Windows so avoid flagging as a glob when alone +* Update is-glob dependency + +### Features + +* hoist regexps and strings for performance gains ([4a80667](https://github.com/gulpjs/glob-parent/commit/4a80667c69355c76a572a5892b0f133c8e1f457e)) +* question marks are valid path characters on Windows so avoid flagging as a glob when alone ([2a551dd](https://github.com/gulpjs/glob-parent/commit/2a551dd0dc3235e78bf3c94843d4107072d17841)) +* Update is-glob dependency ([e41fcd8](https://github.com/gulpjs/glob-parent/commit/e41fcd895d1f7bc617dba45c9d935a7949b9c281)) + +## [3.1.0](https://github.com/gulpjs/glob-parent/compare/v3.0.1...v3.1.0) (2021-01-27) + + +### Features + +* allow basic win32 backslash use ([272afa5](https://github.com/gulpjs/glob-parent/commit/272afa5fd070fc0f796386a5993d4ee4a846988b)) +* handle extglobs (parentheses) containing separators ([7db1bdb](https://github.com/gulpjs/glob-parent/commit/7db1bdb0756e55fd14619e8ce31aa31b17b117fd)) +* new approach to braces/brackets handling ([8269bd8](https://github.com/gulpjs/glob-parent/commit/8269bd89290d99fac9395a354fb56fdcdb80f0be)) +* pre-process braces/brackets sections ([9ef8a87](https://github.com/gulpjs/glob-parent/commit/9ef8a87f66b1a43d0591e7a8e4fc5a18415ee388)) +* preserve escaped brace/bracket at end of string ([8cfb0ba](https://github.com/gulpjs/glob-parent/commit/8cfb0ba84202d51571340dcbaf61b79d16a26c76)) + + +### Bug Fixes + +* trailing escaped square brackets ([99ec9fe](https://github.com/gulpjs/glob-parent/commit/99ec9fecc60ee488ded20a94dd4f18b4f55c4ccf)) + +### [3.0.1](https://github.com/gulpjs/glob-parent/compare/v3.0.0...v3.0.1) (2021-01-27) + + +### Features + +* use path-dirname ponyfill ([cdbea5f](https://github.com/gulpjs/glob-parent/commit/cdbea5f32a58a54e001a75ddd7c0fccd4776aacc)) + + +### Bug Fixes + +* unescape glob-escaped dirnames on output ([598c533](https://github.com/gulpjs/glob-parent/commit/598c533bdf49c1428bc063aa9b8db40c5a86b030)) + +## [3.0.0](https://github.com/gulpjs/glob-parent/compare/v2.0.0...v3.0.0) (2021-01-27) + + +### ⚠ BREAKING CHANGES + +* update is-glob dependency + +### Features + +* update is-glob dependency ([5c5f8ef](https://github.com/gulpjs/glob-parent/commit/5c5f8efcee362a8e7638cf8220666acd8784f6bd)) + +## [2.0.0](https://github.com/gulpjs/glob-parent/compare/v1.3.0...v2.0.0) (2021-01-27) + + +### Features + +* move up to dirname regardless of glob characters ([f97fb83](https://github.com/gulpjs/glob-parent/commit/f97fb83be2e0a9fc8d3b760e789d2ecadd6aa0c2)) + +## [1.3.0](https://github.com/gulpjs/glob-parent/compare/v1.2.0...v1.3.0) (2021-01-27) + +## [1.2.0](https://github.com/gulpjs/glob-parent/compare/v1.1.0...v1.2.0) (2021-01-27) + + +### Reverts + +* feat: make regex test strings smaller ([dc80fa9](https://github.com/gulpjs/glob-parent/commit/dc80fa9658dca20549cfeba44bbd37d5246fcce0)) + +## [1.1.0](https://github.com/gulpjs/glob-parent/compare/v1.0.0...v1.1.0) (2021-01-27) + + +### Features + +* make regex test strings smaller ([cd83220](https://github.com/gulpjs/glob-parent/commit/cd832208638f45169f986d80fcf66e401f35d233)) + +## 1.0.0 (2021-01-27) + diff --git a/node_modules/glob-parent/LICENSE b/node_modules/glob-parent/LICENSE new file mode 100644 index 00000000..63222d7a --- /dev/null +++ b/node_modules/glob-parent/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) 2015, 2019 Elan Shanker + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/glob-parent/README.md b/node_modules/glob-parent/README.md new file mode 100644 index 00000000..36a27938 --- /dev/null +++ b/node_modules/glob-parent/README.md @@ -0,0 +1,137 @@ +

+ + + +

+ +# glob-parent + +[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Azure Pipelines Build Status][azure-pipelines-image]][azure-pipelines-url] [![Travis Build Status][travis-image]][travis-url] [![AppVeyor Build Status][appveyor-image]][appveyor-url] [![Coveralls Status][coveralls-image]][coveralls-url] [![Gitter chat][gitter-image]][gitter-url] + +Extract the non-magic parent path from a glob string. + +## Usage + +```js +var globParent = require('glob-parent'); + +globParent('path/to/*.js'); // 'path/to' +globParent('/root/path/to/*.js'); // '/root/path/to' +globParent('/*.js'); // '/' +globParent('*.js'); // '.' +globParent('**/*.js'); // '.' +globParent('path/{to,from}'); // 'path' +globParent('path/!(to|from)'); // 'path' +globParent('path/?(to|from)'); // 'path' +globParent('path/+(to|from)'); // 'path' +globParent('path/*(to|from)'); // 'path' +globParent('path/@(to|from)'); // 'path' +globParent('path/**/*'); // 'path' + +// if provided a non-glob path, returns the nearest dir +globParent('path/foo/bar.js'); // 'path/foo' +globParent('path/foo/'); // 'path/foo' +globParent('path/foo'); // 'path' (see issue #3 for details) +``` + +## API + +### `globParent(maybeGlobString, [options])` + +Takes a string and returns the part of the path before the glob begins. Be aware of Escaping rules and Limitations below. + +#### options + +```js +{ + // Disables the automatic conversion of slashes for Windows + flipBackslashes: true +} +``` + +## Escaping + +The following characters have special significance in glob patterns and must be escaped if you want them to be treated as regular path characters: + +- `?` (question mark) unless used as a path segment alone +- `*` (asterisk) +- `|` (pipe) +- `(` (opening parenthesis) +- `)` (closing parenthesis) +- `{` (opening curly brace) +- `}` (closing curly brace) +- `[` (opening bracket) +- `]` (closing bracket) + +**Example** + +```js +globParent('foo/[bar]/') // 'foo' +globParent('foo/\\[bar]/') // 'foo/[bar]' +``` + +## Limitations + +### Braces & Brackets +This library attempts a quick and imperfect method of determining which path +parts have glob magic without fully parsing/lexing the pattern. There are some +advanced use cases that can trip it up, such as nested braces where the outer +pair is escaped and the inner one contains a path separator. If you find +yourself in the unlikely circumstance of being affected by this or need to +ensure higher-fidelity glob handling in your library, it is recommended that you +pre-process your input with [expand-braces] and/or [expand-brackets]. + +### Windows +Backslashes are not valid path separators for globs. If a path with backslashes +is provided anyway, for simple cases, glob-parent will replace the path +separator for you and return the non-glob parent path (now with +forward-slashes, which are still valid as Windows path separators). + +This cannot be used in conjunction with escape characters. + +```js +// BAD +globParent('C:\\Program Files \\(x86\\)\\*.ext') // 'C:/Program Files /(x86/)' + +// GOOD +globParent('C:/Program Files\\(x86\\)/*.ext') // 'C:/Program Files (x86)' +``` + +If you are using escape characters for a pattern without path parts (i.e. +relative to `cwd`), prefix with `./` to avoid confusing glob-parent. + +```js +// BAD +globParent('foo \\[bar]') // 'foo ' +globParent('foo \\[bar]*') // 'foo ' + +// GOOD +globParent('./foo \\[bar]') // 'foo [bar]' +globParent('./foo \\[bar]*') // '.' +``` + +## License + +ISC + +[expand-braces]: https://github.com/jonschlinkert/expand-braces +[expand-brackets]: https://github.com/jonschlinkert/expand-brackets + +[downloads-image]: https://img.shields.io/npm/dm/glob-parent.svg +[npm-url]: https://www.npmjs.com/package/glob-parent +[npm-image]: https://img.shields.io/npm/v/glob-parent.svg + +[azure-pipelines-url]: https://dev.azure.com/gulpjs/gulp/_build/latest?definitionId=2&branchName=master +[azure-pipelines-image]: https://dev.azure.com/gulpjs/gulp/_apis/build/status/glob-parent?branchName=master + +[travis-url]: https://travis-ci.org/gulpjs/glob-parent +[travis-image]: https://img.shields.io/travis/gulpjs/glob-parent.svg?label=travis-ci + +[appveyor-url]: https://ci.appveyor.com/project/gulpjs/glob-parent +[appveyor-image]: https://img.shields.io/appveyor/ci/gulpjs/glob-parent.svg?label=appveyor + +[coveralls-url]: https://coveralls.io/r/gulpjs/glob-parent +[coveralls-image]: https://img.shields.io/coveralls/gulpjs/glob-parent/master.svg + +[gitter-url]: https://gitter.im/gulpjs/gulp +[gitter-image]: https://badges.gitter.im/gulpjs/gulp.svg diff --git a/node_modules/glob-parent/index.js b/node_modules/glob-parent/index.js new file mode 100644 index 00000000..09e257ea --- /dev/null +++ b/node_modules/glob-parent/index.js @@ -0,0 +1,42 @@ +'use strict'; + +var isGlob = require('is-glob'); +var pathPosixDirname = require('path').posix.dirname; +var isWin32 = require('os').platform() === 'win32'; + +var slash = '/'; +var backslash = /\\/g; +var enclosure = /[\{\[].*[\}\]]$/; +var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/; +var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g; + +/** + * @param {string} str + * @param {Object} opts + * @param {boolean} [opts.flipBackslashes=true] + * @returns {string} + */ +module.exports = function globParent(str, opts) { + var options = Object.assign({ flipBackslashes: true }, opts); + + // flip windows path separators + if (options.flipBackslashes && isWin32 && str.indexOf(slash) < 0) { + str = str.replace(backslash, slash); + } + + // special case for strings ending in enclosure containing path separator + if (enclosure.test(str)) { + str += slash; + } + + // preserves full path in case of trailing path separator + str += 'a'; + + // remove path parts that are globby + do { + str = pathPosixDirname(str); + } while (isGlob(str) || globby.test(str)); + + // remove escape chars and return result + return str.replace(escaped, '$1'); +}; diff --git a/node_modules/glob-parent/package.json b/node_modules/glob-parent/package.json new file mode 100644 index 00000000..125c971c --- /dev/null +++ b/node_modules/glob-parent/package.json @@ -0,0 +1,48 @@ +{ + "name": "glob-parent", + "version": "5.1.2", + "description": "Extract the non-magic parent path from a glob string.", + "author": "Gulp Team (https://gulpjs.com/)", + "contributors": [ + "Elan Shanker (https://github.com/es128)", + "Blaine Bublitz " + ], + "repository": "gulpjs/glob-parent", + "license": "ISC", + "engines": { + "node": ">= 6" + }, + "main": "index.js", + "files": [ + "LICENSE", + "index.js" + ], + "scripts": { + "lint": "eslint .", + "pretest": "npm run lint", + "test": "nyc mocha --async-only", + "azure-pipelines": "nyc mocha --async-only --reporter xunit -O output=test.xunit", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "dependencies": { + "is-glob": "^4.0.1" + }, + "devDependencies": { + "coveralls": "^3.0.11", + "eslint": "^2.13.1", + "eslint-config-gulp": "^3.0.1", + "expect": "^1.20.2", + "mocha": "^6.0.2", + "nyc": "^13.3.0" + }, + "keywords": [ + "glob", + "parent", + "strip", + "path", + "dirname", + "directory", + "base", + "wildcard" + ] +} diff --git a/node_modules/globby/gitignore.js b/node_modules/globby/gitignore.js new file mode 100644 index 00000000..dc26aa25 --- /dev/null +++ b/node_modules/globby/gitignore.js @@ -0,0 +1,108 @@ +import process from 'node:process'; +import fs from 'node:fs'; +import path from 'node:path'; +import fastGlob from 'fast-glob'; +import gitIgnore from 'ignore'; +import slash from 'slash'; +import toPath from './to-path.js'; + +const DEFAULT_IGNORE = [ + '**/node_modules/**', + '**/flow-typed/**', + '**/coverage/**', + '**/.git', +]; + +const mapGitIgnorePatternTo = base => ignore => { + if (ignore.startsWith('!')) { + return '!' + path.posix.join(base, ignore.slice(1)); + } + + return path.posix.join(base, ignore); +}; + +const parseGitIgnore = (content, options) => { + const base = slash(path.relative(options.cwd, path.dirname(options.fileName))); + + return content + .split(/\r?\n/) + .filter(Boolean) + .filter(line => !line.startsWith('#')) + .map(mapGitIgnorePatternTo(base)); +}; + +const reduceIgnore = files => { + const ignores = gitIgnore(); + for (const file of files) { + ignores.add(parseGitIgnore(file.content, { + cwd: file.cwd, + fileName: file.filePath, + })); + } + + return ignores; +}; + +const ensureAbsolutePathForCwd = (cwd, p) => { + cwd = slash(cwd); + if (path.isAbsolute(p)) { + if (slash(p).startsWith(cwd)) { + return p; + } + + throw new Error(`Path ${p} is not in cwd ${cwd}`); + } + + return path.join(cwd, p); +}; + +const getIsIgnoredPredicate = (ignores, cwd) => p => ignores.ignores(slash(path.relative(cwd, ensureAbsolutePathForCwd(cwd, toPath(p.path || p))))); + +const getFile = async (file, cwd) => { + const filePath = path.join(cwd, file); + const content = await fs.promises.readFile(filePath, 'utf8'); + + return { + cwd, + filePath, + content, + }; +}; + +const getFileSync = (file, cwd) => { + const filePath = path.join(cwd, file); + const content = fs.readFileSync(filePath, 'utf8'); + + return { + cwd, + filePath, + content, + }; +}; + +const normalizeOptions = ({ + ignore = [], + cwd = slash(process.cwd()), +} = {}) => ({ignore: [...DEFAULT_IGNORE, ...ignore], cwd: toPath(cwd)}); + +export const isGitIgnored = async options => { + options = normalizeOptions(options); + + const paths = await fastGlob('**/.gitignore', options); + + const files = await Promise.all(paths.map(file => getFile(file, options.cwd))); + const ignores = reduceIgnore(files); + + return getIsIgnoredPredicate(ignores, options.cwd); +}; + +export const isGitIgnoredSync = options => { + options = normalizeOptions(options); + + const paths = fastGlob.sync('**/.gitignore', options); + + const files = paths.map(file => getFileSync(file, options.cwd)); + const ignores = reduceIgnore(files); + + return getIsIgnoredPredicate(ignores, options.cwd); +}; diff --git a/node_modules/globby/index.d.ts b/node_modules/globby/index.d.ts new file mode 100644 index 00000000..b9571a66 --- /dev/null +++ b/node_modules/globby/index.d.ts @@ -0,0 +1,188 @@ +import {URL} from 'node:url'; // TODO: Remove this when https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34960 is fixed. +import {Options as FastGlobOptions, Entry} from 'fast-glob'; + +export type GlobEntry = Entry; + +export interface GlobTask { + readonly pattern: string; + readonly options: Options; +} + +export type ExpandDirectoriesOption = + | boolean + | readonly string[] + | {files?: readonly string[]; extensions?: readonly string[]}; + +type FastGlobOptionsWithoutCwd = Omit; + +export interface Options extends FastGlobOptionsWithoutCwd { + /** + If set to `true`, `globby` will automatically glob directories for you. If you define an `Array` it will only glob files that matches the patterns inside the `Array`. You can also define an `Object` with `files` and `extensions` like in the example below. + + Note that if you set this option to `false`, you won't get back matched directories unless you set `onlyFiles: false`. + + @default true + + @example + ``` + import {globby} from 'globby'; + + const paths = await globby('images', { + expandDirectories: { + files: ['cat', 'unicorn', '*.jpg'], + extensions: ['png'] + } + }); + + console.log(paths); + //=> ['cat.png', 'unicorn.png', 'cow.jpg', 'rainbow.jpg'] + ``` + */ + readonly expandDirectories?: ExpandDirectoriesOption; + + /** + Respect ignore patterns in `.gitignore` files that apply to the globbed files. + + @default false + */ + readonly gitignore?: boolean; + + /** + The current working directory in which to search. + + @default process.cwd() + */ + readonly cwd?: URL | string; +} + +export interface GitignoreOptions { + readonly cwd?: URL | string; + readonly ignore?: readonly string[]; +} + +export type GlobbyFilterFunction = (path: URL | string) => boolean; + +/** +Find files and directories using glob patterns. + +Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. + +@param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). +@param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. +@returns The matching paths. + +@example +``` +import {globby} from 'globby'; + +const paths = await globby(['*', '!cake']); + +console.log(paths); +//=> ['unicorn', 'rainbow'] +``` +*/ +export function globby( + patterns: string | readonly string[], + options: Options & {objectMode: true} +): Promise; +export function globby( + patterns: string | readonly string[], + options?: Options +): Promise; + +/** +Find files and directories using glob patterns. + +Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. + +@param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). +@param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. +@returns The matching paths. +*/ +export function globbySync( + patterns: string | readonly string[], + options: Options & {objectMode: true} +): GlobEntry[]; +export function globbySync( + patterns: string | readonly string[], + options?: Options +): string[]; + +/** +Find files and directories using glob patterns. + +Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. + +@param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). +@param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. +@returns The stream of matching paths. + +@example +``` +import {globbyStream} from 'globby'; + +for await (const path of globbyStream('*.tmp')) { + console.log(path); +} +``` +*/ +export function globbyStream( + patterns: string | readonly string[], + options?: Options +): NodeJS.ReadableStream; + +/** +Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, run this method each time to ensure file system changes are taken into consideration. + +@param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). +@param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones in this package. +@returns An object in the format `{pattern: string, options: object}`, which can be passed as arguments to [`fast-glob`](https://github.com/mrmlnc/fast-glob). This is useful for other globbing-related packages. +*/ +export function generateGlobTasks( + patterns: string | readonly string[], + options?: Options +): GlobTask[]; + +/** +Note that the options affect the results. + +This function is backed by [`fast-glob`](https://github.com/mrmlnc/fast-glob#isdynamicpatternpattern-options). + +@param patterns - See the supported [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns). +@param options - See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3). +@returns Whether there are any special glob characters in the `patterns`. +*/ +export function isDynamicPattern( + patterns: string | readonly string[], + options?: FastGlobOptionsWithoutCwd & { + /** + The current working directory in which to search. + + @default process.cwd() + */ + readonly cwd?: URL | string; + } +): boolean; + +/** +`.gitignore` files matched by the ignore config are not used for the resulting filter function. + +@returns A filter function indicating whether a given path is ignored via a `.gitignore` file. + +@example +``` +import {isGitIgnored} from 'globby'; + +const isIgnored = await isGitIgnored(); + +console.log(isIgnored('some/file')); +``` +*/ +export function isGitIgnored(options?: GitignoreOptions): Promise; + +/** +@see isGitIgnored + +@returns A filter function indicating whether a given path is ignored via a `.gitignore` file. +*/ +export function isGitIgnoredSync(options?: GitignoreOptions): GlobbyFilterFunction; diff --git a/node_modules/globby/index.js b/node_modules/globby/index.js new file mode 100644 index 00000000..1ebc1725 --- /dev/null +++ b/node_modules/globby/index.js @@ -0,0 +1,197 @@ +import fs from 'node:fs'; +import arrayUnion from 'array-union'; +import merge2 from 'merge2'; +import fastGlob from 'fast-glob'; +import dirGlob from 'dir-glob'; +import toPath from './to-path.js'; +import {isGitIgnored, isGitIgnoredSync} from './gitignore.js'; +import {FilterStream, UniqueStream} from './stream-utils.js'; + +const DEFAULT_FILTER = () => false; + +const isNegative = pattern => pattern[0] === '!'; + +const assertPatternsInput = patterns => { + if (!patterns.every(pattern => typeof pattern === 'string')) { + throw new TypeError('Patterns must be a string or an array of strings'); + } +}; + +const checkCwdOption = options => { + if (!options.cwd) { + return; + } + + let stat; + try { + stat = fs.statSync(options.cwd); + } catch { + return; + } + + if (!stat.isDirectory()) { + throw new Error('The `cwd` option must be a path to a directory'); + } +}; + +const getPathString = p => p.stats instanceof fs.Stats ? p.path : p; + +export const generateGlobTasks = (patterns, taskOptions = {}) => { + patterns = arrayUnion([patterns].flat()); + assertPatternsInput(patterns); + + const globTasks = []; + + taskOptions = { + ignore: [], + expandDirectories: true, + ...taskOptions, + cwd: toPath(taskOptions.cwd), + }; + + checkCwdOption(taskOptions); + + for (const [index, pattern] of patterns.entries()) { + if (isNegative(pattern)) { + continue; + } + + const ignore = patterns + .slice(index) + .filter(pattern => isNegative(pattern)) + .map(pattern => pattern.slice(1)); + + const options = { + ...taskOptions, + ignore: [...taskOptions.ignore, ...ignore], + }; + + globTasks.push({pattern, options}); + } + + return globTasks; +}; + +const globDirectories = (task, fn) => { + let options = {}; + if (task.options.cwd) { + options.cwd = task.options.cwd; + } + + if (Array.isArray(task.options.expandDirectories)) { + options = { + ...options, + files: task.options.expandDirectories, + }; + } else if (typeof task.options.expandDirectories === 'object') { + options = { + ...options, + ...task.options.expandDirectories, + }; + } + + return fn(task.pattern, options); +}; + +const getPattern = (task, fn) => task.options.expandDirectories ? globDirectories(task, fn) : [task.pattern]; + +const getFilterSync = options => options && options.gitignore + ? isGitIgnoredSync({cwd: options.cwd, ignore: options.ignore}) + : DEFAULT_FILTER; + +const globToTask = task => async glob => { + const {options} = task; + if (options.ignore && Array.isArray(options.ignore) && options.expandDirectories) { + options.ignore = await dirGlob(options.ignore); + } + + return { + pattern: glob, + options, + }; +}; + +const globToTaskSync = task => glob => { + const {options} = task; + if (options.ignore && Array.isArray(options.ignore) && options.expandDirectories) { + options.ignore = dirGlob.sync(options.ignore); + } + + return { + pattern: glob, + options, + }; +}; + +export const globby = async (patterns, options) => { + const globTasks = generateGlobTasks(patterns, options); + + const getFilter = async () => options && options.gitignore + ? isGitIgnored({cwd: options.cwd, ignore: options.ignore}) + : DEFAULT_FILTER; + + const getTasks = async () => { + const tasks = await Promise.all(globTasks.map(async task => { + const globs = await getPattern(task, dirGlob); + return Promise.all(globs.map(globToTask(task))); + })); + + return arrayUnion(...tasks); + }; + + const [filter, tasks] = await Promise.all([getFilter(), getTasks()]); + const paths = await Promise.all(tasks.map(task => fastGlob(task.pattern, task.options))); + + return arrayUnion(...paths).filter(path_ => !filter(getPathString(path_))); +}; + +export const globbySync = (patterns, options) => { + const globTasks = generateGlobTasks(patterns, options); + + const tasks = []; + for (const task of globTasks) { + const newTask = getPattern(task, dirGlob.sync).map(globToTaskSync(task)); + tasks.push(...newTask); + } + + const filter = getFilterSync(options); + + let matches = []; + for (const task of tasks) { + matches = arrayUnion(matches, fastGlob.sync(task.pattern, task.options)); + } + + return matches.filter(path_ => !filter(path_)); +}; + +export const globbyStream = (patterns, options) => { + const globTasks = generateGlobTasks(patterns, options); + + const tasks = []; + for (const task of globTasks) { + const newTask = getPattern(task, dirGlob.sync).map(globToTaskSync(task)); + tasks.push(...newTask); + } + + const filter = getFilterSync(options); + const filterStream = new FilterStream(p => !filter(p)); + const uniqueStream = new UniqueStream(); + + return merge2(tasks.map(task => fastGlob.stream(task.pattern, task.options))) + .pipe(filterStream) + .pipe(uniqueStream); +}; + +export const isDynamicPattern = (patterns, options = {}) => { + options = { + ...options, + cwd: toPath(options.cwd), + }; + + return [patterns].flat().some(pattern => fastGlob.isDynamicPattern(pattern, options)); +}; + +export { + isGitIgnored, + isGitIgnoredSync, +} from './gitignore.js'; diff --git a/node_modules/globby/license b/node_modules/globby/license new file mode 100644 index 00000000..fa7ceba3 --- /dev/null +++ b/node_modules/globby/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/globby/package.json b/node_modules/globby/package.json new file mode 100644 index 00000000..97dc4943 --- /dev/null +++ b/node_modules/globby/package.json @@ -0,0 +1,87 @@ +{ + "name": "globby", + "version": "12.2.0", + "description": "User-friendly glob matching", + "license": "MIT", + "repository": "sindresorhus/globby", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "email": "sindresorhus@gmail.com", + "name": "Sindre Sorhus", + "url": "https://sindresorhus.com" + }, + "type": "module", + "exports": "./index.js", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "scripts": { + "bench": "npm update glob-stream fast-glob && matcha bench.js", + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts", + "gitignore.js", + "stream-utils.js", + "to-path.js" + ], + "keywords": [ + "all", + "array", + "directories", + "expand", + "files", + "filesystem", + "filter", + "find", + "fnmatch", + "folders", + "fs", + "glob", + "globbing", + "globs", + "gulpfriendly", + "match", + "matcher", + "minimatch", + "multi", + "multiple", + "paths", + "pattern", + "patterns", + "traverse", + "util", + "utility", + "wildcard", + "wildcards", + "promise", + "gitignore", + "git" + ], + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "devDependencies": { + "@types/node": "^16.11.11", + "ava": "^3.15.0", + "get-stream": "^6.0.1", + "glob-stream": "^7.0.0", + "globby": "sindresorhus/globby#main", + "matcha": "^0.7.0", + "rimraf": "^3.0.2", + "tsd": "^0.19.0", + "typescript": "^4.5.2", + "xo": "^0.47.0" + }, + "xo": { + "ignores": [ + "fixtures" + ] + } +} diff --git a/node_modules/globby/readme.md b/node_modules/globby/readme.md new file mode 100644 index 00000000..315a53b6 --- /dev/null +++ b/node_modules/globby/readme.md @@ -0,0 +1,168 @@ +# globby + +> User-friendly glob matching + +Based on [`fast-glob`](https://github.com/mrmlnc/fast-glob) but adds a bunch of useful features. + +## Features + +- Promise API +- Multiple patterns +- Negated patterns: `['foo*', '!foobar']` +- Expands directories: `foo` → `foo/**/*` +- Supports `.gitignore` +- Supports `URL` as `cwd` + +## Install + +``` +$ npm install globby +``` + +## Usage + +``` +├── unicorn +├── cake +└── rainbow +``` + +```js +import {globby} from 'globby'; + +const paths = await globby(['*', '!cake']); + +console.log(paths); +//=> ['unicorn', 'rainbow'] +``` + +## API + +Note that glob patterns can only contain forward-slashes, not backward-slashes, so if you want to construct a glob pattern from path components, you need to use `path.posix.join()` instead of `path.join()`. + +### globby(patterns, options?) + +Returns a `Promise` of matching paths. + +#### patterns + +Type: `string | string[]` + +See supported `minimatch` [patterns](https://github.com/isaacs/minimatch#usage). + +#### options + +Type: `object` + +See the [`fast-glob` options](https://github.com/mrmlnc/fast-glob#options-3) in addition to the ones below. + +##### expandDirectories + +Type: `boolean | string[] | object`\ +Default: `true` + +If set to `true`, `globby` will automatically glob directories for you. If you define an `Array` it will only glob files that matches the patterns inside the `Array`. You can also define an `object` with `files` and `extensions` like below: + +```js +import {globby} from 'globby'; + +(async () => { + const paths = await globby('images', { + expandDirectories: { + files: ['cat', 'unicorn', '*.jpg'], + extensions: ['png'] + } + }); + + console.log(paths); + //=> ['cat.png', 'unicorn.png', 'cow.jpg', 'rainbow.jpg'] +})(); +``` + +Note that if you set this option to `false`, you won't get back matched directories unless you set `onlyFiles: false`. + +##### gitignore + +Type: `boolean`\ +Default: `false` + +Respect ignore patterns in `.gitignore` files that apply to the globbed files. + +### globbySync(patterns, options?) + +Returns `string[]` of matching paths. + +### globbyStream(patterns, options?) + +Returns a [`stream.Readable`](https://nodejs.org/api/stream.html#stream_readable_streams) of matching paths. + +Since Node.js 10, [readable streams are iterable](https://nodejs.org/api/stream.html#stream_readable_symbol_asynciterator), so you can loop over glob matches in a [`for await...of` loop](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of) like this: + +```js +import {globbyStream} from 'globby'; + +(async () => { + for await (const path of globbyStream('*.tmp')) { + console.log(path); + } +})(); +``` + +### generateGlobTasks(patterns, options?) + +Returns an `object[]` in the format `{pattern: string, options: Object}`, which can be passed as arguments to [`fast-glob`](https://github.com/mrmlnc/fast-glob). This is useful for other globbing-related packages. + +Note that you should avoid running the same tasks multiple times as they contain a file system cache. Instead, run this method each time to ensure file system changes are taken into consideration. + +### isDynamicPattern(patterns, options?) + +Returns a `boolean` of whether there are any special glob characters in the `patterns`. + +Note that the options affect the results. + +This function is backed by [`fast-glob`](https://github.com/mrmlnc/fast-glob#isdynamicpatternpattern-options). + +### isGitIgnored(options?) + +Returns a `Promise<(path: URL | string) => boolean>` indicating whether a given path is ignored via a `.gitignore` file. + +Takes `cwd?: URL | string` and `ignore?: string[]` as options. `.gitignore` files matched by the ignore config are not used for the resulting filter function. + +```js +import {isGitIgnored} from 'globby'; + +const isIgnored = await isGitIgnored(); + +console.log(isIgnored('some/file')); +``` + +### isGitIgnoredSync(options?) + +Returns a `(path: URL | string) => boolean` indicating whether a given path is ignored via a `.gitignore` file. + +Takes the same options as `isGitIgnored`. + +## Globbing patterns + +Just a quick overview. + +- `*` matches any number of characters, but not `/` +- `?` matches a single character, but not `/` +- `**` matches any number of characters, including `/`, as long as it's the only thing in a path part +- `{}` allows for a comma-separated list of "or" expressions +- `!` at the beginning of a pattern will negate the match + +[Various patterns and expected matches.](https://github.com/sindresorhus/multimatch/blob/main/test/test.js) + +## globby for enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of globby and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-globby?utm_source=npm-globby&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + +## Related + +- [multimatch](https://github.com/sindresorhus/multimatch) - Match against a list instead of the filesystem +- [matcher](https://github.com/sindresorhus/matcher) - Simple wildcard matching +- [del](https://github.com/sindresorhus/del) - Delete files and directories +- [make-dir](https://github.com/sindresorhus/make-dir) - Make a directory and its parents if needed diff --git a/node_modules/globby/stream-utils.js b/node_modules/globby/stream-utils.js new file mode 100644 index 00000000..91a99bb9 --- /dev/null +++ b/node_modules/globby/stream-utils.js @@ -0,0 +1,40 @@ +import {Transform} from 'node:stream'; + +class ObjectTransform extends Transform { + constructor() { + super({ + objectMode: true, + }); + } +} + +export class FilterStream extends ObjectTransform { + constructor(filter) { + super(); + this._filter = filter; + } + + _transform(data, encoding, callback) { + if (this._filter(data)) { + this.push(data); + } + + callback(); + } +} + +export class UniqueStream extends ObjectTransform { + constructor() { + super(); + this._pushed = new Set(); + } + + _transform(data, encoding, callback) { + if (!this._pushed.has(data)) { + this.push(data); + this._pushed.add(data); + } + + callback(); + } +} diff --git a/node_modules/globby/to-path.js b/node_modules/globby/to-path.js new file mode 100644 index 00000000..39144336 --- /dev/null +++ b/node_modules/globby/to-path.js @@ -0,0 +1,15 @@ +import {fileURLToPath} from 'node:url'; + +const toPath = urlOrPath => { + if (!urlOrPath) { + return urlOrPath; + } + + if (urlOrPath instanceof URL) { + urlOrPath = urlOrPath.href; + } + + return urlOrPath.startsWith('file://') ? fileURLToPath(urlOrPath) : urlOrPath; +}; + +export default toPath; diff --git a/node_modules/graceful-fs/LICENSE b/node_modules/graceful-fs/LICENSE new file mode 100644 index 00000000..9d2c8036 --- /dev/null +++ b/node_modules/graceful-fs/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter, Ben Noordhuis, and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/graceful-fs/README.md b/node_modules/graceful-fs/README.md new file mode 100644 index 00000000..82d6e4da --- /dev/null +++ b/node_modules/graceful-fs/README.md @@ -0,0 +1,143 @@ +# graceful-fs + +graceful-fs functions as a drop-in replacement for the fs module, +making various improvements. + +The improvements are meant to normalize behavior across different +platforms and environments, and to make filesystem access more +resilient to errors. + +## Improvements over [fs module](https://nodejs.org/api/fs.html) + +* Queues up `open` and `readdir` calls, and retries them once + something closes if there is an EMFILE error from too many file + descriptors. +* fixes `lchmod` for Node versions prior to 0.6.2. +* implements `fs.lutimes` if possible. Otherwise it becomes a noop. +* ignores `EINVAL` and `EPERM` errors in `chown`, `fchown` or + `lchown` if the user isn't root. +* makes `lchmod` and `lchown` become noops, if not available. +* retries reading a file if `read` results in EAGAIN error. + +On Windows, it retries renaming a file for up to one second if `EACCESS` +or `EPERM` error occurs, likely because antivirus software has locked +the directory. + +## USAGE + +```javascript +// use just like fs +var fs = require('graceful-fs') + +// now go and do stuff with it... +fs.readFile('some-file-or-whatever', (err, data) => { + // Do stuff here. +}) +``` + +## Sync methods + +This module cannot intercept or handle `EMFILE` or `ENFILE` errors from sync +methods. If you use sync methods which open file descriptors then you are +responsible for dealing with any errors. + +This is a known limitation, not a bug. + +## Global Patching + +If you want to patch the global fs module (or any other fs-like +module) you can do this: + +```javascript +// Make sure to read the caveat below. +var realFs = require('fs') +var gracefulFs = require('graceful-fs') +gracefulFs.gracefulify(realFs) +``` + +This should only ever be done at the top-level application layer, in +order to delay on EMFILE errors from any fs-using dependencies. You +should **not** do this in a library, because it can cause unexpected +delays in other parts of the program. + +## Changes + +This module is fairly stable at this point, and used by a lot of +things. That being said, because it implements a subtle behavior +change in a core part of the node API, even modest changes can be +extremely breaking, and the versioning is thus biased towards +bumping the major when in doubt. + +The main change between major versions has been switching between +providing a fully-patched `fs` module vs monkey-patching the node core +builtin, and the approach by which a non-monkey-patched `fs` was +created. + +The goal is to trade `EMFILE` errors for slower fs operations. So, if +you try to open a zillion files, rather than crashing, `open` +operations will be queued up and wait for something else to `close`. + +There are advantages to each approach. Monkey-patching the fs means +that no `EMFILE` errors can possibly occur anywhere in your +application, because everything is using the same core `fs` module, +which is patched. However, it can also obviously cause undesirable +side-effects, especially if the module is loaded multiple times. + +Implementing a separate-but-identical patched `fs` module is more +surgical (and doesn't run the risk of patching multiple times), but +also imposes the challenge of keeping in sync with the core module. + +The current approach loads the `fs` module, and then creates a +lookalike object that has all the same methods, except a few that are +patched. It is safe to use in all versions of Node from 0.8 through +7.0. + +### v4 + +* Do not monkey-patch the fs module. This module may now be used as a + drop-in dep, and users can opt into monkey-patching the fs builtin + if their app requires it. + +### v3 + +* Monkey-patch fs, because the eval approach no longer works on recent + node. +* fixed possible type-error throw if rename fails on windows +* verify that we *never* get EMFILE errors +* Ignore ENOSYS from chmod/chown +* clarify that graceful-fs must be used as a drop-in + +### v2.1.0 + +* Use eval rather than monkey-patching fs. +* readdir: Always sort the results +* win32: requeue a file if error has an OK status + +### v2.0 + +* A return to monkey patching +* wrap process.cwd + +### v1.1 + +* wrap readFile +* Wrap fs.writeFile. +* readdir protection +* Don't clobber the fs builtin +* Handle fs.read EAGAIN errors by trying again +* Expose the curOpen counter +* No-op lchown/lchmod if not implemented +* fs.rename patch only for win32 +* Patch fs.rename to handle AV software on Windows +* Close #4 Chown should not fail on einval or eperm if non-root +* Fix isaacs/fstream#1 Only wrap fs one time +* Fix #3 Start at 1024 max files, then back off on EMFILE +* lutimes that doens't blow up on Linux +* A full on-rewrite using a queue instead of just swallowing the EMFILE error +* Wrap Read/Write streams as well + +### 1.0 + +* Update engines for node 0.6 +* Be lstat-graceful on Windows +* first diff --git a/node_modules/graceful-fs/clone.js b/node_modules/graceful-fs/clone.js new file mode 100644 index 00000000..dff3cc8c --- /dev/null +++ b/node_modules/graceful-fs/clone.js @@ -0,0 +1,23 @@ +'use strict' + +module.exports = clone + +var getPrototypeOf = Object.getPrototypeOf || function (obj) { + return obj.__proto__ +} + +function clone (obj) { + if (obj === null || typeof obj !== 'object') + return obj + + if (obj instanceof Object) + var copy = { __proto__: getPrototypeOf(obj) } + else + var copy = Object.create(null) + + Object.getOwnPropertyNames(obj).forEach(function (key) { + Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key)) + }) + + return copy +} diff --git a/node_modules/graceful-fs/graceful-fs.js b/node_modules/graceful-fs/graceful-fs.js new file mode 100644 index 00000000..947cd94b --- /dev/null +++ b/node_modules/graceful-fs/graceful-fs.js @@ -0,0 +1,429 @@ +var fs = require('fs') +var polyfills = require('./polyfills.js') +var legacy = require('./legacy-streams.js') +var clone = require('./clone.js') + +var util = require('util') + +/* istanbul ignore next - node 0.x polyfill */ +var gracefulQueue +var previousSymbol + +/* istanbul ignore else - node 0.x polyfill */ +if (typeof Symbol === 'function' && typeof Symbol.for === 'function') { + gracefulQueue = Symbol.for('graceful-fs.queue') + // This is used in testing by future versions + previousSymbol = Symbol.for('graceful-fs.previous') +} else { + gracefulQueue = '___graceful-fs.queue' + previousSymbol = '___graceful-fs.previous' +} + +function noop () {} + +function publishQueue(context, queue) { + Object.defineProperty(context, gracefulQueue, { + get: function() { + return queue + } + }) +} + +var debug = noop +if (util.debuglog) + debug = util.debuglog('gfs4') +else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) + debug = function() { + var m = util.format.apply(util, arguments) + m = 'GFS4: ' + m.split(/\n/).join('\nGFS4: ') + console.error(m) + } + +// Once time initialization +if (!fs[gracefulQueue]) { + // This queue can be shared by multiple loaded instances + var queue = global[gracefulQueue] || [] + publishQueue(fs, queue) + + // Patch fs.close/closeSync to shared queue version, because we need + // to retry() whenever a close happens *anywhere* in the program. + // This is essential when multiple graceful-fs instances are + // in play at the same time. + fs.close = (function (fs$close) { + function close (fd, cb) { + return fs$close.call(fs, fd, function (err) { + // This function uses the graceful-fs shared queue + if (!err) { + resetQueue() + } + + if (typeof cb === 'function') + cb.apply(this, arguments) + }) + } + + Object.defineProperty(close, previousSymbol, { + value: fs$close + }) + return close + })(fs.close) + + fs.closeSync = (function (fs$closeSync) { + function closeSync (fd) { + // This function uses the graceful-fs shared queue + fs$closeSync.apply(fs, arguments) + resetQueue() + } + + Object.defineProperty(closeSync, previousSymbol, { + value: fs$closeSync + }) + return closeSync + })(fs.closeSync) + + if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { + process.on('exit', function() { + debug(fs[gracefulQueue]) + require('assert').equal(fs[gracefulQueue].length, 0) + }) + } +} + +if (!global[gracefulQueue]) { + publishQueue(global, fs[gracefulQueue]); +} + +module.exports = patch(clone(fs)) +if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) { + module.exports = patch(fs) + fs.__patched = true; +} + +function patch (fs) { + // Everything that references the open() function needs to be in here + polyfills(fs) + fs.gracefulify = patch + + fs.createReadStream = createReadStream + fs.createWriteStream = createWriteStream + var fs$readFile = fs.readFile + fs.readFile = readFile + function readFile (path, options, cb) { + if (typeof options === 'function') + cb = options, options = null + + return go$readFile(path, options, cb) + + function go$readFile (path, options, cb, startTime) { + return fs$readFile(path, options, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$readFile, [path, options, cb], err, startTime || Date.now(), Date.now()]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + } + }) + } + } + + var fs$writeFile = fs.writeFile + fs.writeFile = writeFile + function writeFile (path, data, options, cb) { + if (typeof options === 'function') + cb = options, options = null + + return go$writeFile(path, data, options, cb) + + function go$writeFile (path, data, options, cb, startTime) { + return fs$writeFile(path, data, options, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$writeFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + } + }) + } + } + + var fs$appendFile = fs.appendFile + if (fs$appendFile) + fs.appendFile = appendFile + function appendFile (path, data, options, cb) { + if (typeof options === 'function') + cb = options, options = null + + return go$appendFile(path, data, options, cb) + + function go$appendFile (path, data, options, cb, startTime) { + return fs$appendFile(path, data, options, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$appendFile, [path, data, options, cb], err, startTime || Date.now(), Date.now()]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + } + }) + } + } + + var fs$copyFile = fs.copyFile + if (fs$copyFile) + fs.copyFile = copyFile + function copyFile (src, dest, flags, cb) { + if (typeof flags === 'function') { + cb = flags + flags = 0 + } + return go$copyFile(src, dest, flags, cb) + + function go$copyFile (src, dest, flags, cb, startTime) { + return fs$copyFile(src, dest, flags, function (err) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$copyFile, [src, dest, flags, cb], err, startTime || Date.now(), Date.now()]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + } + }) + } + } + + var fs$readdir = fs.readdir + fs.readdir = readdir + function readdir (path, options, cb) { + if (typeof options === 'function') + cb = options, options = null + + return go$readdir(path, options, cb) + + function go$readdir (path, options, cb, startTime) { + return fs$readdir(path, options, function (err, files) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$readdir, [path, options, cb], err, startTime || Date.now(), Date.now()]) + else { + if (files && files.sort) + files.sort() + + if (typeof cb === 'function') + cb.call(this, err, files) + } + }) + } + } + + if (process.version.substr(0, 4) === 'v0.8') { + var legStreams = legacy(fs) + ReadStream = legStreams.ReadStream + WriteStream = legStreams.WriteStream + } + + var fs$ReadStream = fs.ReadStream + if (fs$ReadStream) { + ReadStream.prototype = Object.create(fs$ReadStream.prototype) + ReadStream.prototype.open = ReadStream$open + } + + var fs$WriteStream = fs.WriteStream + if (fs$WriteStream) { + WriteStream.prototype = Object.create(fs$WriteStream.prototype) + WriteStream.prototype.open = WriteStream$open + } + + Object.defineProperty(fs, 'ReadStream', { + get: function () { + return ReadStream + }, + set: function (val) { + ReadStream = val + }, + enumerable: true, + configurable: true + }) + Object.defineProperty(fs, 'WriteStream', { + get: function () { + return WriteStream + }, + set: function (val) { + WriteStream = val + }, + enumerable: true, + configurable: true + }) + + // legacy names + var FileReadStream = ReadStream + Object.defineProperty(fs, 'FileReadStream', { + get: function () { + return FileReadStream + }, + set: function (val) { + FileReadStream = val + }, + enumerable: true, + configurable: true + }) + var FileWriteStream = WriteStream + Object.defineProperty(fs, 'FileWriteStream', { + get: function () { + return FileWriteStream + }, + set: function (val) { + FileWriteStream = val + }, + enumerable: true, + configurable: true + }) + + function ReadStream (path, options) { + if (this instanceof ReadStream) + return fs$ReadStream.apply(this, arguments), this + else + return ReadStream.apply(Object.create(ReadStream.prototype), arguments) + } + + function ReadStream$open () { + var that = this + open(that.path, that.flags, that.mode, function (err, fd) { + if (err) { + if (that.autoClose) + that.destroy() + + that.emit('error', err) + } else { + that.fd = fd + that.emit('open', fd) + that.read() + } + }) + } + + function WriteStream (path, options) { + if (this instanceof WriteStream) + return fs$WriteStream.apply(this, arguments), this + else + return WriteStream.apply(Object.create(WriteStream.prototype), arguments) + } + + function WriteStream$open () { + var that = this + open(that.path, that.flags, that.mode, function (err, fd) { + if (err) { + that.destroy() + that.emit('error', err) + } else { + that.fd = fd + that.emit('open', fd) + } + }) + } + + function createReadStream (path, options) { + return new fs.ReadStream(path, options) + } + + function createWriteStream (path, options) { + return new fs.WriteStream(path, options) + } + + var fs$open = fs.open + fs.open = open + function open (path, flags, mode, cb) { + if (typeof mode === 'function') + cb = mode, mode = null + + return go$open(path, flags, mode, cb) + + function go$open (path, flags, mode, cb, startTime) { + return fs$open(path, flags, mode, function (err, fd) { + if (err && (err.code === 'EMFILE' || err.code === 'ENFILE')) + enqueue([go$open, [path, flags, mode, cb], err, startTime || Date.now(), Date.now()]) + else { + if (typeof cb === 'function') + cb.apply(this, arguments) + } + }) + } + } + + return fs +} + +function enqueue (elem) { + debug('ENQUEUE', elem[0].name, elem[1]) + fs[gracefulQueue].push(elem) + retry() +} + +// keep track of the timeout between retry() calls +var retryTimer + +// reset the startTime and lastTime to now +// this resets the start of the 60 second overall timeout as well as the +// delay between attempts so that we'll retry these jobs sooner +function resetQueue () { + var now = Date.now() + for (var i = 0; i < fs[gracefulQueue].length; ++i) { + // entries that are only a length of 2 are from an older version, don't + // bother modifying those since they'll be retried anyway. + if (fs[gracefulQueue][i].length > 2) { + fs[gracefulQueue][i][3] = now // startTime + fs[gracefulQueue][i][4] = now // lastTime + } + } + // call retry to make sure we're actively processing the queue + retry() +} + +function retry () { + // clear the timer and remove it to help prevent unintended concurrency + clearTimeout(retryTimer) + retryTimer = undefined + + if (fs[gracefulQueue].length === 0) + return + + var elem = fs[gracefulQueue].shift() + var fn = elem[0] + var args = elem[1] + // these items may be unset if they were added by an older graceful-fs + var err = elem[2] + var startTime = elem[3] + var lastTime = elem[4] + + // if we don't have a startTime we have no way of knowing if we've waited + // long enough, so go ahead and retry this item now + if (startTime === undefined) { + debug('RETRY', fn.name, args) + fn.apply(null, args) + } else if (Date.now() - startTime >= 60000) { + // it's been more than 60 seconds total, bail now + debug('TIMEOUT', fn.name, args) + var cb = args.pop() + if (typeof cb === 'function') + cb.call(null, err) + } else { + // the amount of time between the last attempt and right now + var sinceAttempt = Date.now() - lastTime + // the amount of time between when we first tried, and when we last tried + // rounded up to at least 1 + var sinceStart = Math.max(lastTime - startTime, 1) + // backoff. wait longer than the total time we've been retrying, but only + // up to a maximum of 100ms + var desiredDelay = Math.min(sinceStart * 1.2, 100) + // it's been long enough since the last retry, do it again + if (sinceAttempt >= desiredDelay) { + debug('RETRY', fn.name, args) + fn.apply(null, args.concat([startTime])) + } else { + // if we can't do this job yet, push it to the end of the queue + // and let the next iteration check again + fs[gracefulQueue].push(elem) + } + } + + // schedule our next run if one isn't already scheduled + if (retryTimer === undefined) { + retryTimer = setTimeout(retry, 0) + } +} diff --git a/node_modules/graceful-fs/legacy-streams.js b/node_modules/graceful-fs/legacy-streams.js new file mode 100644 index 00000000..d617b50f --- /dev/null +++ b/node_modules/graceful-fs/legacy-streams.js @@ -0,0 +1,118 @@ +var Stream = require('stream').Stream + +module.exports = legacy + +function legacy (fs) { + return { + ReadStream: ReadStream, + WriteStream: WriteStream + } + + function ReadStream (path, options) { + if (!(this instanceof ReadStream)) return new ReadStream(path, options); + + Stream.call(this); + + var self = this; + + this.path = path; + this.fd = null; + this.readable = true; + this.paused = false; + + this.flags = 'r'; + this.mode = 438; /*=0666*/ + this.bufferSize = 64 * 1024; + + options = options || {}; + + // Mixin options into this + var keys = Object.keys(options); + for (var index = 0, length = keys.length; index < length; index++) { + var key = keys[index]; + this[key] = options[key]; + } + + if (this.encoding) this.setEncoding(this.encoding); + + if (this.start !== undefined) { + if ('number' !== typeof this.start) { + throw TypeError('start must be a Number'); + } + if (this.end === undefined) { + this.end = Infinity; + } else if ('number' !== typeof this.end) { + throw TypeError('end must be a Number'); + } + + if (this.start > this.end) { + throw new Error('start must be <= end'); + } + + this.pos = this.start; + } + + if (this.fd !== null) { + process.nextTick(function() { + self._read(); + }); + return; + } + + fs.open(this.path, this.flags, this.mode, function (err, fd) { + if (err) { + self.emit('error', err); + self.readable = false; + return; + } + + self.fd = fd; + self.emit('open', fd); + self._read(); + }) + } + + function WriteStream (path, options) { + if (!(this instanceof WriteStream)) return new WriteStream(path, options); + + Stream.call(this); + + this.path = path; + this.fd = null; + this.writable = true; + + this.flags = 'w'; + this.encoding = 'binary'; + this.mode = 438; /*=0666*/ + this.bytesWritten = 0; + + options = options || {}; + + // Mixin options into this + var keys = Object.keys(options); + for (var index = 0, length = keys.length; index < length; index++) { + var key = keys[index]; + this[key] = options[key]; + } + + if (this.start !== undefined) { + if ('number' !== typeof this.start) { + throw TypeError('start must be a Number'); + } + if (this.start < 0) { + throw new Error('start must be >= zero'); + } + + this.pos = this.start; + } + + this.busy = false; + this._queue = []; + + if (this.fd === null) { + this._open = fs.open; + this._queue.push([this._open, this.path, this.flags, this.mode, undefined]); + this.flush(); + } + } +} diff --git a/node_modules/graceful-fs/package.json b/node_modules/graceful-fs/package.json new file mode 100644 index 00000000..e1cb5847 --- /dev/null +++ b/node_modules/graceful-fs/package.json @@ -0,0 +1,50 @@ +{ + "name": "graceful-fs", + "description": "A drop-in replacement for fs, making various improvements.", + "version": "4.2.9", + "repository": { + "type": "git", + "url": "https://github.com/isaacs/node-graceful-fs" + }, + "main": "graceful-fs.js", + "directories": { + "test": "test" + }, + "scripts": { + "preversion": "npm test", + "postversion": "npm publish", + "postpublish": "git push origin --follow-tags", + "test": "nyc --silent node test.js | tap -c -", + "posttest": "nyc report" + }, + "keywords": [ + "fs", + "module", + "reading", + "retry", + "retries", + "queue", + "error", + "errors", + "handling", + "EMFILE", + "EAGAIN", + "EINVAL", + "EPERM", + "EACCESS" + ], + "license": "ISC", + "devDependencies": { + "import-fresh": "^2.0.0", + "mkdirp": "^0.5.0", + "rimraf": "^2.2.8", + "tap": "^12.7.0" + }, + "files": [ + "fs.js", + "graceful-fs.js", + "legacy-streams.js", + "polyfills.js", + "clone.js" + ] +} diff --git a/node_modules/graceful-fs/polyfills.js b/node_modules/graceful-fs/polyfills.js new file mode 100644 index 00000000..26804ef0 --- /dev/null +++ b/node_modules/graceful-fs/polyfills.js @@ -0,0 +1,348 @@ +var constants = require('constants') + +var origCwd = process.cwd +var cwd = null + +var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform + +process.cwd = function() { + if (!cwd) + cwd = origCwd.call(process) + return cwd +} +try { + process.cwd() +} catch (er) {} + +// This check is needed until node.js 12 is required +if (typeof process.chdir === 'function') { + var chdir = process.chdir + process.chdir = function (d) { + cwd = null + chdir.call(process, d) + } + if (Object.setPrototypeOf) Object.setPrototypeOf(process.chdir, chdir) +} + +module.exports = patch + +function patch (fs) { + // (re-)implement some things that are known busted or missing. + + // lchmod, broken prior to 0.6.2 + // back-port the fix here. + if (constants.hasOwnProperty('O_SYMLINK') && + process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) { + patchLchmod(fs) + } + + // lutimes implementation, or no-op + if (!fs.lutimes) { + patchLutimes(fs) + } + + // https://github.com/isaacs/node-graceful-fs/issues/4 + // Chown should not fail on einval or eperm if non-root. + // It should not fail on enosys ever, as this just indicates + // that a fs doesn't support the intended operation. + + fs.chown = chownFix(fs.chown) + fs.fchown = chownFix(fs.fchown) + fs.lchown = chownFix(fs.lchown) + + fs.chmod = chmodFix(fs.chmod) + fs.fchmod = chmodFix(fs.fchmod) + fs.lchmod = chmodFix(fs.lchmod) + + fs.chownSync = chownFixSync(fs.chownSync) + fs.fchownSync = chownFixSync(fs.fchownSync) + fs.lchownSync = chownFixSync(fs.lchownSync) + + fs.chmodSync = chmodFixSync(fs.chmodSync) + fs.fchmodSync = chmodFixSync(fs.fchmodSync) + fs.lchmodSync = chmodFixSync(fs.lchmodSync) + + fs.stat = statFix(fs.stat) + fs.fstat = statFix(fs.fstat) + fs.lstat = statFix(fs.lstat) + + fs.statSync = statFixSync(fs.statSync) + fs.fstatSync = statFixSync(fs.fstatSync) + fs.lstatSync = statFixSync(fs.lstatSync) + + // if lchmod/lchown do not exist, then make them no-ops + if (!fs.lchmod) { + fs.lchmod = function (path, mode, cb) { + if (cb) process.nextTick(cb) + } + fs.lchmodSync = function () {} + } + if (!fs.lchown) { + fs.lchown = function (path, uid, gid, cb) { + if (cb) process.nextTick(cb) + } + fs.lchownSync = function () {} + } + + // on Windows, A/V software can lock the directory, causing this + // to fail with an EACCES or EPERM if the directory contains newly + // created files. Try again on failure, for up to 60 seconds. + + // Set the timeout this long because some Windows Anti-Virus, such as Parity + // bit9, may lock files for up to a minute, causing npm package install + // failures. Also, take care to yield the scheduler. Windows scheduling gives + // CPU to a busy looping process, which can cause the program causing the lock + // contention to be starved of CPU by node, so the contention doesn't resolve. + if (platform === "win32") { + fs.rename = (function (fs$rename) { return function (from, to, cb) { + var start = Date.now() + var backoff = 0; + fs$rename(from, to, function CB (er) { + if (er + && (er.code === "EACCES" || er.code === "EPERM") + && Date.now() - start < 60000) { + setTimeout(function() { + fs.stat(to, function (stater, st) { + if (stater && stater.code === "ENOENT") + fs$rename(from, to, CB); + else + cb(er) + }) + }, backoff) + if (backoff < 100) + backoff += 10; + return; + } + if (cb) cb(er) + }) + }})(fs.rename) + } + + // if read() returns EAGAIN, then just try it again. + fs.read = (function (fs$read) { + function read (fd, buffer, offset, length, position, callback_) { + var callback + if (callback_ && typeof callback_ === 'function') { + var eagCounter = 0 + callback = function (er, _, __) { + if (er && er.code === 'EAGAIN' && eagCounter < 10) { + eagCounter ++ + return fs$read.call(fs, fd, buffer, offset, length, position, callback) + } + callback_.apply(this, arguments) + } + } + return fs$read.call(fs, fd, buffer, offset, length, position, callback) + } + + // This ensures `util.promisify` works as it does for native `fs.read`. + if (Object.setPrototypeOf) Object.setPrototypeOf(read, fs$read) + return read + })(fs.read) + + fs.readSync = (function (fs$readSync) { return function (fd, buffer, offset, length, position) { + var eagCounter = 0 + while (true) { + try { + return fs$readSync.call(fs, fd, buffer, offset, length, position) + } catch (er) { + if (er.code === 'EAGAIN' && eagCounter < 10) { + eagCounter ++ + continue + } + throw er + } + } + }})(fs.readSync) + + function patchLchmod (fs) { + fs.lchmod = function (path, mode, callback) { + fs.open( path + , constants.O_WRONLY | constants.O_SYMLINK + , mode + , function (err, fd) { + if (err) { + if (callback) callback(err) + return + } + // prefer to return the chmod error, if one occurs, + // but still try to close, and report closing errors if they occur. + fs.fchmod(fd, mode, function (err) { + fs.close(fd, function(err2) { + if (callback) callback(err || err2) + }) + }) + }) + } + + fs.lchmodSync = function (path, mode) { + var fd = fs.openSync(path, constants.O_WRONLY | constants.O_SYMLINK, mode) + + // prefer to return the chmod error, if one occurs, + // but still try to close, and report closing errors if they occur. + var threw = true + var ret + try { + ret = fs.fchmodSync(fd, mode) + threw = false + } finally { + if (threw) { + try { + fs.closeSync(fd) + } catch (er) {} + } else { + fs.closeSync(fd) + } + } + return ret + } + } + + function patchLutimes (fs) { + if (constants.hasOwnProperty("O_SYMLINK")) { + fs.lutimes = function (path, at, mt, cb) { + fs.open(path, constants.O_SYMLINK, function (er, fd) { + if (er) { + if (cb) cb(er) + return + } + fs.futimes(fd, at, mt, function (er) { + fs.close(fd, function (er2) { + if (cb) cb(er || er2) + }) + }) + }) + } + + fs.lutimesSync = function (path, at, mt) { + var fd = fs.openSync(path, constants.O_SYMLINK) + var ret + var threw = true + try { + ret = fs.futimesSync(fd, at, mt) + threw = false + } finally { + if (threw) { + try { + fs.closeSync(fd) + } catch (er) {} + } else { + fs.closeSync(fd) + } + } + return ret + } + + } else { + fs.lutimes = function (_a, _b, _c, cb) { if (cb) process.nextTick(cb) } + fs.lutimesSync = function () {} + } + } + + function chmodFix (orig) { + if (!orig) return orig + return function (target, mode, cb) { + return orig.call(fs, target, mode, function (er) { + if (chownErOk(er)) er = null + if (cb) cb.apply(this, arguments) + }) + } + } + + function chmodFixSync (orig) { + if (!orig) return orig + return function (target, mode) { + try { + return orig.call(fs, target, mode) + } catch (er) { + if (!chownErOk(er)) throw er + } + } + } + + + function chownFix (orig) { + if (!orig) return orig + return function (target, uid, gid, cb) { + return orig.call(fs, target, uid, gid, function (er) { + if (chownErOk(er)) er = null + if (cb) cb.apply(this, arguments) + }) + } + } + + function chownFixSync (orig) { + if (!orig) return orig + return function (target, uid, gid) { + try { + return orig.call(fs, target, uid, gid) + } catch (er) { + if (!chownErOk(er)) throw er + } + } + } + + function statFix (orig) { + if (!orig) return orig + // Older versions of Node erroneously returned signed integers for + // uid + gid. + return function (target, options, cb) { + if (typeof options === 'function') { + cb = options + options = null + } + function callback (er, stats) { + if (stats) { + if (stats.uid < 0) stats.uid += 0x100000000 + if (stats.gid < 0) stats.gid += 0x100000000 + } + if (cb) cb.apply(this, arguments) + } + return options ? orig.call(fs, target, options, callback) + : orig.call(fs, target, callback) + } + } + + function statFixSync (orig) { + if (!orig) return orig + // Older versions of Node erroneously returned signed integers for + // uid + gid. + return function (target, options) { + var stats = options ? orig.call(fs, target, options) + : orig.call(fs, target) + if (stats) { + if (stats.uid < 0) stats.uid += 0x100000000 + if (stats.gid < 0) stats.gid += 0x100000000 + } + return stats; + } + } + + // ENOSYS means that the fs doesn't support the op. Just ignore + // that, because it doesn't matter. + // + // if there's no getuid, or if getuid() is something other + // than 0, and the error is EINVAL or EPERM, then just ignore + // it. + // + // This specific case is a silent failure in cp, install, tar, + // and most other unix tools that manage permissions. + // + // When running as root, or if other types of errors are + // encountered, then it's strict. + function chownErOk (er) { + if (!er) + return true + + if (er.code === "ENOSYS") + return true + + var nonroot = !process.getuid || process.getuid() !== 0 + if (nonroot) { + if (er.code === "EINVAL" || er.code === "EPERM") + return true + } + + return false + } +} diff --git a/node_modules/ignore/LICENSE-MIT b/node_modules/ignore/LICENSE-MIT new file mode 100644 index 00000000..825533e3 --- /dev/null +++ b/node_modules/ignore/LICENSE-MIT @@ -0,0 +1,21 @@ +Copyright (c) 2013 Kael Zhang , contributors +http://kael.me/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/ignore/README.md b/node_modules/ignore/README.md new file mode 100644 index 00000000..584508ce --- /dev/null +++ b/node_modules/ignore/README.md @@ -0,0 +1,412 @@ + + + + + + + + + + + + + +
LinuxOS XWindowsCoverageDownloads
+ + Build Status + + + Windows Build Status + + + Coverage Status + + + npm module downloads per month +
+ +# ignore + +`ignore` is a manager, filter and parser which implemented in pure JavaScript according to the [.gitignore spec 2.22.1](http://git-scm.com/docs/gitignore). + +`ignore` is used by eslint, gitbook and [many others](https://www.npmjs.com/browse/depended/ignore). + +Pay **ATTENTION** that [`minimatch`](https://www.npmjs.org/package/minimatch) (which used by `fstream-ignore`) does not follow the gitignore spec. + +To filter filenames according to a .gitignore file, I recommend this npm package, `ignore`. + +To parse an `.npmignore` file, you should use `minimatch`, because an `.npmignore` file is parsed by npm using `minimatch` and it does not work in the .gitignore way. + +### Tested on + +`ignore` is fully tested, and has more than **five hundreds** of unit tests. + +- Linux + Node: `0.8` - `7.x` +- Windows + Node: `0.10` - `7.x`, node < `0.10` is not tested due to the lack of support of appveyor. + +Actually, `ignore` does not rely on any versions of node specially. + +Since `4.0.0`, ignore will no longer support `node < 6` by default, to use in node < 6, `require('ignore/legacy')`. For details, see [CHANGELOG](https://github.com/kaelzhang/node-ignore/blob/master/CHANGELOG.md). + +## Table Of Main Contents + +- [Usage](#usage) +- [`Pathname` Conventions](#pathname-conventions) +- See Also: + - [`glob-gitignore`](https://www.npmjs.com/package/glob-gitignore) matches files using patterns and filters them according to gitignore rules. +- [Upgrade Guide](#upgrade-guide) + +## Install + +```sh +npm i ignore +``` + +## Usage + +```js +import ignore from 'ignore' +const ig = ignore().add(['.abc/*', '!.abc/d/']) +``` + +### Filter the given paths + +```js +const paths = [ + '.abc/a.js', // filtered out + '.abc/d/e.js' // included +] + +ig.filter(paths) // ['.abc/d/e.js'] +ig.ignores('.abc/a.js') // true +``` + +### As the filter function + +```js +paths.filter(ig.createFilter()); // ['.abc/d/e.js'] +``` + +### Win32 paths will be handled + +```js +ig.filter(['.abc\\a.js', '.abc\\d\\e.js']) +// if the code above runs on windows, the result will be +// ['.abc\\d\\e.js'] +``` + +## Why another ignore? + +- `ignore` is a standalone module, and is much simpler so that it could easy work with other programs, unlike [isaacs](https://npmjs.org/~isaacs)'s [fstream-ignore](https://npmjs.org/package/fstream-ignore) which must work with the modules of the fstream family. + +- `ignore` only contains utility methods to filter paths according to the specified ignore rules, so + - `ignore` never try to find out ignore rules by traversing directories or fetching from git configurations. + - `ignore` don't cares about sub-modules of git projects. + +- Exactly according to [gitignore man page](http://git-scm.com/docs/gitignore), fixes some known matching issues of fstream-ignore, such as: + - '`/*.js`' should only match '`a.js`', but not '`abc/a.js`'. + - '`**/foo`' should match '`foo`' anywhere. + - Prevent re-including a file if a parent directory of that file is excluded. + - Handle trailing whitespaces: + - `'a '`(one space) should not match `'a '`(two spaces). + - `'a \ '` matches `'a '` + - All test cases are verified with the result of `git check-ignore`. + +# Methods + +## .add(pattern: string | Ignore): this +## .add(patterns: Array): this + +- **pattern** `String | Ignore` An ignore pattern string, or the `Ignore` instance +- **patterns** `Array` Array of ignore patterns. + +Adds a rule or several rules to the current manager. + +Returns `this` + +Notice that a line starting with `'#'`(hash) is treated as a comment. Put a backslash (`'\'`) in front of the first hash for patterns that begin with a hash, if you want to ignore a file with a hash at the beginning of the filename. + +```js +ignore().add('#abc').ignores('#abc') // false +ignore().add('\#abc').ignores('#abc') // true +``` + +`pattern` could either be a line of ignore pattern or a string of multiple ignore patterns, which means we could just `ignore().add()` the content of a ignore file: + +```js +ignore() +.add(fs.readFileSync(filenameOfGitignore).toString()) +.filter(filenames) +``` + +`pattern` could also be an `ignore` instance, so that we could easily inherit the rules of another `Ignore` instance. + +## .addIgnoreFile(path) + +REMOVED in `3.x` for now. + +To upgrade `ignore@2.x` up to `3.x`, use + +```js +import fs from 'fs' + +if (fs.existsSync(filename)) { + ignore().add(fs.readFileSync(filename).toString()) +} +``` + +instead. + +## .filter(paths: Array<Pathname>): Array<Pathname> + +```ts +type Pathname = string +``` + +Filters the given array of pathnames, and returns the filtered array. + +- **paths** `Array.` The array of `pathname`s to be filtered. + +### `Pathname` Conventions: + +#### 1. `Pathname` should be a `path.relative()`d pathname + +`Pathname` should be a string that have been `path.join()`ed, or the return value of `path.relative()` to the current directory, + +```js +// WRONG, an error will be thrown +ig.ignores('./abc') + +// WRONG, for it will never happen, and an error will be thrown +// If the gitignore rule locates at the root directory, +// `'/abc'` should be changed to `'abc'`. +// ``` +// path.relative('/', '/abc') -> 'abc' +// ``` +ig.ignores('/abc') + +// WRONG, that it is an absolute path on Windows, an error will be thrown +ig.ignores('C:\\abc') + +// Right +ig.ignores('abc') + +// Right +ig.ignores(path.join('./abc')) // path.join('./abc') -> 'abc' +``` + +In other words, each `Pathname` here should be a relative path to the directory of the gitignore rules. + +Suppose the dir structure is: + +``` +/path/to/your/repo + |-- a + | |-- a.js + | + |-- .b + | + |-- .c + |-- .DS_store +``` + +Then the `paths` might be like this: + +```js +[ + 'a/a.js' + '.b', + '.c/.DS_store' +] +``` + +#### 2. filenames and dirnames + +`node-ignore` does NO `fs.stat` during path matching, so for the example below: + +```js +// First, we add a ignore pattern to ignore a directory +ig.add('config/') + +// `ig` does NOT know if 'config', in the real world, +// is a normal file, directory or something. + +ig.ignores('config') +// `ig` treats `config` as a file, so it returns `false` + +ig.ignores('config/') +// returns `true` +``` + +Specially for people who develop some library based on `node-ignore`, it is important to understand that. + +Usually, you could use [`glob`](http://npmjs.org/package/glob) with `option.mark = true` to fetch the structure of the current directory: + +```js +import glob from 'glob' + +glob('**', { + // Adds a / character to directory matches. + mark: true +}, (err, files) => { + if (err) { + return console.error(err) + } + + let filtered = ignore().add(patterns).filter(files) + console.log(filtered) +}) +``` + +## .ignores(pathname: Pathname): boolean + +> new in 3.2.0 + +Returns `Boolean` whether `pathname` should be ignored. + +```js +ig.ignores('.abc/a.js') // true +``` + +## .createFilter() + +Creates a filter function which could filter an array of paths with `Array.prototype.filter`. + +Returns `function(path)` the filter function. + +## .test(pathname: Pathname) since 5.0.0 + +Returns `TestResult` + +```ts +interface TestResult { + ignored: boolean + // true if the `pathname` is finally unignored by some negative pattern + unignored: boolean +} +``` + +- `{ignored: true, unignored: false}`: the `pathname` is ignored +- `{ignored: false, unignored: true}`: the `pathname` is unignored +- `{ignored: false, unignored: false}`: the `pathname` is never matched by any ignore rules. + +## static `ignore.isPathValid(pathname): boolean` since 5.0.0 + +Check whether the `pathname` is an valid `path.relative()`d path according to the [convention](#1-pathname-should-be-a-pathrelatived-pathname). + +This method is **NOT** used to check if an ignore pattern is valid. + +```js +ignore.isPathValid('./foo') // false +``` + +## ignore(options) + +### `options.ignorecase` since 4.0.0 + +Similar as the `core.ignorecase` option of [git-config](https://git-scm.com/docs/git-config), `node-ignore` will be case insensitive if `options.ignorecase` is set to `true` (the default value), otherwise case sensitive. + +```js +const ig = ignore({ + ignorecase: false +}) + +ig.add('*.png') + +ig.ignores('*.PNG') // false +``` + +### `options.ignoreCase?: boolean` since 5.2.0 + +Which is alternative to `options.ignoreCase` + +### `options.allowRelativePaths?: boolean` since 5.2.0 + +This option brings backward compatibility with projects which based on `ignore@4.x`. If `options.allowRelativePaths` is `true`, `ignore` will not check whether the given path to be tested is [`path.relative()`d](#pathname-conventions). + +However, passing a relative path, such as `'./foo'` or `'../foo'`, to test if it is ignored or not is not a good practise, which might lead to unexpected behavior + +```js +ignore({ + allowRelativePaths: true +}).ignores('../foo/bar.js') // And it will not throw +``` + +**** + +# Upgrade Guide + +## Upgrade 4.x -> 5.x + +Since `5.0.0`, if an invalid `Pathname` passed into `ig.ignores()`, an error will be thrown, unless `options.allowRelative = true` is passed to the `Ignore` factory. + +While `ignore < 5.0.0` did not make sure what the return value was, as well as + +```ts +.ignores(pathname: Pathname): boolean + +.filter(pathnames: Array): Array + +.createFilter(): (pathname: Pathname) => boolean + +.test(pathname: Pathname): {ignored: boolean, unignored: boolean} +``` + +See the convention [here](#1-pathname-should-be-a-pathrelatived-pathname) for details. + +If there are invalid pathnames, the conversion and filtration should be done by users. + +```js +import {isPathValid} from 'ignore' // introduced in 5.0.0 + +const paths = [ + // invalid + ////////////////// + '', + false, + '../foo', + '.', + ////////////////// + + // valid + 'foo' +] +.filter(isValidPath) + +ig.filter(paths) +``` + +## Upgrade 3.x -> 4.x + +Since `4.0.0`, `ignore` will no longer support node < 6, to use `ignore` in node < 6: + +```js +var ignore = require('ignore/legacy') +``` + +## Upgrade 2.x -> 3.x + +- All `options` of 2.x are unnecessary and removed, so just remove them. +- `ignore()` instance is no longer an [`EventEmitter`](nodejs.org/api/events.html), and all events are unnecessary and removed. +- `.addIgnoreFile()` is removed, see the [.addIgnoreFile](#addignorefilepath) section for details. + +**** + +# Collaborators + +- [@whitecolor](https://github.com/whitecolor) *Alex* +- [@SamyPesse](https://github.com/SamyPesse) *Samy Pessé* +- [@azproduction](https://github.com/azproduction) *Mikhail Davydov* +- [@TrySound](https://github.com/TrySound) *Bogdan Chadkin* +- [@JanMattner](https://github.com/JanMattner) *Jan Mattner* +- [@ntwb](https://github.com/ntwb) *Stephen Edgar* +- [@kasperisager](https://github.com/kasperisager) *Kasper Isager* +- [@sandersn](https://github.com/sandersn) *Nathan Shively-Sanders* diff --git a/node_modules/ignore/index.d.ts b/node_modules/ignore/index.d.ts new file mode 100644 index 00000000..520eafa7 --- /dev/null +++ b/node_modules/ignore/index.d.ts @@ -0,0 +1,61 @@ +type Pathname = string + +interface TestResult { + ignored: boolean + unignored: boolean +} + +export interface Ignore { + /** + * Adds one or several rules to the current manager. + * @param {string[]} patterns + * @returns IgnoreBase + */ + add(patterns: string | Ignore | readonly (string | Ignore)[]): this + + /** + * Filters the given array of pathnames, and returns the filtered array. + * NOTICE that each path here should be a relative path to the root of your repository. + * @param paths the array of paths to be filtered. + * @returns The filtered array of paths + */ + filter(pathnames: readonly Pathname[]): Pathname[] + + /** + * Creates a filter function which could filter + * an array of paths with Array.prototype.filter. + */ + createFilter(): (pathname: Pathname) => boolean + + /** + * Returns Boolean whether pathname should be ignored. + * @param {string} pathname a path to check + * @returns boolean + */ + ignores(pathname: Pathname): boolean + + /** + * Returns whether pathname should be ignored or unignored + * @param {string} pathname a path to check + * @returns TestResult + */ + test(pathname: Pathname): TestResult +} + +interface Options { + ignorecase?: boolean + // For compatibility + ignoreCase?: boolean + allowRelativePaths?: boolean +} + +/** + * Creates new ignore manager. + */ +declare function ignore(options?: Options): Ignore + +declare namespace ignore { + export function isPathValid (pathname: string): boolean +} + +export default ignore diff --git a/node_modules/ignore/index.js b/node_modules/ignore/index.js new file mode 100644 index 00000000..d935eb15 --- /dev/null +++ b/node_modules/ignore/index.js @@ -0,0 +1,603 @@ +// A simple implementation of make-array +function makeArray (subject) { + return Array.isArray(subject) + ? subject + : [subject] +} + +const EMPTY = '' +const SPACE = ' ' +const ESCAPE = '\\' +const REGEX_TEST_BLANK_LINE = /^\s+$/ +const REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/ +const REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/ +const REGEX_SPLITALL_CRLF = /\r?\n/g +// /foo, +// ./foo, +// ../foo, +// . +// .. +const REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/ + +const SLASH = '/' +const KEY_IGNORE = typeof Symbol !== 'undefined' + ? Symbol.for('node-ignore') + /* istanbul ignore next */ + : 'node-ignore' + +const define = (object, key, value) => + Object.defineProperty(object, key, {value}) + +const REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g + +const RETURN_FALSE = () => false + +// Sanitize the range of a regular expression +// The cases are complicated, see test cases for details +const sanitizeRange = range => range.replace( + REGEX_REGEXP_RANGE, + (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) + ? match + // Invalid range (out of order) which is ok for gitignore rules but + // fatal for JavaScript regular expression, so eliminate it. + : EMPTY +) + +// See fixtures #59 +const cleanRangeBackSlash = slashes => { + const {length} = slashes + return slashes.slice(0, length - length % 2) +} + +// > If the pattern ends with a slash, +// > it is removed for the purpose of the following description, +// > but it would only find a match with a directory. +// > In other words, foo/ will match a directory foo and paths underneath it, +// > but will not match a regular file or a symbolic link foo +// > (this is consistent with the way how pathspec works in general in Git). +// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`' +// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call +// you could use option `mark: true` with `glob` + +// '`foo/`' should not continue with the '`..`' +const REPLACERS = [ + + // > Trailing spaces are ignored unless they are quoted with backslash ("\") + [ + // (a\ ) -> (a ) + // (a ) -> (a) + // (a \ ) -> (a ) + /\\?\s+$/, + match => match.indexOf('\\') === 0 + ? SPACE + : EMPTY + ], + + // replace (\ ) with ' ' + [ + /\\\s/g, + () => SPACE + ], + + // Escape metacharacters + // which is written down by users but means special for regular expressions. + + // > There are 12 characters with special meanings: + // > - the backslash \, + // > - the caret ^, + // > - the dollar sign $, + // > - the period or dot ., + // > - the vertical bar or pipe symbol |, + // > - the question mark ?, + // > - the asterisk or star *, + // > - the plus sign +, + // > - the opening parenthesis (, + // > - the closing parenthesis ), + // > - and the opening square bracket [, + // > - the opening curly brace {, + // > These special characters are often called "metacharacters". + [ + /[\\$.|*+(){^]/g, + match => `\\${match}` + ], + + [ + // > a question mark (?) matches a single character + /(?!\\)\?/g, + () => '[^/]' + ], + + // leading slash + [ + + // > A leading slash matches the beginning of the pathname. + // > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". + // A leading slash matches the beginning of the pathname + /^\//, + () => '^' + ], + + // replace special metacharacter slash after the leading slash + [ + /\//g, + () => '\\/' + ], + + [ + // > A leading "**" followed by a slash means match in all directories. + // > For example, "**/foo" matches file or directory "foo" anywhere, + // > the same as pattern "foo". + // > "**/foo/bar" matches file or directory "bar" anywhere that is directly + // > under directory "foo". + // Notice that the '*'s have been replaced as '\\*' + /^\^*\\\*\\\*\\\//, + + // '**/foo' <-> 'foo' + () => '^(?:.*\\/)?' + ], + + // starting + [ + // there will be no leading '/' + // (which has been replaced by section "leading slash") + // If starts with '**', adding a '^' to the regular expression also works + /^(?=[^^])/, + function startingReplacer () { + // If has a slash `/` at the beginning or middle + return !/\/(?!$)/.test(this) + // > Prior to 2.22.1 + // > If the pattern does not contain a slash /, + // > Git treats it as a shell glob pattern + // Actually, if there is only a trailing slash, + // git also treats it as a shell glob pattern + + // After 2.22.1 (compatible but clearer) + // > If there is a separator at the beginning or middle (or both) + // > of the pattern, then the pattern is relative to the directory + // > level of the particular .gitignore file itself. + // > Otherwise the pattern may also match at any level below + // > the .gitignore level. + ? '(?:^|\\/)' + + // > Otherwise, Git treats the pattern as a shell glob suitable for + // > consumption by fnmatch(3) + : '^' + } + ], + + // two globstars + [ + // Use lookahead assertions so that we could match more than one `'/**'` + /\\\/\\\*\\\*(?=\\\/|$)/g, + + // Zero, one or several directories + // should not use '*', or it will be replaced by the next replacer + + // Check if it is not the last `'/**'` + (_, index, str) => index + 6 < str.length + + // case: /**/ + // > A slash followed by two consecutive asterisks then a slash matches + // > zero or more directories. + // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on. + // '/**/' + ? '(?:\\/[^\\/]+)*' + + // case: /** + // > A trailing `"/**"` matches everything inside. + + // #21: everything inside but it should not include the current folder + : '\\/.+' + ], + + // intermediate wildcards + [ + // Never replace escaped '*' + // ignore rule '\*' will match the path '*' + + // 'abc.*/' -> go + // 'abc.*' -> skip this rule + /(^|[^\\]+)\\\*(?=.+)/g, + + // '*.js' matches '.js' + // '*.js' doesn't match 'abc' + (_, p1) => `${p1}[^\\/]*` + ], + + [ + // unescape, revert step 3 except for back slash + // For example, if a user escape a '\\*', + // after step 3, the result will be '\\\\\\*' + /\\\\\\(?=[$.|*+(){^])/g, + () => ESCAPE + ], + + [ + // '\\\\' -> '\\' + /\\\\/g, + () => ESCAPE + ], + + [ + // > The range notation, e.g. [a-zA-Z], + // > can be used to match one of the characters in a range. + + // `\` is escaped by step 3 + /(\\)?\[([^\]/]*?)(\\*)($|\])/g, + (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE + // '\\[bar]' -> '\\\\[bar\\]' + ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` + : close === ']' + ? endEscape.length % 2 === 0 + // A normal case, and it is a range notation + // '[bar]' + // '[bar\\\\]' + ? `[${sanitizeRange(range)}${endEscape}]` + // Invalid range notaton + // '[bar\\]' -> '[bar\\\\]' + : '[]' + : '[]' + ], + + // ending + [ + // 'js' will not match 'js.' + // 'ab' will not match 'abc' + /(?:[^*])$/, + + // WTF! + // https://git-scm.com/docs/gitignore + // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1) + // which re-fixes #24, #38 + + // > If there is a separator at the end of the pattern then the pattern + // > will only match directories, otherwise the pattern can match both + // > files and directories. + + // 'js*' will not match 'a.js' + // 'js/' will not match 'a.js' + // 'js' will match 'a.js' and 'a.js/' + match => /\/$/.test(match) + // foo/ will not match 'foo' + ? `${match}$` + // foo matches 'foo' and 'foo/' + : `${match}(?=$|\\/$)` + ], + + // trailing wildcard + [ + /(\^|\\\/)?\\\*$/, + (_, p1) => { + const prefix = p1 + // '\^': + // '/*' does not match EMPTY + // '/*' does not match everything + + // '\\\/': + // 'abc/*' does not match 'abc/' + ? `${p1}[^/]+` + + // 'a*' matches 'a' + // 'a*' matches 'aa' + : '[^/]*' + + return `${prefix}(?=$|\\/$)` + } + ], +] + +// A simple cache, because an ignore rule only has only one certain meaning +const regexCache = Object.create(null) + +// @param {pattern} +const makeRegex = (pattern, ignoreCase) => { + let source = regexCache[pattern] + + if (!source) { + source = REPLACERS.reduce( + (prev, current) => prev.replace(current[0], current[1].bind(pattern)), + pattern + ) + regexCache[pattern] = source + } + + return ignoreCase + ? new RegExp(source, 'i') + : new RegExp(source) +} + +const isString = subject => typeof subject === 'string' + +// > A blank line matches no files, so it can serve as a separator for readability. +const checkPattern = pattern => pattern + && isString(pattern) + && !REGEX_TEST_BLANK_LINE.test(pattern) + + // > A line starting with # serves as a comment. + && pattern.indexOf('#') !== 0 + +const splitPattern = pattern => pattern.split(REGEX_SPLITALL_CRLF) + +class IgnoreRule { + constructor ( + origin, + pattern, + negative, + regex + ) { + this.origin = origin + this.pattern = pattern + this.negative = negative + this.regex = regex + } +} + +const createRule = (pattern, ignoreCase) => { + const origin = pattern + let negative = false + + // > An optional prefix "!" which negates the pattern; + if (pattern.indexOf('!') === 0) { + negative = true + pattern = pattern.substr(1) + } + + pattern = pattern + // > Put a backslash ("\") in front of the first "!" for patterns that + // > begin with a literal "!", for example, `"\!important!.txt"`. + .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!') + // > Put a backslash ("\") in front of the first hash for patterns that + // > begin with a hash. + .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#') + + const regex = makeRegex(pattern, ignoreCase) + + return new IgnoreRule( + origin, + pattern, + negative, + regex + ) +} + +const throwError = (message, Ctor) => { + throw new Ctor(message) +} + +const checkPath = (path, originalPath, doThrow) => { + if (!isString(path)) { + return doThrow( + `path must be a string, but got \`${originalPath}\``, + TypeError + ) + } + + // We don't know if we should ignore EMPTY, so throw + if (!path) { + return doThrow(`path must not be empty`, TypeError) + } + + // Check if it is a relative path + if (checkPath.isNotRelative(path)) { + const r = '`path.relative()`d' + return doThrow( + `path should be a ${r} string, but got "${originalPath}"`, + RangeError + ) + } + + return true +} + +const isNotRelative = path => REGEX_TEST_INVALID_PATH.test(path) + +checkPath.isNotRelative = isNotRelative +checkPath.convert = p => p + +class Ignore { + constructor ({ + ignorecase = true, + ignoreCase = ignorecase, + allowRelativePaths = false + } = {}) { + define(this, KEY_IGNORE, true) + + this._rules = [] + this._ignoreCase = ignoreCase + this._allowRelativePaths = allowRelativePaths + this._initCache() + } + + _initCache () { + this._ignoreCache = Object.create(null) + this._testCache = Object.create(null) + } + + _addPattern (pattern) { + // #32 + if (pattern && pattern[KEY_IGNORE]) { + this._rules = this._rules.concat(pattern._rules) + this._added = true + return + } + + if (checkPattern(pattern)) { + const rule = createRule(pattern, this._ignoreCase) + this._added = true + this._rules.push(rule) + } + } + + // @param {Array | string | Ignore} pattern + add (pattern) { + this._added = false + + makeArray( + isString(pattern) + ? splitPattern(pattern) + : pattern + ).forEach(this._addPattern, this) + + // Some rules have just added to the ignore, + // making the behavior changed. + if (this._added) { + this._initCache() + } + + return this + } + + // legacy + addPattern (pattern) { + return this.add(pattern) + } + + // | ignored : unignored + // negative | 0:0 | 0:1 | 1:0 | 1:1 + // -------- | ------- | ------- | ------- | -------- + // 0 | TEST | TEST | SKIP | X + // 1 | TESTIF | SKIP | TEST | X + + // - SKIP: always skip + // - TEST: always test + // - TESTIF: only test if checkUnignored + // - X: that never happen + + // @param {boolean} whether should check if the path is unignored, + // setting `checkUnignored` to `false` could reduce additional + // path matching. + + // @returns {TestResult} true if a file is ignored + _testOne (path, checkUnignored) { + let ignored = false + let unignored = false + + this._rules.forEach(rule => { + const {negative} = rule + if ( + unignored === negative && ignored !== unignored + || negative && !ignored && !unignored && !checkUnignored + ) { + return + } + + const matched = rule.regex.test(path) + + if (matched) { + ignored = !negative + unignored = negative + } + }) + + return { + ignored, + unignored + } + } + + // @returns {TestResult} + _test (originalPath, cache, checkUnignored, slices) { + const path = originalPath + // Supports nullable path + && checkPath.convert(originalPath) + + checkPath( + path, + originalPath, + this._allowRelativePaths + ? RETURN_FALSE + : throwError + ) + + return this._t(path, cache, checkUnignored, slices) + } + + _t (path, cache, checkUnignored, slices) { + if (path in cache) { + return cache[path] + } + + if (!slices) { + // path/to/a.js + // ['path', 'to', 'a.js'] + slices = path.split(SLASH) + } + + slices.pop() + + // If the path has no parent directory, just test it + if (!slices.length) { + return cache[path] = this._testOne(path, checkUnignored) + } + + const parent = this._t( + slices.join(SLASH) + SLASH, + cache, + checkUnignored, + slices + ) + + // If the path contains a parent directory, check the parent first + return cache[path] = parent.ignored + // > It is not possible to re-include a file if a parent directory of + // > that file is excluded. + ? parent + : this._testOne(path, checkUnignored) + } + + ignores (path) { + return this._test(path, this._ignoreCache, false).ignored + } + + createFilter () { + return path => !this.ignores(path) + } + + filter (paths) { + return makeArray(paths).filter(this.createFilter()) + } + + // @returns {TestResult} + test (path) { + return this._test(path, this._testCache, true) + } +} + +const factory = options => new Ignore(options) + +const isPathValid = path => + checkPath(path && checkPath.convert(path), path, RETURN_FALSE) + +factory.isPathValid = isPathValid + +// Fixes typescript +factory.default = factory + +module.exports = factory + +// Windows +// -------------------------------------------------------------- +/* istanbul ignore if */ +if ( + // Detect `process` so that it can run in browsers. + typeof process !== 'undefined' + && ( + process.env && process.env.IGNORE_TEST_WIN32 + || process.platform === 'win32' + ) +) { + /* eslint no-control-regex: "off" */ + const makePosix = str => /^\\\\\?\\/.test(str) + || /["<>|\u0000-\u001F]+/u.test(str) + ? str + : str.replace(/\\/g, '/') + + checkPath.convert = makePosix + + // 'C:\\foo' <- 'C:\\foo' has been converted to 'C:/' + // 'd:\\foo' + const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i + checkPath.isNotRelative = path => + REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) + || isNotRelative(path) +} diff --git a/node_modules/ignore/legacy.js b/node_modules/ignore/legacy.js new file mode 100644 index 00000000..b579d6f4 --- /dev/null +++ b/node_modules/ignore/legacy.js @@ -0,0 +1,498 @@ +"use strict"; + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +// A simple implementation of make-array +function makeArray(subject) { + return Array.isArray(subject) ? subject : [subject]; +} + +var EMPTY = ''; +var SPACE = ' '; +var ESCAPE = '\\'; +var REGEX_TEST_BLANK_LINE = /^\s+$/; +var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/; +var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/; +var REGEX_SPLITALL_CRLF = /\r?\n/g; // /foo, +// ./foo, +// ../foo, +// . +// .. + +var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; +var SLASH = '/'; +var KEY_IGNORE = typeof Symbol !== 'undefined' ? Symbol["for"]('node-ignore') +/* istanbul ignore next */ +: 'node-ignore'; + +var define = function define(object, key, value) { + return Object.defineProperty(object, key, { + value: value + }); +}; + +var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; + +var RETURN_FALSE = function RETURN_FALSE() { + return false; +}; // Sanitize the range of a regular expression +// The cases are complicated, see test cases for details + + +var sanitizeRange = function sanitizeRange(range) { + return range.replace(REGEX_REGEXP_RANGE, function (match, from, to) { + return from.charCodeAt(0) <= to.charCodeAt(0) ? match // Invalid range (out of order) which is ok for gitignore rules but + // fatal for JavaScript regular expression, so eliminate it. + : EMPTY; + }); +}; // See fixtures #59 + + +var cleanRangeBackSlash = function cleanRangeBackSlash(slashes) { + var length = slashes.length; + return slashes.slice(0, length - length % 2); +}; // > If the pattern ends with a slash, +// > it is removed for the purpose of the following description, +// > but it would only find a match with a directory. +// > In other words, foo/ will match a directory foo and paths underneath it, +// > but will not match a regular file or a symbolic link foo +// > (this is consistent with the way how pathspec works in general in Git). +// '`foo/`' will not match regular file '`foo`' or symbolic link '`foo`' +// -> ignore-rules will not deal with it, because it costs extra `fs.stat` call +// you could use option `mark: true` with `glob` +// '`foo/`' should not continue with the '`..`' + + +var REPLACERS = [// > Trailing spaces are ignored unless they are quoted with backslash ("\") +[// (a\ ) -> (a ) +// (a ) -> (a) +// (a \ ) -> (a ) +/\\?\s+$/, function (match) { + return match.indexOf('\\') === 0 ? SPACE : EMPTY; +}], // replace (\ ) with ' ' +[/\\\s/g, function () { + return SPACE; +}], // Escape metacharacters +// which is written down by users but means special for regular expressions. +// > There are 12 characters with special meanings: +// > - the backslash \, +// > - the caret ^, +// > - the dollar sign $, +// > - the period or dot ., +// > - the vertical bar or pipe symbol |, +// > - the question mark ?, +// > - the asterisk or star *, +// > - the plus sign +, +// > - the opening parenthesis (, +// > - the closing parenthesis ), +// > - and the opening square bracket [, +// > - the opening curly brace {, +// > These special characters are often called "metacharacters". +[/[\\$.|*+(){^]/g, function (match) { + return "\\".concat(match); +}], [// > a question mark (?) matches a single character +/(?!\\)\?/g, function () { + return '[^/]'; +}], // leading slash +[// > A leading slash matches the beginning of the pathname. +// > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". +// A leading slash matches the beginning of the pathname +/^\//, function () { + return '^'; +}], // replace special metacharacter slash after the leading slash +[/\//g, function () { + return '\\/'; +}], [// > A leading "**" followed by a slash means match in all directories. +// > For example, "**/foo" matches file or directory "foo" anywhere, +// > the same as pattern "foo". +// > "**/foo/bar" matches file or directory "bar" anywhere that is directly +// > under directory "foo". +// Notice that the '*'s have been replaced as '\\*' +/^\^*\\\*\\\*\\\//, // '**/foo' <-> 'foo' +function () { + return '^(?:.*\\/)?'; +}], // starting +[// there will be no leading '/' +// (which has been replaced by section "leading slash") +// If starts with '**', adding a '^' to the regular expression also works +/^(?=[^^])/, function startingReplacer() { + // If has a slash `/` at the beginning or middle + return !/\/(?!$)/.test(this) // > Prior to 2.22.1 + // > If the pattern does not contain a slash /, + // > Git treats it as a shell glob pattern + // Actually, if there is only a trailing slash, + // git also treats it as a shell glob pattern + // After 2.22.1 (compatible but clearer) + // > If there is a separator at the beginning or middle (or both) + // > of the pattern, then the pattern is relative to the directory + // > level of the particular .gitignore file itself. + // > Otherwise the pattern may also match at any level below + // > the .gitignore level. + ? '(?:^|\\/)' // > Otherwise, Git treats the pattern as a shell glob suitable for + // > consumption by fnmatch(3) + : '^'; +}], // two globstars +[// Use lookahead assertions so that we could match more than one `'/**'` +/\\\/\\\*\\\*(?=\\\/|$)/g, // Zero, one or several directories +// should not use '*', or it will be replaced by the next replacer +// Check if it is not the last `'/**'` +function (_, index, str) { + return index + 6 < str.length // case: /**/ + // > A slash followed by two consecutive asterisks then a slash matches + // > zero or more directories. + // > For example, "a/**/b" matches "a/b", "a/x/b", "a/x/y/b" and so on. + // '/**/' + ? '(?:\\/[^\\/]+)*' // case: /** + // > A trailing `"/**"` matches everything inside. + // #21: everything inside but it should not include the current folder + : '\\/.+'; +}], // intermediate wildcards +[// Never replace escaped '*' +// ignore rule '\*' will match the path '*' +// 'abc.*/' -> go +// 'abc.*' -> skip this rule +/(^|[^\\]+)\\\*(?=.+)/g, // '*.js' matches '.js' +// '*.js' doesn't match 'abc' +function (_, p1) { + return "".concat(p1, "[^\\/]*"); +}], [// unescape, revert step 3 except for back slash +// For example, if a user escape a '\\*', +// after step 3, the result will be '\\\\\\*' +/\\\\\\(?=[$.|*+(){^])/g, function () { + return ESCAPE; +}], [// '\\\\' -> '\\' +/\\\\/g, function () { + return ESCAPE; +}], [// > The range notation, e.g. [a-zA-Z], +// > can be used to match one of the characters in a range. +// `\` is escaped by step 3 +/(\\)?\[([^\]/]*?)(\\*)($|\])/g, function (match, leadEscape, range, endEscape, close) { + return leadEscape === ESCAPE // '\\[bar]' -> '\\\\[bar\\]' + ? "\\[".concat(range).concat(cleanRangeBackSlash(endEscape)).concat(close) : close === ']' ? endEscape.length % 2 === 0 // A normal case, and it is a range notation + // '[bar]' + // '[bar\\\\]' + ? "[".concat(sanitizeRange(range)).concat(endEscape, "]") // Invalid range notaton + // '[bar\\]' -> '[bar\\\\]' + : '[]' : '[]'; +}], // ending +[// 'js' will not match 'js.' +// 'ab' will not match 'abc' +/(?:[^*])$/, // WTF! +// https://git-scm.com/docs/gitignore +// changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1) +// which re-fixes #24, #38 +// > If there is a separator at the end of the pattern then the pattern +// > will only match directories, otherwise the pattern can match both +// > files and directories. +// 'js*' will not match 'a.js' +// 'js/' will not match 'a.js' +// 'js' will match 'a.js' and 'a.js/' +function (match) { + return /\/$/.test(match) // foo/ will not match 'foo' + ? "".concat(match, "$") // foo matches 'foo' and 'foo/' + : "".concat(match, "(?=$|\\/$)"); +}], // trailing wildcard +[/(\^|\\\/)?\\\*$/, function (_, p1) { + var prefix = p1 // '\^': + // '/*' does not match EMPTY + // '/*' does not match everything + // '\\\/': + // 'abc/*' does not match 'abc/' + ? "".concat(p1, "[^/]+") // 'a*' matches 'a' + // 'a*' matches 'aa' + : '[^/]*'; + return "".concat(prefix, "(?=$|\\/$)"); +}]]; // A simple cache, because an ignore rule only has only one certain meaning + +var regexCache = Object.create(null); // @param {pattern} + +var makeRegex = function makeRegex(pattern, ignoreCase) { + var source = regexCache[pattern]; + + if (!source) { + source = REPLACERS.reduce(function (prev, current) { + return prev.replace(current[0], current[1].bind(pattern)); + }, pattern); + regexCache[pattern] = source; + } + + return ignoreCase ? new RegExp(source, 'i') : new RegExp(source); +}; + +var isString = function isString(subject) { + return typeof subject === 'string'; +}; // > A blank line matches no files, so it can serve as a separator for readability. + + +var checkPattern = function checkPattern(pattern) { + return pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) // > A line starting with # serves as a comment. + && pattern.indexOf('#') !== 0; +}; + +var splitPattern = function splitPattern(pattern) { + return pattern.split(REGEX_SPLITALL_CRLF); +}; + +var IgnoreRule = function IgnoreRule(origin, pattern, negative, regex) { + _classCallCheck(this, IgnoreRule); + + this.origin = origin; + this.pattern = pattern; + this.negative = negative; + this.regex = regex; +}; + +var createRule = function createRule(pattern, ignoreCase) { + var origin = pattern; + var negative = false; // > An optional prefix "!" which negates the pattern; + + if (pattern.indexOf('!') === 0) { + negative = true; + pattern = pattern.substr(1); + } + + pattern = pattern // > Put a backslash ("\") in front of the first "!" for patterns that + // > begin with a literal "!", for example, `"\!important!.txt"`. + .replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, '!') // > Put a backslash ("\") in front of the first hash for patterns that + // > begin with a hash. + .replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, '#'); + var regex = makeRegex(pattern, ignoreCase); + return new IgnoreRule(origin, pattern, negative, regex); +}; + +var throwError = function throwError(message, Ctor) { + throw new Ctor(message); +}; + +var checkPath = function checkPath(path, originalPath, doThrow) { + if (!isString(path)) { + return doThrow("path must be a string, but got `".concat(originalPath, "`"), TypeError); + } // We don't know if we should ignore EMPTY, so throw + + + if (!path) { + return doThrow("path must not be empty", TypeError); + } // Check if it is a relative path + + + if (checkPath.isNotRelative(path)) { + var r = '`path.relative()`d'; + return doThrow("path should be a ".concat(r, " string, but got \"").concat(originalPath, "\""), RangeError); + } + + return true; +}; + +var isNotRelative = function isNotRelative(path) { + return REGEX_TEST_INVALID_PATH.test(path); +}; + +checkPath.isNotRelative = isNotRelative; + +checkPath.convert = function (p) { + return p; +}; + +var Ignore = /*#__PURE__*/function () { + function Ignore() { + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$ignorecase = _ref.ignorecase, + ignorecase = _ref$ignorecase === void 0 ? true : _ref$ignorecase, + _ref$ignoreCase = _ref.ignoreCase, + ignoreCase = _ref$ignoreCase === void 0 ? ignorecase : _ref$ignoreCase, + _ref$allowRelativePat = _ref.allowRelativePaths, + allowRelativePaths = _ref$allowRelativePat === void 0 ? false : _ref$allowRelativePat; + + _classCallCheck(this, Ignore); + + define(this, KEY_IGNORE, true); + this._rules = []; + this._ignoreCase = ignoreCase; + this._allowRelativePaths = allowRelativePaths; + + this._initCache(); + } + + _createClass(Ignore, [{ + key: "_initCache", + value: function _initCache() { + this._ignoreCache = Object.create(null); + this._testCache = Object.create(null); + } + }, { + key: "_addPattern", + value: function _addPattern(pattern) { + // #32 + if (pattern && pattern[KEY_IGNORE]) { + this._rules = this._rules.concat(pattern._rules); + this._added = true; + return; + } + + if (checkPattern(pattern)) { + var rule = createRule(pattern, this._ignoreCase); + this._added = true; + + this._rules.push(rule); + } + } // @param {Array | string | Ignore} pattern + + }, { + key: "add", + value: function add(pattern) { + this._added = false; + makeArray(isString(pattern) ? splitPattern(pattern) : pattern).forEach(this._addPattern, this); // Some rules have just added to the ignore, + // making the behavior changed. + + if (this._added) { + this._initCache(); + } + + return this; + } // legacy + + }, { + key: "addPattern", + value: function addPattern(pattern) { + return this.add(pattern); + } // | ignored : unignored + // negative | 0:0 | 0:1 | 1:0 | 1:1 + // -------- | ------- | ------- | ------- | -------- + // 0 | TEST | TEST | SKIP | X + // 1 | TESTIF | SKIP | TEST | X + // - SKIP: always skip + // - TEST: always test + // - TESTIF: only test if checkUnignored + // - X: that never happen + // @param {boolean} whether should check if the path is unignored, + // setting `checkUnignored` to `false` could reduce additional + // path matching. + // @returns {TestResult} true if a file is ignored + + }, { + key: "_testOne", + value: function _testOne(path, checkUnignored) { + var ignored = false; + var unignored = false; + + this._rules.forEach(function (rule) { + var negative = rule.negative; + + if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) { + return; + } + + var matched = rule.regex.test(path); + + if (matched) { + ignored = !negative; + unignored = negative; + } + }); + + return { + ignored: ignored, + unignored: unignored + }; + } // @returns {TestResult} + + }, { + key: "_test", + value: function _test(originalPath, cache, checkUnignored, slices) { + var path = originalPath // Supports nullable path + && checkPath.convert(originalPath); + checkPath(path, originalPath, this._allowRelativePaths ? RETURN_FALSE : throwError); + return this._t(path, cache, checkUnignored, slices); + } + }, { + key: "_t", + value: function _t(path, cache, checkUnignored, slices) { + if (path in cache) { + return cache[path]; + } + + if (!slices) { + // path/to/a.js + // ['path', 'to', 'a.js'] + slices = path.split(SLASH); + } + + slices.pop(); // If the path has no parent directory, just test it + + if (!slices.length) { + return cache[path] = this._testOne(path, checkUnignored); + } + + var parent = this._t(slices.join(SLASH) + SLASH, cache, checkUnignored, slices); // If the path contains a parent directory, check the parent first + + + return cache[path] = parent.ignored // > It is not possible to re-include a file if a parent directory of + // > that file is excluded. + ? parent : this._testOne(path, checkUnignored); + } + }, { + key: "ignores", + value: function ignores(path) { + return this._test(path, this._ignoreCache, false).ignored; + } + }, { + key: "createFilter", + value: function createFilter() { + var _this = this; + + return function (path) { + return !_this.ignores(path); + }; + } + }, { + key: "filter", + value: function filter(paths) { + return makeArray(paths).filter(this.createFilter()); + } // @returns {TestResult} + + }, { + key: "test", + value: function test(path) { + return this._test(path, this._testCache, true); + } + }]); + + return Ignore; +}(); + +var factory = function factory(options) { + return new Ignore(options); +}; + +var isPathValid = function isPathValid(path) { + return checkPath(path && checkPath.convert(path), path, RETURN_FALSE); +}; + +factory.isPathValid = isPathValid; // Fixes typescript + +factory["default"] = factory; +module.exports = factory; // Windows +// -------------------------------------------------------------- + +/* istanbul ignore if */ + +if ( // Detect `process` so that it can run in browsers. +typeof process !== 'undefined' && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === 'win32')) { + /* eslint no-control-regex: "off" */ + var makePosix = function makePosix(str) { + return /^\\\\\?\\/.test(str) || /[\0-\x1F"<>\|]+/.test(str) ? str : str.replace(/\\/g, '/'); + }; + + checkPath.convert = makePosix; // 'C:\\foo' <- 'C:\\foo' has been converted to 'C:/' + // 'd:\\foo' + + var REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i; + + checkPath.isNotRelative = function (path) { + return REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path) || isNotRelative(path); + }; +} diff --git a/node_modules/ignore/package.json b/node_modules/ignore/package.json new file mode 100644 index 00000000..45de575c --- /dev/null +++ b/node_modules/ignore/package.json @@ -0,0 +1,71 @@ +{ + "name": "ignore", + "version": "5.2.0", + "description": "Ignore is a manager and filter for .gitignore rules, the one used by eslint, gitbook and many others.", + "files": [ + "legacy.js", + "index.js", + "index.d.ts", + "LICENSE-MIT" + ], + "scripts": { + "prepublishOnly": "npm run build", + "build": "babel -o legacy.js index.js", + "test:lint": "eslint .", + "test:tsc": "tsc ./test/ts/simple.ts --lib ES6", + "test:ts": "node ./test/ts/simple.js", + "tap": "tap --reporter classic", + "test:git": "npm run tap test/git-check-ignore.js", + "test:ignore": "npm run tap test/ignore.js", + "test:others": "npm run tap test/others.js", + "test:cases": "npm run tap test/*.js -- --coverage", + "test:only": "npm run test:lint && npm run test:tsc && npm run test:ts && npm run test:cases", + "test": "npm run test:only", + "test:win32": "IGNORE_TEST_WIN32=1 npm run test", + "posttest": "tap --coverage-report=html && codecov" + }, + "repository": { + "type": "git", + "url": "git@github.com:kaelzhang/node-ignore.git" + }, + "keywords": [ + "ignore", + ".gitignore", + "gitignore", + "npmignore", + "rules", + "manager", + "filter", + "regexp", + "regex", + "fnmatch", + "glob", + "asterisks", + "regular-expression" + ], + "author": "kael", + "license": "MIT", + "bugs": { + "url": "https://github.com/kaelzhang/node-ignore/issues" + }, + "devDependencies": { + "@babel/cli": "^7.8.4", + "@babel/core": "^7.9.6", + "@babel/preset-env": "^7.9.6", + "codecov": "^3.7.0", + "debug": "^4.1.1", + "eslint": "^7.0.0", + "eslint-config-ostai": "^3.0.0", + "eslint-plugin-import": "^2.20.2", + "mkdirp": "^1.0.4", + "pre-suf": "^1.1.1", + "rimraf": "^3.0.2", + "spawn-sync": "^2.0.0", + "tap": "^14.10.7", + "tmp": "0.2.1", + "typescript": "^3.9.3" + }, + "engines": { + "node": ">= 4" + } +} diff --git a/node_modules/is-binary-path/index.d.ts b/node_modules/is-binary-path/index.d.ts new file mode 100644 index 00000000..19dcd432 --- /dev/null +++ b/node_modules/is-binary-path/index.d.ts @@ -0,0 +1,17 @@ +/** +Check if a file path is a binary file. + +@example +``` +import isBinaryPath = require('is-binary-path'); + +isBinaryPath('source/unicorn.png'); +//=> true + +isBinaryPath('source/unicorn.txt'); +//=> false +``` +*/ +declare function isBinaryPath(filePath: string): boolean; + +export = isBinaryPath; diff --git a/node_modules/is-binary-path/index.js b/node_modules/is-binary-path/index.js new file mode 100644 index 00000000..ef7548c8 --- /dev/null +++ b/node_modules/is-binary-path/index.js @@ -0,0 +1,7 @@ +'use strict'; +const path = require('path'); +const binaryExtensions = require('binary-extensions'); + +const extensions = new Set(binaryExtensions); + +module.exports = filePath => extensions.has(path.extname(filePath).slice(1).toLowerCase()); diff --git a/node_modules/is-binary-path/license b/node_modules/is-binary-path/license new file mode 100644 index 00000000..401b1c73 --- /dev/null +++ b/node_modules/is-binary-path/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2019 Sindre Sorhus (https://sindresorhus.com), Paul Miller (https://paulmillr.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/is-binary-path/package.json b/node_modules/is-binary-path/package.json new file mode 100644 index 00000000..a8d005ae --- /dev/null +++ b/node_modules/is-binary-path/package.json @@ -0,0 +1,40 @@ +{ + "name": "is-binary-path", + "version": "2.1.0", + "description": "Check if a file path is a binary file", + "license": "MIT", + "repository": "sindresorhus/is-binary-path", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "binary", + "extensions", + "extension", + "file", + "path", + "check", + "detect", + "is" + ], + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.2", + "xo": "^0.24.0" + } +} diff --git a/node_modules/is-binary-path/readme.md b/node_modules/is-binary-path/readme.md new file mode 100644 index 00000000..b4ab0251 --- /dev/null +++ b/node_modules/is-binary-path/readme.md @@ -0,0 +1,34 @@ +# is-binary-path [![Build Status](https://travis-ci.org/sindresorhus/is-binary-path.svg?branch=master)](https://travis-ci.org/sindresorhus/is-binary-path) + +> Check if a file path is a binary file + + +## Install + +``` +$ npm install is-binary-path +``` + + +## Usage + +```js +const isBinaryPath = require('is-binary-path'); + +isBinaryPath('source/unicorn.png'); +//=> true + +isBinaryPath('source/unicorn.txt'); +//=> false +``` + + +## Related + +- [binary-extensions](https://github.com/sindresorhus/binary-extensions) - List of binary file extensions +- [is-text-path](https://github.com/sindresorhus/is-text-path) - Check if a filepath is a text file + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com), [Paul Miller](https://paulmillr.com) diff --git a/node_modules/is-extglob/LICENSE b/node_modules/is-extglob/LICENSE new file mode 100644 index 00000000..842218cf --- /dev/null +++ b/node_modules/is-extglob/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2016, Jon Schlinkert + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/is-extglob/README.md b/node_modules/is-extglob/README.md new file mode 100644 index 00000000..0416af5c --- /dev/null +++ b/node_modules/is-extglob/README.md @@ -0,0 +1,107 @@ +# is-extglob [![NPM version](https://img.shields.io/npm/v/is-extglob.svg?style=flat)](https://www.npmjs.com/package/is-extglob) [![NPM downloads](https://img.shields.io/npm/dm/is-extglob.svg?style=flat)](https://npmjs.org/package/is-extglob) [![Build Status](https://img.shields.io/travis/jonschlinkert/is-extglob.svg?style=flat)](https://travis-ci.org/jonschlinkert/is-extglob) + +> Returns true if a string has an extglob. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save is-extglob +``` + +## Usage + +```js +var isExtglob = require('is-extglob'); +``` + +**True** + +```js +isExtglob('?(abc)'); +isExtglob('@(abc)'); +isExtglob('!(abc)'); +isExtglob('*(abc)'); +isExtglob('+(abc)'); +``` + +**False** + +Escaped extglobs: + +```js +isExtglob('\\?(abc)'); +isExtglob('\\@(abc)'); +isExtglob('\\!(abc)'); +isExtglob('\\*(abc)'); +isExtglob('\\+(abc)'); +``` + +Everything else... + +```js +isExtglob('foo.js'); +isExtglob('!foo.js'); +isExtglob('*.js'); +isExtglob('**/abc.js'); +isExtglob('abc/*.js'); +isExtglob('abc/(aaa|bbb).js'); +isExtglob('abc/[a-z].js'); +isExtglob('abc/{a,b}.js'); +isExtglob('abc/?.js'); +isExtglob('abc.js'); +isExtglob('abc/def/ghi.js'); +``` + +## History + +**v2.0** + +Adds support for escaping. Escaped exglobs no longer return true. + +## About + +### Related projects + +* [has-glob](https://www.npmjs.com/package/has-glob): Returns `true` if an array has a glob pattern. | [homepage](https://github.com/jonschlinkert/has-glob "Returns `true` if an array has a glob pattern.") +* [is-glob](https://www.npmjs.com/package/is-glob): Returns `true` if the given string looks like a glob pattern or an extglob pattern… [more](https://github.com/jonschlinkert/is-glob) | [homepage](https://github.com/jonschlinkert/is-glob "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a bet") +* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/jonschlinkert/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.") + +### Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +### Building docs + +_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_ + +To generate the readme and API documentation with [verb](https://github.com/verbose/verb): + +```sh +$ npm install -g verb verb-generate-readme && verb +``` + +### Running tests + +Install dev dependencies: + +```sh +$ npm install -d && npm test +``` + +### Author + +**Jon Schlinkert** + +* [github/jonschlinkert](https://github.com/jonschlinkert) +* [twitter/jonschlinkert](http://twitter.com/jonschlinkert) + +### License + +Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT license](https://github.com/jonschlinkert/is-extglob/blob/master/LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.31, on October 12, 2016._ \ No newline at end of file diff --git a/node_modules/is-extglob/index.js b/node_modules/is-extglob/index.js new file mode 100644 index 00000000..c1d986fc --- /dev/null +++ b/node_modules/is-extglob/index.js @@ -0,0 +1,20 @@ +/*! + * is-extglob + * + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. + */ + +module.exports = function isExtglob(str) { + if (typeof str !== 'string' || str === '') { + return false; + } + + var match; + while ((match = /(\\).|([@?!+*]\(.*\))/g.exec(str))) { + if (match[2]) return true; + str = str.slice(match.index + match[0].length); + } + + return false; +}; diff --git a/node_modules/is-extglob/package.json b/node_modules/is-extglob/package.json new file mode 100644 index 00000000..7a908369 --- /dev/null +++ b/node_modules/is-extglob/package.json @@ -0,0 +1,69 @@ +{ + "name": "is-extglob", + "description": "Returns true if a string has an extglob.", + "version": "2.1.1", + "homepage": "https://github.com/jonschlinkert/is-extglob", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "repository": "jonschlinkert/is-extglob", + "bugs": { + "url": "https://github.com/jonschlinkert/is-extglob/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "gulp-format-md": "^0.1.10", + "mocha": "^3.0.2" + }, + "keywords": [ + "bash", + "braces", + "check", + "exec", + "expression", + "extglob", + "glob", + "globbing", + "globstar", + "is", + "match", + "matches", + "pattern", + "regex", + "regular", + "string", + "test" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "related": { + "list": [ + "has-glob", + "is-glob", + "micromatch" + ] + }, + "reflinks": [ + "verb", + "verb-generate-readme" + ], + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/is-fullwidth-code-point/index.d.ts b/node_modules/is-fullwidth-code-point/index.d.ts new file mode 100644 index 00000000..729d2020 --- /dev/null +++ b/node_modules/is-fullwidth-code-point/index.d.ts @@ -0,0 +1,17 @@ +/** +Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms). + +@param codePoint - The [code point](https://en.wikipedia.org/wiki/Code_point) of a character. + +@example +``` +import isFullwidthCodePoint from 'is-fullwidth-code-point'; + +isFullwidthCodePoint('谢'.codePointAt(0)); +//=> true + +isFullwidthCodePoint('a'.codePointAt(0)); +//=> false +``` +*/ +export default function isFullwidthCodePoint(codePoint: number): boolean; diff --git a/node_modules/is-fullwidth-code-point/index.js b/node_modules/is-fullwidth-code-point/index.js new file mode 100644 index 00000000..671f97f7 --- /dev/null +++ b/node_modules/is-fullwidth-code-point/index.js @@ -0,0 +1,50 @@ +/* eslint-disable yoda */ +'use strict'; + +const isFullwidthCodePoint = codePoint => { + if (Number.isNaN(codePoint)) { + return false; + } + + // Code points are derived from: + // http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt + if ( + codePoint >= 0x1100 && ( + codePoint <= 0x115F || // Hangul Jamo + codePoint === 0x2329 || // LEFT-POINTING ANGLE BRACKET + codePoint === 0x232A || // RIGHT-POINTING ANGLE BRACKET + // CJK Radicals Supplement .. Enclosed CJK Letters and Months + (0x2E80 <= codePoint && codePoint <= 0x3247 && codePoint !== 0x303F) || + // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A + (0x3250 <= codePoint && codePoint <= 0x4DBF) || + // CJK Unified Ideographs .. Yi Radicals + (0x4E00 <= codePoint && codePoint <= 0xA4C6) || + // Hangul Jamo Extended-A + (0xA960 <= codePoint && codePoint <= 0xA97C) || + // Hangul Syllables + (0xAC00 <= codePoint && codePoint <= 0xD7A3) || + // CJK Compatibility Ideographs + (0xF900 <= codePoint && codePoint <= 0xFAFF) || + // Vertical Forms + (0xFE10 <= codePoint && codePoint <= 0xFE19) || + // CJK Compatibility Forms .. Small Form Variants + (0xFE30 <= codePoint && codePoint <= 0xFE6B) || + // Halfwidth and Fullwidth Forms + (0xFF01 <= codePoint && codePoint <= 0xFF60) || + (0xFFE0 <= codePoint && codePoint <= 0xFFE6) || + // Kana Supplement + (0x1B000 <= codePoint && codePoint <= 0x1B001) || + // Enclosed Ideographic Supplement + (0x1F200 <= codePoint && codePoint <= 0x1F251) || + // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane + (0x20000 <= codePoint && codePoint <= 0x3FFFD) + ) + ) { + return true; + } + + return false; +}; + +module.exports = isFullwidthCodePoint; +module.exports.default = isFullwidthCodePoint; diff --git a/node_modules/is-fullwidth-code-point/license b/node_modules/is-fullwidth-code-point/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/is-fullwidth-code-point/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/is-fullwidth-code-point/package.json b/node_modules/is-fullwidth-code-point/package.json new file mode 100644 index 00000000..2137e888 --- /dev/null +++ b/node_modules/is-fullwidth-code-point/package.json @@ -0,0 +1,42 @@ +{ + "name": "is-fullwidth-code-point", + "version": "3.0.0", + "description": "Check if the character represented by a given Unicode code point is fullwidth", + "license": "MIT", + "repository": "sindresorhus/is-fullwidth-code-point", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd-check" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "fullwidth", + "full-width", + "full", + "width", + "unicode", + "character", + "string", + "codepoint", + "code", + "point", + "is", + "detect", + "check" + ], + "devDependencies": { + "ava": "^1.3.1", + "tsd-check": "^0.5.0", + "xo": "^0.24.0" + } +} diff --git a/node_modules/is-fullwidth-code-point/readme.md b/node_modules/is-fullwidth-code-point/readme.md new file mode 100644 index 00000000..4236bba9 --- /dev/null +++ b/node_modules/is-fullwidth-code-point/readme.md @@ -0,0 +1,39 @@ +# is-fullwidth-code-point [![Build Status](https://travis-ci.org/sindresorhus/is-fullwidth-code-point.svg?branch=master)](https://travis-ci.org/sindresorhus/is-fullwidth-code-point) + +> Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) + + +## Install + +``` +$ npm install is-fullwidth-code-point +``` + + +## Usage + +```js +const isFullwidthCodePoint = require('is-fullwidth-code-point'); + +isFullwidthCodePoint('谢'.codePointAt(0)); +//=> true + +isFullwidthCodePoint('a'.codePointAt(0)); +//=> false +``` + + +## API + +### isFullwidthCodePoint(codePoint) + +#### codePoint + +Type: `number` + +The [code point](https://en.wikipedia.org/wiki/Code_point) of a character. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/is-glob/LICENSE b/node_modules/is-glob/LICENSE new file mode 100644 index 00000000..3f2eca18 --- /dev/null +++ b/node_modules/is-glob/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2017, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/is-glob/README.md b/node_modules/is-glob/README.md new file mode 100644 index 00000000..740724b2 --- /dev/null +++ b/node_modules/is-glob/README.md @@ -0,0 +1,206 @@ +# is-glob [![NPM version](https://img.shields.io/npm/v/is-glob.svg?style=flat)](https://www.npmjs.com/package/is-glob) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![NPM total downloads](https://img.shields.io/npm/dt/is-glob.svg?style=flat)](https://npmjs.org/package/is-glob) [![Build Status](https://img.shields.io/github/workflow/status/micromatch/is-glob/dev)](https://github.com/micromatch/is-glob/actions) + +> Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save is-glob +``` + +You might also be interested in [is-valid-glob](https://github.com/jonschlinkert/is-valid-glob) and [has-glob](https://github.com/jonschlinkert/has-glob). + +## Usage + +```js +var isGlob = require('is-glob'); +``` + +### Default behavior + +**True** + +Patterns that have glob characters or regex patterns will return `true`: + +```js +isGlob('!foo.js'); +isGlob('*.js'); +isGlob('**/abc.js'); +isGlob('abc/*.js'); +isGlob('abc/(aaa|bbb).js'); +isGlob('abc/[a-z].js'); +isGlob('abc/{a,b}.js'); +//=> true +``` + +Extglobs + +```js +isGlob('abc/@(a).js'); +isGlob('abc/!(a).js'); +isGlob('abc/+(a).js'); +isGlob('abc/*(a).js'); +isGlob('abc/?(a).js'); +//=> true +``` + +**False** + +Escaped globs or extglobs return `false`: + +```js +isGlob('abc/\\@(a).js'); +isGlob('abc/\\!(a).js'); +isGlob('abc/\\+(a).js'); +isGlob('abc/\\*(a).js'); +isGlob('abc/\\?(a).js'); +isGlob('\\!foo.js'); +isGlob('\\*.js'); +isGlob('\\*\\*/abc.js'); +isGlob('abc/\\*.js'); +isGlob('abc/\\(aaa|bbb).js'); +isGlob('abc/\\[a-z].js'); +isGlob('abc/\\{a,b}.js'); +//=> false +``` + +Patterns that do not have glob patterns return `false`: + +```js +isGlob('abc.js'); +isGlob('abc/def/ghi.js'); +isGlob('foo.js'); +isGlob('abc/@.js'); +isGlob('abc/+.js'); +isGlob('abc/?.js'); +isGlob(); +isGlob(null); +//=> false +``` + +Arrays are also `false` (If you want to check if an array has a glob pattern, use [has-glob](https://github.com/jonschlinkert/has-glob)): + +```js +isGlob(['**/*.js']); +isGlob(['foo.js']); +//=> false +``` + +### Option strict + +When `options.strict === false` the behavior is less strict in determining if a pattern is a glob. Meaning that +some patterns that would return `false` may return `true`. This is done so that matching libraries like [micromatch](https://github.com/micromatch/micromatch) have a chance at determining if the pattern is a glob or not. + +**True** + +Patterns that have glob characters or regex patterns will return `true`: + +```js +isGlob('!foo.js', {strict: false}); +isGlob('*.js', {strict: false}); +isGlob('**/abc.js', {strict: false}); +isGlob('abc/*.js', {strict: false}); +isGlob('abc/(aaa|bbb).js', {strict: false}); +isGlob('abc/[a-z].js', {strict: false}); +isGlob('abc/{a,b}.js', {strict: false}); +//=> true +``` + +Extglobs + +```js +isGlob('abc/@(a).js', {strict: false}); +isGlob('abc/!(a).js', {strict: false}); +isGlob('abc/+(a).js', {strict: false}); +isGlob('abc/*(a).js', {strict: false}); +isGlob('abc/?(a).js', {strict: false}); +//=> true +``` + +**False** + +Escaped globs or extglobs return `false`: + +```js +isGlob('\\!foo.js', {strict: false}); +isGlob('\\*.js', {strict: false}); +isGlob('\\*\\*/abc.js', {strict: false}); +isGlob('abc/\\*.js', {strict: false}); +isGlob('abc/\\(aaa|bbb).js', {strict: false}); +isGlob('abc/\\[a-z].js', {strict: false}); +isGlob('abc/\\{a,b}.js', {strict: false}); +//=> false +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [assemble](https://www.npmjs.com/package/assemble): Get the rocks out of your socks! Assemble makes you fast at creating web projects… [more](https://github.com/assemble/assemble) | [homepage](https://github.com/assemble/assemble "Get the rocks out of your socks! Assemble makes you fast at creating web projects. Assemble is used by thousands of projects for rapid prototyping, creating themes, scaffolds, boilerplates, e-books, UI components, API documentation, blogs, building websit") +* [base](https://www.npmjs.com/package/base): Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks | [homepage](https://github.com/node-base/base "Framework for rapidly creating high quality, server-side node.js applications, using plugins like building blocks") +* [update](https://www.npmjs.com/package/update): Be scalable! Update is a new, open source developer framework and CLI for automating updates… [more](https://github.com/update/update) | [homepage](https://github.com/update/update "Be scalable! Update is a new, open source developer framework and CLI for automating updates of any kind in code projects.") +* [verb](https://www.npmjs.com/package/verb): Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used… [more](https://github.com/verbose/verb) | [homepage](https://github.com/verbose/verb "Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used on hundreds of projects of all sizes to generate everything from API docs to readmes.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 47 | [jonschlinkert](https://github.com/jonschlinkert) | +| 5 | [doowb](https://github.com/doowb) | +| 1 | [phated](https://github.com/phated) | +| 1 | [danhper](https://github.com/danhper) | +| 1 | [paulmillr](https://github.com/paulmillr) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on March 27, 2019._ \ No newline at end of file diff --git a/node_modules/is-glob/index.js b/node_modules/is-glob/index.js new file mode 100644 index 00000000..620f563e --- /dev/null +++ b/node_modules/is-glob/index.js @@ -0,0 +1,150 @@ +/*! + * is-glob + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +var isExtglob = require('is-extglob'); +var chars = { '{': '}', '(': ')', '[': ']'}; +var strictCheck = function(str) { + if (str[0] === '!') { + return true; + } + var index = 0; + var pipeIndex = -2; + var closeSquareIndex = -2; + var closeCurlyIndex = -2; + var closeParenIndex = -2; + var backSlashIndex = -2; + while (index < str.length) { + if (str[index] === '*') { + return true; + } + + if (str[index + 1] === '?' && /[\].+)]/.test(str[index])) { + return true; + } + + if (closeSquareIndex !== -1 && str[index] === '[' && str[index + 1] !== ']') { + if (closeSquareIndex < index) { + closeSquareIndex = str.indexOf(']', index); + } + if (closeSquareIndex > index) { + if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { + return true; + } + backSlashIndex = str.indexOf('\\', index); + if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) { + return true; + } + } + } + + if (closeCurlyIndex !== -1 && str[index] === '{' && str[index + 1] !== '}') { + closeCurlyIndex = str.indexOf('}', index); + if (closeCurlyIndex > index) { + backSlashIndex = str.indexOf('\\', index); + if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) { + return true; + } + } + } + + if (closeParenIndex !== -1 && str[index] === '(' && str[index + 1] === '?' && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ')') { + closeParenIndex = str.indexOf(')', index); + if (closeParenIndex > index) { + backSlashIndex = str.indexOf('\\', index); + if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { + return true; + } + } + } + + if (pipeIndex !== -1 && str[index] === '(' && str[index + 1] !== '|') { + if (pipeIndex < index) { + pipeIndex = str.indexOf('|', index); + } + if (pipeIndex !== -1 && str[pipeIndex + 1] !== ')') { + closeParenIndex = str.indexOf(')', pipeIndex); + if (closeParenIndex > pipeIndex) { + backSlashIndex = str.indexOf('\\', pipeIndex); + if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) { + return true; + } + } + } + } + + if (str[index] === '\\') { + var open = str[index + 1]; + index += 2; + var close = chars[open]; + + if (close) { + var n = str.indexOf(close, index); + if (n !== -1) { + index = n + 1; + } + } + + if (str[index] === '!') { + return true; + } + } else { + index++; + } + } + return false; +}; + +var relaxedCheck = function(str) { + if (str[0] === '!') { + return true; + } + var index = 0; + while (index < str.length) { + if (/[*?{}()[\]]/.test(str[index])) { + return true; + } + + if (str[index] === '\\') { + var open = str[index + 1]; + index += 2; + var close = chars[open]; + + if (close) { + var n = str.indexOf(close, index); + if (n !== -1) { + index = n + 1; + } + } + + if (str[index] === '!') { + return true; + } + } else { + index++; + } + } + return false; +}; + +module.exports = function isGlob(str, options) { + if (typeof str !== 'string' || str === '') { + return false; + } + + if (isExtglob(str)) { + return true; + } + + var check = strictCheck; + + // optionally relax check + if (options && options.strict === false) { + check = relaxedCheck; + } + + return check(str); +}; diff --git a/node_modules/is-glob/package.json b/node_modules/is-glob/package.json new file mode 100644 index 00000000..858af037 --- /dev/null +++ b/node_modules/is-glob/package.json @@ -0,0 +1,81 @@ +{ + "name": "is-glob", + "description": "Returns `true` if the given string looks like a glob pattern or an extglob pattern. This makes it easy to create code that only uses external modules like node-glob when necessary, resulting in much faster code execution and initialization time, and a better user experience.", + "version": "4.0.3", + "homepage": "https://github.com/micromatch/is-glob", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Brian Woodward (https://twitter.com/doowb)", + "Daniel Perez (https://tuvistavie.com)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)" + ], + "repository": "micromatch/is-glob", + "bugs": { + "url": "https://github.com/micromatch/is-glob/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "mocha && node benchmark.js" + }, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "devDependencies": { + "gulp-format-md": "^0.1.10", + "mocha": "^3.0.2" + }, + "keywords": [ + "bash", + "braces", + "check", + "exec", + "expression", + "extglob", + "glob", + "globbing", + "globstar", + "is", + "match", + "matches", + "pattern", + "regex", + "regular", + "string", + "test" + ], + "verb": { + "layout": "default", + "plugins": [ + "gulp-format-md" + ], + "related": { + "list": [ + "assemble", + "base", + "update", + "verb" + ] + }, + "reflinks": [ + "assemble", + "bach", + "base", + "composer", + "gulp", + "has-glob", + "is-valid-glob", + "micromatch", + "npm", + "scaffold", + "verb", + "vinyl" + ] + } +} diff --git a/node_modules/is-number/LICENSE b/node_modules/is-number/LICENSE new file mode 100644 index 00000000..9af4a67d --- /dev/null +++ b/node_modules/is-number/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/is-number/README.md b/node_modules/is-number/README.md new file mode 100644 index 00000000..eb8149e8 --- /dev/null +++ b/node_modules/is-number/README.md @@ -0,0 +1,187 @@ +# is-number [![NPM version](https://img.shields.io/npm/v/is-number.svg?style=flat)](https://www.npmjs.com/package/is-number) [![NPM monthly downloads](https://img.shields.io/npm/dm/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![NPM total downloads](https://img.shields.io/npm/dt/is-number.svg?style=flat)](https://npmjs.org/package/is-number) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/is-number.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/is-number) + +> Returns true if the value is a finite number. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save is-number +``` + +## Why is this needed? + +In JavaScript, it's not always as straightforward as it should be to reliably check if a value is a number. It's common for devs to use `+`, `-`, or `Number()` to cast a string value to a number (for example, when values are returned from user input, regex matches, parsers, etc). But there are many non-intuitive edge cases that yield unexpected results: + +```js +console.log(+[]); //=> 0 +console.log(+''); //=> 0 +console.log(+' '); //=> 0 +console.log(typeof NaN); //=> 'number' +``` + +This library offers a performant way to smooth out edge cases like these. + +## Usage + +```js +const isNumber = require('is-number'); +``` + +See the [tests](./test.js) for more examples. + +### true + +```js +isNumber(5e3); // true +isNumber(0xff); // true +isNumber(-1.1); // true +isNumber(0); // true +isNumber(1); // true +isNumber(1.1); // true +isNumber(10); // true +isNumber(10.10); // true +isNumber(100); // true +isNumber('-1.1'); // true +isNumber('0'); // true +isNumber('012'); // true +isNumber('0xff'); // true +isNumber('1'); // true +isNumber('1.1'); // true +isNumber('10'); // true +isNumber('10.10'); // true +isNumber('100'); // true +isNumber('5e3'); // true +isNumber(parseInt('012')); // true +isNumber(parseFloat('012')); // true +``` + +### False + +Everything else is false, as you would expect: + +```js +isNumber(Infinity); // false +isNumber(NaN); // false +isNumber(null); // false +isNumber(undefined); // false +isNumber(''); // false +isNumber(' '); // false +isNumber('foo'); // false +isNumber([1]); // false +isNumber([]); // false +isNumber(function () {}); // false +isNumber({}); // false +``` + +## Release history + +### 7.0.0 + +* Refactor. Now uses `.isFinite` if it exists. +* Performance is about the same as v6.0 when the value is a string or number. But it's now 3x-4x faster when the value is not a string or number. + +### 6.0.0 + +* Optimizations, thanks to @benaadams. + +### 5.0.0 + +**Breaking changes** + +* removed support for `instanceof Number` and `instanceof String` + +## Benchmarks + +As with all benchmarks, take these with a grain of salt. See the [benchmarks](./benchmark/index.js) for more detail. + +``` +# all +v7.0 x 413,222 ops/sec ±2.02% (86 runs sampled) +v6.0 x 111,061 ops/sec ±1.29% (85 runs sampled) +parseFloat x 317,596 ops/sec ±1.36% (86 runs sampled) +fastest is 'v7.0' + +# string +v7.0 x 3,054,496 ops/sec ±1.05% (89 runs sampled) +v6.0 x 2,957,781 ops/sec ±0.98% (88 runs sampled) +parseFloat x 3,071,060 ops/sec ±1.13% (88 runs sampled) +fastest is 'parseFloat,v7.0' + +# number +v7.0 x 3,146,895 ops/sec ±0.89% (89 runs sampled) +v6.0 x 3,214,038 ops/sec ±1.07% (89 runs sampled) +parseFloat x 3,077,588 ops/sec ±1.07% (87 runs sampled) +fastest is 'v6.0' +``` + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [is-plain-object](https://www.npmjs.com/package/is-plain-object): Returns true if an object was created by the `Object` constructor. | [homepage](https://github.com/jonschlinkert/is-plain-object "Returns true if an object was created by the `Object` constructor.") +* [is-primitive](https://www.npmjs.com/package/is-primitive): Returns `true` if the value is a primitive. | [homepage](https://github.com/jonschlinkert/is-primitive "Returns `true` if the value is a primitive. ") +* [isobject](https://www.npmjs.com/package/isobject): Returns true if the value is an object and not an array or null. | [homepage](https://github.com/jonschlinkert/isobject "Returns true if the value is an object and not an array or null.") +* [kind-of](https://www.npmjs.com/package/kind-of): Get the native type of a value. | [homepage](https://github.com/jonschlinkert/kind-of "Get the native type of a value.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 49 | [jonschlinkert](https://github.com/jonschlinkert) | +| 5 | [charlike-old](https://github.com/charlike-old) | +| 1 | [benaadams](https://github.com/benaadams) | +| 1 | [realityking](https://github.com/realityking) | + +### Author + +**Jon Schlinkert** + +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) + +### License + +Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on June 15, 2018._ \ No newline at end of file diff --git a/node_modules/is-number/index.js b/node_modules/is-number/index.js new file mode 100644 index 00000000..27f19b75 --- /dev/null +++ b/node_modules/is-number/index.js @@ -0,0 +1,18 @@ +/*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + */ + +'use strict'; + +module.exports = function(num) { + if (typeof num === 'number') { + return num - num === 0; + } + if (typeof num === 'string' && num.trim() !== '') { + return Number.isFinite ? Number.isFinite(+num) : isFinite(+num); + } + return false; +}; diff --git a/node_modules/is-number/package.json b/node_modules/is-number/package.json new file mode 100644 index 00000000..37150726 --- /dev/null +++ b/node_modules/is-number/package.json @@ -0,0 +1,82 @@ +{ + "name": "is-number", + "description": "Returns true if a number or string value is a finite number. Useful for regex matches, parsing, user input, etc.", + "version": "7.0.0", + "homepage": "https://github.com/jonschlinkert/is-number", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Olsten Larck (https://i.am.charlike.online)", + "Rouven Weßling (www.rouvenwessling.de)" + ], + "repository": "jonschlinkert/is-number", + "bugs": { + "url": "https://github.com/jonschlinkert/is-number/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=0.12.0" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "ansi": "^0.3.1", + "benchmark": "^2.1.4", + "gulp-format-md": "^1.0.0", + "mocha": "^3.5.3" + }, + "keywords": [ + "cast", + "check", + "coerce", + "coercion", + "finite", + "integer", + "is", + "isnan", + "is-nan", + "is-num", + "is-number", + "isnumber", + "isfinite", + "istype", + "kind", + "math", + "nan", + "num", + "number", + "numeric", + "parseFloat", + "parseInt", + "test", + "type", + "typeof", + "value" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "related": { + "list": [ + "is-plain-object", + "is-primitive", + "isobject", + "kind-of" + ] + }, + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/jsonfile/CHANGELOG.md b/node_modules/jsonfile/CHANGELOG.md new file mode 100644 index 00000000..d772e438 --- /dev/null +++ b/node_modules/jsonfile/CHANGELOG.md @@ -0,0 +1,171 @@ +6.1.0 / 2020-10-31 +------------------ + +- Add `finalEOL` option to disable writing final EOL ([#115](https://github.com/jprichardson/node-jsonfile/issues/115), [#137](https://github.com/jprichardson/node-jsonfile/pull/137)) +- Update dependency ([#138](https://github.com/jprichardson/node-jsonfile/pull/138)) + +6.0.1 / 2020-03-07 +------------------ + +- Update dependency ([#130](https://github.com/jprichardson/node-jsonfile/pull/130)) +- Fix code style ([#129](https://github.com/jprichardson/node-jsonfile/pull/129)) + +6.0.0 / 2020-02-24 +------------------ + +- **BREAKING:** Drop support for Node 6 & 8 ([#128](https://github.com/jprichardson/node-jsonfile/pull/128)) +- **BREAKING:** Do not allow passing `null` as options to `readFile()` or `writeFile()` ([#128](https://github.com/jprichardson/node-jsonfile/pull/128)) +- Refactor internals ([#128](https://github.com/jprichardson/node-jsonfile/pull/128)) + +5.0.0 / 2018-09-08 +------------------ + +- **BREAKING:** Drop Node 4 support +- **BREAKING:** If no callback is passed to an asynchronous method, a promise is now returned ([#109](https://github.com/jprichardson/node-jsonfile/pull/109)) +- Cleanup docs + +4.0.0 / 2017-07-12 +------------------ + +- **BREAKING:** Remove global `spaces` option. +- **BREAKING:** Drop support for Node 0.10, 0.12, and io.js. +- Remove undocumented `passParsingErrors` option. +- Added `EOL` override option to `writeFile` when using `spaces`. [#89] + +3.0.1 / 2017-07-05 +------------------ + +- Fixed bug in `writeFile` when there was a serialization error & no callback was passed. In previous versions, an empty file would be written; now no file is written. + +3.0.0 / 2017-04-25 +------------------ + +- Changed behavior of `throws` option for `readFileSync`; now does not throw filesystem errors when `throws` is `false` + +2.4.0 / 2016-09-15 +------------------ +### Changed +- added optional support for `graceful-fs` [#62] + +2.3.1 / 2016-05-13 +------------------ +- fix to support BOM. [#45][#45] + +2.3.0 / 2016-04-16 +------------------ +- add `throws` to `readFile()`. See [#39][#39] +- add support for any arbitrary `fs` module. Useful with [mock-fs](https://www.npmjs.com/package/mock-fs) + +2.2.3 / 2015-10-14 +------------------ +- include file name in parse error. See: https://github.com/jprichardson/node-jsonfile/pull/34 + +2.2.2 / 2015-09-16 +------------------ +- split out tests into separate files +- fixed `throws` when set to `true` in `readFileSync()`. See: https://github.com/jprichardson/node-jsonfile/pull/33 + +2.2.1 / 2015-06-25 +------------------ +- fixed regression when passing in string as encoding for options in `writeFile()` and `writeFileSync()`. See: https://github.com/jprichardson/node-jsonfile/issues/28 + +2.2.0 / 2015-06-25 +------------------ +- added `options.spaces` to `writeFile()` and `writeFileSync()` + +2.1.2 / 2015-06-22 +------------------ +- fixed if passed `readFileSync(file, 'utf8')`. See: https://github.com/jprichardson/node-jsonfile/issues/25 + +2.1.1 / 2015-06-19 +------------------ +- fixed regressions if `null` is passed for options. See: https://github.com/jprichardson/node-jsonfile/issues/24 + +2.1.0 / 2015-06-19 +------------------ +- cleanup: JavaScript Standard Style, rename files, dropped terst for assert +- methods now support JSON revivers/replacers + +2.0.1 / 2015-05-24 +------------------ +- update license attribute https://github.com/jprichardson/node-jsonfile/pull/21 + +2.0.0 / 2014-07-28 +------------------ +* added `\n` to end of file on write. [#14](https://github.com/jprichardson/node-jsonfile/pull/14) +* added `options.throws` to `readFileSync()` +* dropped support for Node v0.8 + +1.2.0 / 2014-06-29 +------------------ +* removed semicolons +* bugfix: passed `options` to `fs.readFile` and `fs.readFileSync`. This technically changes behavior, but +changes it according to docs. [#12][#12] + +1.1.1 / 2013-11-11 +------------------ +* fixed catching of callback bug (ffissore / #5) + +1.1.0 / 2013-10-11 +------------------ +* added `options` param to methods, (seanodell / #4) + +1.0.1 / 2013-09-05 +------------------ +* removed `homepage` field from package.json to remove NPM warning + +1.0.0 / 2013-06-28 +------------------ +* added `.npmignore`, #1 +* changed spacing default from `4` to `2` to follow Node conventions + +0.0.1 / 2012-09-10 +------------------ +* Initial release. + +[#89]: https://github.com/jprichardson/node-jsonfile/pull/89 +[#45]: https://github.com/jprichardson/node-jsonfile/issues/45 "Reading of UTF8-encoded (w/ BOM) files fails" +[#44]: https://github.com/jprichardson/node-jsonfile/issues/44 "Extra characters in written file" +[#43]: https://github.com/jprichardson/node-jsonfile/issues/43 "Prettyfy json when written to file" +[#42]: https://github.com/jprichardson/node-jsonfile/pull/42 "Moved fs.readFileSync within the try/catch" +[#41]: https://github.com/jprichardson/node-jsonfile/issues/41 "Linux: Hidden file not working" +[#40]: https://github.com/jprichardson/node-jsonfile/issues/40 "autocreate folder doesn't work from Path-value" +[#39]: https://github.com/jprichardson/node-jsonfile/pull/39 "Add `throws` option for readFile (async)" +[#38]: https://github.com/jprichardson/node-jsonfile/pull/38 "Update README.md writeFile[Sync] signature" +[#37]: https://github.com/jprichardson/node-jsonfile/pull/37 "support append file" +[#36]: https://github.com/jprichardson/node-jsonfile/pull/36 "Add typescript definition file." +[#35]: https://github.com/jprichardson/node-jsonfile/pull/35 "Add typescript definition file." +[#34]: https://github.com/jprichardson/node-jsonfile/pull/34 "readFile JSON parse error includes filename" +[#33]: https://github.com/jprichardson/node-jsonfile/pull/33 "fix throw->throws typo in readFileSync()" +[#32]: https://github.com/jprichardson/node-jsonfile/issues/32 "readFile & readFileSync can possible have strip-comments as an option?" +[#31]: https://github.com/jprichardson/node-jsonfile/pull/31 "[Modify] Support string include is unicode escape string" +[#30]: https://github.com/jprichardson/node-jsonfile/issues/30 "How to use Jsonfile package in Meteor.js App?" +[#29]: https://github.com/jprichardson/node-jsonfile/issues/29 "writefile callback if no error?" +[#28]: https://github.com/jprichardson/node-jsonfile/issues/28 "writeFile options argument broken " +[#27]: https://github.com/jprichardson/node-jsonfile/pull/27 "Use svg instead of png to get better image quality" +[#26]: https://github.com/jprichardson/node-jsonfile/issues/26 "Breaking change to fs-extra" +[#25]: https://github.com/jprichardson/node-jsonfile/issues/25 "support string encoding param for read methods" +[#24]: https://github.com/jprichardson/node-jsonfile/issues/24 "readFile: Passing in null options with a callback throws an error" +[#23]: https://github.com/jprichardson/node-jsonfile/pull/23 "Add appendFile and appendFileSync" +[#22]: https://github.com/jprichardson/node-jsonfile/issues/22 "Default value for spaces in readme.md is outdated" +[#21]: https://github.com/jprichardson/node-jsonfile/pull/21 "Update license attribute" +[#20]: https://github.com/jprichardson/node-jsonfile/issues/20 "Add simple caching functionallity" +[#19]: https://github.com/jprichardson/node-jsonfile/pull/19 "Add appendFileSync method" +[#18]: https://github.com/jprichardson/node-jsonfile/issues/18 "Add updateFile and updateFileSync methods" +[#17]: https://github.com/jprichardson/node-jsonfile/issues/17 "seem read & write sync has sequentially problem" +[#16]: https://github.com/jprichardson/node-jsonfile/pull/16 "export spaces defaulted to null" +[#15]: https://github.com/jprichardson/node-jsonfile/issues/15 "`jsonfile.spaces` should default to `null`" +[#14]: https://github.com/jprichardson/node-jsonfile/pull/14 "Add EOL at EOF" +[#13]: https://github.com/jprichardson/node-jsonfile/issues/13 "Add a final newline" +[#12]: https://github.com/jprichardson/node-jsonfile/issues/12 "readFile doesn't accept options" +[#11]: https://github.com/jprichardson/node-jsonfile/pull/11 "Added try,catch to readFileSync" +[#10]: https://github.com/jprichardson/node-jsonfile/issues/10 "No output or error from writeFile" +[#9]: https://github.com/jprichardson/node-jsonfile/pull/9 "Change 'js' to 'jf' in example." +[#8]: https://github.com/jprichardson/node-jsonfile/pull/8 "Updated forgotten module.exports to me." +[#7]: https://github.com/jprichardson/node-jsonfile/pull/7 "Add file name in error message" +[#6]: https://github.com/jprichardson/node-jsonfile/pull/6 "Use graceful-fs when possible" +[#5]: https://github.com/jprichardson/node-jsonfile/pull/5 "Jsonfile doesn't behave nicely when used inside a test suite." +[#4]: https://github.com/jprichardson/node-jsonfile/pull/4 "Added options parameter to writeFile and writeFileSync" +[#3]: https://github.com/jprichardson/node-jsonfile/issues/3 "test2" +[#2]: https://github.com/jprichardson/node-jsonfile/issues/2 "homepage field must be a string url. Deleted." +[#1]: https://github.com/jprichardson/node-jsonfile/pull/1 "adding an `.npmignore` file" diff --git a/node_modules/jsonfile/LICENSE b/node_modules/jsonfile/LICENSE new file mode 100644 index 00000000..cb7e807b --- /dev/null +++ b/node_modules/jsonfile/LICENSE @@ -0,0 +1,15 @@ +(The MIT License) + +Copyright (c) 2012-2015, JP Richardson + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files +(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, + merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS +OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/jsonfile/README.md b/node_modules/jsonfile/README.md new file mode 100644 index 00000000..910cde00 --- /dev/null +++ b/node_modules/jsonfile/README.md @@ -0,0 +1,230 @@ +Node.js - jsonfile +================ + +Easily read/write JSON files in Node.js. _Note: this module cannot be used in the browser._ + +[![npm Package](https://img.shields.io/npm/v/jsonfile.svg?style=flat-square)](https://www.npmjs.org/package/jsonfile) +[![build status](https://secure.travis-ci.org/jprichardson/node-jsonfile.svg)](http://travis-ci.org/jprichardson/node-jsonfile) +[![windows Build status](https://img.shields.io/appveyor/ci/jprichardson/node-jsonfile/master.svg?label=windows%20build)](https://ci.appveyor.com/project/jprichardson/node-jsonfile/branch/master) + +Standard JavaScript + +Why? +---- + +Writing `JSON.stringify()` and then `fs.writeFile()` and `JSON.parse()` with `fs.readFile()` enclosed in `try/catch` blocks became annoying. + + + +Installation +------------ + + npm install --save jsonfile + + + +API +--- + +* [`readFile(filename, [options], callback)`](#readfilefilename-options-callback) +* [`readFileSync(filename, [options])`](#readfilesyncfilename-options) +* [`writeFile(filename, obj, [options], callback)`](#writefilefilename-obj-options-callback) +* [`writeFileSync(filename, obj, [options])`](#writefilesyncfilename-obj-options) + +---- + +### readFile(filename, [options], callback) + +`options` (`object`, default `undefined`): Pass in any [`fs.readFile`](https://nodejs.org/api/fs.html#fs_fs_readfile_path_options_callback) options or set `reviver` for a [JSON reviver](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse). + - `throws` (`boolean`, default: `true`). If `JSON.parse` throws an error, pass this error to the callback. + If `false`, returns `null` for the object. + + +```js +const jsonfile = require('jsonfile') +const file = '/tmp/data.json' +jsonfile.readFile(file, function (err, obj) { + if (err) console.error(err) + console.dir(obj) +}) +``` + +You can also use this method with promises. The `readFile` method will return a promise if you do not pass a callback function. + +```js +const jsonfile = require('jsonfile') +const file = '/tmp/data.json' +jsonfile.readFile(file) + .then(obj => console.dir(obj)) + .catch(error => console.error(error)) +``` + +---- + +### readFileSync(filename, [options]) + +`options` (`object`, default `undefined`): Pass in any [`fs.readFileSync`](https://nodejs.org/api/fs.html#fs_fs_readfilesync_path_options) options or set `reviver` for a [JSON reviver](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse). +- `throws` (`boolean`, default: `true`). If an error is encountered reading or parsing the file, throw the error. If `false`, returns `null` for the object. + +```js +const jsonfile = require('jsonfile') +const file = '/tmp/data.json' + +console.dir(jsonfile.readFileSync(file)) +``` + +---- + +### writeFile(filename, obj, [options], callback) + +`options`: Pass in any [`fs.writeFile`](https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback) options or set `replacer` for a [JSON replacer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify). Can also pass in `spaces`, or override `EOL` string or set `finalEOL` flag as `false` to not save the file with `EOL` at the end. + + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFile(file, obj, function (err) { + if (err) console.error(err) +}) +``` +Or use with promises as follows: + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFile(file, obj) + .then(res => { + console.log('Write complete') + }) + .catch(error => console.error(error)) +``` + + +**formatting with spaces:** + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFile(file, obj, { spaces: 2 }, function (err) { + if (err) console.error(err) +}) +``` + +**overriding EOL:** + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFile(file, obj, { spaces: 2, EOL: '\r\n' }, function (err) { + if (err) console.error(err) +}) +``` + + +**disabling the EOL at the end of file:** + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFile(file, obj, { spaces: 2, finalEOL: false }, function (err) { + if (err) console.log(err) +}) +``` + +**appending to an existing JSON file:** + +You can use `fs.writeFile` option `{ flag: 'a' }` to achieve this. + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/mayAlreadyExistedData.json' +const obj = { name: 'JP' } + +jsonfile.writeFile(file, obj, { flag: 'a' }, function (err) { + if (err) console.error(err) +}) +``` + +---- + +### writeFileSync(filename, obj, [options]) + +`options`: Pass in any [`fs.writeFileSync`](https://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options) options or set `replacer` for a [JSON replacer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify). Can also pass in `spaces`, or override `EOL` string or set `finalEOL` flag as `false` to not save the file with `EOL` at the end. + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFileSync(file, obj) +``` + +**formatting with spaces:** + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFileSync(file, obj, { spaces: 2 }) +``` + +**overriding EOL:** + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFileSync(file, obj, { spaces: 2, EOL: '\r\n' }) +``` + +**disabling the EOL at the end of file:** + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/data.json' +const obj = { name: 'JP' } + +jsonfile.writeFileSync(file, obj, { spaces: 2, finalEOL: false }) +``` + +**appending to an existing JSON file:** + +You can use `fs.writeFileSync` option `{ flag: 'a' }` to achieve this. + +```js +const jsonfile = require('jsonfile') + +const file = '/tmp/mayAlreadyExistedData.json' +const obj = { name: 'JP' } + +jsonfile.writeFileSync(file, obj, { flag: 'a' }) +``` + +License +------- + +(MIT License) + +Copyright 2012-2016, JP Richardson diff --git a/node_modules/jsonfile/index.js b/node_modules/jsonfile/index.js new file mode 100644 index 00000000..0582868f --- /dev/null +++ b/node_modules/jsonfile/index.js @@ -0,0 +1,88 @@ +let _fs +try { + _fs = require('graceful-fs') +} catch (_) { + _fs = require('fs') +} +const universalify = require('universalify') +const { stringify, stripBom } = require('./utils') + +async function _readFile (file, options = {}) { + if (typeof options === 'string') { + options = { encoding: options } + } + + const fs = options.fs || _fs + + const shouldThrow = 'throws' in options ? options.throws : true + + let data = await universalify.fromCallback(fs.readFile)(file, options) + + data = stripBom(data) + + let obj + try { + obj = JSON.parse(data, options ? options.reviver : null) + } catch (err) { + if (shouldThrow) { + err.message = `${file}: ${err.message}` + throw err + } else { + return null + } + } + + return obj +} + +const readFile = universalify.fromPromise(_readFile) + +function readFileSync (file, options = {}) { + if (typeof options === 'string') { + options = { encoding: options } + } + + const fs = options.fs || _fs + + const shouldThrow = 'throws' in options ? options.throws : true + + try { + let content = fs.readFileSync(file, options) + content = stripBom(content) + return JSON.parse(content, options.reviver) + } catch (err) { + if (shouldThrow) { + err.message = `${file}: ${err.message}` + throw err + } else { + return null + } + } +} + +async function _writeFile (file, obj, options = {}) { + const fs = options.fs || _fs + + const str = stringify(obj, options) + + await universalify.fromCallback(fs.writeFile)(file, str, options) +} + +const writeFile = universalify.fromPromise(_writeFile) + +function writeFileSync (file, obj, options = {}) { + const fs = options.fs || _fs + + const str = stringify(obj, options) + // not sure if fs.writeFileSync returns anything, but just in case + return fs.writeFileSync(file, str, options) +} + +const jsonfile = { + readFile, + readFileSync, + writeFile, + writeFileSync +} + +module.exports = jsonfile diff --git a/node_modules/jsonfile/package.json b/node_modules/jsonfile/package.json new file mode 100644 index 00000000..4d01eb1d --- /dev/null +++ b/node_modules/jsonfile/package.json @@ -0,0 +1,40 @@ +{ + "name": "jsonfile", + "version": "6.1.0", + "description": "Easily read/write JSON files.", + "repository": { + "type": "git", + "url": "git@github.com:jprichardson/node-jsonfile.git" + }, + "keywords": [ + "read", + "write", + "file", + "json", + "fs", + "fs-extra" + ], + "author": "JP Richardson ", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + }, + "devDependencies": { + "mocha": "^8.2.0", + "rimraf": "^2.4.0", + "standard": "^16.0.1" + }, + "main": "index.js", + "files": [ + "index.js", + "utils.js" + ], + "scripts": { + "lint": "standard", + "test": "npm run lint && npm run unit", + "unit": "mocha" + } +} diff --git a/node_modules/jsonfile/utils.js b/node_modules/jsonfile/utils.js new file mode 100644 index 00000000..b5ff48e5 --- /dev/null +++ b/node_modules/jsonfile/utils.js @@ -0,0 +1,14 @@ +function stringify (obj, { EOL = '\n', finalEOL = true, replacer = null, spaces } = {}) { + const EOF = finalEOL ? EOL : '' + const str = JSON.stringify(obj, replacer, spaces) + + return str.replace(/\n/g, EOL) + EOF +} + +function stripBom (content) { + // we do this because JSON.parse would convert it to a utf8 string if encoding wasn't specified + if (Buffer.isBuffer(content)) content = content.toString('utf8') + return content.replace(/^\uFEFF/, '') +} + +module.exports = { stringify, stripBom } diff --git a/node_modules/lilconfig/dist/index.d.ts b/node_modules/lilconfig/dist/index.d.ts new file mode 100644 index 00000000..766c58ce --- /dev/null +++ b/node_modules/lilconfig/dist/index.d.ts @@ -0,0 +1,38 @@ +export declare type LilconfigResult = null | { + filepath: string; + config: any; + isEmpty?: boolean; +}; +interface OptionsBase { + stopDir?: string; + searchPlaces?: string[]; + ignoreEmptySearchPlaces?: boolean; + packageProp?: string | string[]; +} +export declare type Transform = TransformSync | ((result: LilconfigResult) => Promise); +export declare type TransformSync = (result: LilconfigResult) => LilconfigResult; +declare type LoaderResult = any; +export declare type LoaderSync = (filepath: string, content: string) => LoaderResult; +export declare type Loader = LoaderSync | ((filepath: string, content: string) => Promise); +export declare type Loaders = Record; +export declare type LoadersSync = Record; +export interface Options extends OptionsBase { + loaders?: Loaders; + transform?: Transform; +} +export interface OptionsSync extends OptionsBase { + loaders?: LoadersSync; + transform?: TransformSync; +} +export declare const defaultLoaders: LoadersSync; +declare type AsyncSearcher = { + search(searchFrom?: string): Promise; + load(filepath: string): Promise; +}; +export declare function lilconfig(name: string, options?: Partial): AsyncSearcher; +declare type SyncSearcher = { + search(searchFrom?: string): LilconfigResult; + load(filepath: string): LilconfigResult; +}; +export declare function lilconfigSync(name: string, options?: OptionsSync): SyncSearcher; +export {}; diff --git a/node_modules/lilconfig/dist/index.js b/node_modules/lilconfig/dist/index.js new file mode 100644 index 00000000..a153607e --- /dev/null +++ b/node_modules/lilconfig/dist/index.js @@ -0,0 +1,247 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.lilconfigSync = exports.lilconfig = exports.defaultLoaders = void 0; +const path = require("path"); +const fs = require("fs"); +const os = require("os"); +const fsReadFileAsync = fs.promises.readFile; +function getDefaultSearchPlaces(name) { + return [ + 'package.json', + `.${name}rc.json`, + `.${name}rc.js`, + `${name}.config.js`, + `.${name}rc.cjs`, + `${name}.config.cjs`, + ]; +} +function getSearchPaths(startDir, stopDir) { + return startDir + .split(path.sep) + .reduceRight((acc, _, ind, arr) => { + const currentPath = arr.slice(0, ind + 1).join(path.sep); + if (!acc.passedStopDir) + acc.searchPlaces.push(currentPath || path.sep); + if (currentPath === stopDir) + acc.passedStopDir = true; + return acc; + }, { searchPlaces: [], passedStopDir: false }).searchPlaces; +} +exports.defaultLoaders = Object.freeze({ + '.js': require, + '.json': require, + '.cjs': require, + noExt(_, content) { + return JSON.parse(content); + }, +}); +function getExtDesc(ext) { + return ext === 'noExt' ? 'files without extensions' : `extension "${ext}"`; +} +function getOptions(name, options = {}) { + const conf = { + stopDir: os.homedir(), + searchPlaces: getDefaultSearchPlaces(name), + ignoreEmptySearchPlaces: true, + transform: (x) => x, + packageProp: [name], + ...options, + loaders: { ...exports.defaultLoaders, ...options.loaders }, + }; + conf.searchPlaces.forEach(place => { + const key = path.extname(place) || 'noExt'; + const loader = conf.loaders[key]; + if (!loader) { + throw new Error(`No loader specified for ${getExtDesc(key)}, so searchPlaces item "${place}" is invalid`); + } + if (typeof loader !== 'function') { + throw new Error(`loader for ${getExtDesc(key)} is not a function (type provided: "${typeof loader}"), so searchPlaces item "${place}" is invalid`); + } + }); + return conf; +} +function getPackageProp(props, obj) { + if (typeof props === 'string' && props in obj) + return obj[props]; + return ((Array.isArray(props) ? props : props.split('.')).reduce((acc, prop) => (acc === undefined ? acc : acc[prop]), obj) || null); +} +function getSearchItems(searchPlaces, searchPaths) { + return searchPaths.reduce((acc, searchPath) => { + searchPlaces.forEach(fileName => acc.push({ + fileName, + filepath: path.join(searchPath, fileName), + loaderKey: path.extname(fileName) || 'noExt', + })); + return acc; + }, []); +} +function validateFilePath(filepath) { + if (!filepath) + throw new Error('load must pass a non-empty string'); +} +function validateLoader(loader, ext) { + if (!loader) + throw new Error(`No loader specified for extension "${ext}"`); + if (typeof loader !== 'function') + throw new Error('loader is not a function'); +} +function lilconfig(name, options) { + const { ignoreEmptySearchPlaces, loaders, packageProp, searchPlaces, stopDir, transform, } = getOptions(name, options); + return { + async search(searchFrom = process.cwd()) { + const searchPaths = getSearchPaths(searchFrom, stopDir); + const result = { + config: null, + filepath: '', + }; + const searchItems = getSearchItems(searchPlaces, searchPaths); + for (const { fileName, filepath, loaderKey } of searchItems) { + try { + await fs.promises.access(filepath); + } + catch (_a) { + continue; + } + const content = String(await fsReadFileAsync(filepath)); + const loader = loaders[loaderKey]; + if (fileName === 'package.json') { + const pkg = loader(filepath, content); + const maybeConfig = getPackageProp(packageProp, pkg); + if (maybeConfig != null) { + result.config = maybeConfig; + result.filepath = filepath; + break; + } + continue; + } + const isEmpty = content.trim() === ''; + if (isEmpty && ignoreEmptySearchPlaces) + continue; + if (isEmpty) { + result.isEmpty = true; + result.config = undefined; + } + else { + validateLoader(loader, loaderKey); + result.config = loader(filepath, content); + } + result.filepath = filepath; + break; + } + if (result.filepath === '' && result.config === null) + return transform(null); + return transform(result); + }, + async load(filepath) { + validateFilePath(filepath); + const absPath = path.resolve(process.cwd(), filepath); + const { base, ext } = path.parse(absPath); + const loaderKey = ext || 'noExt'; + const loader = loaders[loaderKey]; + validateLoader(loader, loaderKey); + const content = String(await fsReadFileAsync(absPath)); + if (base === 'package.json') { + const pkg = await loader(absPath, content); + return transform({ + config: getPackageProp(packageProp, pkg), + filepath: absPath, + }); + } + const result = { + config: null, + filepath: absPath, + }; + const isEmpty = content.trim() === ''; + if (isEmpty && ignoreEmptySearchPlaces) + return transform({ + config: undefined, + filepath: absPath, + isEmpty: true, + }); + result.config = isEmpty + ? undefined + : await loader(absPath, content); + return transform(isEmpty ? { ...result, isEmpty, config: undefined } : result); + }, + }; +} +exports.lilconfig = lilconfig; +function lilconfigSync(name, options) { + const { ignoreEmptySearchPlaces, loaders, packageProp, searchPlaces, stopDir, transform, } = getOptions(name, options); + return { + search(searchFrom = process.cwd()) { + const searchPaths = getSearchPaths(searchFrom, stopDir); + const result = { + config: null, + filepath: '', + }; + const searchItems = getSearchItems(searchPlaces, searchPaths); + for (const { fileName, filepath, loaderKey } of searchItems) { + try { + fs.accessSync(filepath); + } + catch (_a) { + continue; + } + const loader = loaders[loaderKey]; + const content = String(fs.readFileSync(filepath)); + if (fileName === 'package.json') { + const pkg = loader(filepath, content); + const maybeConfig = getPackageProp(packageProp, pkg); + if (maybeConfig != null) { + result.config = maybeConfig; + result.filepath = filepath; + break; + } + continue; + } + const isEmpty = content.trim() === ''; + if (isEmpty && ignoreEmptySearchPlaces) + continue; + if (isEmpty) { + result.isEmpty = true; + result.config = undefined; + } + else { + validateLoader(loader, loaderKey); + result.config = loader(filepath, content); + } + result.filepath = filepath; + break; + } + if (result.filepath === '' && result.config === null) + return transform(null); + return transform(result); + }, + load(filepath) { + validateFilePath(filepath); + const absPath = path.resolve(process.cwd(), filepath); + const { base, ext } = path.parse(absPath); + const loaderKey = ext || 'noExt'; + const loader = loaders[loaderKey]; + validateLoader(loader, loaderKey); + const content = String(fs.readFileSync(absPath)); + if (base === 'package.json') { + const pkg = loader(absPath, content); + return transform({ + config: getPackageProp(packageProp, pkg), + filepath: absPath, + }); + } + const result = { + config: null, + filepath: absPath, + }; + const isEmpty = content.trim() === ''; + if (isEmpty && ignoreEmptySearchPlaces) + return transform({ + filepath: absPath, + config: undefined, + isEmpty: true, + }); + result.config = isEmpty ? undefined : loader(absPath, content); + return transform(isEmpty ? { ...result, isEmpty, config: undefined } : result); + }, + }; +} +exports.lilconfigSync = lilconfigSync; diff --git a/node_modules/lilconfig/package.json b/node_modules/lilconfig/package.json new file mode 100644 index 00000000..9c114876 --- /dev/null +++ b/node_modules/lilconfig/package.json @@ -0,0 +1,48 @@ +{ + "name": "lilconfig", + "version": "2.0.4", + "description": "A zero-dependency alternative to cosmiconfig", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "scripts": { + "prebuild": "npm run clean", + "build": "tsc --declaration", + "postbuild": "du -h ./dist/*", + "clean": "rm -rf ./dist", + "test": "jest --coverage", + "lint": "eslint ./src/*.ts" + }, + "keywords": [ + "cosmiconfig", + "config", + "configuration", + "search" + ], + "files": [ + "dist/*" + ], + "repository": { + "type": "git", + "url": "https://github.com/antonk52/lilconfig" + }, + "bugs": "https://github.com/antonk52/lilconfig/issues", + "author": "antonk52", + "license": "MIT", + "devDependencies": { + "@types/jest": "^27.0.2", + "@types/node": "^14.17.2", + "@typescript-eslint/eslint-plugin": "^5.3.0", + "@typescript-eslint/parser": "^5.3.0", + "cosmiconfig": "^7.0.1", + "eslint": "^8.1.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0", + "jest": "^27.3.1", + "prettier": "^2.4.1", + "ts-jest": "^27.0.7", + "typescript": "^4.4.4" + }, + "engines": { + "node": ">=10" + } +} diff --git a/node_modules/lilconfig/readme.md b/node_modules/lilconfig/readme.md new file mode 100644 index 00000000..308df74d --- /dev/null +++ b/node_modules/lilconfig/readme.md @@ -0,0 +1,93 @@ +# Lilconfig ⚙️ +[![npm version](https://badge.fury.io/js/lilconfig.svg)](https://badge.fury.io/js/lilconfig) +[![install size](https://packagephobia.now.sh/badge?p=lilconfig)](https://packagephobia.now.sh/result?p=lilconfig) +[![Coverage Status](https://coveralls.io/repos/github/antonk52/lilconfig/badge.svg)](https://coveralls.io/github/antonk52/lilconfig) + +A zero-dependency alternative to [cosmiconfig](https://www.npmjs.com/package/cosmiconfig) with the same API. + +## Installation + +```sh +npm install lilconfig +``` + +## Usage + +```js +import {lilconfig, lilconfigSync} from 'lilconfig'; + +// all keys are optional +const options = { + stopDir: '/Users/you/some/dir', + searchPlaces: ['package.json', 'myapp.conf.js'], + ignoreEmptySearchPlaces: false +} + +lilconfig( + 'myapp', + options // optional +).search() // Promise + +lilconfigSync( + 'myapp', + options // optional +).load(pathToConfig) // LilconfigResult + +/** + * LilconfigResult + * { + * config: any; // your config + * filepath: string; + * } + */ +``` + +## Difference to `cosmiconfig` +Lilconfig does not intend to be 100% compatible with `cosmiconfig` but tries to mimic it where possible. The key differences are: +- **no** support for yaml files out of the box(`lilconfig` attempts to parse files with no extension as JSON instead of YAML). You can still add the support for YAML files by providing a loader, see an [example](#loaders-example) below. +- **no** cache + +### Options difference between the two. + +|cosmiconfig option | lilconfig | +|------------------------|-----------| +|cache | ❌ | +|loaders | ✅ | +|ignoreEmptySearchPlaces | ✅ | +|packageProp | ✅ | +|searchPlaces | ✅ | +|stopDir | ✅ | +|transform | ✅ | + +## Loaders example + +If you need the YAML support you can provide your own loader + +```js +import {lilconig} from 'lilconfig'; +import yaml from 'yaml'; + +function loadYaml(filepath, content) { + return yaml.parse(content); +} + +const options = { + loaders: { + '.yaml': loadYaml, + '.yml': loadYaml, + // loader for files with no extension + noExt: loadYaml + } +}; + +lilconfig('myapp', options) + .search() + .then(result => { + result // {config, filepath} + }); +``` + +## Version correlation + +- lilconig v1 → cosmiconfig v6 +- lilconig v2 → cosmiconfig v7 diff --git a/node_modules/merge2/LICENSE b/node_modules/merge2/LICENSE new file mode 100644 index 00000000..31dd9c72 --- /dev/null +++ b/node_modules/merge2/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2020 Teambition + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/merge2/README.md b/node_modules/merge2/README.md new file mode 100644 index 00000000..27f8eb99 --- /dev/null +++ b/node_modules/merge2/README.md @@ -0,0 +1,144 @@ +# merge2 + +Merge multiple streams into one stream in sequence or parallel. + +[![NPM version][npm-image]][npm-url] +[![Build Status][travis-image]][travis-url] +[![Downloads][downloads-image]][downloads-url] + +## Install + +Install with [npm](https://npmjs.org/package/merge2) + +```sh +npm install merge2 +``` + +## Usage + +```js +const gulp = require('gulp') +const merge2 = require('merge2') +const concat = require('gulp-concat') +const minifyHtml = require('gulp-minify-html') +const ngtemplate = require('gulp-ngtemplate') + +gulp.task('app-js', function () { + return merge2( + gulp.src('static/src/tpl/*.html') + .pipe(minifyHtml({empty: true})) + .pipe(ngtemplate({ + module: 'genTemplates', + standalone: true + }) + ), gulp.src([ + 'static/src/js/app.js', + 'static/src/js/locale_zh-cn.js', + 'static/src/js/router.js', + 'static/src/js/tools.js', + 'static/src/js/services.js', + 'static/src/js/filters.js', + 'static/src/js/directives.js', + 'static/src/js/controllers.js' + ]) + ) + .pipe(concat('app.js')) + .pipe(gulp.dest('static/dist/js/')) +}) +``` + +```js +const stream = merge2([stream1, stream2], stream3, {end: false}) +//... +stream.add(stream4, stream5) +//.. +stream.end() +``` + +```js +// equal to merge2([stream1, stream2], stream3) +const stream = merge2() +stream.add([stream1, stream2]) +stream.add(stream3) +``` + +```js +// merge order: +// 1. merge `stream1`; +// 2. merge `stream2` and `stream3` in parallel after `stream1` merged; +// 3. merge 'stream4' after `stream2` and `stream3` merged; +const stream = merge2(stream1, [stream2, stream3], stream4) + +// merge order: +// 1. merge `stream5` and `stream6` in parallel after `stream4` merged; +// 2. merge 'stream7' after `stream5` and `stream6` merged; +stream.add([stream5, stream6], stream7) +``` + +```js +// nest merge +// equal to merge2(stream1, stream2, stream6, stream3, [stream4, stream5]); +const streamA = merge2(stream1, stream2) +const streamB = merge2(stream3, [stream4, stream5]) +const stream = merge2(streamA, streamB) +streamA.add(stream6) +``` + +## API + +```js +const merge2 = require('merge2') +``` + +### merge2() + +### merge2(options) + +### merge2(stream1, stream2, ..., streamN) + +### merge2(stream1, stream2, ..., streamN, options) + +### merge2(stream1, [stream2, stream3, ...], streamN, options) + +return a duplex stream (mergedStream). streams in array will be merged in parallel. + +### mergedStream.add(stream) + +### mergedStream.add(stream1, [stream2, stream3, ...], ...) + +return the mergedStream. + +### mergedStream.on('queueDrain', function() {}) + +It will emit 'queueDrain' when all streams merged. If you set `end === false` in options, this event give you a notice that should add more streams to merge or end the mergedStream. + +#### stream + +*option* +Type: `Readable` or `Duplex` or `Transform` stream. + +#### options + +*option* +Type: `Object`. + +* **end** - `Boolean` - if `end === false` then mergedStream will not be auto ended, you should end by yourself. **Default:** `undefined` + +* **pipeError** - `Boolean` - if `pipeError === true` then mergedStream will emit `error` event from source streams. **Default:** `undefined` + +* **objectMode** - `Boolean` . **Default:** `true` + +`objectMode` and other options(`highWaterMark`, `defaultEncoding` ...) is same as Node.js `Stream`. + +## License + +MIT © [Teambition](https://www.teambition.com) + +[npm-url]: https://npmjs.org/package/merge2 +[npm-image]: http://img.shields.io/npm/v/merge2.svg + +[travis-url]: https://travis-ci.org/teambition/merge2 +[travis-image]: http://img.shields.io/travis/teambition/merge2.svg + +[downloads-url]: https://npmjs.org/package/merge2 +[downloads-image]: http://img.shields.io/npm/dm/merge2.svg?style=flat-square diff --git a/node_modules/merge2/index.js b/node_modules/merge2/index.js new file mode 100644 index 00000000..78a61edf --- /dev/null +++ b/node_modules/merge2/index.js @@ -0,0 +1,144 @@ +'use strict' +/* + * merge2 + * https://github.com/teambition/merge2 + * + * Copyright (c) 2014-2020 Teambition + * Licensed under the MIT license. + */ +const Stream = require('stream') +const PassThrough = Stream.PassThrough +const slice = Array.prototype.slice + +module.exports = merge2 + +function merge2 () { + const streamsQueue = [] + const args = slice.call(arguments) + let merging = false + let options = args[args.length - 1] + + if (options && !Array.isArray(options) && options.pipe == null) { + args.pop() + } else { + options = {} + } + + const doEnd = options.end !== false + const doPipeError = options.pipeError === true + if (options.objectMode == null) { + options.objectMode = true + } + if (options.highWaterMark == null) { + options.highWaterMark = 64 * 1024 + } + const mergedStream = PassThrough(options) + + function addStream () { + for (let i = 0, len = arguments.length; i < len; i++) { + streamsQueue.push(pauseStreams(arguments[i], options)) + } + mergeStream() + return this + } + + function mergeStream () { + if (merging) { + return + } + merging = true + + let streams = streamsQueue.shift() + if (!streams) { + process.nextTick(endStream) + return + } + if (!Array.isArray(streams)) { + streams = [streams] + } + + let pipesCount = streams.length + 1 + + function next () { + if (--pipesCount > 0) { + return + } + merging = false + mergeStream() + } + + function pipe (stream) { + function onend () { + stream.removeListener('merge2UnpipeEnd', onend) + stream.removeListener('end', onend) + if (doPipeError) { + stream.removeListener('error', onerror) + } + next() + } + function onerror (err) { + mergedStream.emit('error', err) + } + // skip ended stream + if (stream._readableState.endEmitted) { + return next() + } + + stream.on('merge2UnpipeEnd', onend) + stream.on('end', onend) + + if (doPipeError) { + stream.on('error', onerror) + } + + stream.pipe(mergedStream, { end: false }) + // compatible for old stream + stream.resume() + } + + for (let i = 0; i < streams.length; i++) { + pipe(streams[i]) + } + + next() + } + + function endStream () { + merging = false + // emit 'queueDrain' when all streams merged. + mergedStream.emit('queueDrain') + if (doEnd) { + mergedStream.end() + } + } + + mergedStream.setMaxListeners(0) + mergedStream.add = addStream + mergedStream.on('unpipe', function (stream) { + stream.emit('merge2UnpipeEnd') + }) + + if (args.length) { + addStream.apply(null, args) + } + return mergedStream +} + +// check and pause streams for pipe. +function pauseStreams (streams, options) { + if (!Array.isArray(streams)) { + // Backwards-compat with old-style streams + if (!streams._readableState && streams.pipe) { + streams = streams.pipe(PassThrough(options)) + } + if (!streams._readableState || !streams.pause || !streams.pipe) { + throw new Error('Only readable stream can be merged.') + } + streams.pause() + } else { + for (let i = 0, len = streams.length; i < len; i++) { + streams[i] = pauseStreams(streams[i], options) + } + } + return streams +} diff --git a/node_modules/merge2/package.json b/node_modules/merge2/package.json new file mode 100644 index 00000000..7777307f --- /dev/null +++ b/node_modules/merge2/package.json @@ -0,0 +1,43 @@ +{ + "name": "merge2", + "description": "Merge multiple streams into one stream in sequence or parallel.", + "authors": [ + "Yan Qing " + ], + "license": "MIT", + "version": "1.4.1", + "main": "./index.js", + "repository": { + "type": "git", + "url": "git@github.com:teambition/merge2.git" + }, + "homepage": "https://github.com/teambition/merge2", + "keywords": [ + "merge2", + "multiple", + "sequence", + "parallel", + "merge", + "stream", + "merge stream", + "sync" + ], + "engines": { + "node": ">= 8" + }, + "dependencies": {}, + "devDependencies": { + "standard": "^14.3.4", + "through2": "^3.0.1", + "thunks": "^4.9.6", + "tman": "^1.10.0", + "to-through": "^2.0.0" + }, + "scripts": { + "test": "standard && tman" + }, + "files": [ + "README.md", + "index.js" + ] +} diff --git a/node_modules/micromatch/CHANGELOG.md b/node_modules/micromatch/CHANGELOG.md new file mode 100644 index 00000000..fc6d456a --- /dev/null +++ b/node_modules/micromatch/CHANGELOG.md @@ -0,0 +1,109 @@ +# Release history + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). + +
+ Guiding Principles + +- Changelogs are for humans, not machines. +- There should be an entry for every single version. +- The same types of changes should be grouped. +- Versions and sections should be linkable. +- The latest version comes first. +- The release date of each versions is displayed. +- Mention whether you follow Semantic Versioning. + +
+ +
+ Types of changes + +Changelog entries are classified using the following labels _(from [keep-a-changelog](http://keepachangelog.com/)_): + +- `Added` for new features. +- `Changed` for changes in existing functionality. +- `Deprecated` for soon-to-be removed features. +- `Removed` for now removed features. +- `Fixed` for any bug fixes. +- `Security` in case of vulnerabilities. + +
+ +## [4.0.0] - 2019-03-20 + +### Added + +- Adds support for `options.onMatch`. See the readme for details +- Adds support for `options.onIgnore`. See the readme for details +- Adds support for `options.onResult`. See the readme for details + + +### Breaking changes + +- Require Node.js >= 8.6 +- Removed support for passing an array of brace patterns to `micromatch.braces()`. +- To strictly enforce closing brackets (for `{`, `[`, and `(`), you must now use `strictBrackets=true` instead of `strictErrors`. +- `cache` - caching and all related options and methods have been removed +- `options.unixify` was renamed to `options.windows` +- `options.nodupes` Was removed. Duplicates are always removed by default. You can override this with custom behavior by using the `onMatch`, `onResult` and `onIgnore` functions. +- `options.snapdragon` was removed, as snapdragon is no longer used. +- `options.sourcemap` was removed, as snapdragon is no longer used, which provided sourcemap support. + +## [3.0.0] - 2017-04-11 + +Complete overhaul, with 36,000+ new unit tests validated against actual output generated by Bash and minimatch. More specifically, 35,000+ of the tests: + + - micromatch results are directly compared to bash results + - in rare cases, when micromatch and bash disagree, micromatch's results are compared to minimatch's results + - micromatch is much more accurate than minimatch, so there were cases where I had to make assumptions. I'll try to document these. + +This refactor introduces a parser and compiler that are supersets of more granular parsers and compilers from other sub-modules. Each of these sub-modules has a singular responsibility and focuses on a certain type of matching that aligns with a specific part of the Bash "expansion" API. + +These sub-modules work like plugins to seamlessly create the micromatch parser/compiler, so that strings are parsed in one pass, an [AST is created](https://gist.github.com/jonschlinkert/099c8914f56529f75bc757cc9e5e8e2a), then a new string is generated by the compiler. + +Here are those sub-modules with links to related prs on those modules if you want to see how they contribute to this code: + +[nanomatch](https://github.com/jonschlinkert/nanomatch) (new library) - glob expansion (`*`, `**`, `?` and `[...]`)) +[braces](https://github.com/jonschlinkert/braces/pull/10) - brace expansion (`{1..10}`, `{a,b,c}`, etc) +[extglob](https://github.com/jonschlinkert/extglob/pull/5) - extended globs (`!(a|b)`, `@(!(foo|bar))`, etc) +[expand-brackets](https://github.com/jonschlinkert/expand-brackets/pull/5) - POSIX character classes `[[:alpha:][:digit:]]` + +**Added** + + - source map support (optionally created when using parse or compile - I have no idea what the use case is yet, but they come for free) (note that source maps are not generated for brace expansion at present, since the braces compiler uses a different strategy. I'll update if/when this changes). + - parser is exposed, so that implementors can customize or override specific micromatch parsers if necessary + - compiler is exposed, so that implementors can customize or override specific micromatch compilers if necessary + +**Fixed** + + - more accurate matching (passes 100% of Bash 4.3 of the brace expansion and extglob unit tests, as well as all Bash glob tests that are relevant to node.js usage, all minimatch tests, all brace-expansion tests, and also passes a couple of tests that bash fails) + - even safer - micromatch has always generated optimized patterns so it's not subject to DoS exploits like minimatch (completely different than the regex DoS issue, minimatch and multimatch are still openly exposed to being used for DoS attacks), but more safeguards were built into this refactor + +**Changed** + + - the public API of this library did not change in this version and should be safe to upgrade without changing implentor code. However, we have released this as a major version for the following reasons: + - out of an abundance of caution due to the large amount of code changed in this release + - we have improved parser accuracy to such a degree that some implementors using invalid globs have noted change in behavior. If this is the case for you, please check that you are using a valid glob expression before logging a bug with this library + +## [1.0.1] - 2016-12-12 + +**Added** + +- Support for windows path edge cases where backslashes are used in brackets or other unusual combinations. + +## [1.0.0] - 2016-12-12 + +Stable release. + +## [0.1.0] - 2016-10-08 + +First release. + + +[Unreleased]: https://github.com/jonschlinkert/micromatch/compare/0.1.0...HEAD +[0.2.0]: https://github.com/jonschlinkert/micromatch/compare/0.1.0...0.2.0 + +[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog diff --git a/node_modules/micromatch/LICENSE b/node_modules/micromatch/LICENSE new file mode 100755 index 00000000..9af4a67d --- /dev/null +++ b/node_modules/micromatch/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/micromatch/README.md b/node_modules/micromatch/README.md new file mode 100644 index 00000000..c6925297 --- /dev/null +++ b/node_modules/micromatch/README.md @@ -0,0 +1,1008 @@ +# micromatch [![NPM version](https://img.shields.io/npm/v/micromatch.svg?style=flat)](https://www.npmjs.com/package/micromatch) [![NPM monthly downloads](https://img.shields.io/npm/dm/micromatch.svg?style=flat)](https://npmjs.org/package/micromatch) [![NPM total downloads](https://img.shields.io/npm/dt/micromatch.svg?style=flat)](https://npmjs.org/package/micromatch) [![Linux Build Status](https://img.shields.io/travis/micromatch/micromatch.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/micromatch) + +> Glob matching for javascript/node.js. A replacement and faster alternative to minimatch and multimatch. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Table of Contents + +
+Details + +- [Install](#install) +- [Quickstart](#quickstart) +- [Why use micromatch?](#why-use-micromatch) + * [Matching features](#matching-features) +- [Switching to micromatch](#switching-to-micromatch) + * [From minimatch](#from-minimatch) + * [From multimatch](#from-multimatch) +- [API](#api) +- [Options](#options) +- [Options Examples](#options-examples) + * [options.basename](#optionsbasename) + * [options.bash](#optionsbash) + * [options.expandRange](#optionsexpandrange) + * [options.format](#optionsformat) + * [options.ignore](#optionsignore) + * [options.matchBase](#optionsmatchbase) + * [options.noextglob](#optionsnoextglob) + * [options.nonegate](#optionsnonegate) + * [options.noglobstar](#optionsnoglobstar) + * [options.nonull](#optionsnonull) + * [options.nullglob](#optionsnullglob) + * [options.onIgnore](#optionsonignore) + * [options.onMatch](#optionsonmatch) + * [options.onResult](#optionsonresult) + * [options.posixSlashes](#optionsposixslashes) + * [options.unescape](#optionsunescape) +- [Extended globbing](#extended-globbing) + * [Extglobs](#extglobs) + * [Braces](#braces) + * [Regex character classes](#regex-character-classes) + * [Regex groups](#regex-groups) + * [POSIX bracket expressions](#posix-bracket-expressions) +- [Notes](#notes) + * [Bash 4.3 parity](#bash-43-parity) + * [Backslashes](#backslashes) +- [Benchmarks](#benchmarks) + * [Running benchmarks](#running-benchmarks) + * [Latest results](#latest-results) +- [Contributing](#contributing) +- [About](#about) + +
+ +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save micromatch +``` + +## Quickstart + +```js +const micromatch = require('micromatch'); +// micromatch(list, patterns[, options]); +``` + +The [main export](#micromatch) takes a list of strings and one or more glob patterns: + +```js +console.log(micromatch(['foo', 'bar', 'baz', 'qux'], ['f*', 'b*'])) //=> ['foo', 'bar', 'baz'] +console.log(micromatch(['foo', 'bar', 'baz', 'qux'], ['*', '!b*'])) //=> ['foo', 'qux'] +``` + +Use [.isMatch()](#ismatch) to for boolean matching: + +```js +console.log(micromatch.isMatch('foo', 'f*')) //=> true +console.log(micromatch.isMatch('foo', ['b*', 'f*'])) //=> true +``` + +[Switching](#switching-to-micromatch) from minimatch and multimatch is easy! + +
+ +## Why use micromatch? + +> micromatch is a [replacement](#switching-to-micromatch) for minimatch and multimatch + +* Supports all of the same matching features as [minimatch](https://github.com/isaacs/minimatch) and [multimatch](https://github.com/sindresorhus/multimatch) +* More complete support for the Bash 4.3 specification than minimatch and multimatch. Micromatch passes _all of the spec tests_ from bash, including some that bash still fails. +* **Fast & Performant** - Loads in about 5ms and performs [fast matches](#benchmarks). +* **Glob matching** - Using wildcards (`*` and `?`), globstars (`**`) for nested directories +* **[Advanced globbing](#extended-globbing)** - Supports [extglobs](#extglobs), [braces](#braces-1), and [POSIX brackets](#posix-bracket-expressions), and support for escaping special characters with `\` or quotes. +* **Accurate** - Covers more scenarios [than minimatch](https://github.com/yarnpkg/yarn/pull/3339) +* **Well tested** - More than 5,000 [test assertions](./test) +* **Windows support** - More reliable windows support than minimatch and multimatch. +* **[Safe](https://github.com/micromatch/braces#braces-is-safe)** - Micromatch is not subject to DoS with brace patterns like minimatch and multimatch. + +### Matching features + +* Support for multiple glob patterns (no need for wrappers like multimatch) +* Wildcards (`**`, `*.js`) +* Negation (`'!a/*.js'`, `'*!(b).js']`) +* [extglobs](#extglobs) (`+(x|y)`, `!(a|b)`) +* [POSIX character classes](#posix-bracket-expressions) (`[[:alpha:][:digit:]]`) +* [brace expansion](https://github.com/micromatch/braces) (`foo/{1..5}.md`, `bar/{a,b,c}.js`) +* regex character classes (`foo-[1-5].js`) +* regex logical "or" (`foo/(abc|xyz).js`) + +You can mix and match these features to create whatever patterns you need! + +## Switching to micromatch + +_(There is one notable difference between micromatch and minimatch in regards to how backslashes are handled. See [the notes about backslashes](#backslashes) for more information.)_ + +### From minimatch + +Use [micromatch.isMatch()](#ismatch) instead of `minimatch()`: + +```js +console.log(micromatch.isMatch('foo', 'b*')); //=> false +``` + +Use [micromatch.match()](#match) instead of `minimatch.match()`: + +```js +console.log(micromatch.match(['foo', 'bar'], 'b*')); //=> 'bar' +``` + +### From multimatch + +Same signature: + +```js +console.log(micromatch(['foo', 'bar', 'baz'], ['f*', '*z'])); //=> ['foo', 'baz'] +``` + +## API + +**Params** + +* `list` **{String|Array}**: List of strings to match. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `options` **{Object}**: See available [options](#options) +* `returns` **{Array}**: Returns an array of matches + +**Example** + +```js +const mm = require('micromatch'); +// mm(list, patterns[, options]); + +console.log(mm(['a.js', 'a.txt'], ['*.js'])); +//=> [ 'a.js' ] +``` + +### [.matcher](index.js#L104) + +Returns a matcher function from the given glob `pattern` and `options`. The returned function takes a string to match as its only argument and returns true if the string is a match. + +**Params** + +* `pattern` **{String}**: Glob pattern +* `options` **{Object}** +* `returns` **{Function}**: Returns a matcher function. + +**Example** + +```js +const mm = require('micromatch'); +// mm.matcher(pattern[, options]); + +const isMatch = mm.matcher('*.!(*a)'); +console.log(isMatch('a.a')); //=> false +console.log(isMatch('a.b')); //=> true +``` + +### [.isMatch](index.js#L123) + +Returns true if **any** of the given glob `patterns` match the specified `string`. + +**Params** + +* `str` **{String}**: The string to test. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `[options]` **{Object}**: See available [options](#options). +* `returns` **{Boolean}**: Returns true if any patterns match `str` + +**Example** + +```js +const mm = require('micromatch'); +// mm.isMatch(string, patterns[, options]); + +console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true +console.log(mm.isMatch('a.a', 'b.*')); //=> false +``` + +### [.not](index.js#L148) + +Returns a list of strings that _**do not match any**_ of the given `patterns`. + +**Params** + +* `list` **{Array}**: Array of strings to match. +* `patterns` **{String|Array}**: One or more glob pattern to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Array}**: Returns an array of strings that **do not match** the given patterns. + +**Example** + +```js +const mm = require('micromatch'); +// mm.not(list, patterns[, options]); + +console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a')); +//=> ['b.b', 'c.c'] +``` + +### [.contains](index.js#L188) + +Returns true if the given `string` contains the given pattern. Similar to [.isMatch](#isMatch) but the pattern can match any part of the string. + +**Params** + +* `str` **{String}**: The string to match. +* `patterns` **{String|Array}**: Glob pattern to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Boolean}**: Returns true if any of the patterns matches any part of `str`. + +**Example** + +```js +var mm = require('micromatch'); +// mm.contains(string, pattern[, options]); + +console.log(mm.contains('aa/bb/cc', '*b')); +//=> true +console.log(mm.contains('aa/bb/cc', '*d')); +//=> false +``` + +### [.matchKeys](index.js#L230) + +Filter the keys of the given object with the given `glob` pattern and `options`. Does not attempt to match nested keys. If you need this feature, use [glob-object](https://github.com/jonschlinkert/glob-object) instead. + +**Params** + +* `object` **{Object}**: The object with keys to filter. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Object}**: Returns an object with only keys that match the given patterns. + +**Example** + +```js +const mm = require('micromatch'); +// mm.matchKeys(object, patterns[, options]); + +const obj = { aa: 'a', ab: 'b', ac: 'c' }; +console.log(mm.matchKeys(obj, '*b')); +//=> { ab: 'b' } +``` + +### [.some](index.js#L259) + +Returns true if some of the strings in the given `list` match any of the given glob `patterns`. + +**Params** + +* `list` **{String|Array}**: The string or array of strings to test. Returns as soon as the first match is found. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Boolean}**: Returns true if any `patterns` matches any of the strings in `list` + +**Example** + +```js +const mm = require('micromatch'); +// mm.some(list, patterns[, options]); + +console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); +// true +console.log(mm.some(['foo.js'], ['*.js', '!foo.js'])); +// false +``` + +### [.every](index.js#L295) + +Returns true if every string in the given `list` matches any of the given glob `patterns`. + +**Params** + +* `list` **{String|Array}**: The string or array of strings to test. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Boolean}**: Returns true if all `patterns` matches all of the strings in `list` + +**Example** + +```js +const mm = require('micromatch'); +// mm.every(list, patterns[, options]); + +console.log(mm.every('foo.js', ['foo.js'])); +// true +console.log(mm.every(['foo.js', 'bar.js'], ['*.js'])); +// true +console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); +// false +console.log(mm.every(['foo.js'], ['*.js', '!foo.js'])); +// false +``` + +### [.all](index.js#L334) + +Returns true if **all** of the given `patterns` match the specified string. + +**Params** + +* `str` **{String|Array}**: The string to test. +* `patterns` **{String|Array}**: One or more glob patterns to use for matching. +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Boolean}**: Returns true if any patterns match `str` + +**Example** + +```js +const mm = require('micromatch'); +// mm.all(string, patterns[, options]); + +console.log(mm.all('foo.js', ['foo.js'])); +// true + +console.log(mm.all('foo.js', ['*.js', '!foo.js'])); +// false + +console.log(mm.all('foo.js', ['*.js', 'foo.js'])); +// true + +console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js'])); +// true +``` + +### [.capture](index.js#L361) + +Returns an array of matches captured by `pattern` in `string, or`null` if the pattern did not match. + +**Params** + +* `glob` **{String}**: Glob pattern to use for matching. +* `input` **{String}**: String to match +* `options` **{Object}**: See available [options](#options) for changing how matches are performed +* `returns` **{Array|null}**: Returns an array of captures if the input matches the glob pattern, otherwise `null`. + +**Example** + +```js +const mm = require('micromatch'); +// mm.capture(pattern, string[, options]); + +console.log(mm.capture('test/*.js', 'test/foo.js')); +//=> ['foo'] +console.log(mm.capture('test/*.js', 'foo/bar.css')); +//=> null +``` + +### [.makeRe](index.js#L387) + +Create a regular expression from the given glob `pattern`. + +**Params** + +* `pattern` **{String}**: A glob pattern to convert to regex. +* `options` **{Object}** +* `returns` **{RegExp}**: Returns a regex created from the given pattern. + +**Example** + +```js +const mm = require('micromatch'); +// mm.makeRe(pattern[, options]); + +console.log(mm.makeRe('*.js')); +//=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/ +``` + +### [.scan](index.js#L403) + +Scan a glob pattern to separate the pattern into segments. Used by the [split](#split) method. + +**Params** + +* `pattern` **{String}** +* `options` **{Object}** +* `returns` **{Object}**: Returns an object with + +**Example** + +```js +const mm = require('micromatch'); +const state = mm.scan(pattern[, options]); +``` + +### [.parse](index.js#L419) + +Parse a glob pattern to create the source string for a regular expression. + +**Params** + +* `glob` **{String}** +* `options` **{Object}** +* `returns` **{Object}**: Returns an object with useful properties and output to be used as regex source string. + +**Example** + +```js +const mm = require('micromatch'); +const state = mm(pattern[, options]); +``` + +### [.braces](index.js#L446) + +Process the given brace `pattern`. + +**Params** + +* `pattern` **{String}**: String with brace pattern to process. +* `options` **{Object}**: Any [options](#options) to change how expansion is performed. See the [braces](https://github.com/micromatch/braces) library for all available options. +* `returns` **{Array}** + +**Example** + +```js +const { braces } = require('micromatch'); +console.log(braces('foo/{a,b,c}/bar')); +//=> [ 'foo/(a|b|c)/bar' ] + +console.log(braces('foo/{a,b,c}/bar', { expand: true })); +//=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ] +``` + +## Options + +| **Option** | **Type** | **Default value** | **Description** | +| --- | --- | --- | --- | +| `basename` | `boolean` | `false` | If set, then patterns without slashes will be matched against the basename of the path if it contains slashes. For example, `a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. | +| `bash` | `boolean` | `false` | Follow bash matching rules more strictly - disallows backslashes as escape characters, and treats single stars as globstars (`**`). | +| `capture` | `boolean` | `undefined` | Return regex matches in supporting methods. | +| `contains` | `boolean` | `undefined` | Allows glob to match any part of the given string(s). | +| `cwd` | `string` | `process.cwd()` | Current working directory. Used by `picomatch.split()` | +| `debug` | `boolean` | `undefined` | Debug regular expressions when an error is thrown. | +| `dot` | `boolean` | `false` | Match dotfiles. Otherwise dotfiles are ignored unless a `.` is explicitly defined in the pattern. | +| `expandRange` | `function` | `undefined` | Custom function for expanding ranges in brace patterns, such as `{a..z}`. The function receives the range values as two arguments, and it must return a string to be used in the generated regex. It's recommended that returned strings be wrapped in parentheses. This option is overridden by the `expandBrace` option. | +| `failglob` | `boolean` | `false` | Similar to the `failglob` behavior in Bash, throws an error when no matches are found. Based on the bash option of the same name. | +| `fastpaths` | `boolean` | `true` | To speed up processing, full parsing is skipped for a handful common glob patterns. Disable this behavior by setting this option to `false`. | +| `flags` | `boolean` | `undefined` | Regex flags to use in the generated regex. If defined, the `nocase` option will be overridden. | +| [format](#optionsformat) | `function` | `undefined` | Custom function for formatting the returned string. This is useful for removing leading slashes, converting Windows paths to Posix paths, etc. | +| `ignore` | `array\|string` | `undefined` | One or more glob patterns for excluding strings that should not be matched from the result. | +| `keepQuotes` | `boolean` | `false` | Retain quotes in the generated regex, since quotes may also be used as an alternative to backslashes. | +| `literalBrackets` | `boolean` | `undefined` | When `true`, brackets in the glob pattern will be escaped so that only literal brackets will be matched. | +| `lookbehinds` | `boolean` | `true` | Support regex positive and negative lookbehinds. Note that you must be using Node 8.1.10 or higher to enable regex lookbehinds. | +| `matchBase` | `boolean` | `false` | Alias for `basename` | +| `maxLength` | `boolean` | `65536` | Limit the max length of the input string. An error is thrown if the input string is longer than this value. | +| `nobrace` | `boolean` | `false` | Disable brace matching, so that `{a,b}` and `{1..3}` would be treated as literal characters. | +| `nobracket` | `boolean` | `undefined` | Disable matching with regex brackets. | +| `nocase` | `boolean` | `false` | Perform case-insensitive matching. Equivalent to the regex `i` flag. Note that this option is ignored when the `flags` option is defined. | +| `nodupes` | `boolean` | `true` | Deprecated, use `nounique` instead. This option will be removed in a future major release. By default duplicates are removed. Disable uniquification by setting this option to false. | +| `noext` | `boolean` | `false` | Alias for `noextglob` | +| `noextglob` | `boolean` | `false` | Disable support for matching with [extglobs](#extglobs) (like `+(a\|b)`) | +| `noglobstar` | `boolean` | `false` | Disable support for matching nested directories with globstars (`**`) | +| `nonegate` | `boolean` | `false` | Disable support for negating with leading `!` | +| `noquantifiers` | `boolean` | `false` | Disable support for regex quantifiers (like `a{1,2}`) and treat them as brace patterns to be expanded. | +| [onIgnore](#optionsonIgnore) | `function` | `undefined` | Function to be called on ignored items. | +| [onMatch](#optionsonMatch) | `function` | `undefined` | Function to be called on matched items. | +| [onResult](#optionsonResult) | `function` | `undefined` | Function to be called on all items, regardless of whether or not they are matched or ignored. | +| `posix` | `boolean` | `false` | Support [POSIX character classes](#posix-bracket-expressions) ("posix brackets"). | +| `posixSlashes` | `boolean` | `undefined` | Convert all slashes in file paths to forward slashes. This does not convert slashes in the glob pattern itself | +| `prepend` | `string` | `undefined` | String to prepend to the generated regex used for matching. | +| `regex` | `boolean` | `false` | Use regular expression rules for `+` (instead of matching literal `+`), and for stars that follow closing parentheses or brackets (as in `)*` and `]*`). | +| `strictBrackets` | `boolean` | `undefined` | Throw an error if brackets, braces, or parens are imbalanced. | +| `strictSlashes` | `boolean` | `undefined` | When true, picomatch won't match trailing slashes with single stars. | +| `unescape` | `boolean` | `undefined` | Remove preceding backslashes from escaped glob characters before creating the regular expression to perform matches. | +| `unixify` | `boolean` | `undefined` | Alias for `posixSlashes`, for backwards compatitibility. | + +## Options Examples + +### options.basename + +Allow glob patterns without slashes to match a file path based on its basename. Same behavior as [minimatch](https://github.com/isaacs/minimatch) option `matchBase`. + +**Type**: `Boolean` + +**Default**: `false` + +**Example** + +```js +micromatch(['a/b.js', 'a/c.md'], '*.js'); +//=> [] + +micromatch(['a/b.js', 'a/c.md'], '*.js', { basename: true }); +//=> ['a/b.js'] +``` + +### options.bash + +Enabled by default, this option enforces bash-like behavior with stars immediately following a bracket expression. Bash bracket expressions are similar to regex character classes, but unlike regex, a star following a bracket expression **does not repeat the bracketed characters**. Instead, the star is treated the same as any other star. + +**Type**: `Boolean` + +**Default**: `true` + +**Example** + +```js +const files = ['abc', 'ajz']; +console.log(micromatch(files, '[a-c]*')); +//=> ['abc', 'ajz'] + +console.log(micromatch(files, '[a-c]*', { bash: false })); +``` + +### options.expandRange + +**Type**: `function` + +**Default**: `undefined` + +Custom function for expanding ranges in brace patterns. The [fill-range](https://github.com/jonschlinkert/fill-range) library is ideal for this purpose, or you can use custom code to do whatever you need. + +**Example** + +The following example shows how to create a glob that matches a numeric folder name between `01` and `25`, with leading zeros. + +```js +const fill = require('fill-range'); +const regex = micromatch.makeRe('foo/{01..25}/bar', { + expandRange(a, b) { + return `(${fill(a, b, { toRegex: true })})`; + } +}); + +console.log(regex) +//=> /^(?:foo\/((?:0[1-9]|1[0-9]|2[0-5]))\/bar)$/ + +console.log(regex.test('foo/00/bar')) // false +console.log(regex.test('foo/01/bar')) // true +console.log(regex.test('foo/10/bar')) // true +console.log(regex.test('foo/22/bar')) // true +console.log(regex.test('foo/25/bar')) // true +console.log(regex.test('foo/26/bar')) // false +``` + +### options.format + +**Type**: `function` + +**Default**: `undefined` + +Custom function for formatting strings before they're matched. + +**Example** + +```js +// strip leading './' from strings +const format = str => str.replace(/^\.\//, ''); +const isMatch = picomatch('foo/*.js', { format }); +console.log(isMatch('./foo/bar.js')) //=> true +``` + +### options.ignore + +String or array of glob patterns to match files to ignore. + +**Type**: `String|Array` + +**Default**: `undefined` + +```js +const isMatch = micromatch.matcher('*', { ignore: 'f*' }); +console.log(isMatch('foo')) //=> false +console.log(isMatch('bar')) //=> true +console.log(isMatch('baz')) //=> true +``` + +### options.matchBase + +Alias for [options.basename](#options-basename). + +### options.noextglob + +Disable extglob support, so that [extglobs](#extglobs) are regarded as literal characters. + +**Type**: `Boolean` + +**Default**: `undefined` + +**Examples** + +```js +console.log(micromatch(['a/z', 'a/b', 'a/!(z)'], 'a/!(z)')); +//=> ['a/b', 'a/!(z)'] + +console.log(micromatch(['a/z', 'a/b', 'a/!(z)'], 'a/!(z)', { noextglob: true })); +//=> ['a/!(z)'] (matches only as literal characters) +``` + +### options.nonegate + +Disallow negation (`!`) patterns, and treat leading `!` as a literal character to match. + +**Type**: `Boolean` + +**Default**: `undefined` + +### options.noglobstar + +Disable matching with globstars (`**`). + +**Type**: `Boolean` + +**Default**: `undefined` + +```js +micromatch(['a/b', 'a/b/c', 'a/b/c/d'], 'a/**'); +//=> ['a/b', 'a/b/c', 'a/b/c/d'] + +micromatch(['a/b', 'a/b/c', 'a/b/c/d'], 'a/**', {noglobstar: true}); +//=> ['a/b'] +``` + +### options.nonull + +Alias for [options.nullglob](#options-nullglob). + +### options.nullglob + +If `true`, when no matches are found the actual (arrayified) glob pattern is returned instead of an empty array. Same behavior as [minimatch](https://github.com/isaacs/minimatch) option `nonull`. + +**Type**: `Boolean` + +**Default**: `undefined` + +### options.onIgnore + +```js +const onIgnore = ({ glob, regex, input, output }) => { + console.log({ glob, regex, input, output }); + // { glob: '*', regex: /^(?:(?!\.)(?=.)[^\/]*?\/?)$/, input: 'foo', output: 'foo' } +}; + +const isMatch = micromatch.matcher('*', { onIgnore, ignore: 'f*' }); +isMatch('foo'); +isMatch('bar'); +isMatch('baz'); +``` + +### options.onMatch + +```js +const onMatch = ({ glob, regex, input, output }) => { + console.log({ input, output }); + // { input: 'some\\path', output: 'some/path' } + // { input: 'some\\path', output: 'some/path' } + // { input: 'some\\path', output: 'some/path' } +}; + +const isMatch = micromatch.matcher('**', { onMatch, posixSlashes: true }); +isMatch('some\\path'); +isMatch('some\\path'); +isMatch('some\\path'); +``` + +### options.onResult + +```js +const onResult = ({ glob, regex, input, output }) => { + console.log({ glob, regex, input, output }); +}; + +const isMatch = micromatch('*', { onResult, ignore: 'f*' }); +isMatch('foo'); +isMatch('bar'); +isMatch('baz'); +``` + +### options.posixSlashes + +Convert path separators on returned files to posix/unix-style forward slashes. Aliased as `unixify` for backwards compatibility. + +**Type**: `Boolean` + +**Default**: `true` on windows, `false` everywhere else. + +**Example** + +```js +console.log(micromatch.match(['a\\b\\c'], 'a/**')); +//=> ['a/b/c'] + +console.log(micromatch.match(['a\\b\\c'], { posixSlashes: false })); +//=> ['a\\b\\c'] +``` + +### options.unescape + +Remove backslashes from escaped glob characters before creating the regular expression to perform matches. + +**Type**: `Boolean` + +**Default**: `undefined` + +**Example** + +In this example we want to match a literal `*`: + +```js +console.log(micromatch.match(['abc', 'a\\*c'], 'a\\*c')); +//=> ['a\\*c'] + +console.log(micromatch.match(['abc', 'a\\*c'], 'a\\*c', { unescape: true })); +//=> ['a*c'] +``` + +
+
+ +## Extended globbing + +Micromatch supports the following extended globbing features. + +### Extglobs + +Extended globbing, as described by the bash man page: + +| **pattern** | **regex equivalent** | **description** | +| --- | --- | --- | +| `?(pattern)` | `(pattern)?` | Matches zero or one occurrence of the given patterns | +| `*(pattern)` | `(pattern)*` | Matches zero or more occurrences of the given patterns | +| `+(pattern)` | `(pattern)+` | Matches one or more occurrences of the given patterns | +| `@(pattern)` | `(pattern)` * | Matches one of the given patterns | +| `!(pattern)` | N/A (equivalent regex is much more complicated) | Matches anything except one of the given patterns | + +* Note that `@` isn't a regex character. + +### Braces + +Brace patterns can be used to match specific ranges or sets of characters. + +**Example** + +The pattern `{f,b}*/{1..3}/{b,q}*` would match any of following strings: + +``` +foo/1/bar +foo/2/bar +foo/3/bar +baz/1/qux +baz/2/qux +baz/3/qux +``` + +Visit [braces](https://github.com/micromatch/braces) to see the full range of features and options related to brace expansion, or to create brace matching or expansion related issues. + +### Regex character classes + +Given the list: `['a.js', 'b.js', 'c.js', 'd.js', 'E.js']`: + +* `[ac].js`: matches both `a` and `c`, returning `['a.js', 'c.js']` +* `[b-d].js`: matches from `b` to `d`, returning `['b.js', 'c.js', 'd.js']` +* `a/[A-Z].js`: matches and uppercase letter, returning `['a/E.md']` + +Learn about [regex character classes](http://www.regular-expressions.info/charclass.html). + +### Regex groups + +Given `['a.js', 'b.js', 'c.js', 'd.js', 'E.js']`: + +* `(a|c).js`: would match either `a` or `c`, returning `['a.js', 'c.js']` +* `(b|d).js`: would match either `b` or `d`, returning `['b.js', 'd.js']` +* `(b|[A-Z]).js`: would match either `b` or an uppercase letter, returning `['b.js', 'E.js']` + +As with regex, parens can be nested, so patterns like `((a|b)|c)/b` will work. Although brace expansion might be friendlier to use, depending on preference. + +### POSIX bracket expressions + +POSIX brackets are intended to be more user-friendly than regex character classes. This of course is in the eye of the beholder. + +**Example** + +```js +console.log(micromatch.isMatch('a1', '[[:alpha:][:digit:]]')) //=> true +console.log(micromatch.isMatch('a1', '[[:alpha:][:alpha:]]')) //=> false +``` + +*** + +## Notes + +### Bash 4.3 parity + +Whenever possible matching behavior is based on behavior Bash 4.3, which is mostly consistent with minimatch. + +However, it's suprising how many edge cases and rabbit holes there are with glob matching, and since there is no real glob specification, and micromatch is more accurate than both Bash and minimatch, there are cases where best-guesses were made for behavior. In a few cases where Bash had no answers, we used wildmatch (used by git) as a fallback. + +### Backslashes + +There is an important, notable difference between minimatch and micromatch _in regards to how backslashes are handled_ in glob patterns. + +* Micromatch exclusively and explicitly reserves backslashes for escaping characters in a glob pattern, even on windows, which is consistent with bash behavior. _More importantly, unescaping globs can result in unsafe regular expressions_. +* Minimatch converts all backslashes to forward slashes, which means you can't use backslashes to escape any characters in your glob patterns. + +We made this decision for micromatch for a couple of reasons: + +* Consistency with bash conventions. +* Glob patterns are not filepaths. They are a type of [regular language](https://en.wikipedia.org/wiki/Regular_language) that is converted to a JavaScript regular expression. Thus, when forward slashes are defined in a glob pattern, the resulting regular expression will match windows or POSIX path separators just fine. + +**A note about joining paths to globs** + +Note that when you pass something like `path.join('foo', '*')` to micromatch, you are creating a filepath and expecting it to still work as a glob pattern. This causes problems on windows, since the `path.sep` is `\\`. + +In other words, since `\\` is reserved as an escape character in globs, on windows `path.join('foo', '*')` would result in `foo\\*`, which tells micromatch to match `*` as a literal character. This is the same behavior as bash. + +To solve this, you might be inspired to do something like `'foo\\*'.replace(/\\/g, '/')`, but this causes another, potentially much more serious, problem. + +## Benchmarks + +### Running benchmarks + +Install dependencies for running benchmarks: + +```sh +$ cd bench && npm install +``` + +Run the benchmarks: + +```sh +$ npm run bench +``` + +### Latest results + +As of April 10, 2021 (longer bars are better): + +```sh +# .makeRe star + micromatch x 2,232,802 ops/sec ±2.34% (89 runs sampled)) + minimatch x 781,018 ops/sec ±6.74% (92 runs sampled)) + +# .makeRe star; dot=true + micromatch x 1,863,453 ops/sec ±0.74% (93 runs sampled) + minimatch x 723,105 ops/sec ±0.75% (93 runs sampled) + +# .makeRe globstar + micromatch x 1,624,179 ops/sec ±2.22% (91 runs sampled) + minimatch x 1,117,230 ops/sec ±2.78% (86 runs sampled)) + +# .makeRe globstars + micromatch x 1,658,642 ops/sec ±0.86% (92 runs sampled) + minimatch x 741,224 ops/sec ±1.24% (89 runs sampled)) + +# .makeRe with leading star + micromatch x 1,525,014 ops/sec ±1.63% (90 runs sampled) + minimatch x 561,074 ops/sec ±3.07% (89 runs sampled) + +# .makeRe - braces + micromatch x 172,478 ops/sec ±2.37% (78 runs sampled) + minimatch x 96,087 ops/sec ±2.34% (88 runs sampled))) + +# .makeRe braces - range (expanded) + micromatch x 26,973 ops/sec ±0.84% (89 runs sampled) + minimatch x 3,023 ops/sec ±0.99% (90 runs sampled)) + +# .makeRe braces - range (compiled) + micromatch x 152,892 ops/sec ±1.67% (83 runs sampled) + minimatch x 992 ops/sec ±3.50% (89 runs sampled)d)) + +# .makeRe braces - nested ranges (expanded) + micromatch x 15,816 ops/sec ±13.05% (80 runs sampled) + minimatch x 2,953 ops/sec ±1.64% (91 runs sampled) + +# .makeRe braces - nested ranges (compiled) + micromatch x 110,881 ops/sec ±1.85% (82 runs sampled) + minimatch x 1,008 ops/sec ±1.51% (91 runs sampled) + +# .makeRe braces - set (compiled) + micromatch x 134,930 ops/sec ±3.54% (63 runs sampled)) + minimatch x 43,242 ops/sec ±0.60% (93 runs sampled) + +# .makeRe braces - nested sets (compiled) + micromatch x 94,455 ops/sec ±1.74% (69 runs sampled)) + minimatch x 27,720 ops/sec ±1.84% (93 runs sampled)) +``` + +## Contributing + +All contributions are welcome! Please read [the contributing guide](.github/contributing.md) to get started. + +**Bug reports** + +Please create an issue if you encounter a bug or matching behavior that doesn't seem correct. If you find a matching-related issue, please: + +* [research existing issues first](../../issues) (open and closed) +* visit the [GNU Bash documentation](https://www.gnu.org/software/bash/manual/) to see how Bash deals with the pattern +* visit the [minimatch](https://github.com/isaacs/minimatch) documentation to cross-check expected behavior in node.js +* if all else fails, since there is no real specification for globs we will probably need to discuss expected behavior and decide how to resolve it. which means any detail you can provide to help with this discussion would be greatly appreciated. + +**Platform issues** + +It's important to us that micromatch work consistently on all platforms. If you encounter any platform-specific matching or path related issues, please let us know (pull requests are also greatly appreciated). + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +Please read the [contributing guide](.github/contributing.md) for advice on opening issues, pull requests, and coding standards. + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [braces](https://www.npmjs.com/package/braces): Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support… [more](https://github.com/micromatch/braces) | [homepage](https://github.com/micromatch/braces "Bash-like brace expansion, implemented in JavaScript. Safer than other brace expansion libs, with complete support for the Bash 4.3 braces specification, without sacrificing speed.") +* [expand-brackets](https://www.npmjs.com/package/expand-brackets): Expand POSIX bracket expressions (character classes) in glob patterns. | [homepage](https://github.com/micromatch/expand-brackets "Expand POSIX bracket expressions (character classes) in glob patterns.") +* [extglob](https://www.npmjs.com/package/extglob): Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob… [more](https://github.com/micromatch/extglob) | [homepage](https://github.com/micromatch/extglob "Extended glob support for JavaScript. Adds (almost) the expressive power of regular expressions to glob patterns.") +* [fill-range](https://www.npmjs.com/package/fill-range): Fill in a range of numbers or letters, optionally passing an increment or `step` to… [more](https://github.com/jonschlinkert/fill-range) | [homepage](https://github.com/jonschlinkert/fill-range "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`") +* [nanomatch](https://www.npmjs.com/package/nanomatch): Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but complete Bash… [more](https://github.com/micromatch/nanomatch) | [homepage](https://github.com/micromatch/nanomatch "Fast, minimal glob matcher for node.js. Similar to micromatch, minimatch and multimatch, but complete Bash 4.3 wildcard support only (no support for exglobs, posix brackets or braces)") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 508 | [jonschlinkert](https://github.com/jonschlinkert) | +| 12 | [es128](https://github.com/es128) | +| 8 | [doowb](https://github.com/doowb) | +| 6 | [paulmillr](https://github.com/paulmillr) | +| 5 | [mrmlnc](https://github.com/mrmlnc) | +| 4 | [danez](https://github.com/danez) | +| 3 | [DrPizza](https://github.com/DrPizza) | +| 2 | [TrySound](https://github.com/TrySound) | +| 2 | [mceIdo](https://github.com/mceIdo) | +| 2 | [Glazy](https://github.com/Glazy) | +| 2 | [MartinKolarik](https://github.com/MartinKolarik) | +| 2 | [Tvrqvoise](https://github.com/Tvrqvoise) | +| 1 | [amilajack](https://github.com/amilajack) | +| 1 | [Cslove](https://github.com/Cslove) | +| 1 | [devongovett](https://github.com/devongovett) | +| 1 | [DianeLooney](https://github.com/DianeLooney) | +| 1 | [UltCombo](https://github.com/UltCombo) | +| 1 | [frangio](https://github.com/frangio) | +| 1 | [juszczykjakub](https://github.com/juszczykjakub) | +| 1 | [muescha](https://github.com/muescha) | +| 1 | [sebdeckers](https://github.com/sebdeckers) | +| 1 | [tomByrer](https://github.com/tomByrer) | +| 1 | [fidian](https://github.com/fidian) | +| 1 | [simlu](https://github.com/simlu) | +| 1 | [wtgtybhertgeghgtwtg](https://github.com/wtgtybhertgeghgtwtg) | +| 1 | [yvele](https://github.com/yvele) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2021, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 10, 2021._ \ No newline at end of file diff --git a/node_modules/micromatch/index.js b/node_modules/micromatch/index.js new file mode 100644 index 00000000..7ac922bc --- /dev/null +++ b/node_modules/micromatch/index.js @@ -0,0 +1,467 @@ +'use strict'; + +const util = require('util'); +const braces = require('braces'); +const picomatch = require('picomatch'); +const utils = require('picomatch/lib/utils'); +const isEmptyString = val => val === '' || val === './'; + +/** + * Returns an array of strings that match one or more glob patterns. + * + * ```js + * const mm = require('micromatch'); + * // mm(list, patterns[, options]); + * + * console.log(mm(['a.js', 'a.txt'], ['*.js'])); + * //=> [ 'a.js' ] + * ``` + * @param {String|Array} `list` List of strings to match. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) + * @return {Array} Returns an array of matches + * @summary false + * @api public + */ + +const micromatch = (list, patterns, options) => { + patterns = [].concat(patterns); + list = [].concat(list); + + let omit = new Set(); + let keep = new Set(); + let items = new Set(); + let negatives = 0; + + let onResult = state => { + items.add(state.output); + if (options && options.onResult) { + options.onResult(state); + } + }; + + for (let i = 0; i < patterns.length; i++) { + let isMatch = picomatch(String(patterns[i]), { ...options, onResult }, true); + let negated = isMatch.state.negated || isMatch.state.negatedExtglob; + if (negated) negatives++; + + for (let item of list) { + let matched = isMatch(item, true); + + let match = negated ? !matched.isMatch : matched.isMatch; + if (!match) continue; + + if (negated) { + omit.add(matched.output); + } else { + omit.delete(matched.output); + keep.add(matched.output); + } + } + } + + let result = negatives === patterns.length ? [...items] : [...keep]; + let matches = result.filter(item => !omit.has(item)); + + if (options && matches.length === 0) { + if (options.failglob === true) { + throw new Error(`No matches found for "${patterns.join(', ')}"`); + } + + if (options.nonull === true || options.nullglob === true) { + return options.unescape ? patterns.map(p => p.replace(/\\/g, '')) : patterns; + } + } + + return matches; +}; + +/** + * Backwards compatibility + */ + +micromatch.match = micromatch; + +/** + * Returns a matcher function from the given glob `pattern` and `options`. + * The returned function takes a string to match as its only argument and returns + * true if the string is a match. + * + * ```js + * const mm = require('micromatch'); + * // mm.matcher(pattern[, options]); + * + * const isMatch = mm.matcher('*.!(*a)'); + * console.log(isMatch('a.a')); //=> false + * console.log(isMatch('a.b')); //=> true + * ``` + * @param {String} `pattern` Glob pattern + * @param {Object} `options` + * @return {Function} Returns a matcher function. + * @api public + */ + +micromatch.matcher = (pattern, options) => picomatch(pattern, options); + +/** + * Returns true if **any** of the given glob `patterns` match the specified `string`. + * + * ```js + * const mm = require('micromatch'); + * // mm.isMatch(string, patterns[, options]); + * + * console.log(mm.isMatch('a.a', ['b.*', '*.a'])); //=> true + * console.log(mm.isMatch('a.a', 'b.*')); //=> false + * ``` + * @param {String} `str` The string to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `[options]` See available [options](#options). + * @return {Boolean} Returns true if any patterns match `str` + * @api public + */ + +micromatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); + +/** + * Backwards compatibility + */ + +micromatch.any = micromatch.isMatch; + +/** + * Returns a list of strings that _**do not match any**_ of the given `patterns`. + * + * ```js + * const mm = require('micromatch'); + * // mm.not(list, patterns[, options]); + * + * console.log(mm.not(['a.a', 'b.b', 'c.c'], '*.a')); + * //=> ['b.b', 'c.c'] + * ``` + * @param {Array} `list` Array of strings to match. + * @param {String|Array} `patterns` One or more glob pattern to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Array} Returns an array of strings that **do not match** the given patterns. + * @api public + */ + +micromatch.not = (list, patterns, options = {}) => { + patterns = [].concat(patterns).map(String); + let result = new Set(); + let items = []; + + let onResult = state => { + if (options.onResult) options.onResult(state); + items.push(state.output); + }; + + let matches = micromatch(list, patterns, { ...options, onResult }); + + for (let item of items) { + if (!matches.includes(item)) { + result.add(item); + } + } + return [...result]; +}; + +/** + * Returns true if the given `string` contains the given pattern. Similar + * to [.isMatch](#isMatch) but the pattern can match any part of the string. + * + * ```js + * var mm = require('micromatch'); + * // mm.contains(string, pattern[, options]); + * + * console.log(mm.contains('aa/bb/cc', '*b')); + * //=> true + * console.log(mm.contains('aa/bb/cc', '*d')); + * //=> false + * ``` + * @param {String} `str` The string to match. + * @param {String|Array} `patterns` Glob pattern to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any of the patterns matches any part of `str`. + * @api public + */ + +micromatch.contains = (str, pattern, options) => { + if (typeof str !== 'string') { + throw new TypeError(`Expected a string: "${util.inspect(str)}"`); + } + + if (Array.isArray(pattern)) { + return pattern.some(p => micromatch.contains(str, p, options)); + } + + if (typeof pattern === 'string') { + if (isEmptyString(str) || isEmptyString(pattern)) { + return false; + } + + if (str.includes(pattern) || (str.startsWith('./') && str.slice(2).includes(pattern))) { + return true; + } + } + + return micromatch.isMatch(str, pattern, { ...options, contains: true }); +}; + +/** + * Filter the keys of the given object with the given `glob` pattern + * and `options`. Does not attempt to match nested keys. If you need this feature, + * use [glob-object][] instead. + * + * ```js + * const mm = require('micromatch'); + * // mm.matchKeys(object, patterns[, options]); + * + * const obj = { aa: 'a', ab: 'b', ac: 'c' }; + * console.log(mm.matchKeys(obj, '*b')); + * //=> { ab: 'b' } + * ``` + * @param {Object} `object` The object with keys to filter. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Object} Returns an object with only keys that match the given patterns. + * @api public + */ + +micromatch.matchKeys = (obj, patterns, options) => { + if (!utils.isObject(obj)) { + throw new TypeError('Expected the first argument to be an object'); + } + let keys = micromatch(Object.keys(obj), patterns, options); + let res = {}; + for (let key of keys) res[key] = obj[key]; + return res; +}; + +/** + * Returns true if some of the strings in the given `list` match any of the given glob `patterns`. + * + * ```js + * const mm = require('micromatch'); + * // mm.some(list, patterns[, options]); + * + * console.log(mm.some(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); + * // true + * console.log(mm.some(['foo.js'], ['*.js', '!foo.js'])); + * // false + * ``` + * @param {String|Array} `list` The string or array of strings to test. Returns as soon as the first match is found. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any `patterns` matches any of the strings in `list` + * @api public + */ + +micromatch.some = (list, patterns, options) => { + let items = [].concat(list); + + for (let pattern of [].concat(patterns)) { + let isMatch = picomatch(String(pattern), options); + if (items.some(item => isMatch(item))) { + return true; + } + } + return false; +}; + +/** + * Returns true if every string in the given `list` matches + * any of the given glob `patterns`. + * + * ```js + * const mm = require('micromatch'); + * // mm.every(list, patterns[, options]); + * + * console.log(mm.every('foo.js', ['foo.js'])); + * // true + * console.log(mm.every(['foo.js', 'bar.js'], ['*.js'])); + * // true + * console.log(mm.every(['foo.js', 'bar.js'], ['*.js', '!foo.js'])); + * // false + * console.log(mm.every(['foo.js'], ['*.js', '!foo.js'])); + * // false + * ``` + * @param {String|Array} `list` The string or array of strings to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if all `patterns` matches all of the strings in `list` + * @api public + */ + +micromatch.every = (list, patterns, options) => { + let items = [].concat(list); + + for (let pattern of [].concat(patterns)) { + let isMatch = picomatch(String(pattern), options); + if (!items.every(item => isMatch(item))) { + return false; + } + } + return true; +}; + +/** + * Returns true if **all** of the given `patterns` match + * the specified string. + * + * ```js + * const mm = require('micromatch'); + * // mm.all(string, patterns[, options]); + * + * console.log(mm.all('foo.js', ['foo.js'])); + * // true + * + * console.log(mm.all('foo.js', ['*.js', '!foo.js'])); + * // false + * + * console.log(mm.all('foo.js', ['*.js', 'foo.js'])); + * // true + * + * console.log(mm.all('foo.js', ['*.js', 'f*', '*o*', '*o.js'])); + * // true + * ``` + * @param {String|Array} `str` The string to test. + * @param {String|Array} `patterns` One or more glob patterns to use for matching. + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Boolean} Returns true if any patterns match `str` + * @api public + */ + +micromatch.all = (str, patterns, options) => { + if (typeof str !== 'string') { + throw new TypeError(`Expected a string: "${util.inspect(str)}"`); + } + + return [].concat(patterns).every(p => picomatch(p, options)(str)); +}; + +/** + * Returns an array of matches captured by `pattern` in `string, or `null` if the pattern did not match. + * + * ```js + * const mm = require('micromatch'); + * // mm.capture(pattern, string[, options]); + * + * console.log(mm.capture('test/*.js', 'test/foo.js')); + * //=> ['foo'] + * console.log(mm.capture('test/*.js', 'foo/bar.css')); + * //=> null + * ``` + * @param {String} `glob` Glob pattern to use for matching. + * @param {String} `input` String to match + * @param {Object} `options` See available [options](#options) for changing how matches are performed + * @return {Array|null} Returns an array of captures if the input matches the glob pattern, otherwise `null`. + * @api public + */ + +micromatch.capture = (glob, input, options) => { + let posix = utils.isWindows(options); + let regex = picomatch.makeRe(String(glob), { ...options, capture: true }); + let match = regex.exec(posix ? utils.toPosixSlashes(input) : input); + + if (match) { + return match.slice(1).map(v => v === void 0 ? '' : v); + } +}; + +/** + * Create a regular expression from the given glob `pattern`. + * + * ```js + * const mm = require('micromatch'); + * // mm.makeRe(pattern[, options]); + * + * console.log(mm.makeRe('*.js')); + * //=> /^(?:(\.[\\\/])?(?!\.)(?=.)[^\/]*?\.js)$/ + * ``` + * @param {String} `pattern` A glob pattern to convert to regex. + * @param {Object} `options` + * @return {RegExp} Returns a regex created from the given pattern. + * @api public + */ + +micromatch.makeRe = (...args) => picomatch.makeRe(...args); + +/** + * Scan a glob pattern to separate the pattern into segments. Used + * by the [split](#split) method. + * + * ```js + * const mm = require('micromatch'); + * const state = mm.scan(pattern[, options]); + * ``` + * @param {String} `pattern` + * @param {Object} `options` + * @return {Object} Returns an object with + * @api public + */ + +micromatch.scan = (...args) => picomatch.scan(...args); + +/** + * Parse a glob pattern to create the source string for a regular + * expression. + * + * ```js + * const mm = require('micromatch'); + * const state = mm(pattern[, options]); + * ``` + * @param {String} `glob` + * @param {Object} `options` + * @return {Object} Returns an object with useful properties and output to be used as regex source string. + * @api public + */ + +micromatch.parse = (patterns, options) => { + let res = []; + for (let pattern of [].concat(patterns || [])) { + for (let str of braces(String(pattern), options)) { + res.push(picomatch.parse(str, options)); + } + } + return res; +}; + +/** + * Process the given brace `pattern`. + * + * ```js + * const { braces } = require('micromatch'); + * console.log(braces('foo/{a,b,c}/bar')); + * //=> [ 'foo/(a|b|c)/bar' ] + * + * console.log(braces('foo/{a,b,c}/bar', { expand: true })); + * //=> [ 'foo/a/bar', 'foo/b/bar', 'foo/c/bar' ] + * ``` + * @param {String} `pattern` String with brace pattern to process. + * @param {Object} `options` Any [options](#options) to change how expansion is performed. See the [braces][] library for all available options. + * @return {Array} + * @api public + */ + +micromatch.braces = (pattern, options) => { + if (typeof pattern !== 'string') throw new TypeError('Expected a string'); + if ((options && options.nobrace === true) || !/\{.*\}/.test(pattern)) { + return [pattern]; + } + return braces(pattern, options); +}; + +/** + * Expand braces + */ + +micromatch.braceExpand = (pattern, options) => { + if (typeof pattern !== 'string') throw new TypeError('Expected a string'); + return micromatch.braces(pattern, { ...options, expand: true }); +}; + +/** + * Expose micromatch + */ + +module.exports = micromatch; diff --git a/node_modules/micromatch/package.json b/node_modules/micromatch/package.json new file mode 100644 index 00000000..18520c60 --- /dev/null +++ b/node_modules/micromatch/package.json @@ -0,0 +1,119 @@ +{ + "name": "micromatch", + "description": "Glob matching for javascript/node.js. A replacement and faster alternative to minimatch and multimatch.", + "version": "4.0.4", + "homepage": "https://github.com/micromatch/micromatch", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "(https://github.com/DianeLooney)", + "Amila Welihinda (amilajack.com)", + "Bogdan Chadkin (https://github.com/TrySound)", + "Brian Woodward (https://twitter.com/doowb)", + "Devon Govett (http://badassjs.com)", + "Elan Shanker (https://github.com/es128)", + "Fabrício Matté (https://ultcombo.js.org)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Martin Kolárik (https://kolarik.sk)", + "Olsten Larck (https://i.am.charlike.online)", + "Paul Miller (paulmillr.com)", + "Tom Byrer (https://github.com/tomByrer)", + "Tyler Akins (http://rumkin.com)", + "Peter Bright (https://github.com/drpizza)", + "Kuba Juszczyk (https://github.com/ku8ar)" + ], + "repository": "micromatch/micromatch", + "bugs": { + "url": "https://github.com/micromatch/micromatch/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=8.6" + }, + "scripts": { + "test": "mocha" + }, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "devDependencies": { + "fill-range": "^7.0.1", + "gulp-format-md": "^2.0.0", + "minimatch": "^3.0.4", + "mocha": "^7.2.0", + "time-require": "github:jonschlinkert/time-require" + }, + "keywords": [ + "bash", + "bracket", + "character-class", + "expand", + "expansion", + "expression", + "extglob", + "extglobs", + "file", + "files", + "filter", + "find", + "glob", + "globbing", + "globs", + "globstar", + "lookahead", + "lookaround", + "lookbehind", + "match", + "matcher", + "matches", + "matching", + "micromatch", + "minimatch", + "multimatch", + "negate", + "negation", + "path", + "pattern", + "patterns", + "posix", + "regex", + "regexp", + "regular", + "shell", + "star", + "wildcard" + ], + "verb": { + "toc": "collapsible", + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + }, + "related": { + "list": [ + "braces", + "expand-brackets", + "extglob", + "fill-range", + "nanomatch" + ] + }, + "reflinks": [ + "extglob", + "fill-range", + "glob-object", + "minimatch", + "multimatch" + ] + } +} diff --git a/node_modules/nanoid/LICENSE b/node_modules/nanoid/LICENSE new file mode 100644 index 00000000..37f56aa4 --- /dev/null +++ b/node_modules/nanoid/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2017 Andrey Sitnik + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/nanoid/README.md b/node_modules/nanoid/README.md new file mode 100644 index 00000000..a4abd920 --- /dev/null +++ b/node_modules/nanoid/README.md @@ -0,0 +1,39 @@ +# Nano ID + +Nano ID logo by Anton Lovchikov + +**English** | [Русский](./README.ru.md) | [简体中文](./README.zh-CN.md) | [Bahasa Indonesia](./README.id-ID.md) + +A tiny, secure, URL-friendly, unique string ID generator for JavaScript. + +> “An amazing level of senseless perfectionism, +> which is simply impossible not to respect.” + +* **Small.** 130 bytes (minified and gzipped). No dependencies. + [Size Limit] controls the size. +* **Fast.** It is 2 times faster than UUID. +* **Safe.** It uses hardware random generator. Can be used in clusters. +* **Short IDs.** It uses a larger alphabet than UUID (`A-Za-z0-9_-`). + So ID size was reduced from 36 to 21 symbols. +* **Portable.** Nano ID was ported + to [20 programming languages](#other-programming-languages). + +```js +import { nanoid } from 'nanoid' +model.id = nanoid() //=> "V1StGXR8_Z5jdHi6B-myT" +``` + +Supports modern browsers, IE [with Babel], Node.js and React Native. + +[online tool]: https://gitpod.io/#https://github.com/ai/nanoid/ +[with Babel]: https://developer.epages.com/blog/coding/how-to-transpile-node-modules-with-babel-and-webpack-in-a-monorepo/ +[Size Limit]: https://github.com/ai/size-limit + + + Sponsored by Evil Martians + + +## Docs +Read **[full docs](https://github.com/ai/nanoid#readme)** on GitHub. diff --git a/node_modules/nanoid/async/index.browser.cjs b/node_modules/nanoid/async/index.browser.cjs new file mode 100644 index 00000000..7e5bba83 --- /dev/null +++ b/node_modules/nanoid/async/index.browser.cjs @@ -0,0 +1,34 @@ +let random = async bytes => crypto.getRandomValues(new Uint8Array(bytes)) +let customAlphabet = (alphabet, defaultSize = 21) => { + let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 + let step = -~((1.6 * mask * defaultSize) / alphabet.length) + return async (size = defaultSize) => { + let id = '' + while (true) { + let bytes = crypto.getRandomValues(new Uint8Array(step)) + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + } + } +} +let nanoid = async (size = 21) => { + let id = '' + let bytes = crypto.getRandomValues(new Uint8Array(size)) + while (size--) { + let byte = bytes[size] & 63 + if (byte < 36) { + id += byte.toString(36) + } else if (byte < 62) { + id += (byte - 26).toString(36).toUpperCase() + } else if (byte < 63) { + id += '_' + } else { + id += '-' + } + } + return id +} +module.exports = { nanoid, customAlphabet, random } diff --git a/node_modules/nanoid/async/index.browser.js b/node_modules/nanoid/async/index.browser.js new file mode 100644 index 00000000..5ece04d6 --- /dev/null +++ b/node_modules/nanoid/async/index.browser.js @@ -0,0 +1,34 @@ +let random = async bytes => crypto.getRandomValues(new Uint8Array(bytes)) +let customAlphabet = (alphabet, defaultSize = 21) => { + let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 + let step = -~((1.6 * mask * defaultSize) / alphabet.length) + return async (size = defaultSize) => { + let id = '' + while (true) { + let bytes = crypto.getRandomValues(new Uint8Array(step)) + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + } + } +} +let nanoid = async (size = 21) => { + let id = '' + let bytes = crypto.getRandomValues(new Uint8Array(size)) + while (size--) { + let byte = bytes[size] & 63 + if (byte < 36) { + id += byte.toString(36) + } else if (byte < 62) { + id += (byte - 26).toString(36).toUpperCase() + } else if (byte < 63) { + id += '_' + } else { + id += '-' + } + } + return id +} +export { nanoid, customAlphabet, random } diff --git a/node_modules/nanoid/async/index.cjs b/node_modules/nanoid/async/index.cjs new file mode 100644 index 00000000..50db1057 --- /dev/null +++ b/node_modules/nanoid/async/index.cjs @@ -0,0 +1,35 @@ +let crypto = require('crypto') +let { urlAlphabet } = require('../url-alphabet/index.cjs') +let random = bytes => + new Promise((resolve, reject) => { + crypto.randomFill(Buffer.allocUnsafe(bytes), (err, buf) => { + if (err) { + reject(err) + } else { + resolve(buf) + } + }) + }) +let customAlphabet = (alphabet, defaultSize = 21) => { + let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 + let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) + let tick = (id, size = defaultSize) => + random(step).then(bytes => { + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + return tick(id, size) + }) + return size => tick('', size) +} +let nanoid = (size = 21) => + random(size).then(bytes => { + let id = '' + while (size--) { + id += urlAlphabet[bytes[size] & 63] + } + return id + }) +module.exports = { nanoid, customAlphabet, random } diff --git a/node_modules/nanoid/async/index.d.ts b/node_modules/nanoid/async/index.d.ts new file mode 100644 index 00000000..9e919658 --- /dev/null +++ b/node_modules/nanoid/async/index.d.ts @@ -0,0 +1,56 @@ +/** + * Generate secure URL-friendly unique ID. The non-blocking version. + * + * By default, the ID will have 21 symbols to have a collision probability + * similar to UUID v4. + * + * ```js + * import { nanoid } from 'nanoid/async' + * nanoid().then(id => { + * model.id = id + * }) + * ``` + * + * @param size Size of the ID. The default size is 21. + * @returns A promise with a random string. + */ +export function nanoid(size?: number): Promise + +/** + * A low-level function. + * Generate secure unique ID with custom alphabet. The non-blocking version. + * + * Alphabet must contain 256 symbols or less. Otherwise, the generator + * will not be secure. + * + * @param alphabet Alphabet used to generate the ID. + * @param defaultSize Size of the ID. The default size is 21. + * @returns A function that returns a promise with a random string. + * + * ```js + * import { customAlphabet } from 'nanoid/async' + * const nanoid = customAlphabet('0123456789абвгдеё', 5) + * nanoid().then(id => { + * model.id = id //=> "8ё56а" + * }) + * ``` + */ +export function customAlphabet( + alphabet: string, + defaultSize?: number +): (size?: number) => Promise + +/** + * Generate an array of random bytes collected from hardware noise. + * + * ```js + * import { random } from 'nanoid/async' + * random(5).then(bytes => { + * bytes //=> [10, 67, 212, 67, 89] + * }) + * ``` + * + * @param bytes Size of the array. + * @returns A promise with a random bytes array. + */ +export function random(bytes: number): Promise diff --git a/node_modules/nanoid/async/index.js b/node_modules/nanoid/async/index.js new file mode 100644 index 00000000..803fad6f --- /dev/null +++ b/node_modules/nanoid/async/index.js @@ -0,0 +1,35 @@ +import crypto from 'crypto' +import { urlAlphabet } from '../url-alphabet/index.js' +let random = bytes => + new Promise((resolve, reject) => { + crypto.randomFill(Buffer.allocUnsafe(bytes), (err, buf) => { + if (err) { + reject(err) + } else { + resolve(buf) + } + }) + }) +let customAlphabet = (alphabet, defaultSize = 21) => { + let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 + let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) + let tick = (id, size = defaultSize) => + random(step).then(bytes => { + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + return tick(id, size) + }) + return size => tick('', size) +} +let nanoid = (size = 21) => + random(size).then(bytes => { + let id = '' + while (size--) { + id += urlAlphabet[bytes[size] & 63] + } + return id + }) +export { nanoid, customAlphabet, random } diff --git a/node_modules/nanoid/async/index.native.js b/node_modules/nanoid/async/index.native.js new file mode 100644 index 00000000..5cb3d57a --- /dev/null +++ b/node_modules/nanoid/async/index.native.js @@ -0,0 +1,26 @@ +import { getRandomBytesAsync } from 'expo-random' +import { urlAlphabet } from '../url-alphabet/index.js' +let random = getRandomBytesAsync +let customAlphabet = (alphabet, defaultSize = 21) => { + let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 + let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) + let tick = (id, size = defaultSize) => + random(step).then(bytes => { + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + return tick(id, size) + }) + return size => tick('', size) +} +let nanoid = (size = 21) => + random(size).then(bytes => { + let id = '' + while (size--) { + id += urlAlphabet[bytes[size] & 63] + } + return id + }) +export { nanoid, customAlphabet, random } diff --git a/node_modules/nanoid/async/package.json b/node_modules/nanoid/async/package.json new file mode 100644 index 00000000..578cdb4c --- /dev/null +++ b/node_modules/nanoid/async/package.json @@ -0,0 +1,12 @@ +{ + "type": "module", + "main": "index.cjs", + "module": "index.js", + "react-native": { + "./index.js": "./index.native.js" + }, + "browser": { + "./index.js": "./index.browser.js", + "./index.cjs": "./index.browser.cjs" + } +} \ No newline at end of file diff --git a/node_modules/nanoid/bin/nanoid.cjs b/node_modules/nanoid/bin/nanoid.cjs new file mode 100755 index 00000000..aeb5f431 --- /dev/null +++ b/node_modules/nanoid/bin/nanoid.cjs @@ -0,0 +1,55 @@ +#!/usr/bin/env node + +let { nanoid, customAlphabet } = require('..') + +function print(msg) { + process.stdout.write(msg + '\n') +} + +function error(msg) { + process.stderr.write(msg + '\n') + process.exit(1) +} + +if (process.argv.includes('--help') || process.argv.includes('-h')) { + print(` + Usage + $ nanoid [options] + + Options + -s, --size Generated ID size + -a, --alphabet Alphabet to use + -h, --help Show this help + + Examples + $ nano --s 15 + S9sBF77U6sDB8Yg + + $ nano --size 10 --alphabet abc + bcabababca`) + process.exit() +} + +let alphabet, size +for (let i = 2; i < process.argv.length; i++) { + let arg = process.argv[i] + if (arg === '--size' || arg === '-s') { + size = Number(process.argv[i + 1]) + i += 1 + if (Number.isNaN(size) || size <= 0) { + error('Size must be positive integer') + } + } else if (arg === '--alphabet' || arg === '-a') { + alphabet = process.argv[i + 1] + i += 1 + } else { + error('Unknown argument ' + arg) + } +} + +if (alphabet) { + let customNanoid = customAlphabet(alphabet, size) + print(customNanoid()) +} else { + print(nanoid(size)) +} diff --git a/node_modules/nanoid/index.browser.cjs b/node_modules/nanoid/index.browser.cjs new file mode 100644 index 00000000..f21affe6 --- /dev/null +++ b/node_modules/nanoid/index.browser.cjs @@ -0,0 +1,63 @@ +let { urlAlphabet } = require('./url-alphabet/index.cjs') +if (process.env.NODE_ENV !== 'production') { + if ( + typeof navigator !== 'undefined' && + navigator.product === 'ReactNative' && + typeof crypto === 'undefined' + ) { + throw new Error( + 'React Native does not have a built-in secure random generator. ' + + 'If you don’t need unpredictable IDs use `nanoid/non-secure`. ' + + 'For secure IDs, import `react-native-get-random-values` ' + + 'before Nano ID.' + ) + } + if (typeof msCrypto !== 'undefined' && typeof crypto === 'undefined') { + throw new Error( + 'Import file with `if (!window.crypto) window.crypto = window.msCrypto`' + + ' before importing Nano ID to fix IE 11 support' + ) + } + if (typeof crypto === 'undefined') { + throw new Error( + 'Your browser does not have secure random generator. ' + + 'If you don’t need unpredictable IDs, you can use nanoid/non-secure.' + ) + } +} +let random = bytes => crypto.getRandomValues(new Uint8Array(bytes)) +let customRandom = (alphabet, defaultSize, getRandom) => { + let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 + let step = -~((1.6 * mask * defaultSize) / alphabet.length) + return (size = defaultSize) => { + let id = '' + while (true) { + let bytes = getRandom(step) + let j = step + while (j--) { + id += alphabet[bytes[j] & mask] || '' + if (id.length === size) return id + } + } + } +} +let customAlphabet = (alphabet, size = 21) => + customRandom(alphabet, size, random) +let nanoid = (size = 21) => { + let id = '' + let bytes = crypto.getRandomValues(new Uint8Array(size)) + while (size--) { + let byte = bytes[size] & 63 + if (byte < 36) { + id += byte.toString(36) + } else if (byte < 62) { + id += (byte - 26).toString(36).toUpperCase() + } else if (byte < 63) { + id += '_' + } else { + id += '-' + } + } + return id +} +module.exports = { nanoid, customAlphabet, customRandom, urlAlphabet, random } diff --git a/node_modules/nanoid/index.browser.js b/node_modules/nanoid/index.browser.js new file mode 100644 index 00000000..1333d968 --- /dev/null +++ b/node_modules/nanoid/index.browser.js @@ -0,0 +1,63 @@ +import { urlAlphabet } from './url-alphabet/index.js' +if (process.env.NODE_ENV !== 'production') { + if ( + typeof navigator !== 'undefined' && + navigator.product === 'ReactNative' && + typeof crypto === 'undefined' + ) { + throw new Error( + 'React Native does not have a built-in secure random generator. ' + + 'If you don’t need unpredictable IDs use `nanoid/non-secure`. ' + + 'For secure IDs, import `react-native-get-random-values` ' + + 'before Nano ID.' + ) + } + if (typeof msCrypto !== 'undefined' && typeof crypto === 'undefined') { + throw new Error( + 'Import file with `if (!window.crypto) window.crypto = window.msCrypto`' + + ' before importing Nano ID to fix IE 11 support' + ) + } + if (typeof crypto === 'undefined') { + throw new Error( + 'Your browser does not have secure random generator. ' + + 'If you don’t need unpredictable IDs, you can use nanoid/non-secure.' + ) + } +} +let random = bytes => crypto.getRandomValues(new Uint8Array(bytes)) +let customRandom = (alphabet, defaultSize, getRandom) => { + let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 + let step = -~((1.6 * mask * defaultSize) / alphabet.length) + return (size = defaultSize) => { + let id = '' + while (true) { + let bytes = getRandom(step) + let j = step + while (j--) { + id += alphabet[bytes[j] & mask] || '' + if (id.length === size) return id + } + } + } +} +let customAlphabet = (alphabet, size = 21) => + customRandom(alphabet, size, random) +let nanoid = (size = 21) => { + let id = '' + let bytes = crypto.getRandomValues(new Uint8Array(size)) + while (size--) { + let byte = bytes[size] & 63 + if (byte < 36) { + id += byte.toString(36) + } else if (byte < 62) { + id += (byte - 26).toString(36).toUpperCase() + } else if (byte < 63) { + id += '_' + } else { + id += '-' + } + } + return id +} +export { nanoid, customAlphabet, customRandom, urlAlphabet, random } diff --git a/node_modules/nanoid/index.cjs b/node_modules/nanoid/index.cjs new file mode 100644 index 00000000..0fa85e9d --- /dev/null +++ b/node_modules/nanoid/index.cjs @@ -0,0 +1,45 @@ +let crypto = require('crypto') +let { urlAlphabet } = require('./url-alphabet/index.cjs') +const POOL_SIZE_MULTIPLIER = 128 +let pool, poolOffset +let fillPool = bytes => { + if (!pool || pool.length < bytes) { + pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER) + crypto.randomFillSync(pool) + poolOffset = 0 + } else if (poolOffset + bytes > pool.length) { + crypto.randomFillSync(pool) + poolOffset = 0 + } + poolOffset += bytes +} +let random = bytes => { + fillPool((bytes -= 0)) + return pool.subarray(poolOffset - bytes, poolOffset) +} +let customRandom = (alphabet, defaultSize, getRandom) => { + let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 + let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) + return (size = defaultSize) => { + let id = '' + while (true) { + let bytes = getRandom(step) + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + } + } +} +let customAlphabet = (alphabet, size = 21) => + customRandom(alphabet, size, random) +let nanoid = (size = 21) => { + fillPool((size -= 0)) + let id = '' + for (let i = poolOffset - size; i < poolOffset; i++) { + id += urlAlphabet[pool[i] & 63] + } + return id +} +module.exports = { nanoid, customAlphabet, customRandom, urlAlphabet, random } diff --git a/node_modules/nanoid/index.d.ts b/node_modules/nanoid/index.d.ts new file mode 100644 index 00000000..3e111a39 --- /dev/null +++ b/node_modules/nanoid/index.d.ts @@ -0,0 +1,91 @@ +/** + * Generate secure URL-friendly unique ID. + * + * By default, the ID will have 21 symbols to have a collision probability + * similar to UUID v4. + * + * ```js + * import { nanoid } from 'nanoid' + * model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL" + * ``` + * + * @param size Size of the ID. The default size is 21. + * @returns A random string. + */ +export function nanoid(size?: number): string + +/** + * Generate secure unique ID with custom alphabet. + * + * Alphabet must contain 256 symbols or less. Otherwise, the generator + * will not be secure. + * + * @param alphabet Alphabet used to generate the ID. + * @param defaultSize Size of the ID. The default size is 21. + * @returns A random string generator. + * + * ```js + * const { customAlphabet } = require('nanoid') + * const nanoid = customAlphabet('0123456789абвгдеё', 5) + * nanoid() //=> "8ё56а" + * ``` + */ +export function customAlphabet( + alphabet: string, + defaultSize?: number +): (size?: number) => string + +/** + * Generate unique ID with custom random generator and alphabet. + * + * Alphabet must contain 256 symbols or less. Otherwise, the generator + * will not be secure. + * + * ```js + * import { customRandom } from 'nanoid/format' + * + * const nanoid = customRandom('abcdef', 5, size => { + * const random = [] + * for (let i = 0; i < size; i++) { + * random.push(randomByte()) + * } + * return random + * }) + * + * nanoid() //=> "fbaef" + * ``` + * + * @param alphabet Alphabet used to generate a random string. + * @param size Size of the random string. + * @param random A random bytes generator. + * @returns A random string generator. + */ +export function customRandom( + alphabet: string, + size: number, + random: (bytes: number) => Uint8Array +): () => string + +/** + * URL safe symbols. + * + * ```js + * import { urlAlphabet } from 'nanoid' + * const nanoid = customAlphabet(urlAlphabet, 10) + * nanoid() //=> "Uakgb_J5m9" + * ``` + */ +export const urlAlphabet: string + +/** + * Generate an array of random bytes collected from hardware noise. + * + * ```js + * import { customRandom, random } from 'nanoid' + * const nanoid = customRandom("abcdef", 5, random) + * ``` + * + * @param bytes Size of the array. + * @returns An array of random bytes. + */ +export function random(bytes: number): Uint8Array diff --git a/node_modules/nanoid/index.dev.js b/node_modules/nanoid/index.dev.js new file mode 100644 index 00000000..8c242b6f --- /dev/null +++ b/node_modules/nanoid/index.dev.js @@ -0,0 +1,63 @@ +import { urlAlphabet } from './url-alphabet/index.js' +if (true) { + if ( + typeof navigator !== 'undefined' && + navigator.product === 'ReactNative' && + typeof crypto === 'undefined' + ) { + throw new Error( + 'React Native does not have a built-in secure random generator. ' + + 'If you don’t need unpredictable IDs use `nanoid/non-secure`. ' + + 'For secure IDs, import `react-native-get-random-values` ' + + 'before Nano ID.' + ) + } + if (typeof msCrypto !== 'undefined' && typeof crypto === 'undefined') { + throw new Error( + 'Import file with `if (!window.crypto) window.crypto = window.msCrypto`' + + ' before importing Nano ID to fix IE 11 support' + ) + } + if (typeof crypto === 'undefined') { + throw new Error( + 'Your browser does not have secure random generator. ' + + 'If you don’t need unpredictable IDs, you can use nanoid/non-secure.' + ) + } +} +let random = bytes => crypto.getRandomValues(new Uint8Array(bytes)) +let customRandom = (alphabet, defaultSize, getRandom) => { + let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 + let step = -~((1.6 * mask * defaultSize) / alphabet.length) + return (size = defaultSize) => { + let id = '' + while (true) { + let bytes = getRandom(step) + let j = step + while (j--) { + id += alphabet[bytes[j] & mask] || '' + if (id.length === size) return id + } + } + } +} +let customAlphabet = (alphabet, size = 21) => + customRandom(alphabet, size, random) +let nanoid = (size = 21) => { + let id = '' + let bytes = crypto.getRandomValues(new Uint8Array(size)) + while (size--) { + let byte = bytes[size] & 63 + if (byte < 36) { + id += byte.toString(36) + } else if (byte < 62) { + id += (byte - 26).toString(36).toUpperCase() + } else if (byte < 63) { + id += '_' + } else { + id += '-' + } + } + return id +} +export { nanoid, customAlphabet, customRandom, urlAlphabet, random } diff --git a/node_modules/nanoid/index.js b/node_modules/nanoid/index.js new file mode 100644 index 00000000..21e155fc --- /dev/null +++ b/node_modules/nanoid/index.js @@ -0,0 +1,45 @@ +import crypto from 'crypto' +import { urlAlphabet } from './url-alphabet/index.js' +const POOL_SIZE_MULTIPLIER = 128 +let pool, poolOffset +let fillPool = bytes => { + if (!pool || pool.length < bytes) { + pool = Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER) + crypto.randomFillSync(pool) + poolOffset = 0 + } else if (poolOffset + bytes > pool.length) { + crypto.randomFillSync(pool) + poolOffset = 0 + } + poolOffset += bytes +} +let random = bytes => { + fillPool((bytes -= 0)) + return pool.subarray(poolOffset - bytes, poolOffset) +} +let customRandom = (alphabet, defaultSize, getRandom) => { + let mask = (2 << (31 - Math.clz32((alphabet.length - 1) | 1))) - 1 + let step = Math.ceil((1.6 * mask * defaultSize) / alphabet.length) + return (size = defaultSize) => { + let id = '' + while (true) { + let bytes = getRandom(step) + let i = step + while (i--) { + id += alphabet[bytes[i] & mask] || '' + if (id.length === size) return id + } + } + } +} +let customAlphabet = (alphabet, size = 21) => + customRandom(alphabet, size, random) +let nanoid = (size = 21) => { + fillPool((size -= 0)) + let id = '' + for (let i = poolOffset - size; i < poolOffset; i++) { + id += urlAlphabet[pool[i] & 63] + } + return id +} +export { nanoid, customAlphabet, customRandom, urlAlphabet, random } diff --git a/node_modules/nanoid/index.prod.js b/node_modules/nanoid/index.prod.js new file mode 100644 index 00000000..685a49ae --- /dev/null +++ b/node_modules/nanoid/index.prod.js @@ -0,0 +1,63 @@ +import { urlAlphabet } from './url-alphabet/index.js' +if (false) { + if ( + typeof navigator !== 'undefined' && + navigator.product === 'ReactNative' && + typeof crypto === 'undefined' + ) { + throw new Error( + 'React Native does not have a built-in secure random generator. ' + + 'If you don’t need unpredictable IDs use `nanoid/non-secure`. ' + + 'For secure IDs, import `react-native-get-random-values` ' + + 'before Nano ID.' + ) + } + if (typeof msCrypto !== 'undefined' && typeof crypto === 'undefined') { + throw new Error( + 'Import file with `if (!window.crypto) window.crypto = window.msCrypto`' + + ' before importing Nano ID to fix IE 11 support' + ) + } + if (typeof crypto === 'undefined') { + throw new Error( + 'Your browser does not have secure random generator. ' + + 'If you don’t need unpredictable IDs, you can use nanoid/non-secure.' + ) + } +} +let random = bytes => crypto.getRandomValues(new Uint8Array(bytes)) +let customRandom = (alphabet, defaultSize, getRandom) => { + let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1 + let step = -~((1.6 * mask * defaultSize) / alphabet.length) + return (size = defaultSize) => { + let id = '' + while (true) { + let bytes = getRandom(step) + let j = step + while (j--) { + id += alphabet[bytes[j] & mask] || '' + if (id.length === size) return id + } + } + } +} +let customAlphabet = (alphabet, size = 21) => + customRandom(alphabet, size, random) +let nanoid = (size = 21) => { + let id = '' + let bytes = crypto.getRandomValues(new Uint8Array(size)) + while (size--) { + let byte = bytes[size] & 63 + if (byte < 36) { + id += byte.toString(36) + } else if (byte < 62) { + id += (byte - 26).toString(36).toUpperCase() + } else if (byte < 63) { + id += '_' + } else { + id += '-' + } + } + return id +} +export { nanoid, customAlphabet, customRandom, urlAlphabet, random } diff --git a/node_modules/nanoid/nanoid.js b/node_modules/nanoid/nanoid.js new file mode 100644 index 00000000..5bbc4893 --- /dev/null +++ b/node_modules/nanoid/nanoid.js @@ -0,0 +1 @@ +export let nanoid=(t=21)=>{let e="",r=crypto.getRandomValues(new Uint8Array(t));for(;t--;){let n=63&r[t];e+=n<36?n.toString(36):n<62?(n-26).toString(36).toUpperCase():n<63?"_":"-"}return e}; \ No newline at end of file diff --git a/node_modules/nanoid/non-secure/index.cjs b/node_modules/nanoid/non-secure/index.cjs new file mode 100644 index 00000000..09d57cdc --- /dev/null +++ b/node_modules/nanoid/non-secure/index.cjs @@ -0,0 +1,21 @@ +let urlAlphabet = + 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' +let customAlphabet = (alphabet, defaultSize = 21) => { + return (size = defaultSize) => { + let id = '' + let i = size + while (i--) { + id += alphabet[(Math.random() * alphabet.length) | 0] + } + return id + } +} +let nanoid = (size = 21) => { + let id = '' + let i = size + while (i--) { + id += urlAlphabet[(Math.random() * 64) | 0] + } + return id +} +module.exports = { nanoid, customAlphabet } diff --git a/node_modules/nanoid/non-secure/index.d.ts b/node_modules/nanoid/non-secure/index.d.ts new file mode 100644 index 00000000..4965322d --- /dev/null +++ b/node_modules/nanoid/non-secure/index.d.ts @@ -0,0 +1,33 @@ +/** + * Generate URL-friendly unique ID. This method uses the non-secure + * predictable random generator with bigger collision probability. + * + * ```js + * import { nanoid } from 'nanoid/non-secure' + * model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL" + * ``` + * + * @param size Size of the ID. The default size is 21. + * @returns A random string. + */ +export function nanoid(size?: number): string + +/** + * Generate a unique ID based on a custom alphabet. + * This method uses the non-secure predictable random generator + * with bigger collision probability. + * + * @param alphabet Alphabet used to generate the ID. + * @param defaultSize Size of the ID. The default size is 21. + * @returns A random string generator. + * + * ```js + * import { customAlphabet } from 'nanoid/non-secure' + * const nanoid = customAlphabet('0123456789абвгдеё', 5) + * model.id = //=> "8ё56а" + * ``` + */ +export function customAlphabet( + alphabet: string, + defaultSize?: number +): (size?: number) => string diff --git a/node_modules/nanoid/non-secure/index.js b/node_modules/nanoid/non-secure/index.js new file mode 100644 index 00000000..e7e19adf --- /dev/null +++ b/node_modules/nanoid/non-secure/index.js @@ -0,0 +1,21 @@ +let urlAlphabet = + 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' +let customAlphabet = (alphabet, defaultSize = 21) => { + return (size = defaultSize) => { + let id = '' + let i = size + while (i--) { + id += alphabet[(Math.random() * alphabet.length) | 0] + } + return id + } +} +let nanoid = (size = 21) => { + let id = '' + let i = size + while (i--) { + id += urlAlphabet[(Math.random() * 64) | 0] + } + return id +} +export { nanoid, customAlphabet } diff --git a/node_modules/nanoid/non-secure/package.json b/node_modules/nanoid/non-secure/package.json new file mode 100644 index 00000000..9930d6ad --- /dev/null +++ b/node_modules/nanoid/non-secure/package.json @@ -0,0 +1,6 @@ +{ + "type": "module", + "main": "index.cjs", + "module": "index.js", + "react-native": "index.js" +} \ No newline at end of file diff --git a/node_modules/nanoid/package.json b/node_modules/nanoid/package.json new file mode 100644 index 00000000..0ed2b033 --- /dev/null +++ b/node_modules/nanoid/package.json @@ -0,0 +1,64 @@ +{ + "name": "nanoid", + "version": "3.3.0", + "description": "A tiny (130 bytes), secure URL-friendly unique string ID generator", + "keywords": [ + "uuid", + "random", + "id", + "url" + ], + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + }, + "author": "Andrey Sitnik ", + "license": "MIT", + "repository": "ai/nanoid", + "browser": { + "./index.js": "./index.browser.js", + "./async/index.js": "./async/index.browser.js", + "./async/index.cjs": "./async/index.browser.cjs", + "./index.cjs": "./index.browser.cjs" + }, + "react-native": "index.js", + "bin": "./bin/nanoid.cjs", + "sideEffects": false, + "types": "./index.d.ts", + "type": "module", + "main": "index.cjs", + "module": "index.js", + "exports": { + ".": { + "browser": { + "development": "./index.dev.js", + "production": "./index.prod.js", + "default": "./index.prod.js" + }, + "require": "./index.cjs", + "import": "./index.js", + "default": "./index.js", + "types": "./index.d.ts" + }, + "./package.json": "./package.json", + "./async/package.json": "./async/package.json", + "./async": { + "browser": "./async/index.browser.js", + "require": "./async/index.cjs", + "import": "./async/index.js", + "default": "./async/index.js" + }, + "./non-secure/package.json": "./non-secure/package.json", + "./non-secure": { + "require": "./non-secure/index.cjs", + "import": "./non-secure/index.js", + "default": "./non-secure/index.js" + }, + "./url-alphabet/package.json": "./url-alphabet/package.json", + "./url-alphabet": { + "require": "./url-alphabet/index.cjs", + "import": "./url-alphabet/index.js", + "default": "./url-alphabet/index.js" + }, + "./index.d.ts": "./index.d.ts" + } +} \ No newline at end of file diff --git a/node_modules/nanoid/url-alphabet/index.cjs b/node_modules/nanoid/url-alphabet/index.cjs new file mode 100644 index 00000000..757b709c --- /dev/null +++ b/node_modules/nanoid/url-alphabet/index.cjs @@ -0,0 +1,3 @@ +let urlAlphabet = + 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' +module.exports = { urlAlphabet } diff --git a/node_modules/nanoid/url-alphabet/index.js b/node_modules/nanoid/url-alphabet/index.js new file mode 100644 index 00000000..c2782e59 --- /dev/null +++ b/node_modules/nanoid/url-alphabet/index.js @@ -0,0 +1,3 @@ +let urlAlphabet = + 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict' +export { urlAlphabet } diff --git a/node_modules/nanoid/url-alphabet/package.json b/node_modules/nanoid/url-alphabet/package.json new file mode 100644 index 00000000..9930d6ad --- /dev/null +++ b/node_modules/nanoid/url-alphabet/package.json @@ -0,0 +1,6 @@ +{ + "type": "module", + "main": "index.cjs", + "module": "index.js", + "react-native": "index.js" +} \ No newline at end of file diff --git a/node_modules/normalize-path/LICENSE b/node_modules/normalize-path/LICENSE new file mode 100644 index 00000000..d32ab442 --- /dev/null +++ b/node_modules/normalize-path/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014-2018, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/normalize-path/README.md b/node_modules/normalize-path/README.md new file mode 100644 index 00000000..726d4d68 --- /dev/null +++ b/node_modules/normalize-path/README.md @@ -0,0 +1,127 @@ +# normalize-path [![NPM version](https://img.shields.io/npm/v/normalize-path.svg?style=flat)](https://www.npmjs.com/package/normalize-path) [![NPM monthly downloads](https://img.shields.io/npm/dm/normalize-path.svg?style=flat)](https://npmjs.org/package/normalize-path) [![NPM total downloads](https://img.shields.io/npm/dt/normalize-path.svg?style=flat)](https://npmjs.org/package/normalize-path) [![Linux Build Status](https://img.shields.io/travis/jonschlinkert/normalize-path.svg?style=flat&label=Travis)](https://travis-ci.org/jonschlinkert/normalize-path) + +> Normalize slashes in a file path to be posix/unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes, unless disabled. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save normalize-path +``` + +## Usage + +```js +const normalize = require('normalize-path'); + +console.log(normalize('\\foo\\bar\\baz\\')); +//=> '/foo/bar/baz' +``` + +**win32 namespaces** + +```js +console.log(normalize('\\\\?\\UNC\\Server01\\user\\docs\\Letter.txt')); +//=> '//?/UNC/Server01/user/docs/Letter.txt' + +console.log(normalize('\\\\.\\CdRomX')); +//=> '//./CdRomX' +``` + +**Consecutive slashes** + +Condenses multiple consecutive forward slashes (except for leading slashes in win32 namespaces) to a single slash. + +```js +console.log(normalize('.//foo//bar///////baz/')); +//=> './foo/bar/baz' +``` + +### Trailing slashes + +By default trailing slashes are removed. Pass `false` as the last argument to disable this behavior and _**keep** trailing slashes_: + +```js +console.log(normalize('foo\\bar\\baz\\', false)); //=> 'foo/bar/baz/' +console.log(normalize('./foo/bar/baz/', false)); //=> './foo/bar/baz/' +``` + +## Release history + +### v3.0 + +No breaking changes in this release. + +* a check was added to ensure that [win32 namespaces](https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces) are handled properly by win32 `path.parse()` after a path has been normalized by this library. +* a minor optimization was made to simplify how the trailing separator was handled + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +Other useful path-related libraries: + +* [contains-path](https://www.npmjs.com/package/contains-path): Return true if a file path contains the given path. | [homepage](https://github.com/jonschlinkert/contains-path "Return true if a file path contains the given path.") +* [is-absolute](https://www.npmjs.com/package/is-absolute): Returns true if a file path is absolute. Does not rely on the path module… [more](https://github.com/jonschlinkert/is-absolute) | [homepage](https://github.com/jonschlinkert/is-absolute "Returns true if a file path is absolute. Does not rely on the path module and can be used as a polyfill for node.js native `path.isAbolute`.") +* [is-relative](https://www.npmjs.com/package/is-relative): Returns `true` if the path appears to be relative. | [homepage](https://github.com/jonschlinkert/is-relative "Returns `true` if the path appears to be relative.") +* [parse-filepath](https://www.npmjs.com/package/parse-filepath): Pollyfill for node.js `path.parse`, parses a filepath into an object. | [homepage](https://github.com/jonschlinkert/parse-filepath "Pollyfill for node.js `path.parse`, parses a filepath into an object.") +* [path-ends-with](https://www.npmjs.com/package/path-ends-with): Return `true` if a file path ends with the given string/suffix. | [homepage](https://github.com/jonschlinkert/path-ends-with "Return `true` if a file path ends with the given string/suffix.") +* [unixify](https://www.npmjs.com/package/unixify): Convert Windows file paths to unix paths. | [homepage](https://github.com/jonschlinkert/unixify "Convert Windows file paths to unix paths.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 35 | [jonschlinkert](https://github.com/jonschlinkert) | +| 1 | [phated](https://github.com/phated) | + +### Author + +**Jon Schlinkert** + +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) + +### License + +Copyright © 2018, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.6.0, on April 19, 2018._ \ No newline at end of file diff --git a/node_modules/normalize-path/index.js b/node_modules/normalize-path/index.js new file mode 100644 index 00000000..6fac553a --- /dev/null +++ b/node_modules/normalize-path/index.js @@ -0,0 +1,35 @@ +/*! + * normalize-path + * + * Copyright (c) 2014-2018, Jon Schlinkert. + * Released under the MIT License. + */ + +module.exports = function(path, stripTrailing) { + if (typeof path !== 'string') { + throw new TypeError('expected path to be a string'); + } + + if (path === '\\' || path === '/') return '/'; + + var len = path.length; + if (len <= 1) return path; + + // ensure that win32 namespaces has two leading slashes, so that the path is + // handled properly by the win32 version of path.parse() after being normalized + // https://msdn.microsoft.com/library/windows/desktop/aa365247(v=vs.85).aspx#namespaces + var prefix = ''; + if (len > 4 && path[3] === '\\') { + var ch = path[2]; + if ((ch === '?' || ch === '.') && path.slice(0, 2) === '\\\\') { + path = path.slice(2); + prefix = '//'; + } + } + + var segs = path.split(/[/\\]+/); + if (stripTrailing !== false && segs[segs.length - 1] === '') { + segs.pop(); + } + return prefix + segs.join('/'); +}; diff --git a/node_modules/normalize-path/package.json b/node_modules/normalize-path/package.json new file mode 100644 index 00000000..ad61098a --- /dev/null +++ b/node_modules/normalize-path/package.json @@ -0,0 +1,77 @@ +{ + "name": "normalize-path", + "description": "Normalize slashes in a file path to be posix/unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes, unless disabled.", + "version": "3.0.0", + "homepage": "https://github.com/jonschlinkert/normalize-path", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Blaine Bublitz (https://twitter.com/BlaineBublitz)", + "Jon Schlinkert (http://twitter.com/jonschlinkert)" + ], + "repository": "jonschlinkert/normalize-path", + "bugs": { + "url": "https://github.com/jonschlinkert/normalize-path/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "mocha" + }, + "devDependencies": { + "gulp-format-md": "^1.0.0", + "minimist": "^1.2.0", + "mocha": "^3.5.3" + }, + "keywords": [ + "absolute", + "backslash", + "delimiter", + "file", + "file-path", + "filepath", + "fix", + "forward", + "fp", + "fs", + "normalize", + "path", + "relative", + "separator", + "slash", + "slashes", + "trailing", + "unix", + "urix" + ], + "verb": { + "toc": false, + "layout": "default", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "related": { + "description": "Other useful path-related libraries:", + "list": [ + "contains-path", + "is-absolute", + "is-relative", + "parse-filepath", + "path-ends-with", + "path-ends-with", + "unixify" + ] + }, + "lint": { + "reflinks": true + } + } +} diff --git a/node_modules/path-type/index.d.ts b/node_modules/path-type/index.d.ts new file mode 100644 index 00000000..910a50a5 --- /dev/null +++ b/node_modules/path-type/index.d.ts @@ -0,0 +1,51 @@ +export type PathTypeFunction = (path: string) => Promise; + +/** + * Check whether the passed `path` is a file. + * + * @param path - The path to check. + * @returns Whether the `path` is a file. + */ +export const isFile: PathTypeFunction; + +/** + * Check whether the passed `path` is a directory. + * + * @param path - The path to check. + * @returns Whether the `path` is a directory. + */ +export const isDirectory: PathTypeFunction; + +/** + * Check whether the passed `path` is a symlink. + * + * @param path - The path to check. + * @returns Whether the `path` is a symlink. + */ +export const isSymlink: PathTypeFunction; + +export type PathTypeSyncFunction = (path: string) => boolean; + +/** + * Synchronously check whether the passed `path` is a file. + * + * @param path - The path to check. + * @returns Whether the `path` is a file. + */ +export const isFileSync: PathTypeSyncFunction; + +/** + * Synchronously check whether the passed `path` is a directory. + * + * @param path - The path to check. + * @returns Whether the `path` is a directory. + */ +export const isDirectorySync: PathTypeSyncFunction; + +/** + * Synchronously check whether the passed `path` is a symlink. + * + * @param path - The path to check. + * @returns Whether the `path` is a directory. + */ +export const isSymlinkSync: PathTypeSyncFunction; diff --git a/node_modules/path-type/index.js b/node_modules/path-type/index.js new file mode 100644 index 00000000..b8f34b24 --- /dev/null +++ b/node_modules/path-type/index.js @@ -0,0 +1,43 @@ +'use strict'; +const {promisify} = require('util'); +const fs = require('fs'); + +async function isType(fsStatType, statsMethodName, filePath) { + if (typeof filePath !== 'string') { + throw new TypeError(`Expected a string, got ${typeof filePath}`); + } + + try { + const stats = await promisify(fs[fsStatType])(filePath); + return stats[statsMethodName](); + } catch (error) { + if (error.code === 'ENOENT') { + return false; + } + + throw error; + } +} + +function isTypeSync(fsStatType, statsMethodName, filePath) { + if (typeof filePath !== 'string') { + throw new TypeError(`Expected a string, got ${typeof filePath}`); + } + + try { + return fs[fsStatType](filePath)[statsMethodName](); + } catch (error) { + if (error.code === 'ENOENT') { + return false; + } + + throw error; + } +} + +exports.isFile = isType.bind(null, 'stat', 'isFile'); +exports.isDirectory = isType.bind(null, 'stat', 'isDirectory'); +exports.isSymlink = isType.bind(null, 'lstat', 'isSymbolicLink'); +exports.isFileSync = isTypeSync.bind(null, 'statSync', 'isFile'); +exports.isDirectorySync = isTypeSync.bind(null, 'statSync', 'isDirectory'); +exports.isSymlinkSync = isTypeSync.bind(null, 'lstatSync', 'isSymbolicLink'); diff --git a/node_modules/path-type/license b/node_modules/path-type/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/path-type/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/path-type/package.json b/node_modules/path-type/package.json new file mode 100644 index 00000000..635b7110 --- /dev/null +++ b/node_modules/path-type/package.json @@ -0,0 +1,45 @@ +{ + "name": "path-type", + "version": "4.0.0", + "description": "Check if a path is a file, directory, or symlink", + "license": "MIT", + "repository": "sindresorhus/path-type", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && nyc ava && tsd-check" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "path", + "fs", + "type", + "is", + "check", + "directory", + "dir", + "file", + "filepath", + "symlink", + "symbolic", + "link", + "stat", + "stats", + "filesystem" + ], + "devDependencies": { + "ava": "^1.3.1", + "nyc": "^13.3.0", + "tsd-check": "^0.3.0", + "xo": "^0.24.0" + } +} diff --git a/node_modules/path-type/readme.md b/node_modules/path-type/readme.md new file mode 100644 index 00000000..4c972fa5 --- /dev/null +++ b/node_modules/path-type/readme.md @@ -0,0 +1,72 @@ +# path-type [![Build Status](https://travis-ci.org/sindresorhus/path-type.svg?branch=master)](https://travis-ci.org/sindresorhus/path-type) + +> Check if a path is a file, directory, or symlink + + +## Install + +``` +$ npm install path-type +``` + + +## Usage + +```js +const {isFile} = require('path-type'); + +(async () => { + console.log(await isFile('package.json')); + //=> true +})(); +``` + + +## API + +### isFile(path) + +Check whether the passed `path` is a file. + +Returns a `Promise`. + +#### path + +Type: `string` + +The path to check. + +### isDirectory(path) + +Check whether the passed `path` is a directory. + +Returns a `Promise`. + +### isSymlink(path) + +Check whether the passed `path` is a symlink. + +Returns a `Promise`. + +### isFileSync(path) + +Synchronously check whether the passed `path` is a file. + +Returns a `boolean`. + +### isDirectorySync(path) + +Synchronously check whether the passed `path` is a directory. + +Returns a `boolean`. + +### isSymlinkSync(path) + +Synchronously check whether the passed `path` is a symlink. + +Returns a `boolean`. + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/picocolors/LICENSE b/node_modules/picocolors/LICENSE new file mode 100644 index 00000000..496098c6 --- /dev/null +++ b/node_modules/picocolors/LICENSE @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/picocolors/README.md b/node_modules/picocolors/README.md new file mode 100644 index 00000000..8e47aa8e --- /dev/null +++ b/node_modules/picocolors/README.md @@ -0,0 +1,21 @@ +# picocolors + +The tiniest and the fastest library for terminal output formatting with ANSI colors. + +```javascript +import pc from "picocolors" + +console.log( + pc.green(`How are ${pc.italic(`you`)} doing?`) +) +``` + +- **No dependencies.** +- **14 times** smaller and **2 times** faster than chalk. +- Used by popular tools like PostCSS, SVGO, Stylelint, and Browserslist. +- Node.js v6+ & browsers support. Support for both CJS and ESM projects. +- TypeScript type declarations included. +- [`NO_COLOR`](https://no-color.org/) friendly. + +## Docs +Read **[full docs](https://github.com/alexeyraspopov/picocolors#readme)** on GitHub. diff --git a/node_modules/picocolors/package.json b/node_modules/picocolors/package.json new file mode 100644 index 00000000..85a12d52 --- /dev/null +++ b/node_modules/picocolors/package.json @@ -0,0 +1,25 @@ +{ + "name": "picocolors", + "version": "1.0.0", + "main": "./picocolors.js", + "types": "./picocolors.d.ts", + "browser": { + "./picocolors.js": "./picocolors.browser.js" + }, + "sideEffects": false, + "description": "The tiniest and the fastest library for terminal output formatting with ANSI colors", + "files": [ + "picocolors.*", + "types.ts" + ], + "keywords": [ + "terminal", + "colors", + "formatting", + "cli", + "console" + ], + "author": "Alexey Raspopov", + "repository": "alexeyraspopov/picocolors", + "license": "ISC" +} diff --git a/node_modules/picocolors/picocolors.browser.js b/node_modules/picocolors/picocolors.browser.js new file mode 100644 index 00000000..5eb9fbe8 --- /dev/null +++ b/node_modules/picocolors/picocolors.browser.js @@ -0,0 +1,4 @@ +var x=String; +var create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}}; +module.exports=create(); +module.exports.createColors = create; diff --git a/node_modules/picocolors/picocolors.d.ts b/node_modules/picocolors/picocolors.d.ts new file mode 100644 index 00000000..94e146a8 --- /dev/null +++ b/node_modules/picocolors/picocolors.d.ts @@ -0,0 +1,5 @@ +import { Colors } from "./types" + +declare const picocolors: Colors & { createColors: (enabled?: boolean) => Colors } + +export = picocolors diff --git a/node_modules/picocolors/picocolors.js b/node_modules/picocolors/picocolors.js new file mode 100644 index 00000000..fdb63045 --- /dev/null +++ b/node_modules/picocolors/picocolors.js @@ -0,0 +1,58 @@ +let tty = require("tty") + +let isColorSupported = + !("NO_COLOR" in process.env || process.argv.includes("--no-color")) && + ("FORCE_COLOR" in process.env || + process.argv.includes("--color") || + process.platform === "win32" || + (tty.isatty(1) && process.env.TERM !== "dumb") || + "CI" in process.env) + +let formatter = + (open, close, replace = open) => + input => { + let string = "" + input + let index = string.indexOf(close, open.length) + return ~index + ? open + replaceClose(string, close, replace, index) + close + : open + string + close + } + +let replaceClose = (string, close, replace, index) => { + let start = string.substring(0, index) + replace + let end = string.substring(index + close.length) + let nextIndex = end.indexOf(close) + return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end +} + +let createColors = (enabled = isColorSupported) => ({ + isColorSupported: enabled, + reset: enabled ? s => `\x1b[0m${s}\x1b[0m` : String, + bold: enabled ? formatter("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m") : String, + dim: enabled ? formatter("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m") : String, + italic: enabled ? formatter("\x1b[3m", "\x1b[23m") : String, + underline: enabled ? formatter("\x1b[4m", "\x1b[24m") : String, + inverse: enabled ? formatter("\x1b[7m", "\x1b[27m") : String, + hidden: enabled ? formatter("\x1b[8m", "\x1b[28m") : String, + strikethrough: enabled ? formatter("\x1b[9m", "\x1b[29m") : String, + black: enabled ? formatter("\x1b[30m", "\x1b[39m") : String, + red: enabled ? formatter("\x1b[31m", "\x1b[39m") : String, + green: enabled ? formatter("\x1b[32m", "\x1b[39m") : String, + yellow: enabled ? formatter("\x1b[33m", "\x1b[39m") : String, + blue: enabled ? formatter("\x1b[34m", "\x1b[39m") : String, + magenta: enabled ? formatter("\x1b[35m", "\x1b[39m") : String, + cyan: enabled ? formatter("\x1b[36m", "\x1b[39m") : String, + white: enabled ? formatter("\x1b[37m", "\x1b[39m") : String, + gray: enabled ? formatter("\x1b[90m", "\x1b[39m") : String, + bgBlack: enabled ? formatter("\x1b[40m", "\x1b[49m") : String, + bgRed: enabled ? formatter("\x1b[41m", "\x1b[49m") : String, + bgGreen: enabled ? formatter("\x1b[42m", "\x1b[49m") : String, + bgYellow: enabled ? formatter("\x1b[43m", "\x1b[49m") : String, + bgBlue: enabled ? formatter("\x1b[44m", "\x1b[49m") : String, + bgMagenta: enabled ? formatter("\x1b[45m", "\x1b[49m") : String, + bgCyan: enabled ? formatter("\x1b[46m", "\x1b[49m") : String, + bgWhite: enabled ? formatter("\x1b[47m", "\x1b[49m") : String, +}) + +module.exports = createColors() +module.exports.createColors = createColors diff --git a/node_modules/picocolors/types.ts b/node_modules/picocolors/types.ts new file mode 100644 index 00000000..b4bacee4 --- /dev/null +++ b/node_modules/picocolors/types.ts @@ -0,0 +1,30 @@ +export type Formatter = (input: string | number | null | undefined) => string + +export interface Colors { + isColorSupported: boolean + reset: Formatter + bold: Formatter + dim: Formatter + italic: Formatter + underline: Formatter + inverse: Formatter + hidden: Formatter + strikethrough: Formatter + black: Formatter + red: Formatter + green: Formatter + yellow: Formatter + blue: Formatter + magenta: Formatter + cyan: Formatter + white: Formatter + gray: Formatter + bgBlack: Formatter + bgRed: Formatter + bgGreen: Formatter + bgYellow: Formatter + bgBlue: Formatter + bgMagenta: Formatter + bgCyan: Formatter + bgWhite: Formatter +} diff --git a/node_modules/picomatch/CHANGELOG.md b/node_modules/picomatch/CHANGELOG.md new file mode 100644 index 00000000..8ccc6c1b --- /dev/null +++ b/node_modules/picomatch/CHANGELOG.md @@ -0,0 +1,136 @@ +# Release history + +**All notable changes to this project will be documented in this file.** + +The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). + +
+ Guiding Principles + +- Changelogs are for humans, not machines. +- There should be an entry for every single version. +- The same types of changes should be grouped. +- Versions and sections should be linkable. +- The latest version comes first. +- The release date of each versions is displayed. +- Mention whether you follow Semantic Versioning. + +
+ +
+ Types of changes + +Changelog entries are classified using the following labels _(from [keep-a-changelog](http://keepachangelog.com/)_): + +- `Added` for new features. +- `Changed` for changes in existing functionality. +- `Deprecated` for soon-to-be removed features. +- `Removed` for now removed features. +- `Fixed` for any bug fixes. +- `Security` in case of vulnerabilities. + +
+ +## 2.3.1 (2022-01-02) + +### Fixed + +* Fixes bug when a pattern containing an expression after the closing parenthesis (`/!(*.d).{ts,tsx}`) was incorrectly converted to regexp ([9f241ef](https://github.com/micromatch/picomatch/commit/9f241ef)). + +### Changed + +* Some documentation improvements ([f81d236](https://github.com/micromatch/picomatch/commit/f81d236), [421e0e7](https://github.com/micromatch/picomatch/commit/421e0e7)). + +## 2.3.0 (2021-05-21) + +### Fixed + +* Fixes bug where file names with two dots were not being matched consistently with negation extglobs containing a star ([56083ef](https://github.com/micromatch/picomatch/commit/56083ef)) + +## 2.2.3 (2021-04-10) + +### Fixed + +* Do not skip pattern seperator for square brackets ([fb08a30](https://github.com/micromatch/picomatch/commit/fb08a30)). +* Set negatedExtGlob also if it does not span the whole pattern ([032e3f5](https://github.com/micromatch/picomatch/commit/032e3f5)). + +## 2.2.2 (2020-03-21) + +### Fixed + +* Correctly handle parts of the pattern after parentheses in the `scan` method ([e15b920](https://github.com/micromatch/picomatch/commit/e15b920)). + +## 2.2.1 (2020-01-04) + +* Fixes [#49](https://github.com/micromatch/picomatch/issues/49), so that braces with no sets or ranges are now propertly treated as literals. + +## 2.2.0 (2020-01-04) + +* Disable fastpaths mode for the parse method ([5b8d33f](https://github.com/micromatch/picomatch/commit/5b8d33f)) +* Add `tokens`, `slashes`, and `parts` to the object returned by `picomatch.scan()`. + +## 2.1.0 (2019-10-31) + +* add benchmarks for scan ([4793b92](https://github.com/micromatch/picomatch/commit/4793b92)) +* Add eslint object-curly-spacing rule ([707c650](https://github.com/micromatch/picomatch/commit/707c650)) +* Add prefer-const eslint rule ([5c7501c](https://github.com/micromatch/picomatch/commit/5c7501c)) +* Add support for nonegate in scan API ([275c9b9](https://github.com/micromatch/picomatch/commit/275c9b9)) +* Change lets to consts. Move root import up. ([4840625](https://github.com/micromatch/picomatch/commit/4840625)) +* closes https://github.com/micromatch/picomatch/issues/21 ([766bcb0](https://github.com/micromatch/picomatch/commit/766bcb0)) +* Fix "Extglobs" table in readme ([eb19da8](https://github.com/micromatch/picomatch/commit/eb19da8)) +* fixes https://github.com/micromatch/picomatch/issues/20 ([9caca07](https://github.com/micromatch/picomatch/commit/9caca07)) +* fixes https://github.com/micromatch/picomatch/issues/26 ([fa58f45](https://github.com/micromatch/picomatch/commit/fa58f45)) +* Lint test ([d433a34](https://github.com/micromatch/picomatch/commit/d433a34)) +* lint unit tests ([0159b55](https://github.com/micromatch/picomatch/commit/0159b55)) +* Make scan work with noext ([6c02e03](https://github.com/micromatch/picomatch/commit/6c02e03)) +* minor linting ([c2a2b87](https://github.com/micromatch/picomatch/commit/c2a2b87)) +* minor parser improvements ([197671d](https://github.com/micromatch/picomatch/commit/197671d)) +* remove eslint since it... ([07876fa](https://github.com/micromatch/picomatch/commit/07876fa)) +* remove funding file ([8ebe96d](https://github.com/micromatch/picomatch/commit/8ebe96d)) +* Remove unused funks ([cbc6d54](https://github.com/micromatch/picomatch/commit/cbc6d54)) +* Run eslint during pretest, fix existing eslint findings ([0682367](https://github.com/micromatch/picomatch/commit/0682367)) +* support `noparen` in scan ([3d37569](https://github.com/micromatch/picomatch/commit/3d37569)) +* update changelog ([7b34e77](https://github.com/micromatch/picomatch/commit/7b34e77)) +* update travis ([777f038](https://github.com/micromatch/picomatch/commit/777f038)) +* Use eslint-disable-next-line instead of eslint-disable ([4e7c1fd](https://github.com/micromatch/picomatch/commit/4e7c1fd)) + +## 2.0.7 (2019-05-14) + +* 2.0.7 ([9eb9a71](https://github.com/micromatch/picomatch/commit/9eb9a71)) +* supports lookbehinds ([1f63f7e](https://github.com/micromatch/picomatch/commit/1f63f7e)) +* update .verb.md file with typo change ([2741279](https://github.com/micromatch/picomatch/commit/2741279)) +* fix: typo in README ([0753e44](https://github.com/micromatch/picomatch/commit/0753e44)) + +## 2.0.4 (2019-04-10) + +### Fixed + +- Readme link [fixed](https://github.com/micromatch/picomatch/pull/13/commits/a96ab3aa2b11b6861c23289964613d85563b05df) by @danez. +- `options.capture` now works as expected when fastpaths are enabled. See https://github.com/micromatch/picomatch/pull/12/commits/26aefd71f1cfaf95c37f1c1fcab68a693b037304. Thanks to @DrPizza. + +## 2.0.0 (2019-04-10) + +### Added + +- Adds support for `options.onIgnore`. See the readme for details +- Adds support for `options.onResult`. See the readme for details + +### Breaking changes + +- The unixify option was renamed to `windows` +- caching and all related options and methods have been removed + +## 1.0.0 (2018-11-05) + +- adds `.onMatch` option +- improvements to `.scan` method +- numerous improvements and optimizations for matching and parsing +- better windows path handling + +## 0.1.0 - 2017-04-13 + +First release. + + +[keep-a-changelog]: https://github.com/olivierlacan/keep-a-changelog diff --git a/node_modules/picomatch/LICENSE b/node_modules/picomatch/LICENSE new file mode 100644 index 00000000..3608dca2 --- /dev/null +++ b/node_modules/picomatch/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/picomatch/README.md b/node_modules/picomatch/README.md new file mode 100644 index 00000000..b0526e28 --- /dev/null +++ b/node_modules/picomatch/README.md @@ -0,0 +1,708 @@ +

Picomatch

+ +

+ +version + + +test status + + +coverage status + + +downloads + +

+ +
+
+ +

+Blazing fast and accurate glob matcher written in JavaScript.
+No dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions. +

+ +
+
+ +## Why picomatch? + +* **Lightweight** - No dependencies +* **Minimal** - Tiny API surface. Main export is a function that takes a glob pattern and returns a matcher function. +* **Fast** - Loads in about 2ms (that's several times faster than a [single frame of a HD movie](http://www.endmemo.com/sconvert/framespersecondframespermillisecond.php) at 60fps) +* **Performant** - Use the returned matcher function to speed up repeat matching (like when watching files) +* **Accurate matching** - Using wildcards (`*` and `?`), globstars (`**`) for nested directories, [advanced globbing](#advanced-globbing) with extglobs, braces, and POSIX brackets, and support for escaping special characters with `\` or quotes. +* **Well tested** - Thousands of unit tests + +See the [library comparison](#library-comparisons) to other libraries. + +
+
+ +## Table of Contents + +
Click to expand + +- [Install](#install) +- [Usage](#usage) +- [API](#api) + * [picomatch](#picomatch) + * [.test](#test) + * [.matchBase](#matchbase) + * [.isMatch](#ismatch) + * [.parse](#parse) + * [.scan](#scan) + * [.compileRe](#compilere) + * [.makeRe](#makere) + * [.toRegex](#toregex) +- [Options](#options) + * [Picomatch options](#picomatch-options) + * [Scan Options](#scan-options) + * [Options Examples](#options-examples) +- [Globbing features](#globbing-features) + * [Basic globbing](#basic-globbing) + * [Advanced globbing](#advanced-globbing) + * [Braces](#braces) + * [Matching special characters as literals](#matching-special-characters-as-literals) +- [Library Comparisons](#library-comparisons) +- [Benchmarks](#benchmarks) +- [Philosophies](#philosophies) +- [About](#about) + * [Author](#author) + * [License](#license) + +_(TOC generated by [verb](https://github.com/verbose/verb) using [markdown-toc](https://github.com/jonschlinkert/markdown-toc))_ + +
+ +
+
+ +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +npm install --save picomatch +``` + +
+ +## Usage + +The main export is a function that takes a glob pattern and an options object and returns a function for matching strings. + +```js +const pm = require('picomatch'); +const isMatch = pm('*.js'); + +console.log(isMatch('abcd')); //=> false +console.log(isMatch('a.js')); //=> true +console.log(isMatch('a.md')); //=> false +console.log(isMatch('a/b.js')); //=> false +``` + +
+ +## API + +### [picomatch](lib/picomatch.js#L32) + +Creates a matcher function from one or more glob patterns. The returned function takes a string to match as its first argument, and returns true if the string is a match. The returned matcher function also takes a boolean as the second argument that, when true, returns an object with additional information. + +**Params** + +* `globs` **{String|Array}**: One or more glob patterns. +* `options` **{Object=}** +* `returns` **{Function=}**: Returns a matcher function. + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch(glob[, options]); + +const isMatch = picomatch('*.!(*a)'); +console.log(isMatch('a.a')); //=> false +console.log(isMatch('a.b')); //=> true +``` + +### [.test](lib/picomatch.js#L117) + +Test `input` with the given `regex`. This is used by the main `picomatch()` function to test the input string. + +**Params** + +* `input` **{String}**: String to test. +* `regex` **{RegExp}** +* `returns` **{Object}**: Returns an object with matching info. + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch.test(input, regex[, options]); + +console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/)); +// { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' } +``` + +### [.matchBase](lib/picomatch.js#L161) + +Match the basename of a filepath. + +**Params** + +* `input` **{String}**: String to test. +* `glob` **{RegExp|String}**: Glob pattern or regex created by [.makeRe](#makeRe). +* `returns` **{Boolean}** + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch.matchBase(input, glob[, options]); +console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true +``` + +### [.isMatch](lib/picomatch.js#L183) + +Returns true if **any** of the given glob `patterns` match the specified `string`. + +**Params** + +* **{String|Array}**: str The string to test. +* **{String|Array}**: patterns One or more glob patterns to use for matching. +* **{Object}**: See available [options](#options). +* `returns` **{Boolean}**: Returns true if any patterns match `str` + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch.isMatch(string, patterns[, options]); + +console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true +console.log(picomatch.isMatch('a.a', 'b.*')); //=> false +``` + +### [.parse](lib/picomatch.js#L199) + +Parse a glob pattern to create the source string for a regular expression. + +**Params** + +* `pattern` **{String}** +* `options` **{Object}** +* `returns` **{Object}**: Returns an object with useful properties and output to be used as a regex source string. + +**Example** + +```js +const picomatch = require('picomatch'); +const result = picomatch.parse(pattern[, options]); +``` + +### [.scan](lib/picomatch.js#L231) + +Scan a glob pattern to separate the pattern into segments. + +**Params** + +* `input` **{String}**: Glob pattern to scan. +* `options` **{Object}** +* `returns` **{Object}**: Returns an object with + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch.scan(input[, options]); + +const result = picomatch.scan('!./foo/*.js'); +console.log(result); +{ prefix: '!./', + input: '!./foo/*.js', + start: 3, + base: 'foo', + glob: '*.js', + isBrace: false, + isBracket: false, + isGlob: true, + isExtglob: false, + isGlobstar: false, + negated: true } +``` + +### [.compileRe](lib/picomatch.js#L245) + +Compile a regular expression from the `state` object returned by the +[parse()](#parse) method. + +**Params** + +* `state` **{Object}** +* `options` **{Object}** +* `returnOutput` **{Boolean}**: Intended for implementors, this argument allows you to return the raw output from the parser. +* `returnState` **{Boolean}**: Adds the state to a `state` property on the returned regex. Useful for implementors and debugging. +* `returns` **{RegExp}** + +### [.makeRe](lib/picomatch.js#L286) + +Create a regular expression from a parsed glob pattern. + +**Params** + +* `state` **{String}**: The object returned from the `.parse` method. +* `options` **{Object}** +* `returnOutput` **{Boolean}**: Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result. +* `returnState` **{Boolean}**: Implementors may use this argument to return the state from the parsed glob with the returned regular expression. +* `returns` **{RegExp}**: Returns a regex created from the given pattern. + +**Example** + +```js +const picomatch = require('picomatch'); +const state = picomatch.parse('*.js'); +// picomatch.compileRe(state[, options]); + +console.log(picomatch.compileRe(state)); +//=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ +``` + +### [.toRegex](lib/picomatch.js#L321) + +Create a regular expression from the given regex source string. + +**Params** + +* `source` **{String}**: Regular expression source string. +* `options` **{Object}** +* `returns` **{RegExp}** + +**Example** + +```js +const picomatch = require('picomatch'); +// picomatch.toRegex(source[, options]); + +const { output } = picomatch.parse('*.js'); +console.log(picomatch.toRegex(output)); +//=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ +``` + +
+ +## Options + +### Picomatch options + +The following options may be used with the main `picomatch()` function or any of the methods on the picomatch API. + +| **Option** | **Type** | **Default value** | **Description** | +| --- | --- | --- | --- | +| `basename` | `boolean` | `false` | If set, then patterns without slashes will be matched against the basename of the path if it contains slashes. For example, `a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`. | +| `bash` | `boolean` | `false` | Follow bash matching rules more strictly - disallows backslashes as escape characters, and treats single stars as globstars (`**`). | +| `capture` | `boolean` | `undefined` | Return regex matches in supporting methods. | +| `contains` | `boolean` | `undefined` | Allows glob to match any part of the given string(s). | +| `cwd` | `string` | `process.cwd()` | Current working directory. Used by `picomatch.split()` | +| `debug` | `boolean` | `undefined` | Debug regular expressions when an error is thrown. | +| `dot` | `boolean` | `false` | Enable dotfile matching. By default, dotfiles are ignored unless a `.` is explicitly defined in the pattern, or `options.dot` is true | +| `expandRange` | `function` | `undefined` | Custom function for expanding ranges in brace patterns, such as `{a..z}`. The function receives the range values as two arguments, and it must return a string to be used in the generated regex. It's recommended that returned strings be wrapped in parentheses. | +| `failglob` | `boolean` | `false` | Throws an error if no matches are found. Based on the bash option of the same name. | +| `fastpaths` | `boolean` | `true` | To speed up processing, full parsing is skipped for a handful common glob patterns. Disable this behavior by setting this option to `false`. | +| `flags` | `string` | `undefined` | Regex flags to use in the generated regex. If defined, the `nocase` option will be overridden. | +| [format](#optionsformat) | `function` | `undefined` | Custom function for formatting the returned string. This is useful for removing leading slashes, converting Windows paths to Posix paths, etc. | +| `ignore` | `array\|string` | `undefined` | One or more glob patterns for excluding strings that should not be matched from the result. | +| `keepQuotes` | `boolean` | `false` | Retain quotes in the generated regex, since quotes may also be used as an alternative to backslashes. | +| `literalBrackets` | `boolean` | `undefined` | When `true`, brackets in the glob pattern will be escaped so that only literal brackets will be matched. | +| `matchBase` | `boolean` | `false` | Alias for `basename` | +| `maxLength` | `boolean` | `65536` | Limit the max length of the input string. An error is thrown if the input string is longer than this value. | +| `nobrace` | `boolean` | `false` | Disable brace matching, so that `{a,b}` and `{1..3}` would be treated as literal characters. | +| `nobracket` | `boolean` | `undefined` | Disable matching with regex brackets. | +| `nocase` | `boolean` | `false` | Make matching case-insensitive. Equivalent to the regex `i` flag. Note that this option is overridden by the `flags` option. | +| `nodupes` | `boolean` | `true` | Deprecated, use `nounique` instead. This option will be removed in a future major release. By default duplicates are removed. Disable uniquification by setting this option to false. | +| `noext` | `boolean` | `false` | Alias for `noextglob` | +| `noextglob` | `boolean` | `false` | Disable support for matching with extglobs (like `+(a\|b)`) | +| `noglobstar` | `boolean` | `false` | Disable support for matching nested directories with globstars (`**`) | +| `nonegate` | `boolean` | `false` | Disable support for negating with leading `!` | +| `noquantifiers` | `boolean` | `false` | Disable support for regex quantifiers (like `a{1,2}`) and treat them as brace patterns to be expanded. | +| [onIgnore](#optionsonIgnore) | `function` | `undefined` | Function to be called on ignored items. | +| [onMatch](#optionsonMatch) | `function` | `undefined` | Function to be called on matched items. | +| [onResult](#optionsonResult) | `function` | `undefined` | Function to be called on all items, regardless of whether or not they are matched or ignored. | +| `posix` | `boolean` | `false` | Support POSIX character classes ("posix brackets"). | +| `posixSlashes` | `boolean` | `undefined` | Convert all slashes in file paths to forward slashes. This does not convert slashes in the glob pattern itself | +| `prepend` | `boolean` | `undefined` | String to prepend to the generated regex used for matching. | +| `regex` | `boolean` | `false` | Use regular expression rules for `+` (instead of matching literal `+`), and for stars that follow closing parentheses or brackets (as in `)*` and `]*`). | +| `strictBrackets` | `boolean` | `undefined` | Throw an error if brackets, braces, or parens are imbalanced. | +| `strictSlashes` | `boolean` | `undefined` | When true, picomatch won't match trailing slashes with single stars. | +| `unescape` | `boolean` | `undefined` | Remove backslashes preceding escaped characters in the glob pattern. By default, backslashes are retained. | +| `unixify` | `boolean` | `undefined` | Alias for `posixSlashes`, for backwards compatibility. | + +picomatch has automatic detection for regex positive and negative lookbehinds. If the pattern contains a negative lookbehind, you must be using Node.js >= 8.10 or else picomatch will throw an error. + +### Scan Options + +In addition to the main [picomatch options](#picomatch-options), the following options may also be used with the [.scan](#scan) method. + +| **Option** | **Type** | **Default value** | **Description** | +| --- | --- | --- | --- | +| `tokens` | `boolean` | `false` | When `true`, the returned object will include an array of tokens (objects), representing each path "segment" in the scanned glob pattern | +| `parts` | `boolean` | `false` | When `true`, the returned object will include an array of strings representing each path "segment" in the scanned glob pattern. This is automatically enabled when `options.tokens` is true | + +**Example** + +```js +const picomatch = require('picomatch'); +const result = picomatch.scan('!./foo/*.js', { tokens: true }); +console.log(result); +// { +// prefix: '!./', +// input: '!./foo/*.js', +// start: 3, +// base: 'foo', +// glob: '*.js', +// isBrace: false, +// isBracket: false, +// isGlob: true, +// isExtglob: false, +// isGlobstar: false, +// negated: true, +// maxDepth: 2, +// tokens: [ +// { value: '!./', depth: 0, isGlob: false, negated: true, isPrefix: true }, +// { value: 'foo', depth: 1, isGlob: false }, +// { value: '*.js', depth: 1, isGlob: true } +// ], +// slashes: [ 2, 6 ], +// parts: [ 'foo', '*.js' ] +// } +``` + +
+ +### Options Examples + +#### options.expandRange + +**Type**: `function` + +**Default**: `undefined` + +Custom function for expanding ranges in brace patterns. The [fill-range](https://github.com/jonschlinkert/fill-range) library is ideal for this purpose, or you can use custom code to do whatever you need. + +**Example** + +The following example shows how to create a glob that matches a folder + +```js +const fill = require('fill-range'); +const regex = pm.makeRe('foo/{01..25}/bar', { + expandRange(a, b) { + return `(${fill(a, b, { toRegex: true })})`; + } +}); + +console.log(regex); +//=> /^(?:foo\/((?:0[1-9]|1[0-9]|2[0-5]))\/bar)$/ + +console.log(regex.test('foo/00/bar')) // false +console.log(regex.test('foo/01/bar')) // true +console.log(regex.test('foo/10/bar')) // true +console.log(regex.test('foo/22/bar')) // true +console.log(regex.test('foo/25/bar')) // true +console.log(regex.test('foo/26/bar')) // false +``` + +#### options.format + +**Type**: `function` + +**Default**: `undefined` + +Custom function for formatting strings before they're matched. + +**Example** + +```js +// strip leading './' from strings +const format = str => str.replace(/^\.\//, ''); +const isMatch = picomatch('foo/*.js', { format }); +console.log(isMatch('./foo/bar.js')); //=> true +``` + +#### options.onMatch + +```js +const onMatch = ({ glob, regex, input, output }) => { + console.log({ glob, regex, input, output }); +}; + +const isMatch = picomatch('*', { onMatch }); +isMatch('foo'); +isMatch('bar'); +isMatch('baz'); +``` + +#### options.onIgnore + +```js +const onIgnore = ({ glob, regex, input, output }) => { + console.log({ glob, regex, input, output }); +}; + +const isMatch = picomatch('*', { onIgnore, ignore: 'f*' }); +isMatch('foo'); +isMatch('bar'); +isMatch('baz'); +``` + +#### options.onResult + +```js +const onResult = ({ glob, regex, input, output }) => { + console.log({ glob, regex, input, output }); +}; + +const isMatch = picomatch('*', { onResult, ignore: 'f*' }); +isMatch('foo'); +isMatch('bar'); +isMatch('baz'); +``` + +
+
+ +## Globbing features + +* [Basic globbing](#basic-globbing) (Wildcard matching) +* [Advanced globbing](#advanced-globbing) (extglobs, posix brackets, brace matching) + +### Basic globbing + +| **Character** | **Description** | +| --- | --- | +| `*` | Matches any character zero or more times, excluding path separators. Does _not match_ path separators or hidden files or directories ("dotfiles"), unless explicitly enabled by setting the `dot` option to `true`. | +| `**` | Matches any character zero or more times, including path separators. Note that `**` will only match path separators (`/`, and `\\` on Windows) when they are the only characters in a path segment. Thus, `foo**/bar` is equivalent to `foo*/bar`, and `foo/a**b/bar` is equivalent to `foo/a*b/bar`, and _more than two_ consecutive stars in a glob path segment are regarded as _a single star_. Thus, `foo/***/bar` is equivalent to `foo/*/bar`. | +| `?` | Matches any character excluding path separators one time. Does _not match_ path separators or leading dots. | +| `[abc]` | Matches any characters inside the brackets. For example, `[abc]` would match the characters `a`, `b` or `c`, and nothing else. | + +#### Matching behavior vs. Bash + +Picomatch's matching features and expected results in unit tests are based on Bash's unit tests and the Bash 4.3 specification, with the following exceptions: + +* Bash will match `foo/bar/baz` with `*`. Picomatch only matches nested directories with `**`. +* Bash greedily matches with negated extglobs. For example, Bash 4.3 says that `!(foo)*` should match `foo` and `foobar`, since the trailing `*` bracktracks to match the preceding pattern. This is very memory-inefficient, and IMHO, also incorrect. Picomatch would return `false` for both `foo` and `foobar`. + +
+ +### Advanced globbing + +* [extglobs](#extglobs) +* [POSIX brackets](#posix-brackets) +* [Braces](#brace-expansion) + +#### Extglobs + +| **Pattern** | **Description** | +| --- | --- | +| `@(pattern)` | Match _only one_ consecutive occurrence of `pattern` | +| `*(pattern)` | Match _zero or more_ consecutive occurrences of `pattern` | +| `+(pattern)` | Match _one or more_ consecutive occurrences of `pattern` | +| `?(pattern)` | Match _zero or **one**_ consecutive occurrences of `pattern` | +| `!(pattern)` | Match _anything but_ `pattern` | + +**Examples** + +```js +const pm = require('picomatch'); + +// *(pattern) matches ZERO or more of "pattern" +console.log(pm.isMatch('a', 'a*(z)')); // true +console.log(pm.isMatch('az', 'a*(z)')); // true +console.log(pm.isMatch('azzz', 'a*(z)')); // true + +// +(pattern) matches ONE or more of "pattern" +console.log(pm.isMatch('a', 'a*(z)')); // true +console.log(pm.isMatch('az', 'a*(z)')); // true +console.log(pm.isMatch('azzz', 'a*(z)')); // true + +// supports multiple extglobs +console.log(pm.isMatch('foo.bar', '!(foo).!(bar)')); // false + +// supports nested extglobs +console.log(pm.isMatch('foo.bar', '!(!(foo)).!(!(bar))')); // true +``` + +#### POSIX brackets + +POSIX classes are disabled by default. Enable this feature by setting the `posix` option to true. + +**Enable POSIX bracket support** + +```js +console.log(pm.makeRe('[[:word:]]+', { posix: true })); +//=> /^(?:(?=.)[A-Za-z0-9_]+\/?)$/ +``` + +**Supported POSIX classes** + +The following named POSIX bracket expressions are supported: + +* `[:alnum:]` - Alphanumeric characters, equ `[a-zA-Z0-9]` +* `[:alpha:]` - Alphabetical characters, equivalent to `[a-zA-Z]`. +* `[:ascii:]` - ASCII characters, equivalent to `[\\x00-\\x7F]`. +* `[:blank:]` - Space and tab characters, equivalent to `[ \\t]`. +* `[:cntrl:]` - Control characters, equivalent to `[\\x00-\\x1F\\x7F]`. +* `[:digit:]` - Numerical digits, equivalent to `[0-9]`. +* `[:graph:]` - Graph characters, equivalent to `[\\x21-\\x7E]`. +* `[:lower:]` - Lowercase letters, equivalent to `[a-z]`. +* `[:print:]` - Print characters, equivalent to `[\\x20-\\x7E ]`. +* `[:punct:]` - Punctuation and symbols, equivalent to `[\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~]`. +* `[:space:]` - Extended space characters, equivalent to `[ \\t\\r\\n\\v\\f]`. +* `[:upper:]` - Uppercase letters, equivalent to `[A-Z]`. +* `[:word:]` - Word characters (letters, numbers and underscores), equivalent to `[A-Za-z0-9_]`. +* `[:xdigit:]` - Hexadecimal digits, equivalent to `[A-Fa-f0-9]`. + +See the [Bash Reference Manual](https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html) for more information. + +### Braces + +Picomatch does not do brace expansion. For [brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html) and advanced matching with braces, use [micromatch](https://github.com/micromatch/micromatch) instead. Picomatch has very basic support for braces. + +### Matching special characters as literals + +If you wish to match the following special characters in a filepath, and you want to use these characters in your glob pattern, they must be escaped with backslashes or quotes: + +**Special Characters** + +Some characters that are used for matching in regular expressions are also regarded as valid file path characters on some platforms. + +To match any of the following characters as literals: `$^*+?()[] + +Examples: + +```js +console.log(pm.makeRe('foo/bar \\(1\\)')); +console.log(pm.makeRe('foo/bar \\(1\\)')); +``` + +
+
+ +## Library Comparisons + +The following table shows which features are supported by [minimatch](https://github.com/isaacs/minimatch), [micromatch](https://github.com/micromatch/micromatch), [picomatch](https://github.com/micromatch/picomatch), [nanomatch](https://github.com/micromatch/nanomatch), [extglob](https://github.com/micromatch/extglob), [braces](https://github.com/micromatch/braces), and [expand-brackets](https://github.com/micromatch/expand-brackets). + +| **Feature** | `minimatch` | `micromatch` | `picomatch` | `nanomatch` | `extglob` | `braces` | `expand-brackets` | +| --- | --- | --- | --- | --- | --- | --- | --- | +| Wildcard matching (`*?+`) | ✔ | ✔ | ✔ | ✔ | - | - | - | +| Advancing globbing | ✔ | ✔ | ✔ | - | - | - | - | +| Brace _matching_ | ✔ | ✔ | ✔ | - | - | ✔ | - | +| Brace _expansion_ | ✔ | ✔ | - | - | - | ✔ | - | +| Extglobs | partial | ✔ | ✔ | - | ✔ | - | - | +| Posix brackets | - | ✔ | ✔ | - | - | - | ✔ | +| Regular expression syntax | - | ✔ | ✔ | ✔ | ✔ | - | ✔ | +| File system operations | - | - | - | - | - | - | - | + +
+
+ +## Benchmarks + +Performance comparison of picomatch and minimatch. + +``` +# .makeRe star + picomatch x 1,993,050 ops/sec ±0.51% (91 runs sampled) + minimatch x 627,206 ops/sec ±1.96% (87 runs sampled)) + +# .makeRe star; dot=true + picomatch x 1,436,640 ops/sec ±0.62% (91 runs sampled) + minimatch x 525,876 ops/sec ±0.60% (88 runs sampled) + +# .makeRe globstar + picomatch x 1,592,742 ops/sec ±0.42% (90 runs sampled) + minimatch x 962,043 ops/sec ±1.76% (91 runs sampled)d) + +# .makeRe globstars + picomatch x 1,615,199 ops/sec ±0.35% (94 runs sampled) + minimatch x 477,179 ops/sec ±1.33% (91 runs sampled) + +# .makeRe with leading star + picomatch x 1,220,856 ops/sec ±0.40% (92 runs sampled) + minimatch x 453,564 ops/sec ±1.43% (94 runs sampled) + +# .makeRe - basic braces + picomatch x 392,067 ops/sec ±0.70% (90 runs sampled) + minimatch x 99,532 ops/sec ±2.03% (87 runs sampled)) +``` + +
+
+ +## Philosophies + +The goal of this library is to be blazing fast, without compromising on accuracy. + +**Accuracy** + +The number one of goal of this library is accuracy. However, it's not unusual for different glob implementations to have different rules for matching behavior, even with simple wildcard matching. It gets increasingly more complicated when combinations of different features are combined, like when extglobs are combined with globstars, braces, slashes, and so on: `!(**/{a,b,*/c})`. + +Thus, given that there is no canonical glob specification to use as a single source of truth when differences of opinion arise regarding behavior, sometimes we have to implement our best judgement and rely on feedback from users to make improvements. + +**Performance** + +Although this library performs well in benchmarks, and in most cases it's faster than other popular libraries we benchmarked against, we will always choose accuracy over performance. It's not helpful to anyone if our library is faster at returning the wrong answer. + +
+
+ +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +Please read the [contributing guide](.github/contributing.md) for advice on opening issues, pull requests, and coding standards. + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +### License + +Copyright © 2017-present, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). diff --git a/node_modules/picomatch/index.js b/node_modules/picomatch/index.js new file mode 100644 index 00000000..d2f2bc59 --- /dev/null +++ b/node_modules/picomatch/index.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('./lib/picomatch'); diff --git a/node_modules/picomatch/lib/constants.js b/node_modules/picomatch/lib/constants.js new file mode 100644 index 00000000..a62ef387 --- /dev/null +++ b/node_modules/picomatch/lib/constants.js @@ -0,0 +1,179 @@ +'use strict'; + +const path = require('path'); +const WIN_SLASH = '\\\\/'; +const WIN_NO_SLASH = `[^${WIN_SLASH}]`; + +/** + * Posix glob regex + */ + +const DOT_LITERAL = '\\.'; +const PLUS_LITERAL = '\\+'; +const QMARK_LITERAL = '\\?'; +const SLASH_LITERAL = '\\/'; +const ONE_CHAR = '(?=.)'; +const QMARK = '[^/]'; +const END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; +const START_ANCHOR = `(?:^|${SLASH_LITERAL})`; +const DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; +const NO_DOT = `(?!${DOT_LITERAL})`; +const NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; +const NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; +const NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; +const QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; +const STAR = `${QMARK}*?`; + +const POSIX_CHARS = { + DOT_LITERAL, + PLUS_LITERAL, + QMARK_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + QMARK, + END_ANCHOR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK_NO_DOT, + STAR, + START_ANCHOR +}; + +/** + * Windows glob regex + */ + +const WINDOWS_CHARS = { + ...POSIX_CHARS, + + SLASH_LITERAL: `[${WIN_SLASH}]`, + QMARK: WIN_NO_SLASH, + STAR: `${WIN_NO_SLASH}*?`, + DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, + NO_DOT: `(?!${DOT_LITERAL})`, + NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, + NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, + QMARK_NO_DOT: `[^.${WIN_SLASH}]`, + START_ANCHOR: `(?:^|[${WIN_SLASH}])`, + END_ANCHOR: `(?:[${WIN_SLASH}]|$)` +}; + +/** + * POSIX Bracket Regex + */ + +const POSIX_REGEX_SOURCE = { + alnum: 'a-zA-Z0-9', + alpha: 'a-zA-Z', + ascii: '\\x00-\\x7F', + blank: ' \\t', + cntrl: '\\x00-\\x1F\\x7F', + digit: '0-9', + graph: '\\x21-\\x7E', + lower: 'a-z', + print: '\\x20-\\x7E ', + punct: '\\-!"#$%&\'()\\*+,./:;<=>?@[\\]^_`{|}~', + space: ' \\t\\r\\n\\v\\f', + upper: 'A-Z', + word: 'A-Za-z0-9_', + xdigit: 'A-Fa-f0-9' +}; + +module.exports = { + MAX_LENGTH: 1024 * 64, + POSIX_REGEX_SOURCE, + + // regular expressions + REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, + REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, + REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, + REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, + REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, + REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, + + // Replace globs with equivalent patterns to reduce parsing time. + REPLACEMENTS: { + '***': '*', + '**/**': '**', + '**/**/**': '**' + }, + + // Digits + CHAR_0: 48, /* 0 */ + CHAR_9: 57, /* 9 */ + + // Alphabet chars. + CHAR_UPPERCASE_A: 65, /* A */ + CHAR_LOWERCASE_A: 97, /* a */ + CHAR_UPPERCASE_Z: 90, /* Z */ + CHAR_LOWERCASE_Z: 122, /* z */ + + CHAR_LEFT_PARENTHESES: 40, /* ( */ + CHAR_RIGHT_PARENTHESES: 41, /* ) */ + + CHAR_ASTERISK: 42, /* * */ + + // Non-alphabetic chars. + CHAR_AMPERSAND: 38, /* & */ + CHAR_AT: 64, /* @ */ + CHAR_BACKWARD_SLASH: 92, /* \ */ + CHAR_CARRIAGE_RETURN: 13, /* \r */ + CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */ + CHAR_COLON: 58, /* : */ + CHAR_COMMA: 44, /* , */ + CHAR_DOT: 46, /* . */ + CHAR_DOUBLE_QUOTE: 34, /* " */ + CHAR_EQUAL: 61, /* = */ + CHAR_EXCLAMATION_MARK: 33, /* ! */ + CHAR_FORM_FEED: 12, /* \f */ + CHAR_FORWARD_SLASH: 47, /* / */ + CHAR_GRAVE_ACCENT: 96, /* ` */ + CHAR_HASH: 35, /* # */ + CHAR_HYPHEN_MINUS: 45, /* - */ + CHAR_LEFT_ANGLE_BRACKET: 60, /* < */ + CHAR_LEFT_CURLY_BRACE: 123, /* { */ + CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */ + CHAR_LINE_FEED: 10, /* \n */ + CHAR_NO_BREAK_SPACE: 160, /* \u00A0 */ + CHAR_PERCENT: 37, /* % */ + CHAR_PLUS: 43, /* + */ + CHAR_QUESTION_MARK: 63, /* ? */ + CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */ + CHAR_RIGHT_CURLY_BRACE: 125, /* } */ + CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */ + CHAR_SEMICOLON: 59, /* ; */ + CHAR_SINGLE_QUOTE: 39, /* ' */ + CHAR_SPACE: 32, /* */ + CHAR_TAB: 9, /* \t */ + CHAR_UNDERSCORE: 95, /* _ */ + CHAR_VERTICAL_LINE: 124, /* | */ + CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \uFEFF */ + + SEP: path.sep, + + /** + * Create EXTGLOB_CHARS + */ + + extglobChars(chars) { + return { + '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` }, + '?': { type: 'qmark', open: '(?:', close: ')?' }, + '+': { type: 'plus', open: '(?:', close: ')+' }, + '*': { type: 'star', open: '(?:', close: ')*' }, + '@': { type: 'at', open: '(?:', close: ')' } + }; + }, + + /** + * Create GLOB_CHARS + */ + + globChars(win32) { + return win32 === true ? WINDOWS_CHARS : POSIX_CHARS; + } +}; diff --git a/node_modules/picomatch/lib/parse.js b/node_modules/picomatch/lib/parse.js new file mode 100644 index 00000000..58269d01 --- /dev/null +++ b/node_modules/picomatch/lib/parse.js @@ -0,0 +1,1091 @@ +'use strict'; + +const constants = require('./constants'); +const utils = require('./utils'); + +/** + * Constants + */ + +const { + MAX_LENGTH, + POSIX_REGEX_SOURCE, + REGEX_NON_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_BACKREF, + REPLACEMENTS +} = constants; + +/** + * Helpers + */ + +const expandRange = (args, options) => { + if (typeof options.expandRange === 'function') { + return options.expandRange(...args, options); + } + + args.sort(); + const value = `[${args.join('-')}]`; + + try { + /* eslint-disable-next-line no-new */ + new RegExp(value); + } catch (ex) { + return args.map(v => utils.escapeRegex(v)).join('..'); + } + + return value; +}; + +/** + * Create the message for a syntax error + */ + +const syntaxError = (type, char) => { + return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; +}; + +/** + * Parse the given input string. + * @param {String} input + * @param {Object} options + * @return {Object} + */ + +const parse = (input, options) => { + if (typeof input !== 'string') { + throw new TypeError('Expected a string'); + } + + input = REPLACEMENTS[input] || input; + + const opts = { ...options }; + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + + let len = input.length; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + } + + const bos = { type: 'bos', value: '', output: opts.prepend || '' }; + const tokens = [bos]; + + const capture = opts.capture ? '' : '?:'; + const win32 = utils.isWindows(options); + + // create constants based on platform, for windows or posix + const PLATFORM_CHARS = constants.globChars(win32); + const EXTGLOB_CHARS = constants.extglobChars(PLATFORM_CHARS); + + const { + DOT_LITERAL, + PLUS_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOT_SLASH, + NO_DOTS_SLASH, + QMARK, + QMARK_NO_DOT, + STAR, + START_ANCHOR + } = PLATFORM_CHARS; + + const globstar = opts => { + return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; + + const nodot = opts.dot ? '' : NO_DOT; + const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT; + let star = opts.bash === true ? globstar(opts) : STAR; + + if (opts.capture) { + star = `(${star})`; + } + + // minimatch options support + if (typeof opts.noext === 'boolean') { + opts.noextglob = opts.noext; + } + + const state = { + input, + index: -1, + start: 0, + dot: opts.dot === true, + consumed: '', + output: '', + prefix: '', + backtrack: false, + negated: false, + brackets: 0, + braces: 0, + parens: 0, + quotes: 0, + globstar: false, + tokens + }; + + input = utils.removePrefix(input, state); + len = input.length; + + const extglobs = []; + const braces = []; + const stack = []; + let prev = bos; + let value; + + /** + * Tokenizing helpers + */ + + const eos = () => state.index === len - 1; + const peek = state.peek = (n = 1) => input[state.index + n]; + const advance = state.advance = () => input[++state.index] || ''; + const remaining = () => input.slice(state.index + 1); + const consume = (value = '', num = 0) => { + state.consumed += value; + state.index += num; + }; + + const append = token => { + state.output += token.output != null ? token.output : token.value; + consume(token.value); + }; + + const negate = () => { + let count = 1; + + while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) { + advance(); + state.start++; + count++; + } + + if (count % 2 === 0) { + return false; + } + + state.negated = true; + state.start++; + return true; + }; + + const increment = type => { + state[type]++; + stack.push(type); + }; + + const decrement = type => { + state[type]--; + stack.pop(); + }; + + /** + * Push tokens onto the tokens array. This helper speeds up + * tokenizing by 1) helping us avoid backtracking as much as possible, + * and 2) helping us avoid creating extra tokens when consecutive + * characters are plain text. This improves performance and simplifies + * lookbehinds. + */ + + const push = tok => { + if (prev.type === 'globstar') { + const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace'); + const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren')); + + if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) { + state.output = state.output.slice(0, -prev.output.length); + prev.type = 'star'; + prev.value = '*'; + prev.output = star; + state.output += prev.output; + } + } + + if (extglobs.length && tok.type !== 'paren') { + extglobs[extglobs.length - 1].inner += tok.value; + } + + if (tok.value || tok.output) append(tok); + if (prev && prev.type === 'text' && tok.type === 'text') { + prev.value += tok.value; + prev.output = (prev.output || '') + tok.value; + return; + } + + tok.prev = prev; + tokens.push(tok); + prev = tok; + }; + + const extglobOpen = (type, value) => { + const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' }; + + token.prev = prev; + token.parens = state.parens; + token.output = state.output; + const output = (opts.capture ? '(' : '') + token.open; + + increment('parens'); + push({ type, value, output: state.output ? '' : ONE_CHAR }); + push({ type: 'paren', extglob: true, value: advance(), output }); + extglobs.push(token); + }; + + const extglobClose = token => { + let output = token.close + (opts.capture ? ')' : ''); + let rest; + + if (token.type === 'negate') { + let extglobStar = star; + + if (token.inner && token.inner.length > 1 && token.inner.includes('/')) { + extglobStar = globstar(opts); + } + + if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { + output = token.close = `)$))${extglobStar}`; + } + + if (token.inner.includes('*') && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) { + // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis. + // In this case, we need to parse the string and use it in the output of the original pattern. + // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`. + // + // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`. + const expression = parse(rest, { ...options, fastpaths: false }).output; + + output = token.close = `)${expression})${extglobStar})`; + } + + if (token.prev.type === 'bos') { + state.negatedExtglob = true; + } + } + + push({ type: 'paren', extglob: true, value, output }); + decrement('parens'); + }; + + /** + * Fast paths + */ + + if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { + let backslashes = false; + + let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => { + if (first === '\\') { + backslashes = true; + return m; + } + + if (first === '?') { + if (esc) { + return esc + first + (rest ? QMARK.repeat(rest.length) : ''); + } + if (index === 0) { + return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : ''); + } + return QMARK.repeat(chars.length); + } + + if (first === '.') { + return DOT_LITERAL.repeat(chars.length); + } + + if (first === '*') { + if (esc) { + return esc + first + (rest ? star : ''); + } + return star; + } + return esc ? m : `\\${m}`; + }); + + if (backslashes === true) { + if (opts.unescape === true) { + output = output.replace(/\\/g, ''); + } else { + output = output.replace(/\\+/g, m => { + return m.length % 2 === 0 ? '\\\\' : (m ? '\\' : ''); + }); + } + } + + if (output === input && opts.contains === true) { + state.output = input; + return state; + } + + state.output = utils.wrapOutput(output, state, options); + return state; + } + + /** + * Tokenize input until we reach end-of-string + */ + + while (!eos()) { + value = advance(); + + if (value === '\u0000') { + continue; + } + + /** + * Escaped characters + */ + + if (value === '\\') { + const next = peek(); + + if (next === '/' && opts.bash !== true) { + continue; + } + + if (next === '.' || next === ';') { + continue; + } + + if (!next) { + value += '\\'; + push({ type: 'text', value }); + continue; + } + + // collapse slashes to reduce potential for exploits + const match = /^\\+/.exec(remaining()); + let slashes = 0; + + if (match && match[0].length > 2) { + slashes = match[0].length; + state.index += slashes; + if (slashes % 2 !== 0) { + value += '\\'; + } + } + + if (opts.unescape === true) { + value = advance(); + } else { + value += advance(); + } + + if (state.brackets === 0) { + push({ type: 'text', value }); + continue; + } + } + + /** + * If we're inside a regex character class, continue + * until we reach the closing bracket. + */ + + if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) { + if (opts.posix !== false && value === ':') { + const inner = prev.value.slice(1); + if (inner.includes('[')) { + prev.posix = true; + + if (inner.includes(':')) { + const idx = prev.value.lastIndexOf('['); + const pre = prev.value.slice(0, idx); + const rest = prev.value.slice(idx + 2); + const posix = POSIX_REGEX_SOURCE[rest]; + if (posix) { + prev.value = pre + posix; + state.backtrack = true; + advance(); + + if (!bos.output && tokens.indexOf(prev) === 1) { + bos.output = ONE_CHAR; + } + continue; + } + } + } + } + + if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) { + value = `\\${value}`; + } + + if (value === ']' && (prev.value === '[' || prev.value === '[^')) { + value = `\\${value}`; + } + + if (opts.posix === true && value === '!' && prev.value === '[') { + value = '^'; + } + + prev.value += value; + append({ value }); + continue; + } + + /** + * If we're inside a quoted string, continue + * until we reach the closing double quote. + */ + + if (state.quotes === 1 && value !== '"') { + value = utils.escapeRegex(value); + prev.value += value; + append({ value }); + continue; + } + + /** + * Double quotes + */ + + if (value === '"') { + state.quotes = state.quotes === 1 ? 0 : 1; + if (opts.keepQuotes === true) { + push({ type: 'text', value }); + } + continue; + } + + /** + * Parentheses + */ + + if (value === '(') { + increment('parens'); + push({ type: 'paren', value }); + continue; + } + + if (value === ')') { + if (state.parens === 0 && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('opening', '(')); + } + + const extglob = extglobs[extglobs.length - 1]; + if (extglob && state.parens === extglob.parens + 1) { + extglobClose(extglobs.pop()); + continue; + } + + push({ type: 'paren', value, output: state.parens ? ')' : '\\)' }); + decrement('parens'); + continue; + } + + /** + * Square brackets + */ + + if (value === '[') { + if (opts.nobracket === true || !remaining().includes(']')) { + if (opts.nobracket !== true && opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('closing', ']')); + } + + value = `\\${value}`; + } else { + increment('brackets'); + } + + push({ type: 'bracket', value }); + continue; + } + + if (value === ']') { + if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) { + push({ type: 'text', value, output: `\\${value}` }); + continue; + } + + if (state.brackets === 0) { + if (opts.strictBrackets === true) { + throw new SyntaxError(syntaxError('opening', '[')); + } + + push({ type: 'text', value, output: `\\${value}` }); + continue; + } + + decrement('brackets'); + + const prevValue = prev.value.slice(1); + if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) { + value = `/${value}`; + } + + prev.value += value; + append({ value }); + + // when literal brackets are explicitly disabled + // assume we should match with a regex character class + if (opts.literalBrackets === false || utils.hasRegexChars(prevValue)) { + continue; + } + + const escaped = utils.escapeRegex(prev.value); + state.output = state.output.slice(0, -prev.value.length); + + // when literal brackets are explicitly enabled + // assume we should escape the brackets to match literal characters + if (opts.literalBrackets === true) { + state.output += escaped; + prev.value = escaped; + continue; + } + + // when the user specifies nothing, try to match both + prev.value = `(${capture}${escaped}|${prev.value})`; + state.output += prev.value; + continue; + } + + /** + * Braces + */ + + if (value === '{' && opts.nobrace !== true) { + increment('braces'); + + const open = { + type: 'brace', + value, + output: '(', + outputIndex: state.output.length, + tokensIndex: state.tokens.length + }; + + braces.push(open); + push(open); + continue; + } + + if (value === '}') { + const brace = braces[braces.length - 1]; + + if (opts.nobrace === true || !brace) { + push({ type: 'text', value, output: value }); + continue; + } + + let output = ')'; + + if (brace.dots === true) { + const arr = tokens.slice(); + const range = []; + + for (let i = arr.length - 1; i >= 0; i--) { + tokens.pop(); + if (arr[i].type === 'brace') { + break; + } + if (arr[i].type !== 'dots') { + range.unshift(arr[i].value); + } + } + + output = expandRange(range, opts); + state.backtrack = true; + } + + if (brace.comma !== true && brace.dots !== true) { + const out = state.output.slice(0, brace.outputIndex); + const toks = state.tokens.slice(brace.tokensIndex); + brace.value = brace.output = '\\{'; + value = output = '\\}'; + state.output = out; + for (const t of toks) { + state.output += (t.output || t.value); + } + } + + push({ type: 'brace', value, output }); + decrement('braces'); + braces.pop(); + continue; + } + + /** + * Pipes + */ + + if (value === '|') { + if (extglobs.length > 0) { + extglobs[extglobs.length - 1].conditions++; + } + push({ type: 'text', value }); + continue; + } + + /** + * Commas + */ + + if (value === ',') { + let output = value; + + const brace = braces[braces.length - 1]; + if (brace && stack[stack.length - 1] === 'braces') { + brace.comma = true; + output = '|'; + } + + push({ type: 'comma', value, output }); + continue; + } + + /** + * Slashes + */ + + if (value === '/') { + // if the beginning of the glob is "./", advance the start + // to the current index, and don't add the "./" characters + // to the state. This greatly simplifies lookbehinds when + // checking for BOS characters like "!" and "." (not "./") + if (prev.type === 'dot' && state.index === state.start + 1) { + state.start = state.index + 1; + state.consumed = ''; + state.output = ''; + tokens.pop(); + prev = bos; // reset "prev" to the first token + continue; + } + + push({ type: 'slash', value, output: SLASH_LITERAL }); + continue; + } + + /** + * Dots + */ + + if (value === '.') { + if (state.braces > 0 && prev.type === 'dot') { + if (prev.value === '.') prev.output = DOT_LITERAL; + const brace = braces[braces.length - 1]; + prev.type = 'dots'; + prev.output += value; + prev.value += value; + brace.dots = true; + continue; + } + + if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') { + push({ type: 'text', value, output: DOT_LITERAL }); + continue; + } + + push({ type: 'dot', value, output: DOT_LITERAL }); + continue; + } + + /** + * Question marks + */ + + if (value === '?') { + const isGroup = prev && prev.value === '('; + if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + extglobOpen('qmark', value); + continue; + } + + if (prev && prev.type === 'paren') { + const next = peek(); + let output = value; + + if (next === '<' && !utils.supportsLookbehinds()) { + throw new Error('Node.js v10 or higher is required for regex lookbehinds'); + } + + if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\w+>)/.test(remaining()))) { + output = `\\${value}`; + } + + push({ type: 'text', value, output }); + continue; + } + + if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) { + push({ type: 'qmark', value, output: QMARK_NO_DOT }); + continue; + } + + push({ type: 'qmark', value, output: QMARK }); + continue; + } + + /** + * Exclamation + */ + + if (value === '!') { + if (opts.noextglob !== true && peek() === '(') { + if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) { + extglobOpen('negate', value); + continue; + } + } + + if (opts.nonegate !== true && state.index === 0) { + negate(); + continue; + } + } + + /** + * Plus + */ + + if (value === '+') { + if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + extglobOpen('plus', value); + continue; + } + + if ((prev && prev.value === '(') || opts.regex === false) { + push({ type: 'plus', value, output: PLUS_LITERAL }); + continue; + } + + if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) { + push({ type: 'plus', value }); + continue; + } + + push({ type: 'plus', value: PLUS_LITERAL }); + continue; + } + + /** + * Plain text + */ + + if (value === '@') { + if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') { + push({ type: 'at', extglob: true, value, output: '' }); + continue; + } + + push({ type: 'text', value }); + continue; + } + + /** + * Plain text + */ + + if (value !== '*') { + if (value === '$' || value === '^') { + value = `\\${value}`; + } + + const match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); + if (match) { + value += match[0]; + state.index += match[0].length; + } + + push({ type: 'text', value }); + continue; + } + + /** + * Stars + */ + + if (prev && (prev.type === 'globstar' || prev.star === true)) { + prev.type = 'star'; + prev.star = true; + prev.value += value; + prev.output = star; + state.backtrack = true; + state.globstar = true; + consume(value); + continue; + } + + let rest = remaining(); + if (opts.noextglob !== true && /^\([^?]/.test(rest)) { + extglobOpen('star', value); + continue; + } + + if (prev.type === 'star') { + if (opts.noglobstar === true) { + consume(value); + continue; + } + + const prior = prev.prev; + const before = prior.prev; + const isStart = prior.type === 'slash' || prior.type === 'bos'; + const afterStar = before && (before.type === 'star' || before.type === 'globstar'); + + if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) { + push({ type: 'star', value, output: '' }); + continue; + } + + const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace'); + const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren'); + if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) { + push({ type: 'star', value, output: '' }); + continue; + } + + // strip consecutive `/**/` + while (rest.slice(0, 3) === '/**') { + const after = input[state.index + 4]; + if (after && after !== '/') { + break; + } + rest = rest.slice(3); + consume('/**', 3); + } + + if (prior.type === 'bos' && eos()) { + prev.type = 'globstar'; + prev.value += value; + prev.output = globstar(opts); + state.output = prev.output; + state.globstar = true; + consume(value); + continue; + } + + if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) { + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + + prev.type = 'globstar'; + prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)'); + prev.value += value; + state.globstar = true; + state.output += prior.output + prev.output; + consume(value); + continue; + } + + if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') { + const end = rest[1] !== void 0 ? '|$' : ''; + + state.output = state.output.slice(0, -(prior.output + prev.output).length); + prior.output = `(?:${prior.output}`; + + prev.type = 'globstar'; + prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`; + prev.value += value; + + state.output += prior.output + prev.output; + state.globstar = true; + + consume(value + advance()); + + push({ type: 'slash', value: '/', output: '' }); + continue; + } + + if (prior.type === 'bos' && rest[0] === '/') { + prev.type = 'globstar'; + prev.value += value; + prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`; + state.output = prev.output; + state.globstar = true; + consume(value + advance()); + push({ type: 'slash', value: '/', output: '' }); + continue; + } + + // remove single star from output + state.output = state.output.slice(0, -prev.output.length); + + // reset previous token to globstar + prev.type = 'globstar'; + prev.output = globstar(opts); + prev.value += value; + + // reset output with globstar + state.output += prev.output; + state.globstar = true; + consume(value); + continue; + } + + const token = { type: 'star', value, output: star }; + + if (opts.bash === true) { + token.output = '.*?'; + if (prev.type === 'bos' || prev.type === 'slash') { + token.output = nodot + token.output; + } + push(token); + continue; + } + + if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) { + token.output = value; + push(token); + continue; + } + + if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') { + if (prev.type === 'dot') { + state.output += NO_DOT_SLASH; + prev.output += NO_DOT_SLASH; + + } else if (opts.dot === true) { + state.output += NO_DOTS_SLASH; + prev.output += NO_DOTS_SLASH; + + } else { + state.output += nodot; + prev.output += nodot; + } + + if (peek() !== '*') { + state.output += ONE_CHAR; + prev.output += ONE_CHAR; + } + } + + push(token); + } + + while (state.brackets > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']')); + state.output = utils.escapeLast(state.output, '['); + decrement('brackets'); + } + + while (state.parens > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')')); + state.output = utils.escapeLast(state.output, '('); + decrement('parens'); + } + + while (state.braces > 0) { + if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}')); + state.output = utils.escapeLast(state.output, '{'); + decrement('braces'); + } + + if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) { + push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` }); + } + + // rebuild the output if we had to backtrack at any point + if (state.backtrack === true) { + state.output = ''; + + for (const token of state.tokens) { + state.output += token.output != null ? token.output : token.value; + + if (token.suffix) { + state.output += token.suffix; + } + } + } + + return state; +}; + +/** + * Fast paths for creating regular expressions for common glob patterns. + * This can significantly speed up processing and has very little downside + * impact when none of the fast paths match. + */ + +parse.fastpaths = (input, options) => { + const opts = { ...options }; + const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; + const len = input.length; + if (len > max) { + throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); + } + + input = REPLACEMENTS[input] || input; + const win32 = utils.isWindows(options); + + // create constants based on platform, for windows or posix + const { + DOT_LITERAL, + SLASH_LITERAL, + ONE_CHAR, + DOTS_SLASH, + NO_DOT, + NO_DOTS, + NO_DOTS_SLASH, + STAR, + START_ANCHOR + } = constants.globChars(win32); + + const nodot = opts.dot ? NO_DOTS : NO_DOT; + const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT; + const capture = opts.capture ? '' : '?:'; + const state = { negated: false, prefix: '' }; + let star = opts.bash === true ? '.*?' : STAR; + + if (opts.capture) { + star = `(${star})`; + } + + const globstar = opts => { + if (opts.noglobstar === true) return star; + return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`; + }; + + const create = str => { + switch (str) { + case '*': + return `${nodot}${ONE_CHAR}${star}`; + + case '.*': + return `${DOT_LITERAL}${ONE_CHAR}${star}`; + + case '*.*': + return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + + case '*/*': + return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`; + + case '**': + return nodot + globstar(opts); + + case '**/*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`; + + case '**/*.*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`; + + case '**/.*': + return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`; + + default: { + const match = /^(.*?)\.(\w+)$/.exec(str); + if (!match) return; + + const source = create(match[1]); + if (!source) return; + + return source + DOT_LITERAL + match[2]; + } + } + }; + + const output = utils.removePrefix(input, state); + let source = create(output); + + if (source && opts.strictSlashes !== true) { + source += `${SLASH_LITERAL}?`; + } + + return source; +}; + +module.exports = parse; diff --git a/node_modules/picomatch/lib/picomatch.js b/node_modules/picomatch/lib/picomatch.js new file mode 100644 index 00000000..782d8094 --- /dev/null +++ b/node_modules/picomatch/lib/picomatch.js @@ -0,0 +1,342 @@ +'use strict'; + +const path = require('path'); +const scan = require('./scan'); +const parse = require('./parse'); +const utils = require('./utils'); +const constants = require('./constants'); +const isObject = val => val && typeof val === 'object' && !Array.isArray(val); + +/** + * Creates a matcher function from one or more glob patterns. The + * returned function takes a string to match as its first argument, + * and returns true if the string is a match. The returned matcher + * function also takes a boolean as the second argument that, when true, + * returns an object with additional information. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch(glob[, options]); + * + * const isMatch = picomatch('*.!(*a)'); + * console.log(isMatch('a.a')); //=> false + * console.log(isMatch('a.b')); //=> true + * ``` + * @name picomatch + * @param {String|Array} `globs` One or more glob patterns. + * @param {Object=} `options` + * @return {Function=} Returns a matcher function. + * @api public + */ + +const picomatch = (glob, options, returnState = false) => { + if (Array.isArray(glob)) { + const fns = glob.map(input => picomatch(input, options, returnState)); + const arrayMatcher = str => { + for (const isMatch of fns) { + const state = isMatch(str); + if (state) return state; + } + return false; + }; + return arrayMatcher; + } + + const isState = isObject(glob) && glob.tokens && glob.input; + + if (glob === '' || (typeof glob !== 'string' && !isState)) { + throw new TypeError('Expected pattern to be a non-empty string'); + } + + const opts = options || {}; + const posix = utils.isWindows(options); + const regex = isState + ? picomatch.compileRe(glob, options) + : picomatch.makeRe(glob, options, false, true); + + const state = regex.state; + delete regex.state; + + let isIgnored = () => false; + if (opts.ignore) { + const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null }; + isIgnored = picomatch(opts.ignore, ignoreOpts, returnState); + } + + const matcher = (input, returnObject = false) => { + const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix }); + const result = { glob, state, regex, posix, input, output, match, isMatch }; + + if (typeof opts.onResult === 'function') { + opts.onResult(result); + } + + if (isMatch === false) { + result.isMatch = false; + return returnObject ? result : false; + } + + if (isIgnored(input)) { + if (typeof opts.onIgnore === 'function') { + opts.onIgnore(result); + } + result.isMatch = false; + return returnObject ? result : false; + } + + if (typeof opts.onMatch === 'function') { + opts.onMatch(result); + } + return returnObject ? result : true; + }; + + if (returnState) { + matcher.state = state; + } + + return matcher; +}; + +/** + * Test `input` with the given `regex`. This is used by the main + * `picomatch()` function to test the input string. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.test(input, regex[, options]); + * + * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\/([^/]*?))$/)); + * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' } + * ``` + * @param {String} `input` String to test. + * @param {RegExp} `regex` + * @return {Object} Returns an object with matching info. + * @api public + */ + +picomatch.test = (input, regex, options, { glob, posix } = {}) => { + if (typeof input !== 'string') { + throw new TypeError('Expected input to be a string'); + } + + if (input === '') { + return { isMatch: false, output: '' }; + } + + const opts = options || {}; + const format = opts.format || (posix ? utils.toPosixSlashes : null); + let match = input === glob; + let output = (match && format) ? format(input) : input; + + if (match === false) { + output = format ? format(input) : input; + match = output === glob; + } + + if (match === false || opts.capture === true) { + if (opts.matchBase === true || opts.basename === true) { + match = picomatch.matchBase(input, regex, options, posix); + } else { + match = regex.exec(output); + } + } + + return { isMatch: Boolean(match), match, output }; +}; + +/** + * Match the basename of a filepath. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.matchBase(input, glob[, options]); + * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true + * ``` + * @param {String} `input` String to test. + * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe). + * @return {Boolean} + * @api public + */ + +picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => { + const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options); + return regex.test(path.basename(input)); +}; + +/** + * Returns true if **any** of the given glob `patterns` match the specified `string`. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.isMatch(string, patterns[, options]); + * + * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true + * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false + * ``` + * @param {String|Array} str The string to test. + * @param {String|Array} patterns One or more glob patterns to use for matching. + * @param {Object} [options] See available [options](#options). + * @return {Boolean} Returns true if any patterns match `str` + * @api public + */ + +picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str); + +/** + * Parse a glob pattern to create the source string for a regular + * expression. + * + * ```js + * const picomatch = require('picomatch'); + * const result = picomatch.parse(pattern[, options]); + * ``` + * @param {String} `pattern` + * @param {Object} `options` + * @return {Object} Returns an object with useful properties and output to be used as a regex source string. + * @api public + */ + +picomatch.parse = (pattern, options) => { + if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options)); + return parse(pattern, { ...options, fastpaths: false }); +}; + +/** + * Scan a glob pattern to separate the pattern into segments. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.scan(input[, options]); + * + * const result = picomatch.scan('!./foo/*.js'); + * console.log(result); + * { prefix: '!./', + * input: '!./foo/*.js', + * start: 3, + * base: 'foo', + * glob: '*.js', + * isBrace: false, + * isBracket: false, + * isGlob: true, + * isExtglob: false, + * isGlobstar: false, + * negated: true } + * ``` + * @param {String} `input` Glob pattern to scan. + * @param {Object} `options` + * @return {Object} Returns an object with + * @api public + */ + +picomatch.scan = (input, options) => scan(input, options); + +/** + * Compile a regular expression from the `state` object returned by the + * [parse()](#parse) method. + * + * @param {Object} `state` + * @param {Object} `options` + * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser. + * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging. + * @return {RegExp} + * @api public + */ + +picomatch.compileRe = (state, options, returnOutput = false, returnState = false) => { + if (returnOutput === true) { + return state.output; + } + + const opts = options || {}; + const prepend = opts.contains ? '' : '^'; + const append = opts.contains ? '' : '$'; + + let source = `${prepend}(?:${state.output})${append}`; + if (state && state.negated === true) { + source = `^(?!${source}).*$`; + } + + const regex = picomatch.toRegex(source, options); + if (returnState === true) { + regex.state = state; + } + + return regex; +}; + +/** + * Create a regular expression from a parsed glob pattern. + * + * ```js + * const picomatch = require('picomatch'); + * const state = picomatch.parse('*.js'); + * // picomatch.compileRe(state[, options]); + * + * console.log(picomatch.compileRe(state)); + * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ + * ``` + * @param {String} `state` The object returned from the `.parse` method. + * @param {Object} `options` + * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result. + * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression. + * @return {RegExp} Returns a regex created from the given pattern. + * @api public + */ + +picomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => { + if (!input || typeof input !== 'string') { + throw new TypeError('Expected a non-empty string'); + } + + let parsed = { negated: false, fastpaths: true }; + + if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) { + parsed.output = parse.fastpaths(input, options); + } + + if (!parsed.output) { + parsed = parse(input, options); + } + + return picomatch.compileRe(parsed, options, returnOutput, returnState); +}; + +/** + * Create a regular expression from the given regex source string. + * + * ```js + * const picomatch = require('picomatch'); + * // picomatch.toRegex(source[, options]); + * + * const { output } = picomatch.parse('*.js'); + * console.log(picomatch.toRegex(output)); + * //=> /^(?:(?!\.)(?=.)[^/]*?\.js)$/ + * ``` + * @param {String} `source` Regular expression source string. + * @param {Object} `options` + * @return {RegExp} + * @api public + */ + +picomatch.toRegex = (source, options) => { + try { + const opts = options || {}; + return new RegExp(source, opts.flags || (opts.nocase ? 'i' : '')); + } catch (err) { + if (options && options.debug === true) throw err; + return /$^/; + } +}; + +/** + * Picomatch constants. + * @return {Object} + */ + +picomatch.constants = constants; + +/** + * Expose "picomatch" + */ + +module.exports = picomatch; diff --git a/node_modules/picomatch/lib/scan.js b/node_modules/picomatch/lib/scan.js new file mode 100644 index 00000000..e59cd7a1 --- /dev/null +++ b/node_modules/picomatch/lib/scan.js @@ -0,0 +1,391 @@ +'use strict'; + +const utils = require('./utils'); +const { + CHAR_ASTERISK, /* * */ + CHAR_AT, /* @ */ + CHAR_BACKWARD_SLASH, /* \ */ + CHAR_COMMA, /* , */ + CHAR_DOT, /* . */ + CHAR_EXCLAMATION_MARK, /* ! */ + CHAR_FORWARD_SLASH, /* / */ + CHAR_LEFT_CURLY_BRACE, /* { */ + CHAR_LEFT_PARENTHESES, /* ( */ + CHAR_LEFT_SQUARE_BRACKET, /* [ */ + CHAR_PLUS, /* + */ + CHAR_QUESTION_MARK, /* ? */ + CHAR_RIGHT_CURLY_BRACE, /* } */ + CHAR_RIGHT_PARENTHESES, /* ) */ + CHAR_RIGHT_SQUARE_BRACKET /* ] */ +} = require('./constants'); + +const isPathSeparator = code => { + return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; +}; + +const depth = token => { + if (token.isPrefix !== true) { + token.depth = token.isGlobstar ? Infinity : 1; + } +}; + +/** + * Quickly scans a glob pattern and returns an object with a handful of + * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists), + * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not + * with `!(`) and `negatedExtglob` (true if the path starts with `!(`). + * + * ```js + * const pm = require('picomatch'); + * console.log(pm.scan('foo/bar/*.js')); + * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' } + * ``` + * @param {String} `str` + * @param {Object} `options` + * @return {Object} Returns an object with tokens and regex source string. + * @api public + */ + +const scan = (input, options) => { + const opts = options || {}; + + const length = input.length - 1; + const scanToEnd = opts.parts === true || opts.scanToEnd === true; + const slashes = []; + const tokens = []; + const parts = []; + + let str = input; + let index = -1; + let start = 0; + let lastIndex = 0; + let isBrace = false; + let isBracket = false; + let isGlob = false; + let isExtglob = false; + let isGlobstar = false; + let braceEscaped = false; + let backslashes = false; + let negated = false; + let negatedExtglob = false; + let finished = false; + let braces = 0; + let prev; + let code; + let token = { value: '', depth: 0, isGlob: false }; + + const eos = () => index >= length; + const peek = () => str.charCodeAt(index + 1); + const advance = () => { + prev = code; + return str.charCodeAt(++index); + }; + + while (index < length) { + code = advance(); + let next; + + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + + if (code === CHAR_LEFT_CURLY_BRACE) { + braceEscaped = true; + } + continue; + } + + if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) { + braces++; + + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } + + if (code === CHAR_LEFT_CURLY_BRACE) { + braces++; + continue; + } + + if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + + break; + } + + if (braceEscaped !== true && code === CHAR_COMMA) { + isBrace = token.isBrace = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + + break; + } + + if (code === CHAR_RIGHT_CURLY_BRACE) { + braces--; + + if (braces === 0) { + braceEscaped = false; + isBrace = token.isBrace = true; + finished = true; + break; + } + } + } + + if (scanToEnd === true) { + continue; + } + + break; + } + + if (code === CHAR_FORWARD_SLASH) { + slashes.push(index); + tokens.push(token); + token = { value: '', depth: 0, isGlob: false }; + + if (finished === true) continue; + if (prev === CHAR_DOT && index === (start + 1)) { + start += 2; + continue; + } + + lastIndex = index + 1; + continue; + } + + if (opts.noext !== true) { + const isExtglobChar = code === CHAR_PLUS + || code === CHAR_AT + || code === CHAR_ASTERISK + || code === CHAR_QUESTION_MARK + || code === CHAR_EXCLAMATION_MARK; + + if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + isExtglob = token.isExtglob = true; + finished = true; + if (code === CHAR_EXCLAMATION_MARK && index === start) { + negatedExtglob = true; + } + + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + + if (code === CHAR_RIGHT_PARENTHESES) { + isGlob = token.isGlob = true; + finished = true; + break; + } + } + continue; + } + break; + } + } + + if (code === CHAR_ASTERISK) { + if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true; + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + break; + } + + if (code === CHAR_QUESTION_MARK) { + isGlob = token.isGlob = true; + finished = true; + + if (scanToEnd === true) { + continue; + } + break; + } + + if (code === CHAR_LEFT_SQUARE_BRACKET) { + while (eos() !== true && (next = advance())) { + if (next === CHAR_BACKWARD_SLASH) { + backslashes = token.backslashes = true; + advance(); + continue; + } + + if (next === CHAR_RIGHT_SQUARE_BRACKET) { + isBracket = token.isBracket = true; + isGlob = token.isGlob = true; + finished = true; + break; + } + } + + if (scanToEnd === true) { + continue; + } + + break; + } + + if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { + negated = token.negated = true; + start++; + continue; + } + + if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) { + isGlob = token.isGlob = true; + + if (scanToEnd === true) { + while (eos() !== true && (code = advance())) { + if (code === CHAR_LEFT_PARENTHESES) { + backslashes = token.backslashes = true; + code = advance(); + continue; + } + + if (code === CHAR_RIGHT_PARENTHESES) { + finished = true; + break; + } + } + continue; + } + break; + } + + if (isGlob === true) { + finished = true; + + if (scanToEnd === true) { + continue; + } + + break; + } + } + + if (opts.noext === true) { + isExtglob = false; + isGlob = false; + } + + let base = str; + let prefix = ''; + let glob = ''; + + if (start > 0) { + prefix = str.slice(0, start); + str = str.slice(start); + lastIndex -= start; + } + + if (base && isGlob === true && lastIndex > 0) { + base = str.slice(0, lastIndex); + glob = str.slice(lastIndex); + } else if (isGlob === true) { + base = ''; + glob = str; + } else { + base = str; + } + + if (base && base !== '' && base !== '/' && base !== str) { + if (isPathSeparator(base.charCodeAt(base.length - 1))) { + base = base.slice(0, -1); + } + } + + if (opts.unescape === true) { + if (glob) glob = utils.removeBackslashes(glob); + + if (base && backslashes === true) { + base = utils.removeBackslashes(base); + } + } + + const state = { + prefix, + input, + start, + base, + glob, + isBrace, + isBracket, + isGlob, + isExtglob, + isGlobstar, + negated, + negatedExtglob + }; + + if (opts.tokens === true) { + state.maxDepth = 0; + if (!isPathSeparator(code)) { + tokens.push(token); + } + state.tokens = tokens; + } + + if (opts.parts === true || opts.tokens === true) { + let prevIndex; + + for (let idx = 0; idx < slashes.length; idx++) { + const n = prevIndex ? prevIndex + 1 : start; + const i = slashes[idx]; + const value = input.slice(n, i); + if (opts.tokens) { + if (idx === 0 && start !== 0) { + tokens[idx].isPrefix = true; + tokens[idx].value = prefix; + } else { + tokens[idx].value = value; + } + depth(tokens[idx]); + state.maxDepth += tokens[idx].depth; + } + if (idx !== 0 || value !== '') { + parts.push(value); + } + prevIndex = i; + } + + if (prevIndex && prevIndex + 1 < input.length) { + const value = input.slice(prevIndex + 1); + parts.push(value); + + if (opts.tokens) { + tokens[tokens.length - 1].value = value; + depth(tokens[tokens.length - 1]); + state.maxDepth += tokens[tokens.length - 1].depth; + } + } + + state.slashes = slashes; + state.parts = parts; + } + + return state; +}; + +module.exports = scan; diff --git a/node_modules/picomatch/lib/utils.js b/node_modules/picomatch/lib/utils.js new file mode 100644 index 00000000..c3ca766a --- /dev/null +++ b/node_modules/picomatch/lib/utils.js @@ -0,0 +1,64 @@ +'use strict'; + +const path = require('path'); +const win32 = process.platform === 'win32'; +const { + REGEX_BACKSLASH, + REGEX_REMOVE_BACKSLASH, + REGEX_SPECIAL_CHARS, + REGEX_SPECIAL_CHARS_GLOBAL +} = require('./constants'); + +exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val); +exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str); +exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str); +exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1'); +exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/'); + +exports.removeBackslashes = str => { + return str.replace(REGEX_REMOVE_BACKSLASH, match => { + return match === '\\' ? '' : match; + }); +}; + +exports.supportsLookbehinds = () => { + const segs = process.version.slice(1).split('.').map(Number); + if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) { + return true; + } + return false; +}; + +exports.isWindows = options => { + if (options && typeof options.windows === 'boolean') { + return options.windows; + } + return win32 === true || path.sep === '\\'; +}; + +exports.escapeLast = (input, char, lastIdx) => { + const idx = input.lastIndexOf(char, lastIdx); + if (idx === -1) return input; + if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1); + return `${input.slice(0, idx)}\\${input.slice(idx)}`; +}; + +exports.removePrefix = (input, state = {}) => { + let output = input; + if (output.startsWith('./')) { + output = output.slice(2); + state.prefix = './'; + } + return output; +}; + +exports.wrapOutput = (input, state = {}, options = {}) => { + const prepend = options.contains ? '' : '^'; + const append = options.contains ? '' : '$'; + + let output = `${prepend}(?:${input})${append}`; + if (state.negated === true) { + output = `(?:^(?!${output}).*$)`; + } + return output; +}; diff --git a/node_modules/picomatch/package.json b/node_modules/picomatch/package.json new file mode 100644 index 00000000..3db22d40 --- /dev/null +++ b/node_modules/picomatch/package.json @@ -0,0 +1,81 @@ +{ + "name": "picomatch", + "description": "Blazing fast and accurate glob matcher written in JavaScript, with no dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions.", + "version": "2.3.1", + "homepage": "https://github.com/micromatch/picomatch", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "funding": "https://github.com/sponsors/jonschlinkert", + "repository": "micromatch/picomatch", + "bugs": { + "url": "https://github.com/micromatch/picomatch/issues" + }, + "license": "MIT", + "files": [ + "index.js", + "lib" + ], + "main": "index.js", + "engines": { + "node": ">=8.6" + }, + "scripts": { + "lint": "eslint --cache --cache-location node_modules/.cache/.eslintcache --report-unused-disable-directives --ignore-path .gitignore .", + "mocha": "mocha --reporter dot", + "test": "npm run lint && npm run mocha", + "test:ci": "npm run test:cover", + "test:cover": "nyc npm run mocha" + }, + "devDependencies": { + "eslint": "^6.8.0", + "fill-range": "^7.0.1", + "gulp-format-md": "^2.0.0", + "mocha": "^6.2.2", + "nyc": "^15.0.0", + "time-require": "github:jonschlinkert/time-require" + }, + "keywords": [ + "glob", + "match", + "picomatch" + ], + "nyc": { + "reporter": [ + "html", + "lcov", + "text-summary" + ] + }, + "verb": { + "toc": { + "render": true, + "method": "preWrite", + "maxdepth": 3 + }, + "layout": "empty", + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + }, + "related": { + "list": [ + "braces", + "micromatch" + ] + }, + "reflinks": [ + "braces", + "expand-brackets", + "extglob", + "fill-range", + "micromatch", + "minimatch", + "nanomatch", + "picomatch" + ] + } +} diff --git a/node_modules/pify/index.js b/node_modules/pify/index.js new file mode 100644 index 00000000..7c720ebe --- /dev/null +++ b/node_modules/pify/index.js @@ -0,0 +1,68 @@ +'use strict'; + +var processFn = function (fn, P, opts) { + return function () { + var that = this; + var args = new Array(arguments.length); + + for (var i = 0; i < arguments.length; i++) { + args[i] = arguments[i]; + } + + return new P(function (resolve, reject) { + args.push(function (err, result) { + if (err) { + reject(err); + } else if (opts.multiArgs) { + var results = new Array(arguments.length - 1); + + for (var i = 1; i < arguments.length; i++) { + results[i - 1] = arguments[i]; + } + + resolve(results); + } else { + resolve(result); + } + }); + + fn.apply(that, args); + }); + }; +}; + +var pify = module.exports = function (obj, P, opts) { + if (typeof P !== 'function') { + opts = P; + P = Promise; + } + + opts = opts || {}; + opts.exclude = opts.exclude || [/.+Sync$/]; + + var filter = function (key) { + var match = function (pattern) { + return typeof pattern === 'string' ? key === pattern : pattern.test(key); + }; + + return opts.include ? opts.include.some(match) : !opts.exclude.some(match); + }; + + var ret = typeof obj === 'function' ? function () { + if (opts.excludeMain) { + return obj.apply(this, arguments); + } + + return processFn(obj, P, opts).apply(this, arguments); + } : {}; + + return Object.keys(obj).reduce(function (ret, key) { + var x = obj[key]; + + ret[key] = typeof x === 'function' && filter(key) ? processFn(x, P, opts) : x; + + return ret; + }, ret); +}; + +pify.all = pify; diff --git a/node_modules/pify/license b/node_modules/pify/license new file mode 100644 index 00000000..654d0bfe --- /dev/null +++ b/node_modules/pify/license @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/pify/package.json b/node_modules/pify/package.json new file mode 100644 index 00000000..311d1982 --- /dev/null +++ b/node_modules/pify/package.json @@ -0,0 +1,48 @@ +{ + "name": "pify", + "version": "2.3.0", + "description": "Promisify a callback-style function", + "license": "MIT", + "repository": "sindresorhus/pify", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "xo && ava && npm run optimization-test", + "optimization-test": "node --allow-natives-syntax optimization-test.js" + }, + "files": [ + "index.js" + ], + "keywords": [ + "promise", + "promises", + "promisify", + "denodify", + "denodeify", + "callback", + "cb", + "node", + "then", + "thenify", + "convert", + "transform", + "wrap", + "wrapper", + "bind", + "to", + "async", + "es2015" + ], + "devDependencies": { + "ava": "*", + "pinkie-promise": "^1.0.0", + "v8-natives": "0.0.2", + "xo": "*" + } +} diff --git a/node_modules/pify/readme.md b/node_modules/pify/readme.md new file mode 100644 index 00000000..c79ca8bf --- /dev/null +++ b/node_modules/pify/readme.md @@ -0,0 +1,119 @@ +# pify [![Build Status](https://travis-ci.org/sindresorhus/pify.svg?branch=master)](https://travis-ci.org/sindresorhus/pify) + +> Promisify a callback-style function + + +## Install + +``` +$ npm install --save pify +``` + + +## Usage + +```js +const fs = require('fs'); +const pify = require('pify'); + +// promisify a single function + +pify(fs.readFile)('package.json', 'utf8').then(data => { + console.log(JSON.parse(data).name); + //=> 'pify' +}); + +// or promisify all methods in a module + +pify(fs).readFile('package.json', 'utf8').then(data => { + console.log(JSON.parse(data).name); + //=> 'pify' +}); +``` + + +## API + +### pify(input, [promiseModule], [options]) + +Returns a promise wrapped version of the supplied function or module. + +#### input + +Type: `function`, `object` + +Callback-style function or module whose methods you want to promisify. + +#### promiseModule + +Type: `function` + +Custom promise module to use instead of the native one. + +Check out [`pinkie-promise`](https://github.com/floatdrop/pinkie-promise) if you need a tiny promise polyfill. + +#### options + +##### multiArgs + +Type: `boolean` +Default: `false` + +By default, the promisified function will only return the second argument from the callback, which works fine for most APIs. This option can be useful for modules like `request` that return multiple arguments. Turning this on will make it return an array of all arguments from the callback, excluding the error argument, instead of just the second argument. + +```js +const request = require('request'); +const pify = require('pify'); + +pify(request, {multiArgs: true})('https://sindresorhus.com').then(result => { + const [httpResponse, body] = result; +}); +``` + +##### include + +Type: `array` of (`string`|`regex`) + +Methods in a module to promisify. Remaining methods will be left untouched. + +##### exclude + +Type: `array` of (`string`|`regex`) +Default: `[/.+Sync$/]` + +Methods in a module **not** to promisify. Methods with names ending with `'Sync'` are excluded by default. + +##### excludeMain + +Type: `boolean` +Default: `false` + +By default, if given module is a function itself, this function will be promisified. Turn this option on if you want to promisify only methods of the module. + +```js +const pify = require('pify'); + +function fn() { + return true; +} + +fn.method = (data, callback) => { + setImmediate(() => { + callback(data, null); + }); +}; + +// promisify methods but not fn() +const promiseFn = pify(fn, {excludeMain: true}); + +if (promiseFn()) { + promiseFn.method('hi').then(data => { + console.log(data); + }); +} +``` + + +## License + +MIT © [Sindre Sorhus](http://sindresorhus.com) diff --git a/node_modules/postcss-cli/LICENSE b/node_modules/postcss-cli/LICENSE new file mode 100644 index 00000000..e4d2d4aa --- /dev/null +++ b/node_modules/postcss-cli/LICENSE @@ -0,0 +1,21 @@ +License (MIT) + +Copyright (c) 2016 Michael Ciniawsky + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/postcss-cli/README.md b/node_modules/postcss-cli/README.md new file mode 100644 index 00000000..9dc9a2dc --- /dev/null +++ b/node_modules/postcss-cli/README.md @@ -0,0 +1,149 @@ +[![npm][npm]][npm-url] +[![node][node]][node-url] +[![tests][tests]][tests-url] +[![cover][cover]][cover-url] +[![chat][chat]][chat-url] + +
+ + + + +

PostCSS CLI

+
+ +

Install

+ +```bash +npm i -D postcss postcss-cli +``` + +

Usage

+ +``` +Usage: + postcss [input.css] [OPTIONS] [-o|--output output.css] [--watch|-w] + postcss ... [OPTIONS] --dir [--watch|-w] + postcss [OPTIONS] --dir [--watch|-w] + postcss [OPTIONS] --dir [--watch|-w] + postcss ... [OPTIONS] --replace + +Basic options: + -o, --output Output file [string] + -d, --dir Output directory [string] + -r, --replace Replace (overwrite) the input file [boolean] + -m, --map Create an external sourcemap + --no-map Disable the default inline sourcemaps + -w, --watch Watch files for changes and recompile as needed [boolean] + --verbose Be verbose [boolean] + --env A shortcut for setting NODE_ENV [string] + +Options for use without a config file: + -u, --use List of postcss plugins to use [array] + --parser Custom postcss parser [string] + --stringifier Custom postcss stringifier [string] + --syntax Custom postcss syntax [string] + +Options for use with --dir: + --ext Override the output file extension; for use with --dir [string] + --base Mirror the directory structure relative to this path in the output + directory, for use with --dir [string] + +Advanced options: + --include-dotfiles Enable glob to match files/dirs that begin with "." + [boolean] + --poll Use polling for file watching. Can optionally pass polling + interval; default 100 ms + --config Set a custom directory to look for a config file [string] + +Options: + --version Show version number [boolean] + -h, --help Show help [boolean] + +Examples: + postcss input.css -o output.css Basic usage + postcss src/**/*.css --base src --dir build Glob Pattern & output + cat input.css | postcss -u autoprefixer > output.css Piping input & output + +If no input files are passed, it reads from stdin. If neither -o, --dir, or +--replace is passed, it writes to stdout. + +If there are multiple input files, the --dir or --replace option must be passed. + +Input files may contain globs (e.g. src/**/*.css). If you pass an input +directory, it will process all files in the directory and any subdirectories, +respecting the glob pattern. +``` + +> ℹ️ More details on custom parsers, stringifiers and syntaxes, can be found [here](https://github.com/postcss/postcss#syntaxes). + +### [Config](https://github.com/michael-ciniawsky/postcss-load-config) + +If you need to pass options to your plugins, or have a long plugin chain, you'll want to use a configuration file. + +**postcss.config.js** + +```js +module.exports = { + parser: 'sugarss', + plugins: [ + require('postcss-import')({ ...options }), + require('postcss-url')({ url: 'copy', useHash: true }), + ], +} +``` + +Note that you **can not** set the `from` or `to` options for postcss in the config file. They are set automatically based on the CLI arguments. + +### Context + +For more advanced usage, it's recommended to use a function in `postcss.config.js`; this gives you access to the CLI context to dynamically apply options and plugins **per file** + +| Name | Type | Default | Description | +| :-------: | :--------: | :--------------------------------: | :------------------- | +| `env` | `{String}` | `'development'` | process.env.NODE_ENV | +| `file` | `{Object}` | `dirname, basename, extname` | File | +| `options` | `{Object}` | `map, parser, syntax, stringifier` | PostCSS Options | + +**postcss.config.js** + +```js +module.exports = (ctx) => ({ + map: ctx.options.map, + parser: ctx.file.extname === '.sss' ? 'sugarss' : false, + plugins: { + 'postcss-import': { root: ctx.file.dirname }, + cssnano: ctx.env === 'production' ? {} : false, + }, +}) +``` + +> ⚠️ If you want to set options via CLI, it's mandatory to reference `ctx.options` in `postcss.config.js` + +```bash +postcss input.sss -p sugarss -o output.css -m +``` + +**postcss.config.js** + +```js +module.exports = (ctx) => ({ + map: ctx.options.map, + parser: ctx.options.parser, + plugins: { + 'postcss-import': { root: ctx.file.dirname }, + cssnano: ctx.env === 'production' ? {} : false, + }, +}) +``` + +[npm]: https://img.shields.io/npm/v/postcss-cli.svg +[npm-url]: https://npmjs.com/package/postcss-cli +[node]: https://img.shields.io/node/v/postcss-cli.svg +[node-url]: https://nodejs.org/ +[tests]: https://img.shields.io/github/workflow/status/postcss/postcss-cli/Node.js%20CI/master +[tests-url]: https://github.com/postcss/postcss-cli/actions?query=branch%3Amaster +[cover]: https://img.shields.io/coveralls/postcss/postcss-cli/master.svg +[cover-url]: https://coveralls.io/github/postcss/postcss-cli +[chat]: https://img.shields.io/gitter/room/postcss/postcss.svg +[chat-url]: https://gitter.im/postcss/postcss diff --git a/node_modules/postcss-cli/index.js b/node_modules/postcss-cli/index.js new file mode 100755 index 00000000..615638c5 --- /dev/null +++ b/node_modules/postcss-cli/index.js @@ -0,0 +1,348 @@ +#!/usr/bin/env node + +import fs from 'fs-extra' +import path from 'path' + +import prettyHrtime from 'pretty-hrtime' +import stdin from 'get-stdin' +import read from 'read-cache' +import pc from 'picocolors' +import { globby } from 'globby' +import slash from 'slash' +import chokidar from 'chokidar' + +import postcss from 'postcss' +import postcssrc from 'postcss-load-config' +import postcssReporter from 'postcss-reporter/lib/formatter.js' + +import argv from './lib/args.js' +import createDependencyGraph from './lib/DependencyGraph.js' +import getMapfile from './lib/getMapfile.js' + +const reporter = postcssReporter() +const depGraph = createDependencyGraph() + +let input = argv._ +const { dir, output } = argv + +if (argv.map) argv.map = { inline: false } + +let cliConfig + +async function buildCliConfig() { + cliConfig = { + options: { + map: argv.map !== undefined ? argv.map : { inline: true }, + parser: argv.parser ? await import(argv.parser) : undefined, + syntax: argv.syntax ? await import(argv.syntax) : undefined, + stringifier: argv.stringifier + ? await import(argv.stringifier) + : undefined, + }, + plugins: argv.use + ? await Promise.all( + argv.use.map(async (plugin) => { + try { + return (await import(plugin)).default() + } catch (e) { + const msg = e.message || `Cannot find module '${plugin}'` + let prefix = msg.includes(plugin) ? '' : ` (${plugin})` + if (e.name && e.name !== 'Error') prefix += `: ${e.name}` + return error(`Plugin Error${prefix}: ${msg}'`) + } + }) + ) + : [], + } +} + +let configFile + +if (argv.env) process.env.NODE_ENV = argv.env +if (argv.config) argv.config = path.resolve(argv.config) + +if (argv.watch) { + process.stdin.on('end', () => process.exit(0)) + process.stdin.resume() +} + +/* istanbul ignore next */ +if (parseInt(postcss().version) < 8) { + error('Please install PostCSS 8 or above') +} + +buildCliConfig() + .then(() => { + if (argv.watch && !(argv.output || argv.replace || argv.dir)) { + error('Cannot write to stdout in watch mode') + // Need to explicitly exit here, since error() doesn't exit in watch mode + process.exit(1) + } + + if (input && input.length) { + return globby( + input.map((i) => slash(String(i))), + { dot: argv.includeDotfiles } + ) + } + + if (argv.replace || argv.dir) { + error( + 'Input Error: Cannot use --dir or --replace when reading from stdin' + ) + } + + if (argv.watch) { + error('Input Error: Cannot run in watch mode when reading from stdin') + } + + return ['stdin'] + }) + .then((i) => { + if (!i || !i.length) { + error('Input Error: You must pass a valid list of files to parse') + } + + if (i.length > 1 && !argv.dir && !argv.replace) { + error( + 'Input Error: Must use --dir or --replace with multiple input files' + ) + } + + if (i[0] !== 'stdin') i = i.map((i) => path.resolve(i)) + + input = i + + return files(input) + }) + .then((results) => { + if (argv.watch) { + const printMessage = () => + printVerbose(pc.dim('\nWaiting for file changes...')) + const watcher = chokidar.watch(input.concat(dependencies(results)), { + usePolling: argv.poll, + interval: argv.poll && typeof argv.poll === 'number' ? argv.poll : 100, + awaitWriteFinish: { + stabilityThreshold: 50, + pollInterval: 10, + }, + }) + + if (configFile) watcher.add(configFile) + + watcher.on('ready', printMessage).on('change', (file) => { + let recompile = [] + + if (input.includes(file)) recompile.push(file) + + const dependants = depGraph + .dependantsOf(file) + .concat(getAncestorDirs(file).flatMap(depGraph.dependantsOf)) + + recompile = recompile.concat( + dependants.filter((file) => input.includes(file)) + ) + + if (!recompile.length) recompile = input + + return files([...new Set(recompile)]) + .then((results) => watcher.add(dependencies(results))) + .then(printMessage) + .catch(error) + }) + } + }) + .catch((err) => { + error(err) + + process.exit(1) + }) + +function rc(ctx, path) { + if (argv.use) return Promise.resolve(cliConfig) + + return postcssrc(ctx, path) + .then((rc) => { + if (rc.options.from || rc.options.to) { + error( + 'Config Error: Can not set from or to options in config file, use CLI arguments instead' + ) + } + configFile = rc.file + return rc + }) + .catch((err) => { + if (!err.message.includes('No PostCSS Config found')) throw err + }) +} + +function files(files) { + if (typeof files === 'string') files = [files] + + return Promise.all( + files.map((file) => { + if (file === 'stdin') { + return stdin().then((content) => { + if (!content) return error('Input Error: Did not receive any STDIN') + return css(content, 'stdin') + }) + } + + return read(file).then((content) => css(content, file)) + }) + ) +} + +function css(css, file) { + const ctx = { options: cliConfig.options } + + if (file !== 'stdin') { + ctx.file = { + dirname: path.dirname(file), + basename: path.basename(file), + extname: path.extname(file), + } + + if (!argv.config) argv.config = path.dirname(file) + } + + const relativePath = + file !== 'stdin' ? path.relative(path.resolve(), file) : file + + if (!argv.config) argv.config = process.cwd() + + const time = process.hrtime() + + printVerbose(pc.cyan(`Processing ${pc.bold(relativePath)}...`)) + + return rc(ctx, argv.config) + .then((config) => { + config = config || cliConfig + const options = { ...config.options } + + if (file === 'stdin' && output) file = output + + // TODO: Unit test this + options.from = file === 'stdin' ? path.join(process.cwd(), 'stdin') : file + + if (output || dir || argv.replace) { + const base = argv.base + ? file.replace(path.resolve(argv.base), '') + : path.basename(file) + options.to = output || (argv.replace ? file : path.join(dir, base)) + + if (argv.ext) { + options.to = options.to.replace(path.extname(options.to), argv.ext) + } + + options.to = path.resolve(options.to) + } + + if (!options.to && config.options.map && !config.options.map.inline) { + error( + 'Output Error: Cannot output external sourcemaps when writing to STDOUT' + ) + } + + return postcss(config.plugins) + .process(css, options) + .then((result) => { + const tasks = [] + + if (options.to) { + tasks.push(outputFile(options.to, result.css)) + + if (result.map) { + const mapfile = getMapfile(options) + tasks.push(outputFile(mapfile, result.map.toString())) + } + } else process.stdout.write(result.css, 'utf8') + + return Promise.all(tasks).then(() => { + const prettyTime = prettyHrtime(process.hrtime(time)) + printVerbose( + pc.green( + `Finished ${pc.bold(relativePath)} in ${pc.bold(prettyTime)}` + ) + ) + + const messages = result.warnings() + if (messages.length) { + console.warn(reporter({ ...result, messages })) + } + + return result + }) + }) + }) + .catch((err) => { + throw err + }) + + async function outputFile(file, string) { + const fileExists = await fs.pathExists(file) + const currentValue = fileExists ? await fs.readFile(file, 'utf8') : null + if (currentValue === string) return + return fs.outputFile(file, string) + } +} + +function dependencies(results) { + if (!Array.isArray(results)) results = [results] + + const messages = [] + + results.forEach((result) => { + if (result.messages <= 0) return + + result.messages + .filter((msg) => + msg.type === 'dependency' || msg.type === 'dir-dependency' ? msg : '' + ) + .map(depGraph.add) + .forEach((dependency) => { + if (dependency.type === 'dir-dependency') { + messages.push( + dependency.glob + ? path.join(dependency.dir, dependency.glob) + : dependency.dir + ) + } else { + messages.push(dependency.file) + } + }) + }) + + return messages +} + +function printVerbose(message) { + if (argv.verbose) console.warn(message) +} + +function error(err) { + // Seperate error from logging output + if (argv.verbose) console.error() + + if (typeof err === 'string') { + console.error(pc.red(err)) + } else if (err.name === 'CssSyntaxError') { + console.error(err.toString()) + } else { + console.error(err) + } + // Watch mode shouldn't exit on error + if (argv.watch) return + process.exit(1) +} + +// Input: '/imports/components/button.css' +// Output: ['/imports/components', '/imports', '/'] +function getAncestorDirs(fileOrDir) { + const { root } = path.parse(fileOrDir) + if (fileOrDir === root) { + return [] + } + const parentDir = path.dirname(fileOrDir) + return [parentDir, ...getAncestorDirs(parentDir)] +} diff --git a/node_modules/postcss-cli/lib/DependencyGraph.js b/node_modules/postcss-cli/lib/DependencyGraph.js new file mode 100644 index 00000000..efb7ac33 --- /dev/null +++ b/node_modules/postcss-cli/lib/DependencyGraph.js @@ -0,0 +1,30 @@ +import path from 'path' +import { DepGraph } from 'dependency-graph' + +export default function createDependencyGraph() { + const graph = new DepGraph() + return { + add(message) { + message.parent = path.resolve(message.parent) + graph.addNode(message.parent) + + if (message.type === 'dir-dependency') { + message.dir = path.resolve(message.dir) + graph.addNode(message.dir) + graph.addDependency(message.parent, message.dir) + } else { + message.file = path.resolve(message.file) + graph.addNode(message.file) + graph.addDependency(message.parent, message.file) + } + + return message + }, + dependantsOf(node) { + node = path.resolve(node) + + if (graph.hasNode(node)) return graph.dependantsOf(node) + return [] + }, + } +} diff --git a/node_modules/postcss-cli/lib/args.js b/node_modules/postcss-cli/lib/args.js new file mode 100644 index 00000000..35f0e839 --- /dev/null +++ b/node_modules/postcss-cli/lib/args.js @@ -0,0 +1,115 @@ +import yargs from 'yargs' + +const { argv } = yargs(process.argv.slice(2)) + .usage( + `Usage: + $0 [input.css] [OPTIONS] [-o|--output output.css] [--watch|-w] + $0 ... [OPTIONS] --dir [--watch|-w] + $0 [OPTIONS] --dir [--watch|-w] + $0 [OPTIONS] --dir [--watch|-w] + $0 ... [OPTIONS] --replace` + ) + .group( + ['o', 'd', 'r', 'map', 'no-map', 'watch', 'verbose', 'env'], + 'Basic options:' + ) + .option('o', { + alias: 'output', + desc: 'Output file', + type: 'string', + conflicts: ['dir', 'replace'], + }) + .option('d', { + alias: 'dir', + desc: 'Output directory', + type: 'string', + conflicts: ['output', 'replace'], + }) + .option('r', { + alias: 'replace', + desc: 'Replace (overwrite) the input file', + type: 'boolean', + conflicts: ['output', 'dir'], + }) + .alias('m', 'map') + .describe('map', 'Create an external sourcemap') + .describe('no-map', 'Disable the default inline sourcemaps') + .option('w', { + alias: 'watch', + desc: 'Watch files for changes and recompile as needed', + type: 'boolean', + conflicts: 'replace', + }) + .option('verbose', { + desc: 'Be verbose', + type: 'boolean', + }) + .option('env', { + desc: 'A shortcut for setting NODE_ENV', + type: 'string', + }) + .group( + ['u', 'parser', 'stringifier', 'syntax'], + 'Options for use without a config file:' + ) + .option('u', { + alias: 'use', + desc: 'List of postcss plugins to use', + type: 'array', + }) + .option('parser', { + desc: 'Custom postcss parser', + type: 'string', + }) + .option('stringifier', { + desc: 'Custom postcss stringifier', + type: 'string', + }) + .option('syntax', { + desc: 'Custom postcss syntax', + type: 'string', + }) + .group(['ext', 'base'], 'Options for use with --dir:') + .option('ext', { + desc: 'Override the output file extension; for use with --dir', + type: 'string', + implies: 'dir', + }) + .option('base', { + desc: 'Mirror the directory structure relative to this path in the output directory, for use with --dir', + type: 'string', + implies: 'dir', + }) + .group(['include-dotfiles', 'poll', 'config'], 'Advanced options:') + .option('include-dotfiles', { + desc: 'Enable glob to match files/dirs that begin with "."', + type: 'boolean', + }) + .option('poll', { + desc: 'Use polling for file watching. Can optionally pass polling interval; default 100 ms', + implies: 'watch', + }) + .option('config', { + desc: 'Set a custom directory to look for a config file', + type: 'string', + }) + .alias('h', 'help') + .example('$0 input.css -o output.css', 'Basic usage') + .example('$0 src/**/*.css --base src --dir build', 'Glob Pattern & output') + .example( + 'cat input.css | $0 -u autoprefixer > output.css', + 'Piping input & output' + ) + .epilog( + `If no input files are passed, it reads from stdin. If neither -o, --dir, or --replace is passed, it writes to stdout. + +If there are multiple input files, the --dir or --replace option must be passed. + +Input files may contain globs (e.g. src/**/*.css). If you pass an input directory, it will process all files in the directory and any subdirectories, respecting the glob pattern. + +For more details, please see https://github.com/postcss/postcss-cli` + ) + +if (argv.ext && argv.ext.indexOf('.') !== 0) argv.ext = `.${argv.ext}` + +export default argv diff --git a/node_modules/postcss-cli/lib/getMapfile.js b/node_modules/postcss-cli/lib/getMapfile.js new file mode 100644 index 00000000..e4d0c93e --- /dev/null +++ b/node_modules/postcss-cli/lib/getMapfile.js @@ -0,0 +1,7 @@ +import path from 'path' +export default function getMapfile(options) { + if (options.map && typeof options.map.annotation === 'string') { + return `${path.dirname(options.to)}/${options.map.annotation}` + } + return `${options.to}.map` +} diff --git a/node_modules/postcss-cli/package.json b/node_modules/postcss-cli/package.json new file mode 100644 index 00000000..141c8996 --- /dev/null +++ b/node_modules/postcss-cli/package.json @@ -0,0 +1,78 @@ +{ + "name": "postcss-cli", + "version": "9.1.0", + "description": "CLI for PostCSS", + "type": "module", + "engines": { + "node": ">=12" + }, + "bin": { + "postcss": "./index.js" + }, + "scripts": { + "ci": "eslint . && c8 ava -v && npm run prettier -- --list-different", + "clean": "node test/helpers/clean.js", + "prettier": "prettier --single-quote --no-semi \"**/*.{js,md}\"", + "format": "npm run prettier -- --write && eslint . --fix", + "pretest": "npm run clean && npm run format", + "test": "c8 ava -v" + }, + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^10.0.0", + "get-stdin": "^9.0.0", + "globby": "^12.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^3.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^4.0.0", + "yargs": "^17.0.0" + }, + "devDependencies": { + "ava": "^3.1.0", + "c8": "^7.9.0", + "coveralls": "^3.0.0", + "eslint": "^8.2.0", + "eslint-config-problems": "6.0.0", + "postcss": "^8.0.4", + "postcss-import": "^14.0.0", + "prettier": "~2.5.0", + "sugarss": "^4.0.0", + "uuid": "^8.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + }, + "files": [ + "index.js", + "lib", + "!**/*.test.js" + ], + "keywords": [ + "cli", + "postcss", + "postcss-runner" + ], + "contributors": [ + { + "name": "Michael Ciniawky", + "email": "michael.ciniawsky@gmail.com" + }, + { + "name": "Ryan Zimmermann", + "email": "opensrc@ryanzim.com" + } + ], + "repository": { + "type": "git", + "url": "https://github.com/postcss/postcss-cli.git" + }, + "bugs": { + "url": "https://github.com/postcss/postcss-cli/issues" + }, + "homepage": "https://github.com/postcss/postcss-cli#readme", + "license": "MIT" +} diff --git a/node_modules/postcss-load-config/LICENSE b/node_modules/postcss-load-config/LICENSE new file mode 100644 index 00000000..458e8a34 --- /dev/null +++ b/node_modules/postcss-load-config/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright Michael Ciniawsky + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/postcss-load-config/README.md b/node_modules/postcss-load-config/README.md new file mode 100644 index 00000000..a72bade9 --- /dev/null +++ b/node_modules/postcss-load-config/README.md @@ -0,0 +1,498 @@ +[![npm][npm]][npm-url] +[![node][node]][node-url] +[![deps][deps]][deps-url] +[![test][test]][test-url] +[![coverage][cover]][cover-url] +[![code style][style]][style-url] +[![chat][chat]][chat-url] + +
+ + + + + +

Load Config

+
+ +

Install

+ +```bash +npm i -D postcss-load-config +``` + +

Usage

+ +```bash +npm i -S|-D postcss-plugin +``` + +Install all required postcss plugins and save them to your **package.json** `dependencies`/`devDependencies` + +Then create a postcss config file by choosing one of the following formats + +### `package.json` + +Create a **`postcss`** section in your project's **`package.json`** + +``` +Project (Root) + |– client + |– public + | + |- package.json +``` + +```json +{ + "postcss": { + "parser": "sugarss", + "map": false, + "plugins": { + "postcss-plugin": {} + } + } +} +``` + +### `.postcssrc` + +Create a **`.postcssrc`** file in JSON or YAML format + +> ℹ️ It's recommended to use an extension (e.g **`.postcssrc.json`** or **`.postcssrc.yml`**) instead of `.postcssrc` + +``` +Project (Root) + |– client + |– public + | + |- (.postcssrc|.postcssrc.json|.postcssrc.yml) + |- package.json +``` + +**`.postcssrc.json`** +```json +{ + "parser": "sugarss", + "map": false, + "plugins": { + "postcss-plugin": {} + } +} +``` + +**`.postcssrc.yml`** +```yaml +parser: sugarss +map: false +plugins: + postcss-plugin: {} +``` + +### `.postcssrc.js` or `postcss.config.js` + +You may need some logic within your config. In this case create JS file named **`.postcssrc.js`** or **`postcss.config.js`** + +``` +Project (Root) + |– client + |– public + | + |- (.postcssrc.js|postcss.config.js) + |- package.json +``` + +You can export the config as an `{Object}` + +**.postcssrc.js** +```js +module.exports = { + parser: 'sugarss', + map: false, + plugins: { + 'postcss-plugin': {} + } +} +``` + +Or export a `{Function}` that returns the config (more about the `ctx` param below) + +**.postcssrc.js** +```js +module.exports = (ctx) => ({ + parser: ctx.parser ? 'sugarss' : false, + map: ctx.env === 'development' ? ctx.map : false, + plugins: { + 'postcss-plugin': ctx.options.plugin + } +}) +``` + +Plugins can be loaded either using an `{Object}` or an `{Array}` + +#### `{Object}` + +**.postcssrc.js** +```js +module.exports = ({ env }) => ({ + ...options, + plugins: { + 'postcss-plugin': env === 'production' ? {} : false + } +}) +``` + +#### `{Array}` + +**.postcssrc.js** +```js +module.exports = ({ env }) => ({ + ...options, + plugins: [ + env === 'production' ? require('postcss-plugin')() : false + ] +}) +``` +> :warning: When using an `{Array}`, make sure to `require()` each plugin + +

Options

+ +|Name|Type|Default|Description| +|:--:|:--:|:-----:|:----------| +|[**`to`**](#to)|`{String}`|`undefined`|Destination File Path| +|[**`map`**](#map)|`{String\|Object}`|`false`|Enable/Disable Source Maps| +|[**`from`**](#from)|`{String}`|`undefined`|Source File Path| +|[**`parser`**](#parser)|`{String\|Function}`|`false`|Custom PostCSS Parser| +|[**`syntax`**](#syntax)|`{String\|Function}`|`false`|Custom PostCSS Syntax| +|[**`stringifier`**](#stringifier)|`{String\|Function}`|`false`|Custom PostCSS Stringifier| + +### `parser` + +**.postcssrc.js** +```js +module.exports = { + parser: 'sugarss' +} +``` + +### `syntax` + +**.postcssrc.js** +```js +module.exports = { + syntax: 'postcss-scss' +} +``` + +### `stringifier` + +**.postcssrc.js** +```js +module.exports = { + stringifier: 'midas' +} +``` + +### [**`map`**](https://github.com/postcss/postcss/blob/master/docs/source-maps.md) + +**.postcssrc.js** +```js +module.exports = { + map: 'inline' +} +``` + +> :warning: In most cases `options.from` && `options.to` are set by the third-party which integrates this package (CLI, gulp, webpack). It's unlikely one needs to set/use `options.from` && `options.to` within a config file. Unless you're a third-party plugin author using this module and its Node API directly **dont't set `options.from` && `options.to` yourself** + +### `to` + +```js +module.exports = { + to: 'path/to/dest.css' +} +``` + +### `from` + +```js +module.exports = { + from: 'path/to/src.css' +} +``` + +

Plugins

+ +### `{} || null` + +The plugin will be loaded with defaults + +```js +'postcss-plugin': {} || null +``` + +**.postcssrc.js** +```js +module.exports = { + plugins: { + 'postcss-plugin': {} || null + } +} +``` + +> :warning: `{}` must be an **empty** `{Object}` literal + +### `{Object}` + +The plugin will be loaded with given options + +```js +'postcss-plugin': { option: '', option: '' } +``` + +**.postcssrc.js** +```js +module.exports = { + plugins: { + 'postcss-plugin': { option: '', option: '' } + } +} +``` + +### `false` + +The plugin will not be loaded + +```js +'postcss-plugin': false +``` + +**.postcssrc.js** +```js +module.exports = { + plugins: { + 'postcss-plugin': false + } +} +``` + +### `Ordering` + +Plugin **execution order** is determined by declaration in the plugins section (**top-down**) + +```js +{ + plugins: { + 'postcss-plugin': {}, // [0] + 'postcss-plugin': {}, // [1] + 'postcss-plugin': {} // [2] + } +} +``` + +

Context

+ +When using a `{Function}` (`postcss.config.js` or `.postcssrc.js`), it's possible to pass context to `postcss-load-config`, which will be evaluated while loading your config. By default `ctx.env (process.env.NODE_ENV)` and `ctx.cwd (process.cwd())` are available on the `ctx` `{Object}` + +> ℹ️ Most third-party integrations add additional properties to the `ctx` (e.g `postcss-loader`). Check the specific module's README for more information about what is available on the respective `ctx` + +

Examples

+ +**postcss.config.js** + +```js +module.exports = (ctx) => ({ + parser: ctx.parser ? 'sugarss' : false, + map: ctx.env === 'development' ? ctx.map : false, + plugins: { + 'postcss-import': {}, + 'postcss-nested': {}, + cssnano: ctx.env === 'production' ? {} : false + } +}) +``` + +
+ +
+ +```json +"scripts": { + "build": "NODE_ENV=production node postcss", + "start": "NODE_ENV=development node postcss" +} +``` + +### `Async` + +```js +const { readFileSync } = require('fs') + +const postcss = require('postcss') +const postcssrc = require('postcss-load-config') + +const css = readFileSync('index.sss', 'utf8') + +const ctx = { parser: true, map: 'inline' } + +postcssrc(ctx).then(({ plugins, options }) => { + postcss(plugins) + .process(css, options) + .then((result) => console.log(result.css)) +}) +``` + +### `Sync` + +```js +const { readFileSync } = require('fs') + +const postcss = require('postcss') +const postcssrc = require('postcss-load-config') + +const css = readFileSync('index.sss', 'utf8') + +const ctx = { parser: true, map: 'inline' } + +const { plugins, options } = postcssrc.sync(ctx) +``` + +
+ +
+ +```json +"scripts": { + "build": "NODE_ENV=production gulp", + "start": "NODE_ENV=development gulp" +} +``` + +```js +const { task, src, dest, series, watch } = require('gulp') + +const postcss = require('gulp-postcssrc') + +const css = () => { + src('src/*.css') + .pipe(postcss()) + .pipe(dest('dest')) +}) + +task('watch', () => { + watch(['src/*.css', 'postcss.config.js'], css) +}) + +task('default', series(css, 'watch')) +``` + +
+ +
+ +```json +"scripts": { + "build": "NODE_ENV=production webpack", + "start": "NODE_ENV=development webpack-dev-server" +} +``` + +**webpack.config.js** +```js +module.exports = (env) => ({ + module: { + rules: [ + { + test: /\.css$/, + use: [ + 'style-loader', + 'css-loader', + 'postcss-loader' + ] + } + ] + } +}) +``` + +

Maintainers

+ + + + + + + + +
+ +
+ Michael Ciniawsky +
+ +
+ Mateusz Derks +
+ +

Contributors

+ + + + + + + + + + +
+ +
+ Ryan Dunckel +
+ +
+ Patrick Gilday +
+ +
+ Dalton Santos +
+ +
+ François Wouts +
+ + +[npm]: https://img.shields.io/npm/v/postcss-load-config.svg +[npm-url]: https://npmjs.com/package/postcss-load-config + +[node]: https://img.shields.io/node/v/postcss-load-plugins.svg +[node-url]: https://nodejs.org/ + +[deps]: https://david-dm.org/michael-ciniawsky/postcss-load-config.svg +[deps-url]: https://david-dm.org/michael-ciniawsky/postcss-load-config + +[test]: http://img.shields.io/travis/michael-ciniawsky/postcss-load-config.svg +[test-url]: https://travis-ci.org/michael-ciniawsky/postcss-load-config + +[cover]: https://coveralls.io/repos/github/michael-ciniawsky/postcss-load-config/badge.svg +[cover-url]: https://coveralls.io/github/michael-ciniawsky/postcss-load-config + +[style]: https://img.shields.io/badge/code%20style-standard-yellow.svg +[style-url]: http://standardjs.com/ + +[chat]: https://img.shields.io/gitter/room/postcss/postcss.svg +[chat-url]: https://gitter.im/postcss/postcss + +## Security Contact + +To report a security vulnerability, please use the [Tidelift security contact]. +Tidelift will coordinate the fix and disclosure. + +[Tidelift security contact]: https://tidelift.com/security diff --git a/node_modules/postcss-load-config/package.json b/node_modules/postcss-load-config/package.json new file mode 100644 index 00000000..7b1b132e --- /dev/null +++ b/node_modules/postcss-load-config/package.json @@ -0,0 +1,44 @@ +{ + "name": "postcss-load-config", + "version": "3.1.3", + "description": "Autoload Config for PostCSS", + "main": "src/index.js", + "types": "src/index.d.ts", + "files": [ + "src" + ], + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "dependencies": { + "lilconfig": "^2.0.4", + "yaml": "^1.10.2" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + }, + "keywords": [ + "postcss", + "postcssrc", + "postcss.config.js" + ], + "author": "Michael Ciniawky ", + "contributors": [ + "Ryan Dunckel", + "Mateusz Derks", + "Dalton Santos", + "Patrick Gilday", + "François Wouts" + ], + "repository": "postcss/postcss-load-config", + "license": "MIT" +} diff --git a/node_modules/postcss-load-config/src/index.d.ts b/node_modules/postcss-load-config/src/index.d.ts new file mode 100644 index 00000000..c2c4cfe1 --- /dev/null +++ b/node_modules/postcss-load-config/src/index.d.ts @@ -0,0 +1,71 @@ +// based on @types/postcss-load-config@2.0.1 +// Type definitions for postcss-load-config 2.1 +import Processor from 'postcss/lib/processor'; +import { Plugin, ProcessOptions, Transformer } from 'postcss'; +import { Options as ConfigOptions } from "lilconfig"; + +declare function postcssrc( + ctx?: postcssrc.ConfigContext, + path?: string, + options?: ConfigOptions +): Promise; + +declare namespace postcssrc { + function sync( + ctx?: ConfigContext, + path?: string, + options?: ConfigOptions + ): Result; + + // In the ConfigContext, these three options can be instances of the + // appropriate class, or strings. If they are strings, postcss-load-config will + // require() them and pass the instances along. + export interface ProcessOptionsPreload { + parser?: string | ProcessOptions['parser']; + stringifier?: string | ProcessOptions['stringifier']; + syntax?: string | ProcessOptions['syntax']; + } + + // The remaining ProcessOptions, sans the three above. + export type RemainingProcessOptions = Pick< + ProcessOptions, + Exclude + >; + + // Additional context options that postcss-load-config understands. + export interface Context { + cwd?: string; + env?: string; + } + + // The full shape of the ConfigContext. + export type ConfigContext = Context & + ProcessOptionsPreload & + RemainingProcessOptions; + + // Result of postcssrc is a Promise containing the filename plus the options + // and plugins that are ready to pass on to postcss. + export type ResultPlugin = Plugin | Transformer | Processor; + + export interface Result { + file: string; + options: ProcessOptions; + plugins: ResultPlugin[]; + } + + export type ConfigPlugin = Transformer | Plugin | Processor; + + export interface Config { + parser?: string | ProcessOptions['parser'] | false; + stringifier?: string | ProcessOptions['stringifier'] | false; + syntax?: string | ProcessOptions['syntax'] | false; + map?: string | false; + from?: string; + to?: string; + plugins?: Array | Record; + } + + export type ConfigFn = (ctx: ConfigContext) => Config | Promise; +} + +export = postcssrc; diff --git a/node_modules/postcss-load-config/src/index.js b/node_modules/postcss-load-config/src/index.js new file mode 100644 index 00000000..db5c40ed --- /dev/null +++ b/node_modules/postcss-load-config/src/index.js @@ -0,0 +1,188 @@ +'use strict' + +const resolve = require('path').resolve + +const config = require('lilconfig') +const yaml = require('yaml') + +const loadOptions = require('./options.js') +const loadPlugins = require('./plugins.js') + +/* istanbul ignore next */ +const interopRequireDefault = (obj) => obj && obj.__esModule ? obj : { default: obj } + +/** + * Process the result from cosmiconfig + * + * @param {Object} ctx Config Context + * @param {Object} result Cosmiconfig result + * + * @return {Object} PostCSS Config + */ +const processResult = (ctx, result) => { + const file = result.filepath || '' + let config = interopRequireDefault(result.config).default || {} + + if (typeof config === 'function') { + config = config(ctx) + } else { + config = Object.assign({}, config, ctx) + } + + if (!config.plugins) { + config.plugins = [] + } + + return { + plugins: loadPlugins(config, file), + options: loadOptions(config, file), + file: file + } +} + +/** + * Builds the Config Context + * + * @param {Object} ctx Config Context + * + * @return {Object} Config Context + */ +const createContext = (ctx) => { + /** + * @type {Object} + * + * @prop {String} cwd=process.cwd() Config search start location + * @prop {String} env=process.env.NODE_ENV Config Enviroment, will be set to `development` by `postcss-load-config` if `process.env.NODE_ENV` is `undefined` + */ + ctx = Object.assign({ + cwd: process.cwd(), + env: process.env.NODE_ENV + }, ctx) + + if (!ctx.env) { + process.env.NODE_ENV = 'development' + } + + return ctx +} + +const addTypeScriptLoader = (options = {}, loader) => { + const moduleName = 'postcss' + + return { + ...options, + searchPlaces: [ + ...(options.searchPlaces || []), + 'package.json', + `.${moduleName}rc`, + `.${moduleName}rc.json`, + `.${moduleName}rc.yaml`, + `.${moduleName}rc.yml`, + `.${moduleName}rc.ts`, + `.${moduleName}rc.js`, + `.${moduleName}rc.cjs`, + `${moduleName}.config.ts`, + `${moduleName}.config.js`, + `${moduleName}.config.cjs` + ], + loaders: { + ...options.loaders, + '.yaml': (filepath, content) => yaml.parse(content), + '.yml': (filepath, content) => yaml.parse(content), + '.ts': loader + } + } +} + +const withTypeScriptLoader = (rcFunc) => { + return (ctx, path, options) => { + return rcFunc(ctx, path, addTypeScriptLoader(options, (configFile) => { + let registerer = { enabled () {} } + + try { + // Register TypeScript compiler instance + registerer = require('ts-node').register() + + return require(configFile) + } catch (err) { + if (err.code === 'MODULE_NOT_FOUND') { + throw new Error( + `'ts-node' is required for the TypeScript configuration files. Make sure it is installed\nError: ${err.message}` + ) + } + + throw err + } finally { + registerer.enabled(false) + } + })) + } +} + +/** + * Load Config + * + * @method rc + * + * @param {Object} ctx Config Context + * @param {String} path Config Path + * @param {Object} options Config Options + * + * @return {Promise} config PostCSS Config + */ +const rc = withTypeScriptLoader((ctx, path, options) => { + /** + * @type {Object} The full Config Context + */ + ctx = createContext(ctx) + + /** + * @type {String} `process.cwd()` + */ + path = path ? resolve(path) : process.cwd() + + return config.lilconfig('postcss', options) + .search(path) + .then((result) => { + if (!result) { + throw new Error(`No PostCSS Config found in: ${path}`) + } + + return processResult(ctx, result) + }) +}) + +rc.sync = withTypeScriptLoader((ctx, path, options) => { + /** + * @type {Object} The full Config Context + */ + ctx = createContext(ctx) + + /** + * @type {String} `process.cwd()` + */ + path = path ? resolve(path) : process.cwd() + + const result = config.lilconfigSync('postcss', options).search(path) + + if (!result) { + throw new Error(`No PostCSS Config found in: ${path}`) + } + + return processResult(ctx, result) +}) + +/** + * Autoload Config for PostCSS + * + * @author Michael Ciniawsky @michael-ciniawsky + * @license MIT + * + * @module postcss-load-config + * @version 2.1.0 + * + * @requires comsiconfig + * @requires ./options + * @requires ./plugins + */ +module.exports = rc diff --git a/node_modules/postcss-load-config/src/options.js b/node_modules/postcss-load-config/src/options.js new file mode 100644 index 00000000..d3ef2d65 --- /dev/null +++ b/node_modules/postcss-load-config/src/options.js @@ -0,0 +1,47 @@ +'use strict' + +const req = require('./req.js') + +/** + * Load Options + * + * @private + * @method options + * + * @param {Object} config PostCSS Config + * + * @return {Object} options PostCSS Options + */ +const options = (config, file) => { + if (config.parser && typeof config.parser === 'string') { + try { + config.parser = req(config.parser, file) + } catch (err) { + throw new Error(`Loading PostCSS Parser failed: ${err.message}\n\n(@${file})`) + } + } + + if (config.syntax && typeof config.syntax === 'string') { + try { + config.syntax = req(config.syntax, file) + } catch (err) { + throw new Error(`Loading PostCSS Syntax failed: ${err.message}\n\n(@${file})`) + } + } + + if (config.stringifier && typeof config.stringifier === 'string') { + try { + config.stringifier = req(config.stringifier, file) + } catch (err) { + throw new Error(`Loading PostCSS Stringifier failed: ${err.message}\n\n(@${file})`) + } + } + + if (config.plugins) { + delete config.plugins + } + + return config +} + +module.exports = options diff --git a/node_modules/postcss-load-config/src/plugins.js b/node_modules/postcss-load-config/src/plugins.js new file mode 100644 index 00000000..6cb994bb --- /dev/null +++ b/node_modules/postcss-load-config/src/plugins.js @@ -0,0 +1,85 @@ +'use strict' + +const req = require('./req.js') + +/** + * Plugin Loader + * + * @private + * @method load + * + * @param {String} plugin PostCSS Plugin Name + * @param {Object} options PostCSS Plugin Options + * + * @return {Function} PostCSS Plugin + */ +const load = (plugin, options, file) => { + try { + if ( + options === null || + options === undefined || + Object.keys(options).length === 0 + ) { + return req(plugin, file) + } else { + return req(plugin, file)(options) + } + } catch (err) { + throw new Error(`Loading PostCSS Plugin failed: ${err.message}\n\n(@${file})`) + } +} + +/** + * Load Plugins + * + * @private + * @method plugins + * + * @param {Object} config PostCSS Config Plugins + * + * @return {Array} plugins PostCSS Plugins + */ +const plugins = (config, file) => { + let plugins = [] + + if (Array.isArray(config.plugins)) { + plugins = config.plugins.filter(Boolean) + } else { + plugins = Object.keys(config.plugins) + .filter((plugin) => { + return config.plugins[plugin] !== false ? plugin : '' + }) + .map((plugin) => { + return load(plugin, config.plugins[plugin], file) + }) + } + + if (plugins.length && plugins.length > 0) { + plugins.forEach((plugin, i) => { + if (plugin.default) { + plugin = plugin.default + } + + if (plugin.postcss === true) { + plugin = plugin() + } else if (plugin.postcss) { + plugin = plugin.postcss + } + + if ( + // eslint-disable-next-line + !( + (typeof plugin === 'object' && Array.isArray(plugin.plugins)) || + (typeof plugin === 'object' && plugin.postcssPlugin) || + (typeof plugin === 'function') + ) + ) { + throw new TypeError(`Invalid PostCSS Plugin found at: plugins[${i}]\n\n(@${file})`) + } + }) + } + + return plugins +} + +module.exports = plugins diff --git a/node_modules/postcss-load-config/src/req.js b/node_modules/postcss-load-config/src/req.js new file mode 100644 index 00000000..ad6a3321 --- /dev/null +++ b/node_modules/postcss-load-config/src/req.js @@ -0,0 +1,10 @@ +// eslint-disable-next-line node/no-deprecated-api +const { createRequire, createRequireFromPath } = require('module') + +function req (name, rootFile) { + const create = createRequire || createRequireFromPath + const require = create(rootFile) + return require(name) +} + +module.exports = req diff --git a/node_modules/postcss-reporter/LICENSE b/node_modules/postcss-reporter/LICENSE new file mode 100644 index 00000000..6d347c06 --- /dev/null +++ b/node_modules/postcss-reporter/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 David Clark + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/node_modules/postcss-reporter/README.md b/node_modules/postcss-reporter/README.md new file mode 100644 index 00000000..ca6c43b9 --- /dev/null +++ b/node_modules/postcss-reporter/README.md @@ -0,0 +1,12 @@ +# postcss-reporter + +A PostCSS plugin to `console.log()` the messages (warnings, etc.) registered by other PostCSS plugins. + +--- + +**SEEKING A NEW MAINTAINER!** Interested in contributing to the ecosystem of PostCSS and Stylelint? Please open an issue if you'd like to take over maintenance of this package. + +--- + +## Docs +Read **[full docs](https://github.com/postcss/postcss-reporter#readme)** on GitHub. diff --git a/node_modules/postcss-reporter/index.js b/node_modules/postcss-reporter/index.js new file mode 100644 index 00000000..01116aa4 --- /dev/null +++ b/node_modules/postcss-reporter/index.js @@ -0,0 +1,4 @@ +var reporter = require('./lib/reporter'); + +module.exports = reporter; +module.exports.postcss = true; diff --git a/node_modules/postcss-reporter/lib/formatter.js b/node_modules/postcss-reporter/lib/formatter.js new file mode 100644 index 00000000..7358cc61 --- /dev/null +++ b/node_modules/postcss-reporter/lib/formatter.js @@ -0,0 +1,95 @@ +var pico = require('picocolors'); +var path = require('path'); +var firstBy = require('thenby'); +var util = require('./util'); + +var supportsLargeCharset = + process.platform !== 'win32' || + process.env.CI || + process.env.TERM === 'xterm-256color'; +var warningSymbol = supportsLargeCharset ? '⚠' : '!!'; + +function createSortFunction(positionless, sortByPosition) { + var positionValue = 0 + + if (positionless === 'any') { positionValue = 1; } + if (positionless === 'first') { positionValue = 2; } + if (positionless === 'last') { positionValue = 0; } + + var sortFunction = firstBy((m) => { + if (!m.line) return 1; + return positionValue; + }) + + if (sortByPosition) { + sortFunction = sortFunction.thenBy('line').thenBy('column'); + } + + return sortFunction; +} + +module.exports = function (opts) { + var options = opts || {}; + var sortByPosition = + typeof options.sortByPosition !== 'undefined' + ? options.sortByPosition + : true; + var positionless = options.positionless || 'first'; + + var sortFunction = createSortFunction(positionless, sortByPosition); + + return function (input) { + var messages = input.messages.filter(function (message) { + return typeof message.text === 'string'; + }); + var source = input.source; + + if (!messages.length) return ''; + + var orderedMessages = messages.sort(sortFunction); + + var output = '\n'; + + if (source) { + output += pico.bold(pico.underline(logFrom(source))) + '\n'; + } + + orderedMessages.forEach(function (w) { + output += messageToString(w) + '\n'; + }); + + return output; + + function messageToString(message) { + var location = util.getLocation(message); + var str = ''; + + if (location.line) { + str += pico.bold(location.line); + } + + if (location.column) { + str += pico.bold(':' + location.column); + } + + if (location.line || location.column) { + str += '\t'; + } + + if (!options.noIcon && message.type === 'warning') { + str += pico.yellow(warningSymbol + ' '); + } + + str += message.text; + if (!options.noPlugin) { + str += pico.yellow(' [' + message.plugin + ']'); + } + return str; + } + + function logFrom(fromValue) { + if (fromValue.charAt(0) === '<') return fromValue; + return path.relative(process.cwd(), fromValue).split(path.sep).join('/'); + } + }; +}; diff --git a/node_modules/postcss-reporter/lib/reporter.js b/node_modules/postcss-reporter/lib/reporter.js new file mode 100644 index 00000000..71872a97 --- /dev/null +++ b/node_modules/postcss-reporter/lib/reporter.js @@ -0,0 +1,101 @@ +var defaultFormatter = require('./formatter'); +var pico = require('picocolors'); +var util = require('./util'); + +module.exports = function (opts = {}) { + var formatter = + opts.formatter || + defaultFormatter({ + noIcon: opts.noIcon, + noPlugin: opts.noPlugin, + }); + + var pluginFilter; + if (!opts.plugins) { + // Every plugin + pluginFilter = function () { + return true; + }; + } else if ( + opts.plugins.every(function (plugin) { + return plugin[0] === '!'; + }) + ) { + // Deny list + pluginFilter = function (message) { + return opts.plugins.indexOf('!' + message.plugin) === -1; + }; + } else { + // Allow list + pluginFilter = function (message) { + return opts.plugins.indexOf(message.plugin) !== -1; + }; + } + + var messageFilter = opts.filter || ((message) => message.type === 'warning'); + + return { + postcssPlugin: 'postcss-reporter', + OnceExit(css, { result }) { + var messagesToLog = result.messages + .filter(pluginFilter) + .filter(messageFilter); + + var resultSource = !result.root.source + ? '' + : result.root.source.input.file || result.root.source.input.id; + + var sourceGroupedMessages = messagesToLog.reduce((grouped, message) => { + const key = util.getLocation(message).file || resultSource; + + if (!grouped.hasOwnProperty(key)) { + grouped[key] = []; + } + + grouped[key].push(message); + + return grouped; + }, {}); + + var report = ''; + for (const source in sourceGroupedMessages) { + if (sourceGroupedMessages.hasOwnProperty(source)) { + report += formatter({ + messages: sourceGroupedMessages[source], + source: source, + }); + } + } + + if (opts.clearReportedMessages) { + result.messages = result.messages.filter(message => !messagesToLog.includes(message)); + } + + if (opts.clearAllMessages) { + var messagesToClear = result.messages.filter(pluginFilter); + result.messages = result.messages.filter(message => !messagesToClear.includes(message)); + } + + if (!report) return; + + console.log(report); + + if (opts.throwError && shouldThrowError()) { + throw new Error( + pico.red( + pico.bold('\n** postcss-reporter: warnings or errors were found **') + ) + ); + } + + function shouldThrowError() { + return ( + messagesToLog.length && + messagesToLog.some((message) => { + return message.type === 'warning' || message.type === 'error'; + }) + ); + } + }, + }; +}; diff --git a/node_modules/postcss-reporter/lib/util.js b/node_modules/postcss-reporter/lib/util.js new file mode 100644 index 00000000..094b3acc --- /dev/null +++ b/node_modules/postcss-reporter/lib/util.js @@ -0,0 +1,19 @@ +exports.getLocation = function (message) { + var messageNode = message.node; + + var location = { + line: message.line, + column: message.column, + }; + + var messageInput = messageNode && messageNode.source && messageNode.source.input; + + if (!messageInput) return location; + + var originLocation = + messageInput.origin && messageInput.origin(message.line, message.column); + if (originLocation) return originLocation; + + location.file = messageInput.file || messageInput.id; + return location; +}; diff --git a/node_modules/postcss-reporter/package.json b/node_modules/postcss-reporter/package.json new file mode 100644 index 00000000..15a9867c --- /dev/null +++ b/node_modules/postcss-reporter/package.json @@ -0,0 +1,31 @@ +{ + "name": "postcss-reporter", + "version": "7.0.5", + "description": "Log PostCSS messages in the console", + "main": "index.js", + "files": [ + "index.js", + "lib" + ], + "engines": { + "node": ">=10" + }, + "repository": "postcss/postcss-reporter", + "author": { + "name": "David Clark", + "email": "david.dave.clark@gmail.com", + "url": "https://davidtheclark.com" + }, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + }, + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + } +} diff --git a/node_modules/postcss/LICENSE b/node_modules/postcss/LICENSE new file mode 100644 index 00000000..da057b45 --- /dev/null +++ b/node_modules/postcss/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2013 Andrey Sitnik + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/postcss/README.md b/node_modules/postcss/README.md new file mode 100644 index 00000000..50e5841a --- /dev/null +++ b/node_modules/postcss/README.md @@ -0,0 +1,44 @@ +# PostCSS [![Gitter][chat-img]][chat] + +Philosopher’s stone, logo of PostCSS + +[chat-img]: https://img.shields.io/badge/Gitter-Join_the_PostCSS_chat-brightgreen.svg +[chat]: https://gitter.im/postcss/postcss + +PostCSS is a tool for transforming styles with JS plugins. +These plugins can lint your CSS, support variables and mixins, +transpile future CSS syntax, inline images, and more. + +PostCSS is used by industry leaders including Wikipedia, Twitter, Alibaba, +and JetBrains. The [Autoprefixer] PostCSS plugin is one of the most popular +CSS processors. + +PostCSS takes a CSS file and provides an API to analyze and modify its rules +(by transforming them into an [Abstract Syntax Tree]). +This API can then be used by [plugins] to do a lot of useful things, +e.g., to find errors automatically, or to insert vendor prefixes. + +**Support / Discussion:** [Gitter](https://gitter.im/postcss/postcss)
+**Twitter account:** [@postcss](https://twitter.com/postcss)
+**VK.com page:** [postcss](https://vk.com/postcss)
+**中文翻译**: [`docs/README-cn.md`](./docs/README-cn.md) + +For PostCSS commercial support (consulting, improving the front-end culture +of your company, PostCSS plugins), contact [Evil Martians] +at . + +[Abstract Syntax Tree]: https://en.wikipedia.org/wiki/Abstract_syntax_tree +[Evil Martians]: https://evilmartians.com/?utm_source=postcss +[Autoprefixer]: https://github.com/postcss/autoprefixer +[plugins]: https://github.com/postcss/postcss#plugins + + + Sponsored by Evil Martians + + + +## Docs +Read **[full docs](https://github.com/postcss/postcss#readme)** on GitHub. diff --git a/node_modules/postcss/lib/at-rule.d.ts b/node_modules/postcss/lib/at-rule.d.ts new file mode 100644 index 00000000..7a39b2f9 --- /dev/null +++ b/node_modules/postcss/lib/at-rule.d.ts @@ -0,0 +1,106 @@ +import Container, { ContainerProps } from './container.js' + +interface AtRuleRaws extends Record { + /** + * The space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + */ + before?: string + + /** + * The space symbols after the last child of the node to the end of the node. + */ + after?: string + + /** + * The space between the at-rule name and its parameters. + */ + afterName?: string + + /** + * The symbols between the last parameter and `{` for rules. + */ + between?: string + + /** + * Contains `true` if the last child has an (optional) semicolon. + */ + semicolon?: boolean + + /** + * The rule’s selector with comments. + */ + params?: { + value: string + raw: string + } +} + +export interface AtRuleProps extends ContainerProps { + /** Name of the at-rule. */ + name: string + /** Parameters following the name of the at-rule. */ + params?: string | number + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ + raws?: AtRuleRaws +} + +/** + * Represents an at-rule. + * + * ```js + * Once (root, { AtRule }) { + * let media = new AtRule({ name: 'media', params: 'print' }) + * media.append(…) + * root.append(media) + * } + * ``` + * + * If it’s followed in the CSS by a {} block, this node will have + * a nodes property representing its children. + * + * ```js + * const root = postcss.parse('@charset "UTF-8"; @media print {}') + * + * const charset = root.first + * charset.type //=> 'atrule' + * charset.nodes //=> undefined + * + * const media = root.last + * media.nodes //=> [] + * ``` + */ +export default class AtRule extends Container { + type: 'atrule' + parent: Container | undefined + raws: AtRuleRaws + + /** + * The at-rule’s name immediately follows the `@`. + * + * ```js + * const root = postcss.parse('@media print {}') + * media.name //=> 'media' + * const media = root.first + * ``` + */ + name: string + + /** + * The at-rule’s parameters, the values that follow the at-rule’s name + * but precede any {} block. + * + * ```js + * const root = postcss.parse('@media print, screen {}') + * const media = root.first + * media.params //=> 'print, screen' + * ``` + */ + params: string + + constructor(defaults?: AtRuleProps) + assign(overrides: object | AtRuleProps): this + clone(overrides?: Partial): this + cloneBefore(overrides?: Partial): this + cloneAfter(overrides?: Partial): this +} diff --git a/node_modules/postcss/lib/at-rule.js b/node_modules/postcss/lib/at-rule.js new file mode 100644 index 00000000..9486447b --- /dev/null +++ b/node_modules/postcss/lib/at-rule.js @@ -0,0 +1,25 @@ +'use strict' + +let Container = require('./container') + +class AtRule extends Container { + constructor(defaults) { + super(defaults) + this.type = 'atrule' + } + + append(...children) { + if (!this.proxyOf.nodes) this.nodes = [] + return super.append(...children) + } + + prepend(...children) { + if (!this.proxyOf.nodes) this.nodes = [] + return super.prepend(...children) + } +} + +module.exports = AtRule +AtRule.default = AtRule + +Container.registerAtRule(AtRule) diff --git a/node_modules/postcss/lib/comment.d.ts b/node_modules/postcss/lib/comment.d.ts new file mode 100644 index 00000000..8eaf3a23 --- /dev/null +++ b/node_modules/postcss/lib/comment.d.ts @@ -0,0 +1,56 @@ +import Container from './container.js' +import Node, { NodeProps } from './node.js' + +interface CommentRaws extends Record { + /** + * The space symbols before the node. + */ + before?: string + + /** + * The space symbols between `/*` and the comment’s text. + */ + left?: string + + /** + * The space symbols between the comment’s text. + */ + right?: string +} + +export interface CommentProps extends NodeProps { + /** Content of the comment. */ + text: string + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ + raws?: CommentRaws +} + +/** + * Represents a comment between declarations or statements (rule and at-rules). + * + * ```js + * Once (root, { Comment }) { + * let note = new Comment({ text: 'Note: …' }) + * root.append(note) + * } + * ``` + * + * Comments inside selectors, at-rule parameters, or declaration values + * will be stored in the `raws` properties explained above. + */ +export default class Comment extends Node { + type: 'comment' + parent: Container | undefined + raws: CommentRaws + + /** + * The comment's text. + */ + text: string + + constructor(defaults?: CommentProps) + assign(overrides: object | CommentProps): this + clone(overrides?: Partial): this + cloneBefore(overrides?: Partial): this + cloneAfter(overrides?: Partial): this +} diff --git a/node_modules/postcss/lib/comment.js b/node_modules/postcss/lib/comment.js new file mode 100644 index 00000000..c5665064 --- /dev/null +++ b/node_modules/postcss/lib/comment.js @@ -0,0 +1,13 @@ +'use strict' + +let Node = require('./node') + +class Comment extends Node { + constructor(defaults) { + super(defaults) + this.type = 'comment' + } +} + +module.exports = Comment +Comment.default = Comment diff --git a/node_modules/postcss/lib/container.d.ts b/node_modules/postcss/lib/container.d.ts new file mode 100644 index 00000000..2b75e372 --- /dev/null +++ b/node_modules/postcss/lib/container.d.ts @@ -0,0 +1,442 @@ +import Node, { ChildNode, NodeProps, ChildProps } from './node.js' +import Declaration from './declaration.js' +import Comment from './comment.js' +import AtRule from './at-rule.js' +import Rule from './rule.js' + +interface ValueOptions { + /** + * An array of property names. + */ + props?: string[] + + /** + * String that’s used to narrow down values and speed up the regexp search. + */ + fast?: string +} + +export interface ContainerProps extends NodeProps { + nodes?: (ChildNode | ChildProps)[] +} + +/** + * The `Root`, `AtRule`, and `Rule` container nodes + * inherit some common methods to help work with their children. + * + * Note that all containers can store any content. If you write a rule inside + * a rule, PostCSS will parse it. + */ +export default abstract class Container< + Child extends Node = ChildNode +> extends Node { + /** + * An array containing the container’s children. + * + * ```js + * const root = postcss.parse('a { color: black }') + * root.nodes.length //=> 1 + * root.nodes[0].selector //=> 'a' + * root.nodes[0].nodes[0].prop //=> 'color' + * ``` + */ + nodes: Child[] + + /** + * The container’s first child. + * + * ```js + * rule.first === rules.nodes[0] + * ``` + */ + get first(): Child | undefined + + /** + * The container’s last child. + * + * ```js + * rule.last === rule.nodes[rule.nodes.length - 1] + * ``` + */ + get last(): Child | undefined + + /** + * Iterates through the container’s immediate children, + * calling `callback` for each child. + * + * Returning `false` in the callback will break iteration. + * + * This method only iterates through the container’s immediate children. + * If you need to recursively iterate through all the container’s descendant + * nodes, use `Container#walk`. + * + * Unlike the for `{}`-cycle or `Array#forEach` this iterator is safe + * if you are mutating the array of child nodes during iteration. + * PostCSS will adjust the current index to match the mutations. + * + * ```js + * const root = postcss.parse('a { color: black; z-index: 1 }') + * const rule = root.first + * + * for (const decl of rule.nodes) { + * decl.cloneBefore({ prop: '-webkit-' + decl.prop }) + * // Cycle will be infinite, because cloneBefore moves the current node + * // to the next index + * } + * + * rule.each(decl => { + * decl.cloneBefore({ prop: '-webkit-' + decl.prop }) + * // Will be executed only for color and z-index + * }) + * ``` + * + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + each( + callback: (node: Child, index: number) => false | void + ): false | undefined + + /** + * Traverses the container’s descendant nodes, calling callback + * for each node. + * + * Like container.each(), this method is safe to use + * if you are mutating arrays during iteration. + * + * If you only need to iterate through the container’s immediate children, + * use `Container#each`. + * + * ```js + * root.walk(node => { + * // Traverses all descendant nodes. + * }) + * ``` + * + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + walk( + callback: (node: ChildNode, index: number) => false | void + ): false | undefined + + /** + * Traverses the container’s descendant nodes, calling callback + * for each declaration node. + * + * If you pass a filter, iteration will only happen over declarations + * with matching properties. + * + * ```js + * root.walkDecls(decl => { + * checkPropertySupport(decl.prop) + * }) + * + * root.walkDecls('border-radius', decl => { + * decl.remove() + * }) + * + * root.walkDecls(/^background/, decl => { + * decl.value = takeFirstColorFromGradient(decl.value) + * }) + * ``` + * + * Like `Container#each`, this method is safe + * to use if you are mutating arrays during iteration. + * + * @param prop String or regular expression to filter declarations + * by property name. + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + walkDecls( + propFilter: string | RegExp, + callback: (decl: Declaration, index: number) => false | void + ): false | undefined + walkDecls( + callback: (decl: Declaration, index: number) => false | void + ): false | undefined + + /** + * Traverses the container’s descendant nodes, calling callback + * for each rule node. + * + * If you pass a filter, iteration will only happen over rules + * with matching selectors. + * + * Like `Container#each`, this method is safe + * to use if you are mutating arrays during iteration. + * + * ```js + * const selectors = [] + * root.walkRules(rule => { + * selectors.push(rule.selector) + * }) + * console.log(`Your CSS uses ${ selectors.length } selectors`) + * ``` + * + * @param selector String or regular expression to filter rules by selector. + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + walkRules( + selectorFilter: string | RegExp, + callback: (rule: Rule, index: number) => false | void + ): false | undefined + walkRules( + callback: (rule: Rule, index: number) => false | void + ): false | undefined + + /** + * Traverses the container’s descendant nodes, calling callback + * for each at-rule node. + * + * If you pass a filter, iteration will only happen over at-rules + * that have matching names. + * + * Like `Container#each`, this method is safe + * to use if you are mutating arrays during iteration. + * + * ```js + * root.walkAtRules(rule => { + * if (isOld(rule.name)) rule.remove() + * }) + * + * let first = false + * root.walkAtRules('charset', rule => { + * if (!first) { + * first = true + * } else { + * rule.remove() + * } + * }) + * ``` + * + * @param name String or regular expression to filter at-rules by name. + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + walkAtRules( + nameFilter: string | RegExp, + callback: (atRule: AtRule, index: number) => false | void + ): false | undefined + walkAtRules( + callback: (atRule: AtRule, index: number) => false | void + ): false | undefined + + /** + * Traverses the container’s descendant nodes, calling callback + * for each comment node. + * + * Like `Container#each`, this method is safe + * to use if you are mutating arrays during iteration. + * + * ```js + * root.walkComments(comment => { + * comment.remove() + * }) + * ``` + * + * @param callback Iterator receives each node and index. + * @return Returns `false` if iteration was broke. + */ + + walkComments( + callback: (comment: Comment, indexed: number) => false | void + ): false | undefined + walkComments( + callback: (comment: Comment, indexed: number) => false | void + ): false | undefined + + /** + * Inserts new nodes to the end of the container. + * + * ```js + * const decl1 = new Declaration({ prop: 'color', value: 'black' }) + * const decl2 = new Declaration({ prop: 'background-color', value: 'white' }) + * rule.append(decl1, decl2) + * + * root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule + * root.append({ selector: 'a' }) // rule + * rule.append({ prop: 'color', value: 'black' }) // declaration + * rule.append({ text: 'Comment' }) // comment + * + * root.append('a {}') + * root.first.append('color: black; z-index: 1') + * ``` + * + * @param nodes New nodes. + * @return This node for methods chain. + */ + append( + ...nodes: (Node | Node[] | ChildProps | ChildProps[] | string | string[])[] + ): this + + /** + * Inserts new nodes to the start of the container. + * + * ```js + * const decl1 = new Declaration({ prop: 'color', value: 'black' }) + * const decl2 = new Declaration({ prop: 'background-color', value: 'white' }) + * rule.prepend(decl1, decl2) + * + * root.append({ name: 'charset', params: '"UTF-8"' }) // at-rule + * root.append({ selector: 'a' }) // rule + * rule.append({ prop: 'color', value: 'black' }) // declaration + * rule.append({ text: 'Comment' }) // comment + * + * root.append('a {}') + * root.first.append('color: black; z-index: 1') + * ``` + * + * @param nodes New nodes. + * @return This node for methods chain. + */ + prepend( + ...nodes: (Node | Node[] | ChildProps | ChildProps[] | string | string[])[] + ): this + + /** + * Add child to the end of the node. + * + * ```js + * rule.push(new Declaration({ prop: 'color', value: 'black' })) + * ``` + * + * @param child New node. + * @return This node for methods chain. + */ + push(child: Child): this + + /** + * Insert new node before old node within the container. + * + * ```js + * rule.insertBefore(decl, decl.clone({ prop: '-webkit-' + decl.prop })) + * ``` + * + * @param oldNode Child or child’s index. + * @param newNode New node. + * @return This node for methods chain. + */ + insertBefore( + oldNode: Child | number, + newNode: Child | ChildProps | string | Child[] | ChildProps[] | string[] + ): this + + /** + * Insert new node after old node within the container. + * + * @param oldNode Child or child’s index. + * @param newNode New node. + * @return This node for methods chain. + */ + insertAfter( + oldNode: Child | number, + newNode: Child | ChildProps | string | Child[] | ChildProps[] | string[] + ): this + + /** + * Removes node from the container and cleans the parent properties + * from the node and its children. + * + * ```js + * rule.nodes.length //=> 5 + * rule.removeChild(decl) + * rule.nodes.length //=> 4 + * decl.parent //=> undefined + * ``` + * + * @param child Child or child’s index. + * @return This node for methods chain. + */ + removeChild(child: Child | number): this + + /** + * Removes all children from the container + * and cleans their parent properties. + * + * ```js + * rule.removeAll() + * rule.nodes.length //=> 0 + * ``` + * + * @return This node for methods chain. + */ + removeAll(): this + + /** + * Passes all declaration values within the container that match pattern + * through callback, replacing those values with the returned result + * of callback. + * + * This method is useful if you are using a custom unit or function + * and need to iterate through all values. + * + * ```js + * root.replaceValues(/\d+rem/, { fast: 'rem' }, string => { + * return 15 * parseInt(string) + 'px' + * }) + * ``` + * + * @param pattern Replace pattern. + * @param {object} opts Options to speed up the search. + * @param callback String to replace pattern or callback + * that returns a new value. The callback + * will receive the same arguments + * as those passed to a function parameter + * of `String#replace`. + * @return This node for methods chain. + */ + replaceValues( + pattern: string | RegExp, + options: ValueOptions, + replaced: string | { (substring: string, ...args: any[]): string } + ): this + replaceValues( + pattern: string | RegExp, + replaced: string | { (substring: string, ...args: any[]): string } + ): this + + /** + * Returns `true` if callback returns `true` + * for all of the container’s children. + * + * ```js + * const noPrefixes = rule.every(i => i.prop[0] !== '-') + * ``` + * + * @param condition Iterator returns true or false. + * @return Is every child pass condition. + */ + every( + condition: (node: Child, index: number, nodes: Child[]) => boolean + ): boolean + + /** + * Returns `true` if callback returns `true` for (at least) one + * of the container’s children. + * + * ```js + * const hasPrefix = rule.some(i => i.prop[0] === '-') + * ``` + * + * @param condition Iterator returns true or false. + * @return Is some child pass condition. + */ + some( + condition: (node: Child, index: number, nodes: Child[]) => boolean + ): boolean + + /** + * Returns a `child`’s index within the `Container#nodes` array. + * + * ```js + * rule.index( rule.nodes[2] ) //=> 2 + * ``` + * + * @param child Child of the current container. + * @return Child index. + */ + index(child: Child | number): number +} diff --git a/node_modules/postcss/lib/container.js b/node_modules/postcss/lib/container.js new file mode 100644 index 00000000..a511a829 --- /dev/null +++ b/node_modules/postcss/lib/container.js @@ -0,0 +1,433 @@ +'use strict' + +let { isClean, my } = require('./symbols') +let Declaration = require('./declaration') +let Comment = require('./comment') +let Node = require('./node') + +let parse, Rule, AtRule + +function cleanSource(nodes) { + return nodes.map(i => { + if (i.nodes) i.nodes = cleanSource(i.nodes) + delete i.source + return i + }) +} + +function markDirtyUp(node) { + node[isClean] = false + if (node.proxyOf.nodes) { + for (let i of node.proxyOf.nodes) { + markDirtyUp(i) + } + } +} + +class Container extends Node { + push(child) { + child.parent = this + this.proxyOf.nodes.push(child) + return this + } + + each(callback) { + if (!this.proxyOf.nodes) return undefined + let iterator = this.getIterator() + + let index, result + while (this.indexes[iterator] < this.proxyOf.nodes.length) { + index = this.indexes[iterator] + result = callback(this.proxyOf.nodes[index], index) + if (result === false) break + + this.indexes[iterator] += 1 + } + + delete this.indexes[iterator] + return result + } + + walk(callback) { + return this.each((child, i) => { + let result + try { + result = callback(child, i) + } catch (e) { + throw child.addToError(e) + } + if (result !== false && child.walk) { + result = child.walk(callback) + } + + return result + }) + } + + walkDecls(prop, callback) { + if (!callback) { + callback = prop + return this.walk((child, i) => { + if (child.type === 'decl') { + return callback(child, i) + } + }) + } + if (prop instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === 'decl' && prop.test(child.prop)) { + return callback(child, i) + } + }) + } + return this.walk((child, i) => { + if (child.type === 'decl' && child.prop === prop) { + return callback(child, i) + } + }) + } + + walkRules(selector, callback) { + if (!callback) { + callback = selector + + return this.walk((child, i) => { + if (child.type === 'rule') { + return callback(child, i) + } + }) + } + if (selector instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === 'rule' && selector.test(child.selector)) { + return callback(child, i) + } + }) + } + return this.walk((child, i) => { + if (child.type === 'rule' && child.selector === selector) { + return callback(child, i) + } + }) + } + + walkAtRules(name, callback) { + if (!callback) { + callback = name + return this.walk((child, i) => { + if (child.type === 'atrule') { + return callback(child, i) + } + }) + } + if (name instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === 'atrule' && name.test(child.name)) { + return callback(child, i) + } + }) + } + return this.walk((child, i) => { + if (child.type === 'atrule' && child.name === name) { + return callback(child, i) + } + }) + } + + walkComments(callback) { + return this.walk((child, i) => { + if (child.type === 'comment') { + return callback(child, i) + } + }) + } + + append(...children) { + for (let child of children) { + let nodes = this.normalize(child, this.last) + for (let node of nodes) this.proxyOf.nodes.push(node) + } + + this.markDirty() + + return this + } + + prepend(...children) { + children = children.reverse() + for (let child of children) { + let nodes = this.normalize(child, this.first, 'prepend').reverse() + for (let node of nodes) this.proxyOf.nodes.unshift(node) + for (let id in this.indexes) { + this.indexes[id] = this.indexes[id] + nodes.length + } + } + + this.markDirty() + + return this + } + + cleanRaws(keepBetween) { + super.cleanRaws(keepBetween) + if (this.nodes) { + for (let node of this.nodes) node.cleanRaws(keepBetween) + } + } + + insertBefore(exist, add) { + exist = this.index(exist) + + let type = exist === 0 ? 'prepend' : false + let nodes = this.normalize(add, this.proxyOf.nodes[exist], type).reverse() + for (let node of nodes) this.proxyOf.nodes.splice(exist, 0, node) + + let index + for (let id in this.indexes) { + index = this.indexes[id] + if (exist <= index) { + this.indexes[id] = index + nodes.length + } + } + + this.markDirty() + + return this + } + + insertAfter(exist, add) { + exist = this.index(exist) + + let nodes = this.normalize(add, this.proxyOf.nodes[exist]).reverse() + for (let node of nodes) this.proxyOf.nodes.splice(exist + 1, 0, node) + + let index + for (let id in this.indexes) { + index = this.indexes[id] + if (exist < index) { + this.indexes[id] = index + nodes.length + } + } + + this.markDirty() + + return this + } + + removeChild(child) { + child = this.index(child) + this.proxyOf.nodes[child].parent = undefined + this.proxyOf.nodes.splice(child, 1) + + let index + for (let id in this.indexes) { + index = this.indexes[id] + if (index >= child) { + this.indexes[id] = index - 1 + } + } + + this.markDirty() + + return this + } + + removeAll() { + for (let node of this.proxyOf.nodes) node.parent = undefined + this.proxyOf.nodes = [] + + this.markDirty() + + return this + } + + replaceValues(pattern, opts, callback) { + if (!callback) { + callback = opts + opts = {} + } + + this.walkDecls(decl => { + if (opts.props && !opts.props.includes(decl.prop)) return + if (opts.fast && !decl.value.includes(opts.fast)) return + + decl.value = decl.value.replace(pattern, callback) + }) + + this.markDirty() + + return this + } + + every(condition) { + return this.nodes.every(condition) + } + + some(condition) { + return this.nodes.some(condition) + } + + index(child) { + if (typeof child === 'number') return child + if (child.proxyOf) child = child.proxyOf + return this.proxyOf.nodes.indexOf(child) + } + + get first() { + if (!this.proxyOf.nodes) return undefined + return this.proxyOf.nodes[0] + } + + get last() { + if (!this.proxyOf.nodes) return undefined + return this.proxyOf.nodes[this.proxyOf.nodes.length - 1] + } + + normalize(nodes, sample) { + if (typeof nodes === 'string') { + nodes = cleanSource(parse(nodes).nodes) + } else if (Array.isArray(nodes)) { + nodes = nodes.slice(0) + for (let i of nodes) { + if (i.parent) i.parent.removeChild(i, 'ignore') + } + } else if (nodes.type === 'root' && this.type !== 'document') { + nodes = nodes.nodes.slice(0) + for (let i of nodes) { + if (i.parent) i.parent.removeChild(i, 'ignore') + } + } else if (nodes.type) { + nodes = [nodes] + } else if (nodes.prop) { + if (typeof nodes.value === 'undefined') { + throw new Error('Value field is missed in node creation') + } else if (typeof nodes.value !== 'string') { + nodes.value = String(nodes.value) + } + nodes = [new Declaration(nodes)] + } else if (nodes.selector) { + nodes = [new Rule(nodes)] + } else if (nodes.name) { + nodes = [new AtRule(nodes)] + } else if (nodes.text) { + nodes = [new Comment(nodes)] + } else { + throw new Error('Unknown node type in node creation') + } + + let processed = nodes.map(i => { + /* c8 ignore next */ + if (!i[my]) Container.rebuild(i) + i = i.proxyOf + if (i.parent) i.parent.removeChild(i) + if (i[isClean]) markDirtyUp(i) + if (typeof i.raws.before === 'undefined') { + if (sample && typeof sample.raws.before !== 'undefined') { + i.raws.before = sample.raws.before.replace(/\S/g, '') + } + } + i.parent = this + return i + }) + + return processed + } + + getProxyProcessor() { + return { + set(node, prop, value) { + if (node[prop] === value) return true + node[prop] = value + if (prop === 'name' || prop === 'params' || prop === 'selector') { + node.markDirty() + } + return true + }, + + get(node, prop) { + if (prop === 'proxyOf') { + return node + } else if (!node[prop]) { + return node[prop] + } else if ( + prop === 'each' || + (typeof prop === 'string' && prop.startsWith('walk')) + ) { + return (...args) => { + return node[prop]( + ...args.map(i => { + if (typeof i === 'function') { + return (child, index) => i(child.toProxy(), index) + } else { + return i + } + }) + ) + } + } else if (prop === 'every' || prop === 'some') { + return cb => { + return node[prop]((child, ...other) => + cb(child.toProxy(), ...other) + ) + } + } else if (prop === 'root') { + return () => node.root().toProxy() + } else if (prop === 'nodes') { + return node.nodes.map(i => i.toProxy()) + } else if (prop === 'first' || prop === 'last') { + return node[prop].toProxy() + } else { + return node[prop] + } + } + } + } + + getIterator() { + if (!this.lastEach) this.lastEach = 0 + if (!this.indexes) this.indexes = {} + + this.lastEach += 1 + let iterator = this.lastEach + this.indexes[iterator] = 0 + + return iterator + } +} + +Container.registerParse = dependant => { + parse = dependant +} + +Container.registerRule = dependant => { + Rule = dependant +} + +Container.registerAtRule = dependant => { + AtRule = dependant +} + +module.exports = Container +Container.default = Container + +/* c8 ignore start */ +Container.rebuild = node => { + if (node.type === 'atrule') { + Object.setPrototypeOf(node, AtRule.prototype) + } else if (node.type === 'rule') { + Object.setPrototypeOf(node, Rule.prototype) + } else if (node.type === 'decl') { + Object.setPrototypeOf(node, Declaration.prototype) + } else if (node.type === 'comment') { + Object.setPrototypeOf(node, Comment.prototype) + } + + node[my] = true + + if (node.nodes) { + node.nodes.forEach(child => { + Container.rebuild(child) + }) + } +} +/* c8 ignore stop */ diff --git a/node_modules/postcss/lib/css-syntax-error.d.ts b/node_modules/postcss/lib/css-syntax-error.d.ts new file mode 100644 index 00000000..3fd05552 --- /dev/null +++ b/node_modules/postcss/lib/css-syntax-error.d.ts @@ -0,0 +1,239 @@ +import { FilePosition } from './input.js' + +/** + * A position that is part of a range. + */ +export interface RangePosition { + /** + * The line number in the input. + */ + line: number + + /** + * The column number in the input. + */ + column: number +} + +/** + * The CSS parser throws this error for broken CSS. + * + * Custom parsers can throw this error for broken custom syntax using + * the `Node#error` method. + * + * PostCSS will use the input source map to detect the original error location. + * If you wrote a Sass file, compiled it to CSS and then parsed it with PostCSS, + * PostCSS will show the original position in the Sass file. + * + * If you need the position in the PostCSS input + * (e.g., to debug the previous compiler), use `error.input.file`. + * + * ```js + * // Raising error from plugin + * throw node.error('Unknown variable', { plugin: 'postcss-vars' }) + * ``` + * + * ```js + * // Catching and checking syntax error + * try { + * postcss.parse('a{') + * } catch (error) { + * if (error.name === 'CssSyntaxError') { + * error //=> CssSyntaxError + * } + * } + * ``` + */ +export default class CssSyntaxError { + /** + * Instantiates a CSS syntax error. Can be instantiated for a single position + * or for a range. + * @param message Error message. + * @param lineOrStartPos If for a single position, the line number, or if for + * a range, the inclusive start position of the error. + * @param columnOrEndPos If for a single position, the column number, or if for + * a range, the exclusive end position of the error. + * @param source Source code of the broken file. + * @param file Absolute path to the broken file. + * @param plugin PostCSS plugin name, if error came from plugin. + */ + constructor( + message: string, + lineOrStartPos?: number | RangePosition, + columnOrEndPos?: number | RangePosition, + source?: string, + file?: string, + plugin?: string + ) + + stack: string + + /** + * Always equal to `'CssSyntaxError'`. You should always check error type + * by `error.name === 'CssSyntaxError'` + * instead of `error instanceof CssSyntaxError`, + * because npm could have several PostCSS versions. + * + * ```js + * if (error.name === 'CssSyntaxError') { + * error //=> CssSyntaxError + * } + * ``` + */ + name: 'CssSyntaxError' + + /** + * Error message. + * + * ```js + * error.message //=> 'Unclosed block' + * ``` + */ + reason: string + + /** + * Full error text in the GNU error format + * with plugin, file, line and column. + * + * ```js + * error.message //=> 'a.css:1:1: Unclosed block' + * ``` + */ + message: string + + /** + * Absolute path to the broken file. + * + * ```js + * error.file //=> 'a.sass' + * error.input.file //=> 'a.css' + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.file`. + */ + file?: string + + /** + * Source line of the error. + * + * ```js + * error.line //=> 2 + * error.input.line //=> 4 + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.line`. + */ + line?: number + + /** + * Source column of the error. + * + * ```js + * error.column //=> 1 + * error.input.column //=> 4 + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.column`. + */ + column?: number + + /** + * Source line of the error's end, exclusive. Provided if the error pertains + * to a range. + * + * ```js + * error.endLine //=> 3 + * error.input.endLine //=> 4 + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.endLine`. + */ + endLine?: number + + /** + * Source column of the error's end, exclusive. Provided if the error pertains + * to a range. + * + * ```js + * error.endColumn //=> 1 + * error.input.endColumn //=> 4 + * ``` + * + * PostCSS will use the input source map to detect the original location. + * If you need the position in the PostCSS input, use `error.input.endColumn`. + */ + endColumn?: number + + /** + * Source code of the broken file. + * + * ```js + * error.source //=> 'a { b {} }' + * error.input.source //=> 'a b { }' + * ``` + */ + source?: string + + /** + * Plugin name, if error came from plugin. + * + * ```js + * error.plugin //=> 'postcss-vars' + * ``` + */ + plugin?: string + + /** + * Input object with PostCSS internal information + * about input file. If input has source map + * from previous tool, PostCSS will use origin + * (for example, Sass) source. You can use this + * object to get PostCSS input source. + * + * ```js + * error.input.file //=> 'a.css' + * error.file //=> 'a.sass' + * ``` + */ + input?: FilePosition + + /** + * Returns error position, message and source code of the broken part. + * + * ```js + * error.toString() //=> "CssSyntaxError: app.css:1:1: Unclosed block + * // > 1 | a { + * // | ^" + * ``` + * + * @return Error position, message and source code. + */ + toString(): string + + /** + * Returns a few lines of CSS source that caused the error. + * + * If the CSS has an input source map without `sourceContent`, + * this method will return an empty string. + * + * ```js + * error.showSourceCode() //=> " 4 | } + * // 5 | a { + * // > 6 | bad + * // | ^ + * // 7 | } + * // 8 | b {" + * ``` + * + * @param color Whether arrow will be colored red by terminal + * color codes. By default, PostCSS will detect + * color support by `process.stdout.isTTY` + * and `process.env.NODE_DISABLE_COLORS`. + * @return Few lines of CSS source that caused the error. + */ + showSourceCode(color?: boolean): string +} diff --git a/node_modules/postcss/lib/css-syntax-error.js b/node_modules/postcss/lib/css-syntax-error.js new file mode 100644 index 00000000..d6b369b8 --- /dev/null +++ b/node_modules/postcss/lib/css-syntax-error.js @@ -0,0 +1,100 @@ +'use strict' + +let pico = require('picocolors') + +let terminalHighlight = require('./terminal-highlight') + +class CssSyntaxError extends Error { + constructor(message, line, column, source, file, plugin) { + super(message) + this.name = 'CssSyntaxError' + this.reason = message + + if (file) { + this.file = file + } + if (source) { + this.source = source + } + if (plugin) { + this.plugin = plugin + } + if (typeof line !== 'undefined' && typeof column !== 'undefined') { + if (typeof line === 'number') { + this.line = line + this.column = column + } else { + this.line = line.line + this.column = line.column + this.endLine = column.line + this.endColumn = column.column + } + } + + this.setMessage() + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, CssSyntaxError) + } + } + + setMessage() { + this.message = this.plugin ? this.plugin + ': ' : '' + this.message += this.file ? this.file : '' + if (typeof this.line !== 'undefined') { + this.message += ':' + this.line + ':' + this.column + } + this.message += ': ' + this.reason + } + + showSourceCode(color) { + if (!this.source) return '' + + let css = this.source + if (color == null) color = pico.isColorSupported + if (terminalHighlight) { + if (color) css = terminalHighlight(css) + } + + let lines = css.split(/\r?\n/) + let start = Math.max(this.line - 3, 0) + let end = Math.min(this.line + 2, lines.length) + + let maxWidth = String(end).length + + let mark, aside + if (color) { + let { bold, red, gray } = pico.createColors(true) + mark = text => bold(red(text)) + aside = text => gray(text) + } else { + mark = aside = str => str + } + + return lines + .slice(start, end) + .map((line, index) => { + let number = start + 1 + index + let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | ' + if (number === this.line) { + let spacing = + aside(gutter.replace(/\d/g, ' ')) + + line.slice(0, this.column - 1).replace(/[^\t]/g, ' ') + return mark('>') + aside(gutter) + line + '\n ' + spacing + mark('^') + } + return ' ' + aside(gutter) + line + }) + .join('\n') + } + + toString() { + let code = this.showSourceCode() + if (code) { + code = '\n\n' + code + '\n' + } + return this.name + ': ' + this.message + code + } +} + +module.exports = CssSyntaxError +CssSyntaxError.default = CssSyntaxError diff --git a/node_modules/postcss/lib/declaration.d.ts b/node_modules/postcss/lib/declaration.d.ts new file mode 100644 index 00000000..4e92c901 --- /dev/null +++ b/node_modules/postcss/lib/declaration.d.ts @@ -0,0 +1,124 @@ +import Container from './container.js' +import Node from './node.js' + +interface DeclarationRaws extends Record { + /** + * The space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + */ + before?: string + + /** + * The symbols between the property and value for declarations. + */ + between?: string + + /** + * The content of the important statement, if it is not just `!important`. + */ + important?: string + + /** + * Declaration value with comments. + */ + value: { + value: string + raw: string + } +} + +export interface DeclarationProps { + /** Name of the declaration. */ + prop: string + /** Value of the declaration. */ + value: string + /** Whether the declaration has an `!important` annotation. */ + important?: boolean + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ + raws?: DeclarationRaws +} + +/** + * Represents a CSS declaration. + * + * ```js + * Once (root, { Declaration }) { + * let color = new Declaration({ prop: 'color', value: 'black' }) + * root.append(color) + * } + * ``` + * + * ```js + * const root = postcss.parse('a { color: black }') + * const decl = root.first.first + * decl.type //=> 'decl' + * decl.toString() //=> ' color: black' + * ``` + */ +export default class Declaration extends Node { + type: 'decl' + parent: Container | undefined + raws: DeclarationRaws + + /** + * The declaration's property name. + * + * ```js + * const root = postcss.parse('a { color: black }') + * const decl = root.first.first + * decl.prop //=> 'color' + * ``` + */ + prop: string + + /** + * The declaration’s value. + * + * This value will be cleaned of comments. If the source value contained + * comments, those comments will be available in the `raws` property. + * If you have not changed the value, the result of `decl.toString()` + * will include the original raws value (comments and all). + * + * ```js + * const root = postcss.parse('a { color: black }') + * const decl = root.first.first + * decl.value //=> 'black' + * ``` + */ + value: string + + /** + * `true` if the declaration has an `!important` annotation. + * + * ```js + * const root = postcss.parse('a { color: black !important; color: red }') + * root.first.first.important //=> true + * root.first.last.important //=> undefined + * ``` + */ + important: boolean + + /** + * `true` if declaration is declaration of CSS Custom Property + * or Sass variable. + * + * ```js + * const root = postcss.parse(':root { --one: 1 }') + * let one = root.first.first + * one.variable //=> true + * ``` + * + * ```js + * const root = postcss.parse('$one: 1') + * let one = root.first + * one.variable //=> true + * ``` + */ + variable: boolean + + constructor(defaults?: DeclarationProps) + assign(overrides: object | DeclarationProps): this + clone(overrides?: Partial): this + cloneBefore(overrides?: Partial): this + cloneAfter(overrides?: Partial): this +} diff --git a/node_modules/postcss/lib/declaration.js b/node_modules/postcss/lib/declaration.js new file mode 100644 index 00000000..a04bdec3 --- /dev/null +++ b/node_modules/postcss/lib/declaration.js @@ -0,0 +1,24 @@ +'use strict' + +let Node = require('./node') + +class Declaration extends Node { + constructor(defaults) { + if ( + defaults && + typeof defaults.value !== 'undefined' && + typeof defaults.value !== 'string' + ) { + defaults = { ...defaults, value: String(defaults.value) } + } + super(defaults) + this.type = 'decl' + } + + get variable() { + return this.prop.startsWith('--') || this.prop[0] === '$' + } +} + +module.exports = Declaration +Declaration.default = Declaration diff --git a/node_modules/postcss/lib/document.d.ts b/node_modules/postcss/lib/document.d.ts new file mode 100644 index 00000000..28a599ca --- /dev/null +++ b/node_modules/postcss/lib/document.d.ts @@ -0,0 +1,57 @@ +import Container, { ContainerProps } from './container.js' +import { ProcessOptions } from './postcss.js' +import Result from './result.js' +import Root, { RootProps } from './root.js' + +export interface DocumentProps extends ContainerProps { + nodes?: Root[] + + /** + * Information to generate byte-to-byte equal node string as it was + * in the origin input. + * + * Every parser saves its own properties. + */ + raws?: Record +} + +type ChildNode = Root +type ChildProps = RootProps + +/** + * Represents a file and contains all its parsed nodes. + * + * **Experimental:** some aspects of this node could change within minor + * or patch version releases. + * + * ```js + * const document = htmlParser( + * '' + * ) + * document.type //=> 'document' + * document.nodes.length //=> 2 + * ``` + */ +export default class Document extends Container { + type: 'document' + parent: undefined + + constructor(defaults?: DocumentProps) + + /** + * Returns a `Result` instance representing the document’s CSS roots. + * + * ```js + * const root1 = postcss.parse(css1, { from: 'a.css' }) + * const root2 = postcss.parse(css2, { from: 'b.css' }) + * const document = postcss.document() + * document.append(root1) + * document.append(root2) + * const result = document.toResult({ to: 'all.css', map: true }) + * ``` + * + * @param opts Options. + * @return Result with current document’s CSS. + */ + toResult(options?: ProcessOptions): Result +} diff --git a/node_modules/postcss/lib/document.js b/node_modules/postcss/lib/document.js new file mode 100644 index 00000000..44689917 --- /dev/null +++ b/node_modules/postcss/lib/document.js @@ -0,0 +1,33 @@ +'use strict' + +let Container = require('./container') + +let LazyResult, Processor + +class Document extends Container { + constructor(defaults) { + // type needs to be passed to super, otherwise child roots won't be normalized correctly + super({ type: 'document', ...defaults }) + + if (!this.nodes) { + this.nodes = [] + } + } + + toResult(opts = {}) { + let lazy = new LazyResult(new Processor(), this, opts) + + return lazy.stringify() + } +} + +Document.registerLazyResult = dependant => { + LazyResult = dependant +} + +Document.registerProcessor = dependant => { + Processor = dependant +} + +module.exports = Document +Document.default = Document diff --git a/node_modules/postcss/lib/fromJSON.d.ts b/node_modules/postcss/lib/fromJSON.d.ts new file mode 100644 index 00000000..13b169c6 --- /dev/null +++ b/node_modules/postcss/lib/fromJSON.d.ts @@ -0,0 +1,5 @@ +import { JSONHydrator } from './postcss.js' + +declare const fromJSON: JSONHydrator + +export default fromJSON diff --git a/node_modules/postcss/lib/fromJSON.js b/node_modules/postcss/lib/fromJSON.js new file mode 100644 index 00000000..09f2b89a --- /dev/null +++ b/node_modules/postcss/lib/fromJSON.js @@ -0,0 +1,54 @@ +'use strict' + +let Declaration = require('./declaration') +let PreviousMap = require('./previous-map') +let Comment = require('./comment') +let AtRule = require('./at-rule') +let Input = require('./input') +let Root = require('./root') +let Rule = require('./rule') + +function fromJSON(json, inputs) { + if (Array.isArray(json)) return json.map(n => fromJSON(n)) + + let { inputs: ownInputs, ...defaults } = json + if (ownInputs) { + inputs = [] + for (let input of ownInputs) { + let inputHydrated = { ...input, __proto__: Input.prototype } + if (inputHydrated.map) { + inputHydrated.map = { + ...inputHydrated.map, + __proto__: PreviousMap.prototype + } + } + inputs.push(inputHydrated) + } + } + if (defaults.nodes) { + defaults.nodes = json.nodes.map(n => fromJSON(n, inputs)) + } + if (defaults.source) { + let { inputId, ...source } = defaults.source + defaults.source = source + if (inputId != null) { + defaults.source.input = inputs[inputId] + } + } + if (defaults.type === 'root') { + return new Root(defaults) + } else if (defaults.type === 'decl') { + return new Declaration(defaults) + } else if (defaults.type === 'rule') { + return new Rule(defaults) + } else if (defaults.type === 'comment') { + return new Comment(defaults) + } else if (defaults.type === 'atrule') { + return new AtRule(defaults) + } else { + throw new Error('Unknown node type: ' + json.type) + } +} + +module.exports = fromJSON +fromJSON.default = fromJSON diff --git a/node_modules/postcss/lib/input.d.ts b/node_modules/postcss/lib/input.d.ts new file mode 100644 index 00000000..357910bd --- /dev/null +++ b/node_modules/postcss/lib/input.d.ts @@ -0,0 +1,150 @@ +import { ProcessOptions } from './postcss.js' +import PreviousMap from './previous-map.js' + +export interface FilePosition { + /** + * URL for the source file. + */ + url: string + + /** + * Absolute path to the source file. + */ + file?: string + + /** + * Line of inclusive start position in source file. + */ + line: number + + /** + * Column of inclusive start position in source file. + */ + column: number + + /** + * Line of exclusive end position in source file. + */ + endLine?: number + + /** + * Column of exclusive end position in source file. + */ + endColumn?: number + + /** + * Source code. + */ + source?: string +} + +/** + * Represents the source CSS. + * + * ```js + * const root = postcss.parse(css, { from: file }) + * const input = root.source.input + * ``` + */ +export default class Input { + /** + * Input CSS source. + * + * ```js + * const input = postcss.parse('a{}', { from: file }).input + * input.css //=> "a{}" + * ``` + */ + css: string + + /** + * The input source map passed from a compilation step before PostCSS + * (for example, from Sass compiler). + * + * ```js + * root.source.input.map.consumer().sources //=> ['a.sass'] + * ``` + */ + map: PreviousMap + + /** + * The absolute path to the CSS source file defined + * with the `from` option. + * + * ```js + * const root = postcss.parse(css, { from: 'a.css' }) + * root.source.input.file //=> '/home/ai/a.css' + * ``` + */ + file?: string + + /** + * The unique ID of the CSS source. It will be created if `from` option + * is not provided (because PostCSS does not know the file path). + * + * ```js + * const root = postcss.parse(css) + * root.source.input.file //=> undefined + * root.source.input.id //=> "" + * ``` + */ + id?: string + + /** + * The flag to indicate whether or not the source code has Unicode BOM. + */ + hasBOM: boolean + + /** + * @param css Input CSS source. + * @param opts Process options. + */ + constructor(css: string, opts?: ProcessOptions) + + /** + * The CSS source identifier. Contains `Input#file` if the user + * set the `from` option, or `Input#id` if they did not. + * + * ```js + * const root = postcss.parse(css, { from: 'a.css' }) + * root.source.input.from //=> "/home/ai/a.css" + * + * const root = postcss.parse(css) + * root.source.input.from //=> "" + * ``` + */ + get from(): string + + /** + * Reads the input source map and returns a symbol position + * in the input source (e.g., in a Sass file that was compiled + * to CSS before being passed to PostCSS). Optionally takes an + * end position, exclusive. + * + * ```js + * root.source.input.origin(1, 1) //=> { file: 'a.css', line: 3, column: 1 } + * root.source.input.origin(1, 1, 1, 4) + * //=> { file: 'a.css', line: 3, column: 1, endLine: 3, endColumn: 4 } + * ``` + * + * @param line Line for inclusive start position in input CSS. + * @param column Column for inclusive start position in input CSS. + * @param endLine Line for exclusive end position in input CSS. + * @param endColumn Column for exclusive end position in input CSS. + * + * @return Position in input source. + */ + origin( + line: number, + column: number, + endLine?: number, + endColumn?: number + ): FilePosition | false + + /** + * Converts source offset to line and column. + * + * @param offset Source offset. + */ + fromOffset(offset: number): { line: number; col: number } | null +} diff --git a/node_modules/postcss/lib/input.js b/node_modules/postcss/lib/input.js new file mode 100644 index 00000000..0415b593 --- /dev/null +++ b/node_modules/postcss/lib/input.js @@ -0,0 +1,248 @@ +'use strict' + +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') +let { fileURLToPath, pathToFileURL } = require('url') +let { resolve, isAbsolute } = require('path') +let { nanoid } = require('nanoid/non-secure') + +let terminalHighlight = require('./terminal-highlight') +let CssSyntaxError = require('./css-syntax-error') +let PreviousMap = require('./previous-map') + +let fromOffsetCache = Symbol('fromOffsetCache') + +let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) +let pathAvailable = Boolean(resolve && isAbsolute) + +class Input { + constructor(css, opts = {}) { + if ( + css === null || + typeof css === 'undefined' || + (typeof css === 'object' && !css.toString) + ) { + throw new Error(`PostCSS received ${css} instead of CSS string`) + } + + this.css = css.toString() + + if (this.css[0] === '\uFEFF' || this.css[0] === '\uFFFE') { + this.hasBOM = true + this.css = this.css.slice(1) + } else { + this.hasBOM = false + } + + if (opts.from) { + if ( + !pathAvailable || + /^\w+:\/\//.test(opts.from) || + isAbsolute(opts.from) + ) { + this.file = opts.from + } else { + this.file = resolve(opts.from) + } + } + + if (pathAvailable && sourceMapAvailable) { + let map = new PreviousMap(this.css, opts) + if (map.text) { + this.map = map + let file = map.consumer().file + if (!this.file && file) this.file = this.mapResolve(file) + } + } + + if (!this.file) { + this.id = '' + } + if (this.map) this.map.file = this.from + } + + fromOffset(offset) { + let lastLine, lineToIndex + if (!this[fromOffsetCache]) { + let lines = this.css.split('\n') + lineToIndex = new Array(lines.length) + let prevIndex = 0 + + for (let i = 0, l = lines.length; i < l; i++) { + lineToIndex[i] = prevIndex + prevIndex += lines[i].length + 1 + } + + this[fromOffsetCache] = lineToIndex + } else { + lineToIndex = this[fromOffsetCache] + } + lastLine = lineToIndex[lineToIndex.length - 1] + + let min = 0 + if (offset >= lastLine) { + min = lineToIndex.length - 1 + } else { + let max = lineToIndex.length - 2 + let mid + while (min < max) { + mid = min + ((max - min) >> 1) + if (offset < lineToIndex[mid]) { + max = mid - 1 + } else if (offset >= lineToIndex[mid + 1]) { + min = mid + 1 + } else { + min = mid + break + } + } + } + return { + line: min + 1, + col: offset - lineToIndex[min] + 1 + } + } + + error(message, line, column, opts = {}) { + let result, endLine, endColumn + + if (line && typeof line === 'object') { + let start = line + let end = column + if (typeof line.offset === 'number') { + let pos = this.fromOffset(start.offset) + line = pos.line + column = pos.col + } else { + line = start.line + column = start.column + } + if (typeof end.offset === 'number') { + let pos = this.fromOffset(end.offset) + endLine = pos.line + endColumn = pos.col + } else { + endLine = end.line + endColumn = end.column + } + } else if (!column) { + let pos = this.fromOffset(line) + line = pos.line + column = pos.col + } + + let origin = this.origin(line, column, endLine, endColumn) + if (origin) { + result = new CssSyntaxError( + message, + origin.endLine === undefined + ? origin.line + : { line: origin.line, column: origin.column }, + origin.endLine === undefined + ? origin.column + : { line: origin.endLine, column: origin.endColumn }, + origin.source, + origin.file, + opts.plugin + ) + } else { + result = new CssSyntaxError( + message, + endLine === undefined ? line : { line, column }, + endLine === undefined ? column : { line: endLine, column: endColumn }, + this.css, + this.file, + opts.plugin + ) + } + + result.input = { line, column, endLine, endColumn, source: this.css } + if (this.file) { + if (pathToFileURL) { + result.input.url = pathToFileURL(this.file).toString() + } + result.input.file = this.file + } + + return result + } + + origin(line, column, endLine, endColumn) { + if (!this.map) return false + let consumer = this.map.consumer() + + let from = consumer.originalPositionFor({ line, column }) + if (!from.source) return false + + let to + if (typeof endLine === 'number') { + to = consumer.originalPositionFor({ line: endLine, column: endColumn }) + } + + let fromUrl + + if (isAbsolute(from.source)) { + fromUrl = pathToFileURL(from.source) + } else { + fromUrl = new URL( + from.source, + this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile) + ) + } + + let result = { + url: fromUrl.toString(), + line: from.line, + column: from.column, + endLine: to && to.line, + endColumn: to && to.column + } + + if (fromUrl.protocol === 'file:') { + if (fileURLToPath) { + result.file = fileURLToPath(fromUrl) + } else { + /* c8 ignore next 2 */ + throw new Error(`file: protocol is not available in this PostCSS build`) + } + } + + let source = consumer.sourceContentFor(from.source) + if (source) result.source = source + + return result + } + + mapResolve(file) { + if (/^\w+:\/\//.test(file)) { + return file + } + return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file) + } + + get from() { + return this.file || this.id + } + + toJSON() { + let json = {} + for (let name of ['hasBOM', 'css', 'file', 'id']) { + if (this[name] != null) { + json[name] = this[name] + } + } + if (this.map) { + json.map = { ...this.map } + if (json.map.consumerCache) { + json.map.consumerCache = undefined + } + } + return json + } +} + +module.exports = Input +Input.default = Input + +if (terminalHighlight && terminalHighlight.registerInput) { + terminalHighlight.registerInput(Input) +} diff --git a/node_modules/postcss/lib/lazy-result.d.ts b/node_modules/postcss/lib/lazy-result.d.ts new file mode 100644 index 00000000..a5142345 --- /dev/null +++ b/node_modules/postcss/lib/lazy-result.d.ts @@ -0,0 +1,176 @@ +import Result, { Message, ResultOptions } from './result.js' +import { SourceMap } from './postcss.js' +import Processor from './processor.js' +import Warning from './warning.js' +import Root from './root.js' + +/** + * A Promise proxy for the result of PostCSS transformations. + * + * A `LazyResult` instance is returned by `Processor#process`. + * + * ```js + * const lazy = postcss([autoprefixer]).process(css) + * ``` + */ +export default class LazyResult implements PromiseLike { + /** + * Processes input CSS through synchronous and asynchronous plugins + * and calls `onFulfilled` with a Result instance. If a plugin throws + * an error, the `onRejected` callback will be executed. + * + * It implements standard Promise API. + * + * ```js + * postcss([autoprefixer]).process(css, { from: cssPath }).then(result => { + * console.log(result.css) + * }) + * ``` + */ + then: Promise['then'] + + /** + * Processes input CSS through synchronous and asynchronous plugins + * and calls onRejected for each error thrown in any plugin. + * + * It implements standard Promise API. + * + * ```js + * postcss([autoprefixer]).process(css).then(result => { + * console.log(result.css) + * }).catch(error => { + * console.error(error) + * }) + * ``` + */ + catch: Promise['catch'] + + /** + * Processes input CSS through synchronous and asynchronous plugins + * and calls onFinally on any error or when all plugins will finish work. + * + * It implements standard Promise API. + * + * ```js + * postcss([autoprefixer]).process(css).finally(() => { + * console.log('processing ended') + * }) + * ``` + */ + finally: Promise['finally'] + + /** + * @param processor Processor used for this transformation. + * @param css CSS to parse and transform. + * @param opts Options from the `Processor#process` or `Root#toResult`. + */ + constructor(processor: Processor, css: string, opts: ResultOptions) + + /** + * Returns the default string description of an object. + * Required to implement the Promise interface. + */ + get [Symbol.toStringTag](): string + + /** + * Returns a `Processor` instance, which will be used + * for CSS transformations. + */ + get processor(): Processor + + /** + * Options from the `Processor#process` call. + */ + get opts(): ResultOptions + + /** + * Processes input CSS through synchronous plugins, converts `Root` + * to a CSS string and returns `Result#css`. + * + * This property will only work with synchronous plugins. + * If the processor contains any asynchronous plugins + * it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. + */ + get css(): string + + /** + * An alias for the `css` property. Use it with syntaxes + * that generate non-CSS output. + * + * This property will only work with synchronous plugins. + * If the processor contains any asynchronous plugins + * it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. + */ + get content(): string + + /** + * Processes input CSS through synchronous plugins + * and returns `Result#map`. + * + * This property will only work with synchronous plugins. + * If the processor contains any asynchronous plugins + * it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. + */ + get map(): SourceMap + + /** + * Processes input CSS through synchronous plugins + * and returns `Result#root`. + * + * This property will only work with synchronous plugins. If the processor + * contains any asynchronous plugins it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. + */ + get root(): Root + + /** + * Processes input CSS through synchronous plugins + * and returns `Result#messages`. + * + * This property will only work with synchronous plugins. If the processor + * contains any asynchronous plugins it will throw an error. + * + * PostCSS runners should always use `LazyResult#then`. + */ + get messages(): Message[] + + /** + * Processes input CSS through synchronous plugins + * and calls `Result#warnings`. + * + * @return Warnings from plugins. + */ + warnings(): Warning[] + + /** + * Alias for the `LazyResult#css` property. + * + * ```js + * lazy + '' === lazy.css + * ``` + * + * @return Output CSS. + */ + toString(): string + + /** + * Run plugin in sync way and return `Result`. + * + * @return Result with output content. + */ + sync(): Result + + /** + * Run plugin in async way and return `Result`. + * + * @return Result with output content. + */ + async(): Promise +} diff --git a/node_modules/postcss/lib/lazy-result.js b/node_modules/postcss/lib/lazy-result.js new file mode 100644 index 00000000..584a95dc --- /dev/null +++ b/node_modules/postcss/lib/lazy-result.js @@ -0,0 +1,550 @@ +'use strict' + +let { isClean, my } = require('./symbols') +let MapGenerator = require('./map-generator') +let stringify = require('./stringify') +let Container = require('./container') +let Document = require('./document') +let warnOnce = require('./warn-once') +let Result = require('./result') +let parse = require('./parse') +let Root = require('./root') + +const TYPE_TO_CLASS_NAME = { + document: 'Document', + root: 'Root', + atrule: 'AtRule', + rule: 'Rule', + decl: 'Declaration', + comment: 'Comment' +} + +const PLUGIN_PROPS = { + postcssPlugin: true, + prepare: true, + Once: true, + Document: true, + Root: true, + Declaration: true, + Rule: true, + AtRule: true, + Comment: true, + DeclarationExit: true, + RuleExit: true, + AtRuleExit: true, + CommentExit: true, + RootExit: true, + DocumentExit: true, + OnceExit: true +} + +const NOT_VISITORS = { + postcssPlugin: true, + prepare: true, + Once: true +} + +const CHILDREN = 0 + +function isPromise(obj) { + return typeof obj === 'object' && typeof obj.then === 'function' +} + +function getEvents(node) { + let key = false + let type = TYPE_TO_CLASS_NAME[node.type] + if (node.type === 'decl') { + key = node.prop.toLowerCase() + } else if (node.type === 'atrule') { + key = node.name.toLowerCase() + } + + if (key && node.append) { + return [ + type, + type + '-' + key, + CHILDREN, + type + 'Exit', + type + 'Exit-' + key + ] + } else if (key) { + return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key] + } else if (node.append) { + return [type, CHILDREN, type + 'Exit'] + } else { + return [type, type + 'Exit'] + } +} + +function toStack(node) { + let events + if (node.type === 'document') { + events = ['Document', CHILDREN, 'DocumentExit'] + } else if (node.type === 'root') { + events = ['Root', CHILDREN, 'RootExit'] + } else { + events = getEvents(node) + } + + return { + node, + events, + eventIndex: 0, + visitors: [], + visitorIndex: 0, + iterator: 0 + } +} + +function cleanMarks(node) { + node[isClean] = false + if (node.nodes) node.nodes.forEach(i => cleanMarks(i)) + return node +} + +let postcss = {} + +class LazyResult { + constructor(processor, css, opts) { + this.stringified = false + this.processed = false + + let root + if ( + typeof css === 'object' && + css !== null && + (css.type === 'root' || css.type === 'document') + ) { + root = cleanMarks(css) + } else if (css instanceof LazyResult || css instanceof Result) { + root = cleanMarks(css.root) + if (css.map) { + if (typeof opts.map === 'undefined') opts.map = {} + if (!opts.map.inline) opts.map.inline = false + opts.map.prev = css.map + } + } else { + let parser = parse + if (opts.syntax) parser = opts.syntax.parse + if (opts.parser) parser = opts.parser + if (parser.parse) parser = parser.parse + + try { + root = parser(css, opts) + } catch (error) { + this.processed = true + this.error = error + } + + if (root && !root[my]) { + /* c8 ignore next 2 */ + Container.rebuild(root) + } + } + + this.result = new Result(processor, root, opts) + this.helpers = { ...postcss, result: this.result, postcss } + this.plugins = this.processor.plugins.map(plugin => { + if (typeof plugin === 'object' && plugin.prepare) { + return { ...plugin, ...plugin.prepare(this.result) } + } else { + return plugin + } + }) + } + + get [Symbol.toStringTag]() { + return 'LazyResult' + } + + get processor() { + return this.result.processor + } + + get opts() { + return this.result.opts + } + + get css() { + return this.stringify().css + } + + get content() { + return this.stringify().content + } + + get map() { + return this.stringify().map + } + + get root() { + return this.sync().root + } + + get messages() { + return this.sync().messages + } + + warnings() { + return this.sync().warnings() + } + + toString() { + return this.css + } + + then(onFulfilled, onRejected) { + if (process.env.NODE_ENV !== 'production') { + if (!('from' in this.opts)) { + warnOnce( + 'Without `from` option PostCSS could generate wrong source map ' + + 'and will not find Browserslist config. Set it to CSS file path ' + + 'or to `undefined` to prevent this warning.' + ) + } + } + return this.async().then(onFulfilled, onRejected) + } + + catch(onRejected) { + return this.async().catch(onRejected) + } + + finally(onFinally) { + return this.async().then(onFinally, onFinally) + } + + async() { + if (this.error) return Promise.reject(this.error) + if (this.processed) return Promise.resolve(this.result) + if (!this.processing) { + this.processing = this.runAsync() + } + return this.processing + } + + sync() { + if (this.error) throw this.error + if (this.processed) return this.result + this.processed = true + + if (this.processing) { + throw this.getAsyncError() + } + + for (let plugin of this.plugins) { + let promise = this.runOnRoot(plugin) + if (isPromise(promise)) { + throw this.getAsyncError() + } + } + + this.prepareVisitors() + if (this.hasListener) { + let root = this.result.root + while (!root[isClean]) { + root[isClean] = true + this.walkSync(root) + } + if (this.listeners.OnceExit) { + if (root.type === 'document') { + for (let subRoot of root.nodes) { + this.visitSync(this.listeners.OnceExit, subRoot) + } + } else { + this.visitSync(this.listeners.OnceExit, root) + } + } + } + + return this.result + } + + stringify() { + if (this.error) throw this.error + if (this.stringified) return this.result + this.stringified = true + + this.sync() + + let opts = this.result.opts + let str = stringify + if (opts.syntax) str = opts.syntax.stringify + if (opts.stringifier) str = opts.stringifier + if (str.stringify) str = str.stringify + + let map = new MapGenerator(str, this.result.root, this.result.opts) + let data = map.generate() + this.result.css = data[0] + this.result.map = data[1] + + return this.result + } + + walkSync(node) { + node[isClean] = true + let events = getEvents(node) + for (let event of events) { + if (event === CHILDREN) { + if (node.nodes) { + node.each(child => { + if (!child[isClean]) this.walkSync(child) + }) + } + } else { + let visitors = this.listeners[event] + if (visitors) { + if (this.visitSync(visitors, node.toProxy())) return + } + } + } + } + + visitSync(visitors, node) { + for (let [plugin, visitor] of visitors) { + this.result.lastPlugin = plugin + let promise + try { + promise = visitor(node, this.helpers) + } catch (e) { + throw this.handleError(e, node.proxyOf) + } + if (node.type !== 'root' && node.type !== 'document' && !node.parent) { + return true + } + if (isPromise(promise)) { + throw this.getAsyncError() + } + } + } + + runOnRoot(plugin) { + this.result.lastPlugin = plugin + try { + if (typeof plugin === 'object' && plugin.Once) { + if (this.result.root.type === 'document') { + let roots = this.result.root.nodes.map(root => + plugin.Once(root, this.helpers) + ) + + if (isPromise(roots[0])) { + return Promise.all(roots) + } + + return roots + } + + return plugin.Once(this.result.root, this.helpers) + } else if (typeof plugin === 'function') { + return plugin(this.result.root, this.result) + } + } catch (error) { + throw this.handleError(error) + } + } + + getAsyncError() { + throw new Error('Use process(css).then(cb) to work with async plugins') + } + + handleError(error, node) { + let plugin = this.result.lastPlugin + try { + if (node) node.addToError(error) + this.error = error + if (error.name === 'CssSyntaxError' && !error.plugin) { + error.plugin = plugin.postcssPlugin + error.setMessage() + } else if (plugin.postcssVersion) { + if (process.env.NODE_ENV !== 'production') { + let pluginName = plugin.postcssPlugin + let pluginVer = plugin.postcssVersion + let runtimeVer = this.result.processor.version + let a = pluginVer.split('.') + let b = runtimeVer.split('.') + + if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) { + // eslint-disable-next-line no-console + console.error( + 'Unknown error from PostCSS plugin. Your current PostCSS ' + + 'version is ' + + runtimeVer + + ', but ' + + pluginName + + ' uses ' + + pluginVer + + '. Perhaps this is the source of the error below.' + ) + } + } + } + } catch (err) { + /* c8 ignore next 3 */ + // eslint-disable-next-line no-console + if (console && console.error) console.error(err) + } + return error + } + + async runAsync() { + this.plugin = 0 + for (let i = 0; i < this.plugins.length; i++) { + let plugin = this.plugins[i] + let promise = this.runOnRoot(plugin) + if (isPromise(promise)) { + try { + await promise + } catch (error) { + throw this.handleError(error) + } + } + } + + this.prepareVisitors() + if (this.hasListener) { + let root = this.result.root + while (!root[isClean]) { + root[isClean] = true + let stack = [toStack(root)] + while (stack.length > 0) { + let promise = this.visitTick(stack) + if (isPromise(promise)) { + try { + await promise + } catch (e) { + let node = stack[stack.length - 1].node + throw this.handleError(e, node) + } + } + } + } + + if (this.listeners.OnceExit) { + for (let [plugin, visitor] of this.listeners.OnceExit) { + this.result.lastPlugin = plugin + try { + if (root.type === 'document') { + let roots = root.nodes.map(subRoot => + visitor(subRoot, this.helpers) + ) + + await Promise.all(roots) + } else { + await visitor(root, this.helpers) + } + } catch (e) { + throw this.handleError(e) + } + } + } + } + + this.processed = true + return this.stringify() + } + + prepareVisitors() { + this.listeners = {} + let add = (plugin, type, cb) => { + if (!this.listeners[type]) this.listeners[type] = [] + this.listeners[type].push([plugin, cb]) + } + for (let plugin of this.plugins) { + if (typeof plugin === 'object') { + for (let event in plugin) { + if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) { + throw new Error( + `Unknown event ${event} in ${plugin.postcssPlugin}. ` + + `Try to update PostCSS (${this.processor.version} now).` + ) + } + if (!NOT_VISITORS[event]) { + if (typeof plugin[event] === 'object') { + for (let filter in plugin[event]) { + if (filter === '*') { + add(plugin, event, plugin[event][filter]) + } else { + add( + plugin, + event + '-' + filter.toLowerCase(), + plugin[event][filter] + ) + } + } + } else if (typeof plugin[event] === 'function') { + add(plugin, event, plugin[event]) + } + } + } + } + } + this.hasListener = Object.keys(this.listeners).length > 0 + } + + visitTick(stack) { + let visit = stack[stack.length - 1] + let { node, visitors } = visit + + if (node.type !== 'root' && node.type !== 'document' && !node.parent) { + stack.pop() + return + } + + if (visitors.length > 0 && visit.visitorIndex < visitors.length) { + let [plugin, visitor] = visitors[visit.visitorIndex] + visit.visitorIndex += 1 + if (visit.visitorIndex === visitors.length) { + visit.visitors = [] + visit.visitorIndex = 0 + } + this.result.lastPlugin = plugin + try { + return visitor(node.toProxy(), this.helpers) + } catch (e) { + throw this.handleError(e, node) + } + } + + if (visit.iterator !== 0) { + let iterator = visit.iterator + let child + while ((child = node.nodes[node.indexes[iterator]])) { + node.indexes[iterator] += 1 + if (!child[isClean]) { + child[isClean] = true + stack.push(toStack(child)) + return + } + } + visit.iterator = 0 + delete node.indexes[iterator] + } + + let events = visit.events + while (visit.eventIndex < events.length) { + let event = events[visit.eventIndex] + visit.eventIndex += 1 + if (event === CHILDREN) { + if (node.nodes && node.nodes.length) { + node[isClean] = true + visit.iterator = node.getIterator() + } + return + } else if (this.listeners[event]) { + visit.visitors = this.listeners[event] + return + } + } + stack.pop() + } +} + +LazyResult.registerPostcss = dependant => { + postcss = dependant +} + +module.exports = LazyResult +LazyResult.default = LazyResult + +Root.registerLazyResult(LazyResult) +Document.registerLazyResult(LazyResult) diff --git a/node_modules/postcss/lib/list.d.ts b/node_modules/postcss/lib/list.d.ts new file mode 100644 index 00000000..79841ede --- /dev/null +++ b/node_modules/postcss/lib/list.d.ts @@ -0,0 +1,51 @@ +export type List = { + /** + * Safely splits values. + * + * ```js + * Once (root, { list }) { + * list.split('1px calc(10% + 1px)', [' ', '\n', '\t']) //=> ['1px', 'calc(10% + 1px)'] + * } + * ``` + * + * @param string separated values. + * @param separators array of separators. + * @param last boolean indicator. + * @return Split values. + */ + split(string: string, separators: string[], last: boolean): string[] + /** + * Safely splits space-separated values (such as those for `background`, + * `border-radius`, and other shorthand properties). + * + * ```js + * Once (root, { list }) { + * list.space('1px calc(10% + 1px)') //=> ['1px', 'calc(10% + 1px)'] + * } + * ``` + * + * @param str Space-separated values. + * @return Split values. + */ + space(str: string): string[] + + /** + * Safely splits comma-separated values (such as those for `transition-*` + * and `background` properties). + * + * ```js + * Once (root, { list }) { + * list.comma('black, linear-gradient(white, black)') + * //=> ['black', 'linear-gradient(white, black)'] + * } + * ``` + * + * @param str Comma-separated values. + * @return Split values. + */ + comma(str: string): string[] +} + +declare const list: List + +export default list diff --git a/node_modules/postcss/lib/list.js b/node_modules/postcss/lib/list.js new file mode 100644 index 00000000..08e94162 --- /dev/null +++ b/node_modules/postcss/lib/list.js @@ -0,0 +1,56 @@ +'use strict' + +let list = { + split(string, separators, last) { + let array = [] + let current = '' + let split = false + + let func = 0 + let quote = false + let escape = false + + for (let letter of string) { + if (escape) { + escape = false + } else if (letter === '\\') { + escape = true + } else if (quote) { + if (letter === quote) { + quote = false + } + } else if (letter === '"' || letter === "'") { + quote = letter + } else if (letter === '(') { + func += 1 + } else if (letter === ')') { + if (func > 0) func -= 1 + } else if (func === 0) { + if (separators.includes(letter)) split = true + } + + if (split) { + if (current !== '') array.push(current.trim()) + current = '' + split = false + } else { + current += letter + } + } + + if (last || current !== '') array.push(current.trim()) + return array + }, + + space(string) { + let spaces = [' ', '\n', '\t'] + return list.split(string, spaces) + }, + + comma(string) { + return list.split(string, [','], true) + } +} + +module.exports = list +list.default = list diff --git a/node_modules/postcss/lib/map-generator.js b/node_modules/postcss/lib/map-generator.js new file mode 100644 index 00000000..49d638aa --- /dev/null +++ b/node_modules/postcss/lib/map-generator.js @@ -0,0 +1,331 @@ +'use strict' + +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') +let { dirname, resolve, relative, sep } = require('path') +let { pathToFileURL } = require('url') + +let Input = require('./input') + +let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) +let pathAvailable = Boolean(dirname && resolve && relative && sep) + +class MapGenerator { + constructor(stringify, root, opts, cssString) { + this.stringify = stringify + this.mapOpts = opts.map || {} + this.root = root + this.opts = opts + this.css = cssString + } + + isMap() { + if (typeof this.opts.map !== 'undefined') { + return !!this.opts.map + } + return this.previous().length > 0 + } + + previous() { + if (!this.previousMaps) { + this.previousMaps = [] + if (this.root) { + this.root.walk(node => { + if (node.source && node.source.input.map) { + let map = node.source.input.map + if (!this.previousMaps.includes(map)) { + this.previousMaps.push(map) + } + } + }) + } else { + let input = new Input(this.css, this.opts) + if (input.map) this.previousMaps.push(input.map) + } + } + + return this.previousMaps + } + + isInline() { + if (typeof this.mapOpts.inline !== 'undefined') { + return this.mapOpts.inline + } + + let annotation = this.mapOpts.annotation + if (typeof annotation !== 'undefined' && annotation !== true) { + return false + } + + if (this.previous().length) { + return this.previous().some(i => i.inline) + } + return true + } + + isSourcesContent() { + if (typeof this.mapOpts.sourcesContent !== 'undefined') { + return this.mapOpts.sourcesContent + } + if (this.previous().length) { + return this.previous().some(i => i.withContent()) + } + return true + } + + clearAnnotation() { + if (this.mapOpts.annotation === false) return + + if (this.root) { + let node + for (let i = this.root.nodes.length - 1; i >= 0; i--) { + node = this.root.nodes[i] + if (node.type !== 'comment') continue + if (node.text.indexOf('# sourceMappingURL=') === 0) { + this.root.removeChild(i) + } + } + } else if (this.css) { + this.css = this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm, '') + } + } + + setSourcesContent() { + let already = {} + if (this.root) { + this.root.walk(node => { + if (node.source) { + let from = node.source.input.from + if (from && !already[from]) { + already[from] = true + this.map.setSourceContent( + this.toUrl(this.path(from)), + node.source.input.css + ) + } + } + }) + } else if (this.css) { + let from = this.opts.from + ? this.toUrl(this.path(this.opts.from)) + : '' + this.map.setSourceContent(from, this.css) + } + } + + applyPrevMaps() { + for (let prev of this.previous()) { + let from = this.toUrl(this.path(prev.file)) + let root = prev.root || dirname(prev.file) + let map + + if (this.mapOpts.sourcesContent === false) { + map = new SourceMapConsumer(prev.text) + if (map.sourcesContent) { + map.sourcesContent = map.sourcesContent.map(() => null) + } + } else { + map = prev.consumer() + } + + this.map.applySourceMap(map, from, this.toUrl(this.path(root))) + } + } + + isAnnotation() { + if (this.isInline()) { + return true + } + if (typeof this.mapOpts.annotation !== 'undefined') { + return this.mapOpts.annotation + } + if (this.previous().length) { + return this.previous().some(i => i.annotation) + } + return true + } + + toBase64(str) { + if (Buffer) { + return Buffer.from(str).toString('base64') + } else { + return window.btoa(unescape(encodeURIComponent(str))) + } + } + + addAnnotation() { + let content + + if (this.isInline()) { + content = + 'data:application/json;base64,' + this.toBase64(this.map.toString()) + } else if (typeof this.mapOpts.annotation === 'string') { + content = this.mapOpts.annotation + } else if (typeof this.mapOpts.annotation === 'function') { + content = this.mapOpts.annotation(this.opts.to, this.root) + } else { + content = this.outputFile() + '.map' + } + let eol = '\n' + if (this.css.includes('\r\n')) eol = '\r\n' + + this.css += eol + '/*# sourceMappingURL=' + content + ' */' + } + + outputFile() { + if (this.opts.to) { + return this.path(this.opts.to) + } else if (this.opts.from) { + return this.path(this.opts.from) + } else { + return 'to.css' + } + } + + generateMap() { + if (this.root) { + this.generateString() + } else if (this.previous().length === 1) { + let prev = this.previous()[0].consumer() + prev.file = this.outputFile() + this.map = SourceMapGenerator.fromSourceMap(prev) + } else { + this.map = new SourceMapGenerator({ file: this.outputFile() }) + this.map.addMapping({ + source: this.opts.from + ? this.toUrl(this.path(this.opts.from)) + : '', + generated: { line: 1, column: 0 }, + original: { line: 1, column: 0 } + }) + } + + if (this.isSourcesContent()) this.setSourcesContent() + if (this.root && this.previous().length > 0) this.applyPrevMaps() + if (this.isAnnotation()) this.addAnnotation() + + if (this.isInline()) { + return [this.css] + } else { + return [this.css, this.map] + } + } + + path(file) { + if (file.indexOf('<') === 0) return file + if (/^\w+:\/\//.test(file)) return file + if (this.mapOpts.absolute) return file + + let from = this.opts.to ? dirname(this.opts.to) : '.' + + if (typeof this.mapOpts.annotation === 'string') { + from = dirname(resolve(from, this.mapOpts.annotation)) + } + + file = relative(from, file) + return file + } + + toUrl(path) { + if (sep === '\\') { + path = path.replace(/\\/g, '/') + } + return encodeURI(path).replace(/[#?]/g, encodeURIComponent) + } + + sourcePath(node) { + if (this.mapOpts.from) { + return this.toUrl(this.mapOpts.from) + } else if (this.mapOpts.absolute) { + if (pathToFileURL) { + return pathToFileURL(node.source.input.from).toString() + } else { + throw new Error( + '`map.absolute` option is not available in this PostCSS build' + ) + } + } else { + return this.toUrl(this.path(node.source.input.from)) + } + } + + generateString() { + this.css = '' + this.map = new SourceMapGenerator({ file: this.outputFile() }) + + let line = 1 + let column = 1 + + let noSource = '' + let mapping = { + source: '', + generated: { line: 0, column: 0 }, + original: { line: 0, column: 0 } + } + + let lines, last + this.stringify(this.root, (str, node, type) => { + this.css += str + + if (node && type !== 'end') { + mapping.generated.line = line + mapping.generated.column = column - 1 + if (node.source && node.source.start) { + mapping.source = this.sourcePath(node) + mapping.original.line = node.source.start.line + mapping.original.column = node.source.start.column - 1 + this.map.addMapping(mapping) + } else { + mapping.source = noSource + mapping.original.line = 1 + mapping.original.column = 0 + this.map.addMapping(mapping) + } + } + + lines = str.match(/\n/g) + if (lines) { + line += lines.length + last = str.lastIndexOf('\n') + column = str.length - last + } else { + column += str.length + } + + if (node && type !== 'start') { + let p = node.parent || { raws: {} } + if (node.type !== 'decl' || node !== p.last || p.raws.semicolon) { + if (node.source && node.source.end) { + mapping.source = this.sourcePath(node) + mapping.original.line = node.source.end.line + mapping.original.column = node.source.end.column - 1 + mapping.generated.line = line + mapping.generated.column = column - 2 + this.map.addMapping(mapping) + } else { + mapping.source = noSource + mapping.original.line = 1 + mapping.original.column = 0 + mapping.generated.line = line + mapping.generated.column = column - 1 + this.map.addMapping(mapping) + } + } + } + }) + } + + generate() { + this.clearAnnotation() + if (pathAvailable && sourceMapAvailable && this.isMap()) { + return this.generateMap() + } else { + let result = '' + this.stringify(this.root, i => { + result += i + }) + return [result] + } + } +} + +module.exports = MapGenerator diff --git a/node_modules/postcss/lib/no-work-result.d.ts b/node_modules/postcss/lib/no-work-result.d.ts new file mode 100644 index 00000000..7ba1462c --- /dev/null +++ b/node_modules/postcss/lib/no-work-result.d.ts @@ -0,0 +1,37 @@ +import Result, { Message, ResultOptions } from './result.js' +import { SourceMap } from './postcss.js' +import Processor from './processor.js' +import Warning from './warning.js' +import Root from './root.js' +import LazyResult from './lazy-result.js' + +/** + * A Promise proxy for the result of PostCSS transformations. + * This lazy result instance doesn't parse css unless `NoWorkResult#root` or `Result#root` + * are accessed. See the example below for details. + * A `NoWork` instance is returned by `Processor#process` ONLY when no plugins defined. + * + * ```js + * const noWorkResult = postcss().process(css) // No plugins are defined. + * // CSS is not parsed + * let root = noWorkResult.root // now css is parsed because we accessed the root + * ``` + */ +export default class NoWorkResult implements LazyResult { + then: Promise['then'] + catch: Promise['catch'] + finally: Promise['finally'] + constructor(processor: Processor, css: string, opts: ResultOptions) + get [Symbol.toStringTag](): string + get processor(): Processor + get opts(): ResultOptions + get css(): string + get content(): string + get map(): SourceMap + get root(): Root + get messages(): Message[] + warnings(): Warning[] + toString(): string + sync(): Result + async(): Promise +} diff --git a/node_modules/postcss/lib/no-work-result.js b/node_modules/postcss/lib/no-work-result.js new file mode 100644 index 00000000..8bab6f5a --- /dev/null +++ b/node_modules/postcss/lib/no-work-result.js @@ -0,0 +1,135 @@ +'use strict' + +let MapGenerator = require('./map-generator') +let stringify = require('./stringify') +let warnOnce = require('./warn-once') +let parse = require('./parse') +const Result = require('./result') + +class NoWorkResult { + constructor(processor, css, opts) { + css = css.toString() + this.stringified = false + + this._processor = processor + this._css = css + this._opts = opts + this._map = undefined + let root + + let str = stringify + this.result = new Result(this._processor, root, this._opts) + this.result.css = css + + let self = this + Object.defineProperty(this.result, 'root', { + get() { + return self.root + } + }) + + let map = new MapGenerator(str, root, this._opts, css) + if (map.isMap()) { + let [generatedCSS, generatedMap] = map.generate() + if (generatedCSS) { + this.result.css = generatedCSS + } + if (generatedMap) { + this.result.map = generatedMap + } + } + } + + get [Symbol.toStringTag]() { + return 'NoWorkResult' + } + + get processor() { + return this.result.processor + } + + get opts() { + return this.result.opts + } + + get css() { + return this.result.css + } + + get content() { + return this.result.css + } + + get map() { + return this.result.map + } + + get root() { + if (this._root) { + return this._root + } + + let root + let parser = parse + + try { + root = parser(this._css, this._opts) + } catch (error) { + this.error = error + } + + if (this.error) { + throw this.error + } else { + this._root = root + return root + } + } + + get messages() { + return [] + } + + warnings() { + return [] + } + + toString() { + return this._css + } + + then(onFulfilled, onRejected) { + if (process.env.NODE_ENV !== 'production') { + if (!('from' in this._opts)) { + warnOnce( + 'Without `from` option PostCSS could generate wrong source map ' + + 'and will not find Browserslist config. Set it to CSS file path ' + + 'or to `undefined` to prevent this warning.' + ) + } + } + + return this.async().then(onFulfilled, onRejected) + } + + catch(onRejected) { + return this.async().catch(onRejected) + } + + finally(onFinally) { + return this.async().then(onFinally, onFinally) + } + + async() { + if (this.error) return Promise.reject(this.error) + return Promise.resolve(this.result) + } + + sync() { + if (this.error) throw this.error + return this.result + } +} + +module.exports = NoWorkResult +NoWorkResult.default = NoWorkResult diff --git a/node_modules/postcss/lib/node.d.ts b/node_modules/postcss/lib/node.d.ts new file mode 100644 index 00000000..ded2dc0c --- /dev/null +++ b/node_modules/postcss/lib/node.d.ts @@ -0,0 +1,478 @@ +import Declaration, { DeclarationProps } from './declaration.js' +import Comment, { CommentProps } from './comment.js' +import { Stringifier, Syntax } from './postcss.js' +import AtRule, { AtRuleProps } from './at-rule.js' +import Rule, { RuleProps } from './rule.js' +import { WarningOptions } from './warning.js' +import CssSyntaxError from './css-syntax-error.js' +import Result from './result.js' +import Input from './input.js' +import Root from './root.js' +import Document from './document.js' +import Container from './container.js' + +export type ChildNode = AtRule | Rule | Declaration | Comment + +export type AnyNode = AtRule | Rule | Declaration | Comment | Root | Document + +export type ChildProps = + | AtRuleProps + | RuleProps + | DeclarationProps + | CommentProps + +export interface Position { + /** + * Source offset in file. It starts from 0. + */ + offset: number + + /** + * Source line in file. In contrast to `offset` it starts from 1. + */ + column: number + + /** + * Source column in file. + */ + line: number +} + +export interface Range { + /** + * Start position, inclusive. + */ + start: Position + + /** + * End position, exclusive. + */ + end: Position +} + +export interface Source { + /** + * The file source of the node. + */ + input: Input + /** + * The inclusive starting position of the node’s source. + */ + start?: Position + /** + * The inclusive ending position of the node's source. + */ + end?: Position +} + +export interface NodeProps { + source?: Source +} + +interface NodeErrorOptions { + /** + * Plugin name that created this error. PostCSS will set it automatically. + */ + plugin?: string + /** + * A word inside a node's string, that should be highlighted as source + * of error. + */ + word?: string + /** + * An index inside a node's string that should be highlighted as source + * of error. + */ + index?: number + /** + * An ending index inside a node's string that should be highlighted as + * source of error. + */ + endIndex?: number +} + +/** + * All node classes inherit the following common methods. + * + * You should not extend this classes to create AST for selector or value + * parser. + */ +export default abstract class Node { + /** + * tring representing the node’s type. Possible values are `root`, `atrule`, + * `rule`, `decl`, or `comment`. + * + * ```js + * new Declaration({ prop: 'color', value: 'black' }).type //=> 'decl' + * ``` + */ + type: string + + /** + * The node’s parent node. + * + * ```js + * root.nodes[0].parent === root + * ``` + */ + parent: Document | Container | undefined + + /** + * The input source of the node. + * + * The property is used in source map generation. + * + * If you create a node manually (e.g., with `postcss.decl()`), + * that node will not have a `source` property and will be absent + * from the source map. For this reason, the plugin developer should + * consider cloning nodes to create new ones (in which case the new node’s + * source will reference the original, cloned node) or setting + * the `source` property manually. + * + * ```js + * decl.source.input.from //=> '/home/ai/a.sass' + * decl.source.start //=> { line: 10, column: 2 } + * decl.source.end //=> { line: 10, column: 12 } + * ``` + * + * ```js + * // Bad + * const prefixed = postcss.decl({ + * prop: '-moz-' + decl.prop, + * value: decl.value + * }) + * + * // Good + * const prefixed = decl.clone({ prop: '-moz-' + decl.prop }) + * ``` + * + * ```js + * if (atrule.name === 'add-link') { + * const rule = postcss.rule({ selector: 'a', source: atrule.source }) + * atrule.parent.insertBefore(atrule, rule) + * } + * ``` + */ + source?: Source + + /** + * Information to generate byte-to-byte equal node string as it was + * in the origin input. + * + * Every parser saves its own properties, + * but the default CSS parser uses: + * + * * `before`: the space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + * * `after`: the space symbols after the last child of the node + * to the end of the node. + * * `between`: the symbols between the property and value + * for declarations, selector and `{` for rules, or last parameter + * and `{` for at-rules. + * * `semicolon`: contains true if the last child has + * an (optional) semicolon. + * * `afterName`: the space between the at-rule name and its parameters. + * * `left`: the space symbols between `/*` and the comment’s text. + * * `right`: the space symbols between the comment’s text + * and */. + * * `important`: the content of the important statement, + * if it is not just `!important`. + * + * PostCSS cleans selectors, declaration values and at-rule parameters + * from comments and extra spaces, but it stores origin content in raws + * properties. As such, if you don’t change a declaration’s value, + * PostCSS will use the raw value with comments. + * + * ```js + * const root = postcss.parse('a {\n color:black\n}') + * root.first.first.raws //=> { before: '\n ', between: ':' } + * ``` + */ + raws: any + + /** + * @param defaults Value for node properties. + */ + constructor(defaults?: object) + + /** + * Returns a `CssSyntaxError` instance containing the original position + * of the node in the source, showing line and column numbers and also + * a small excerpt to facilitate debugging. + * + * If present, an input source map will be used to get the original position + * of the source, even from a previous compilation step + * (e.g., from Sass compilation). + * + * This method produces very useful error messages. + * + * ```js + * if (!variables[name]) { + * throw decl.error(`Unknown variable ${name}`, { word: name }) + * // CssSyntaxError: postcss-vars:a.sass:4:3: Unknown variable $black + * // color: $black + * // a + * // ^ + * // background: white + * } + * ``` + * + * @param message Error description. + * @param opts Options. + * + * @return Error object to throw it. + */ + error(message: string, options?: NodeErrorOptions): CssSyntaxError + + /** + * This method is provided as a convenience wrapper for `Result#warn`. + * + * ```js + * Declaration: { + * bad: (decl, { result }) => { + * decl.warn(result, 'Deprecated property bad') + * } + * } + * ``` + * + * @param result The `Result` instance that will receive the warning. + * @param text Warning message. + * @param opts Warning Options. + * + * @return Created warning object. + */ + warn(result: Result, text: string, opts?: WarningOptions): void + + /** + * Removes the node from its parent and cleans the parent properties + * from the node and its children. + * + * ```js + * if (decl.prop.match(/^-webkit-/)) { + * decl.remove() + * } + * ``` + * + * @return Node to make calls chain. + */ + remove(): this + + /** + * Returns a CSS string representing the node. + * + * ```js + * new Rule({ selector: 'a' }).toString() //=> "a {}" + * ``` + * + * @param stringifier A syntax to use in string generation. + * @return CSS string of this node. + */ + toString(stringifier?: Stringifier | Syntax): string + + /** + * Assigns properties to the current node. + * + * ```js + * decl.assign({ prop: 'word-wrap', value: 'break-word' }) + * ``` + * + * @param overrides New properties to override the node. + * @return Current node to methods chain. + */ + assign(overrides: object): this + + /** + * Returns an exact clone of the node. + * + * The resulting cloned node and its (cloned) children will retain + * code style properties. + * + * ```js + * decl.raws.before //=> "\n " + * const cloned = decl.clone({ prop: '-moz-' + decl.prop }) + * cloned.raws.before //=> "\n " + * cloned.toString() //=> -moz-transform: scale(0) + * ``` + * + * @param overrides New properties to override in the clone. + * @return Clone of the node. + */ + clone(overrides?: object): this + + /** + * Shortcut to clone the node and insert the resulting cloned node + * before the current node. + * + * ```js + * decl.cloneBefore({ prop: '-moz-' + decl.prop }) + * ``` + * + * @param overrides Mew properties to override in the clone. + * + * @return New node + */ + cloneBefore(overrides?: object): this + + /** + * Shortcut to clone the node and insert the resulting cloned node + * after the current node. + * + * @param overrides New properties to override in the clone. + * @return New node. + */ + cloneAfter(overrides?: object): this + + /** + * Inserts node(s) before the current node and removes the current node. + * + * ```js + * AtRule: { + * mixin: atrule => { + * atrule.replaceWith(mixinRules[atrule.params]) + * } + * } + * ``` + * + * @param nodes Mode(s) to replace current one. + * @return Current node to methods chain. + */ + replaceWith( + ...nodes: (ChildNode | ChildProps | ChildNode[] | ChildProps[])[] + ): this + + /** + * Returns the next child of the node’s parent. + * Returns `undefined` if the current node is the last child. + * + * ```js + * if (comment.text === 'delete next') { + * const next = comment.next() + * if (next) { + * next.remove() + * } + * } + * ``` + * + * @return Next node. + */ + next(): ChildNode | undefined + + /** + * Returns the previous child of the node’s parent. + * Returns `undefined` if the current node is the first child. + * + * ```js + * const annotation = decl.prev() + * if (annotation.type === 'comment') { + * readAnnotation(annotation.text) + * } + * ``` + * + * @return Previous node. + */ + prev(): ChildNode | undefined + + /** + * Insert new node before current node to current node’s parent. + * + * Just alias for `node.parent.insertBefore(node, add)`. + * + * ```js + * decl.before('content: ""') + * ``` + * + * @param newNode New node. + * @return This node for methods chain. + */ + before(newNode: Node | ChildProps | string | Node[]): this + + /** + * Insert new node after current node to current node’s parent. + * + * Just alias for `node.parent.insertAfter(node, add)`. + * + * ```js + * decl.after('color: black') + * ``` + * + * @param newNode New node. + * @return This node for methods chain. + */ + after(newNode: Node | ChildProps | string | Node[]): this + + /** + * Finds the Root instance of the node’s tree. + * + * ```js + * root.nodes[0].nodes[0].root() === root + * ``` + * + * @return Root parent. + */ + root(): Root + + /** + * Returns a `Node#raws` value. If the node is missing + * the code style property (because the node was manually built or cloned), + * PostCSS will try to autodetect the code style property by looking + * at other nodes in the tree. + * + * ```js + * const root = postcss.parse('a { background: white }') + * root.nodes[0].append({ prop: 'color', value: 'black' }) + * root.nodes[0].nodes[1].raws.before //=> undefined + * root.nodes[0].nodes[1].raw('before') //=> ' ' + * ``` + * + * @param prop Name of code style property. + * @param defaultType Name of default value, it can be missed + * if the value is the same as prop. + * @return {string} Code style value. + */ + raw(prop: string, defaultType?: string): string + + /** + * Clear the code style properties for the node and its children. + * + * ```js + * node.raws.before //=> ' ' + * node.cleanRaws() + * node.raws.before //=> undefined + * ``` + * + * @param keepBetween Keep the `raws.between` symbols. + */ + cleanRaws(keepBetween?: boolean): void + + /** + * Fix circular links on `JSON.stringify()`. + * + * @return Cleaned object. + */ + toJSON(): object + + /** + * Convert string index to line/column. + * + * @param index The symbol number in the node’s string. + * @return Symbol position in file. + */ + positionInside(index: number): Position + + /** + * Get the position for a word or an index inside the node. + * + * @param opts Options. + * @return Position. + */ + positionBy(opts?: Pick): Position + + /** + * Get the range for a word or start and end index inside the node. + * The start index is inclusive; the end index is exclusive. + * + * @param opts Options. + * @return Range. + */ + rangeBy(opts?: Pick): Range +} diff --git a/node_modules/postcss/lib/node.js b/node_modules/postcss/lib/node.js new file mode 100644 index 00000000..bdcbac0e --- /dev/null +++ b/node_modules/postcss/lib/node.js @@ -0,0 +1,379 @@ +'use strict' + +let { isClean, my } = require('./symbols') +let CssSyntaxError = require('./css-syntax-error') +let Stringifier = require('./stringifier') +let stringify = require('./stringify') + +function cloneNode(obj, parent) { + let cloned = new obj.constructor() + + for (let i in obj) { + if (!Object.prototype.hasOwnProperty.call(obj, i)) { + /* c8 ignore next 2 */ + continue + } + if (i === 'proxyCache') continue + let value = obj[i] + let type = typeof value + + if (i === 'parent' && type === 'object') { + if (parent) cloned[i] = parent + } else if (i === 'source') { + cloned[i] = value + } else if (Array.isArray(value)) { + cloned[i] = value.map(j => cloneNode(j, cloned)) + } else { + if (type === 'object' && value !== null) value = cloneNode(value) + cloned[i] = value + } + } + + return cloned +} + +class Node { + constructor(defaults = {}) { + this.raws = {} + this[isClean] = false + this[my] = true + + for (let name in defaults) { + if (name === 'nodes') { + this.nodes = [] + for (let node of defaults[name]) { + if (typeof node.clone === 'function') { + this.append(node.clone()) + } else { + this.append(node) + } + } + } else { + this[name] = defaults[name] + } + } + } + + error(message, opts = {}) { + if (this.source) { + let { start, end } = this.rangeBy(opts) + return this.source.input.error( + message, + { line: start.line, column: start.column }, + { line: end.line, column: end.column }, + opts + ) + } + return new CssSyntaxError(message) + } + + warn(result, text, opts) { + let data = { node: this } + for (let i in opts) data[i] = opts[i] + return result.warn(text, data) + } + + remove() { + if (this.parent) { + this.parent.removeChild(this) + } + this.parent = undefined + return this + } + + toString(stringifier = stringify) { + if (stringifier.stringify) stringifier = stringifier.stringify + let result = '' + stringifier(this, i => { + result += i + }) + return result + } + + assign(overrides = {}) { + for (let name in overrides) { + this[name] = overrides[name] + } + return this + } + + clone(overrides = {}) { + let cloned = cloneNode(this) + for (let name in overrides) { + cloned[name] = overrides[name] + } + return cloned + } + + cloneBefore(overrides = {}) { + let cloned = this.clone(overrides) + this.parent.insertBefore(this, cloned) + return cloned + } + + cloneAfter(overrides = {}) { + let cloned = this.clone(overrides) + this.parent.insertAfter(this, cloned) + return cloned + } + + replaceWith(...nodes) { + if (this.parent) { + let bookmark = this + let foundSelf = false + for (let node of nodes) { + if (node === this) { + foundSelf = true + } else if (foundSelf) { + this.parent.insertAfter(bookmark, node) + bookmark = node + } else { + this.parent.insertBefore(bookmark, node) + } + } + + if (!foundSelf) { + this.remove() + } + } + + return this + } + + next() { + if (!this.parent) return undefined + let index = this.parent.index(this) + return this.parent.nodes[index + 1] + } + + prev() { + if (!this.parent) return undefined + let index = this.parent.index(this) + return this.parent.nodes[index - 1] + } + + before(add) { + this.parent.insertBefore(this, add) + return this + } + + after(add) { + this.parent.insertAfter(this, add) + return this + } + + root() { + let result = this + while (result.parent && result.parent.type !== 'document') { + result = result.parent + } + return result + } + + raw(prop, defaultType) { + let str = new Stringifier() + return str.raw(this, prop, defaultType) + } + + cleanRaws(keepBetween) { + delete this.raws.before + delete this.raws.after + if (!keepBetween) delete this.raws.between + } + + toJSON(_, inputs) { + let fixed = {} + let emitInputs = inputs == null + inputs = inputs || new Map() + let inputsNextIndex = 0 + + for (let name in this) { + if (!Object.prototype.hasOwnProperty.call(this, name)) { + /* c8 ignore next 2 */ + continue + } + if (name === 'parent' || name === 'proxyCache') continue + let value = this[name] + + if (Array.isArray(value)) { + fixed[name] = value.map(i => { + if (typeof i === 'object' && i.toJSON) { + return i.toJSON(null, inputs) + } else { + return i + } + }) + } else if (typeof value === 'object' && value.toJSON) { + fixed[name] = value.toJSON(null, inputs) + } else if (name === 'source') { + let inputId = inputs.get(value.input) + if (inputId == null) { + inputId = inputsNextIndex + inputs.set(value.input, inputsNextIndex) + inputsNextIndex++ + } + fixed[name] = { + inputId, + start: value.start, + end: value.end + } + } else { + fixed[name] = value + } + } + + if (emitInputs) { + fixed.inputs = [...inputs.keys()].map(input => input.toJSON()) + } + + return fixed + } + + positionInside(index) { + let string = this.toString() + let column = this.source.start.column + let line = this.source.start.line + + for (let i = 0; i < index; i++) { + if (string[i] === '\n') { + column = 1 + line += 1 + } else { + column += 1 + } + } + + return { line, column } + } + + positionBy(opts) { + let pos = this.source.start + if (opts.index) { + pos = this.positionInside(opts.index) + } else if (opts.word) { + let index = this.toString().indexOf(opts.word) + if (index !== -1) pos = this.positionInside(index) + } + return pos + } + + rangeBy(opts) { + let start = { + line: this.source.start.line, + column: this.source.start.column + } + let end = this.source.end + ? { + line: this.source.end.line, + column: this.source.end.column + 1 + } + : { + line: start.line, + column: start.column + 1 + } + + if (opts.word) { + let index = this.toString().indexOf(opts.word) + if (index !== -1) { + start = this.positionInside(index) + end = this.positionInside(index + opts.word.length) + } + } else { + if (opts.start) { + start = { + line: opts.start.line, + column: opts.start.column + } + } else if (opts.index) { + start = this.positionInside(opts.index) + } + + if (opts.end) { + end = { + line: opts.end.line, + column: opts.end.column + } + } else if (opts.endIndex) { + end = this.positionInside(opts.endIndex) + } else if (opts.index) { + end = this.positionInside(opts.index + 1) + } + } + + if ( + end.line < start.line || + (end.line === start.line && end.column <= start.column) + ) { + end = { line: start.line, column: start.column + 1 } + } + + return { start, end } + } + + getProxyProcessor() { + return { + set(node, prop, value) { + if (node[prop] === value) return true + node[prop] = value + if ( + prop === 'prop' || + prop === 'value' || + prop === 'name' || + prop === 'params' || + prop === 'important' || + /* c8 ignore next */ + prop === 'text' + ) { + node.markDirty() + } + return true + }, + + get(node, prop) { + if (prop === 'proxyOf') { + return node + } else if (prop === 'root') { + return () => node.root().toProxy() + } else { + return node[prop] + } + } + } + } + + toProxy() { + if (!this.proxyCache) { + this.proxyCache = new Proxy(this, this.getProxyProcessor()) + } + return this.proxyCache + } + + addToError(error) { + error.postcssNode = this + if (error.stack && this.source && /\n\s{4}at /.test(error.stack)) { + let s = this.source + error.stack = error.stack.replace( + /\n\s{4}at /, + `$&${s.input.from}:${s.start.line}:${s.start.column}$&` + ) + } + return error + } + + markDirty() { + if (this[isClean]) { + this[isClean] = false + let next = this + while ((next = next.parent)) { + next[isClean] = false + } + } + } + + get proxyOf() { + return this + } +} + +module.exports = Node +Node.default = Node diff --git a/node_modules/postcss/lib/parse.d.ts b/node_modules/postcss/lib/parse.d.ts new file mode 100644 index 00000000..d6bdee29 --- /dev/null +++ b/node_modules/postcss/lib/parse.d.ts @@ -0,0 +1,5 @@ +import { Parser } from './postcss.js' + +declare const parse: Parser + +export default parse diff --git a/node_modules/postcss/lib/parse.js b/node_modules/postcss/lib/parse.js new file mode 100644 index 00000000..971431f2 --- /dev/null +++ b/node_modules/postcss/lib/parse.js @@ -0,0 +1,42 @@ +'use strict' + +let Container = require('./container') +let Parser = require('./parser') +let Input = require('./input') + +function parse(css, opts) { + let input = new Input(css, opts) + let parser = new Parser(input) + try { + parser.parse() + } catch (e) { + if (process.env.NODE_ENV !== 'production') { + if (e.name === 'CssSyntaxError' && opts && opts.from) { + if (/\.scss$/i.test(opts.from)) { + e.message += + '\nYou tried to parse SCSS with ' + + 'the standard CSS parser; ' + + 'try again with the postcss-scss parser' + } else if (/\.sass/i.test(opts.from)) { + e.message += + '\nYou tried to parse Sass with ' + + 'the standard CSS parser; ' + + 'try again with the postcss-sass parser' + } else if (/\.less$/i.test(opts.from)) { + e.message += + '\nYou tried to parse Less with ' + + 'the standard CSS parser; ' + + 'try again with the postcss-less parser' + } + } + } + throw e + } + + return parser.root +} + +module.exports = parse +parse.default = parse + +Container.registerParse(parse) diff --git a/node_modules/postcss/lib/parser.js b/node_modules/postcss/lib/parser.js new file mode 100644 index 00000000..a9f8dad4 --- /dev/null +++ b/node_modules/postcss/lib/parser.js @@ -0,0 +1,583 @@ +'use strict' + +let Declaration = require('./declaration') +let tokenizer = require('./tokenize') +let Comment = require('./comment') +let AtRule = require('./at-rule') +let Root = require('./root') +let Rule = require('./rule') + +class Parser { + constructor(input) { + this.input = input + + this.root = new Root() + this.current = this.root + this.spaces = '' + this.semicolon = false + this.customProperty = false + + this.createTokenizer() + this.root.source = { input, start: { offset: 0, line: 1, column: 1 } } + } + + createTokenizer() { + this.tokenizer = tokenizer(this.input) + } + + parse() { + let token + while (!this.tokenizer.endOfFile()) { + token = this.tokenizer.nextToken() + + switch (token[0]) { + case 'space': + this.spaces += token[1] + break + + case ';': + this.freeSemicolon(token) + break + + case '}': + this.end(token) + break + + case 'comment': + this.comment(token) + break + + case 'at-word': + this.atrule(token) + break + + case '{': + this.emptyRule(token) + break + + default: + this.other(token) + break + } + } + this.endFile() + } + + comment(token) { + let node = new Comment() + this.init(node, token[2]) + node.source.end = this.getPosition(token[3] || token[2]) + + let text = token[1].slice(2, -2) + if (/^\s*$/.test(text)) { + node.text = '' + node.raws.left = text + node.raws.right = '' + } else { + let match = text.match(/^(\s*)([^]*\S)(\s*)$/) + node.text = match[2] + node.raws.left = match[1] + node.raws.right = match[3] + } + } + + emptyRule(token) { + let node = new Rule() + this.init(node, token[2]) + node.selector = '' + node.raws.between = '' + this.current = node + } + + other(start) { + let end = false + let type = null + let colon = false + let bracket = null + let brackets = [] + let customProperty = start[1].startsWith('--') + + let tokens = [] + let token = start + while (token) { + type = token[0] + tokens.push(token) + + if (type === '(' || type === '[') { + if (!bracket) bracket = token + brackets.push(type === '(' ? ')' : ']') + } else if (customProperty && colon && type === '{') { + if (!bracket) bracket = token + brackets.push('}') + } else if (brackets.length === 0) { + if (type === ';') { + if (colon) { + this.decl(tokens, customProperty) + return + } else { + break + } + } else if (type === '{') { + this.rule(tokens) + return + } else if (type === '}') { + this.tokenizer.back(tokens.pop()) + end = true + break + } else if (type === ':') { + colon = true + } + } else if (type === brackets[brackets.length - 1]) { + brackets.pop() + if (brackets.length === 0) bracket = null + } + + token = this.tokenizer.nextToken() + } + + if (this.tokenizer.endOfFile()) end = true + if (brackets.length > 0) this.unclosedBracket(bracket) + + if (end && colon) { + if (!customProperty) { + while (tokens.length) { + token = tokens[tokens.length - 1][0] + if (token !== 'space' && token !== 'comment') break + this.tokenizer.back(tokens.pop()) + } + } + this.decl(tokens, customProperty) + } else { + this.unknownWord(tokens) + } + } + + rule(tokens) { + tokens.pop() + + let node = new Rule() + this.init(node, tokens[0][2]) + + node.raws.between = this.spacesAndCommentsFromEnd(tokens) + this.raw(node, 'selector', tokens) + this.current = node + } + + decl(tokens, customProperty) { + let node = new Declaration() + this.init(node, tokens[0][2]) + + let last = tokens[tokens.length - 1] + if (last[0] === ';') { + this.semicolon = true + tokens.pop() + } + node.source.end = this.getPosition(last[3] || last[2]) + + while (tokens[0][0] !== 'word') { + if (tokens.length === 1) this.unknownWord(tokens) + node.raws.before += tokens.shift()[1] + } + node.source.start = this.getPosition(tokens[0][2]) + + node.prop = '' + while (tokens.length) { + let type = tokens[0][0] + if (type === ':' || type === 'space' || type === 'comment') { + break + } + node.prop += tokens.shift()[1] + } + + node.raws.between = '' + + let token + while (tokens.length) { + token = tokens.shift() + + if (token[0] === ':') { + node.raws.between += token[1] + break + } else { + if (token[0] === 'word' && /\w/.test(token[1])) { + this.unknownWord([token]) + } + node.raws.between += token[1] + } + } + + if (node.prop[0] === '_' || node.prop[0] === '*') { + node.raws.before += node.prop[0] + node.prop = node.prop.slice(1) + } + + let firstSpaces = [] + let next + while (tokens.length) { + next = tokens[0][0] + if (next !== 'space' && next !== 'comment') break + firstSpaces.push(tokens.shift()) + } + + this.precheckMissedSemicolon(tokens) + + for (let i = tokens.length - 1; i >= 0; i--) { + token = tokens[i] + if (token[1].toLowerCase() === '!important') { + node.important = true + let string = this.stringFrom(tokens, i) + string = this.spacesFromEnd(tokens) + string + if (string !== ' !important') node.raws.important = string + break + } else if (token[1].toLowerCase() === 'important') { + let cache = tokens.slice(0) + let str = '' + for (let j = i; j > 0; j--) { + let type = cache[j][0] + if (str.trim().indexOf('!') === 0 && type !== 'space') { + break + } + str = cache.pop()[1] + str + } + if (str.trim().indexOf('!') === 0) { + node.important = true + node.raws.important = str + tokens = cache + } + } + + if (token[0] !== 'space' && token[0] !== 'comment') { + break + } + } + + let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment') + + if (hasWord) { + node.raws.between += firstSpaces.map(i => i[1]).join('') + firstSpaces = [] + } + this.raw(node, 'value', firstSpaces.concat(tokens), customProperty) + + if (node.value.includes(':') && !customProperty) { + this.checkMissedSemicolon(tokens) + } + } + + atrule(token) { + let node = new AtRule() + node.name = token[1].slice(1) + if (node.name === '') { + this.unnamedAtrule(node, token) + } + this.init(node, token[2]) + + let type + let prev + let shift + let last = false + let open = false + let params = [] + let brackets = [] + + while (!this.tokenizer.endOfFile()) { + token = this.tokenizer.nextToken() + type = token[0] + + if (type === '(' || type === '[') { + brackets.push(type === '(' ? ')' : ']') + } else if (type === '{' && brackets.length > 0) { + brackets.push('}') + } else if (type === brackets[brackets.length - 1]) { + brackets.pop() + } + + if (brackets.length === 0) { + if (type === ';') { + node.source.end = this.getPosition(token[2]) + this.semicolon = true + break + } else if (type === '{') { + open = true + break + } else if (type === '}') { + if (params.length > 0) { + shift = params.length - 1 + prev = params[shift] + while (prev && prev[0] === 'space') { + prev = params[--shift] + } + if (prev) { + node.source.end = this.getPosition(prev[3] || prev[2]) + } + } + this.end(token) + break + } else { + params.push(token) + } + } else { + params.push(token) + } + + if (this.tokenizer.endOfFile()) { + last = true + break + } + } + + node.raws.between = this.spacesAndCommentsFromEnd(params) + if (params.length) { + node.raws.afterName = this.spacesAndCommentsFromStart(params) + this.raw(node, 'params', params) + if (last) { + token = params[params.length - 1] + node.source.end = this.getPosition(token[3] || token[2]) + this.spaces = node.raws.between + node.raws.between = '' + } + } else { + node.raws.afterName = '' + node.params = '' + } + + if (open) { + node.nodes = [] + this.current = node + } + } + + end(token) { + if (this.current.nodes && this.current.nodes.length) { + this.current.raws.semicolon = this.semicolon + } + this.semicolon = false + + this.current.raws.after = (this.current.raws.after || '') + this.spaces + this.spaces = '' + + if (this.current.parent) { + this.current.source.end = this.getPosition(token[2]) + this.current = this.current.parent + } else { + this.unexpectedClose(token) + } + } + + endFile() { + if (this.current.parent) this.unclosedBlock() + if (this.current.nodes && this.current.nodes.length) { + this.current.raws.semicolon = this.semicolon + } + this.current.raws.after = (this.current.raws.after || '') + this.spaces + } + + freeSemicolon(token) { + this.spaces += token[1] + if (this.current.nodes) { + let prev = this.current.nodes[this.current.nodes.length - 1] + if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) { + prev.raws.ownSemicolon = this.spaces + this.spaces = '' + } + } + } + + // Helpers + + getPosition(offset) { + let pos = this.input.fromOffset(offset) + return { + offset, + line: pos.line, + column: pos.col + } + } + + init(node, offset) { + this.current.push(node) + node.source = { + start: this.getPosition(offset), + input: this.input + } + node.raws.before = this.spaces + this.spaces = '' + if (node.type !== 'comment') this.semicolon = false + } + + raw(node, prop, tokens, customProperty) { + let token, type + let length = tokens.length + let value = '' + let clean = true + let next, prev + + for (let i = 0; i < length; i += 1) { + token = tokens[i] + type = token[0] + if (type === 'space' && i === length - 1 && !customProperty) { + clean = false + } else if (type === 'comment') { + prev = tokens[i - 1] + next = tokens[i + 1] + if (prev && next && prev[0] !== 'space' && next[0] !== 'space') { + value += token[1] + } else { + clean = false + } + } else { + value += token[1] + } + } + if (!clean) { + let raw = tokens.reduce((all, i) => all + i[1], '') + node.raws[prop] = { value, raw } + } + node[prop] = value + } + + spacesAndCommentsFromEnd(tokens) { + let lastTokenType + let spaces = '' + while (tokens.length) { + lastTokenType = tokens[tokens.length - 1][0] + if (lastTokenType !== 'space' && lastTokenType !== 'comment') break + spaces = tokens.pop()[1] + spaces + } + return spaces + } + + spacesAndCommentsFromStart(tokens) { + let next + let spaces = '' + while (tokens.length) { + next = tokens[0][0] + if (next !== 'space' && next !== 'comment') break + spaces += tokens.shift()[1] + } + return spaces + } + + spacesFromEnd(tokens) { + let lastTokenType + let spaces = '' + while (tokens.length) { + lastTokenType = tokens[tokens.length - 1][0] + if (lastTokenType !== 'space') break + spaces = tokens.pop()[1] + spaces + } + return spaces + } + + stringFrom(tokens, from) { + let result = '' + for (let i = from; i < tokens.length; i++) { + result += tokens[i][1] + } + tokens.splice(from, tokens.length - from) + return result + } + + colon(tokens) { + let brackets = 0 + let token, type, prev + for (let [i, element] of tokens.entries()) { + token = element + type = token[0] + + if (type === '(') { + brackets += 1 + } + if (type === ')') { + brackets -= 1 + } + if (brackets === 0 && type === ':') { + if (!prev) { + this.doubleColon(token) + } else if (prev[0] === 'word' && prev[1] === 'progid') { + continue + } else { + return i + } + } + + prev = token + } + return false + } + + // Errors + + unclosedBracket(bracket) { + throw this.input.error( + 'Unclosed bracket', + { offset: bracket[2] }, + { offset: bracket[2] + 1 } + ) + } + + unknownWord(tokens) { + throw this.input.error( + 'Unknown word', + { offset: tokens[0][2] }, + { offset: tokens[0][2] + tokens[0][1].length } + ) + } + + unexpectedClose(token) { + throw this.input.error( + 'Unexpected }', + { offset: token[2] }, + { offset: token[2] + 1 } + ) + } + + unclosedBlock() { + let pos = this.current.source.start + throw this.input.error('Unclosed block', pos.line, pos.column) + } + + doubleColon(token) { + throw this.input.error( + 'Double colon', + { offset: token[2] }, + { offset: token[2] + token[1].length } + ) + } + + unnamedAtrule(node, token) { + throw this.input.error( + 'At-rule without name', + { offset: token[2] }, + { offset: token[2] + token[1].length } + ) + } + + precheckMissedSemicolon(/* tokens */) { + // Hook for Safe Parser + } + + checkMissedSemicolon(tokens) { + let colon = this.colon(tokens) + if (colon === false) return + + let founded = 0 + let token + for (let j = colon - 1; j >= 0; j--) { + token = tokens[j] + if (token[0] !== 'space') { + founded += 1 + if (founded === 2) break + } + } + // If the token is a word, e.g. `!important`, `red` or any other valid property's value. + // Then we need to return the colon after that word token. [3] is the "end" colon of that word. + // And because we need it after that one we do +1 to get the next one. + throw this.input.error( + 'Missed semicolon', + token[0] === 'word' ? token[3] + 1 : token[2] + ) + } +} + +module.exports = Parser diff --git a/node_modules/postcss/lib/postcss.d.ts b/node_modules/postcss/lib/postcss.d.ts new file mode 100644 index 00000000..30a0d088 --- /dev/null +++ b/node_modules/postcss/lib/postcss.d.ts @@ -0,0 +1,473 @@ +import { SourceMapGenerator, RawSourceMap } from 'source-map-js' + +import Node, { + Position, + Source, + ChildNode, + NodeErrorOptions, + NodeProps, + ChildProps, + AnyNode +} from './node.js' +import Declaration, { DeclarationProps } from './declaration.js' +import Container, { ContainerProps } from './container.js' +import Document, { DocumentProps } from './document.js' +import Warning, { WarningOptions } from './warning.js' +import Comment, { CommentProps } from './comment.js' +import AtRule, { AtRuleProps } from './at-rule.js' +import Input, { FilePosition } from './input.js' +import Result, { Message } from './result.js' +import Root, { RootProps } from './root.js' +import Rule, { RuleProps } from './rule.js' +import CssSyntaxError from './css-syntax-error.js' +import list, { List } from './list.js' +import LazyResult from './lazy-result.js' +import Processor from './processor.js' + +export { + NodeErrorOptions, + DeclarationProps, + CssSyntaxError, + ContainerProps, + WarningOptions, + DocumentProps, + FilePosition, + CommentProps, + AtRuleProps, + Declaration, + ChildProps, + LazyResult, + ChildNode, + NodeProps, + Processor, + RuleProps, + RootProps, + Container, + Position, + Document, + AnyNode, + Warning, + Message, + Comment, + Source, + AtRule, + Result, + Input, + Node, + list, + Rule, + Root +} + +export type SourceMap = SourceMapGenerator & { + toJSON(): RawSourceMap +} + +export type Helpers = { result: Result; postcss: Postcss } & Postcss + +type DocumentProcessor = ( + document: Document, + helper: Helpers +) => Promise | void +type RootProcessor = (root: Root, helper: Helpers) => Promise | void +type DeclarationProcessor = ( + decl: Declaration, + helper: Helpers +) => Promise | void +type RuleProcessor = (rule: Rule, helper: Helpers) => Promise | void +type AtRuleProcessor = (atRule: AtRule, helper: Helpers) => Promise | void +type CommentProcessor = ( + comment: Comment, + helper: Helpers +) => Promise | void + +interface Processors { + /** + * Will be called on `Document` node. + * + * Will be called again on children changes. + */ + Document?: DocumentProcessor + + /** + * Will be called on `Document` node, when all children will be processed. + * + * Will be called again on children changes. + */ + DocumentExit?: DocumentProcessor + + /** + * Will be called on `Root` node once. + */ + Once?: RootProcessor + + /** + * Will be called on `Root` node once, when all children will be processed. + */ + OnceExit?: RootProcessor + + /** + * Will be called on `Root` node. + * + * Will be called again on children changes. + */ + Root?: RootProcessor + + /** + * Will be called on `Root` node, when all children will be processed. + * + * Will be called again on children changes. + */ + RootExit?: RootProcessor + + /** + * Will be called on all `Declaration` nodes after listeners + * for `Declaration` event. + * + * Will be called again on node or children changes. + */ + Declaration?: DeclarationProcessor | { [prop: string]: DeclarationProcessor } + + /** + * Will be called on all `Declaration` nodes. + * + * Will be called again on node or children changes. + */ + DeclarationExit?: + | DeclarationProcessor + | { [prop: string]: DeclarationProcessor } + + /** + * Will be called on all `Rule` nodes. + * + * Will be called again on node or children changes. + */ + Rule?: RuleProcessor + + /** + * Will be called on all `Rule` nodes, when all children will be processed. + * + * Will be called again on node or children changes. + */ + RuleExit?: RuleProcessor + + /** + * Will be called on all`AtRule` nodes. + * + * Will be called again on node or children changes. + */ + AtRule?: AtRuleProcessor | { [name: string]: AtRuleProcessor } + + /** + * Will be called on all `AtRule` nodes, when all children will be processed. + * + * Will be called again on node or children changes. + */ + AtRuleExit?: AtRuleProcessor | { [name: string]: AtRuleProcessor } + + /** + * Will be called on all `Comment` nodes. + * + * Will be called again on node or children changes. + */ + Comment?: CommentProcessor + + /** + * Will be called on all `Comment` nodes after listeners + * for `Comment` event. + * + * Will be called again on node or children changes. + */ + CommentExit?: CommentProcessor + + /** + * Will be called when all other listeners processed the document. + * + * This listener will not be called again. + */ + Exit?: RootProcessor +} + +export interface Plugin extends Processors { + postcssPlugin: string + prepare?: (result: Result) => Processors +} + +export interface PluginCreator { + (opts?: PluginOptions): Plugin | Processor + postcss: true +} + +export interface Transformer extends TransformCallback { + postcssPlugin: string + postcssVersion: string +} + +export interface TransformCallback { + (root: Root, result: Result): Promise | void +} + +export interface OldPlugin extends Transformer { + (opts?: T): Transformer + postcss: Transformer +} + +export type AcceptedPlugin = + | Plugin + | PluginCreator + | OldPlugin + | TransformCallback + | { + postcss: TransformCallback | Processor + } + | Processor + +export interface Parser { + ( + css: string | { toString(): string }, + opts?: Pick + ): RootNode +} + +export interface Builder { + (part: string, node?: AnyNode, type?: 'start' | 'end'): void +} + +export interface Stringifier { + (node: AnyNode, builder: Builder): void +} + +export interface JSONHydrator { + (data: object[]): Node[] + (data: object): Node +} + +export interface Syntax { + /** + * Function to generate AST by string. + */ + parse?: Parser + + /** + * Class to generate string by AST. + */ + stringify?: Stringifier +} + +export interface SourceMapOptions { + /** + * Indicates that the source map should be embedded in the output CSS + * as a Base64-encoded comment. By default, it is `true`. + * But if all previous maps are external, not inline, PostCSS will not embed + * the map even if you do not set this option. + * + * If you have an inline source map, the result.map property will be empty, + * as the source map will be contained within the text of `result.css`. + */ + inline?: boolean + + /** + * Source map content from a previous processing step (e.g., Sass). + * + * PostCSS will try to read the previous source map + * automatically (based on comments within the source CSS), but you can use + * this option to identify it manually. + * + * If desired, you can omit the previous map with prev: `false`. + */ + prev?: string | boolean | object | ((file: string) => string) + + /** + * Indicates that PostCSS should set the origin content (e.g., Sass source) + * of the source map. By default, it is true. But if all previous maps do not + * contain sources content, PostCSS will also leave it out even if you + * do not set this option. + */ + sourcesContent?: boolean + + /** + * Indicates that PostCSS should add annotation comments to the CSS. + * By default, PostCSS will always add a comment with a path + * to the source map. PostCSS will not add annotations to CSS files + * that do not contain any comments. + * + * By default, PostCSS presumes that you want to save the source map as + * `opts.to + '.map'` and will use this path in the annotation comment. + * A different path can be set by providing a string value for annotation. + * + * If you have set `inline: true`, annotation cannot be disabled. + */ + annotation?: string | boolean | ((file: string, root: Root) => string) + + /** + * Override `from` in map’s sources. + */ + from?: string + + /** + * Use absolute path in generated source map. + */ + absolute?: boolean +} + +export interface ProcessOptions { + /** + * The path of the CSS source file. You should always set `from`, + * because it is used in source map generation and syntax error messages. + */ + from?: string + + /** + * The path where you'll put the output CSS file. You should always set `to` + * to generate correct source maps. + */ + to?: string + + /** + * Function to generate AST by string. + */ + parser?: Syntax | Parser + + /** + * Class to generate string by AST. + */ + stringifier?: Syntax | Stringifier + + /** + * Object with parse and stringify. + */ + syntax?: Syntax + + /** + * Source map options + */ + map?: SourceMapOptions | boolean +} + +export interface Postcss { + /** + * Create a new `Processor` instance that will apply `plugins` + * as CSS processors. + * + * ```js + * let postcss = require('postcss') + * + * postcss(plugins).process(css, { from, to }).then(result => { + * console.log(result.css) + * }) + * ``` + * + * @param plugins PostCSS plugins. + * @return Processor to process multiple CSS. + */ + (plugins?: AcceptedPlugin[]): Processor + (...plugins: AcceptedPlugin[]): Processor + + /** + * Default function to convert a node tree into a CSS string. + */ + stringify: Stringifier + + /** + * Parses source css and returns a new `Root` or `Document` node, + * which contains the source CSS nodes. + * + * ```js + * // Simple CSS concatenation with source map support + * const root1 = postcss.parse(css1, { from: file1 }) + * const root2 = postcss.parse(css2, { from: file2 }) + * root1.append(root2).toResult().css + * ``` + */ + parse: Parser + + /** + * Rehydrate a JSON AST (from `Node#toJSON`) back into the AST classes. + * + * ```js + * const json = root.toJSON() + * // save to file, send by network, etc + * const root2 = postcss.fromJSON(json) + * ``` + */ + fromJSON: JSONHydrator + + /** + * Contains the `list` module. + */ + list: List + + /** + * Creates a new `Comment` node. + * + * @param defaults Properties for the new node. + * @return New comment node + */ + comment(defaults?: CommentProps): Comment + + /** + * Creates a new `AtRule` node. + * + * @param defaults Properties for the new node. + * @return New at-rule node. + */ + atRule(defaults?: AtRuleProps): AtRule + + /** + * Creates a new `Declaration` node. + * + * @param defaults Properties for the new node. + * @return New declaration node. + */ + decl(defaults?: DeclarationProps): Declaration + + /** + * Creates a new `Rule` node. + * + * @param default Properties for the new node. + * @return New rule node. + */ + rule(defaults?: RuleProps): Rule + + /** + * Creates a new `Root` node. + * + * @param defaults Properties for the new node. + * @return New root node. + */ + root(defaults?: RootProps): Root + + /** + * Creates a new `Document` node. + * + * @param defaults Properties for the new node. + * @return New document node. + */ + document(defaults?: DocumentProps): Document + + CssSyntaxError: typeof CssSyntaxError + Declaration: typeof Declaration + Container: typeof Container + Comment: typeof Comment + Warning: typeof Warning + AtRule: typeof AtRule + Result: typeof Result + Input: typeof Input + Rule: typeof Rule + Root: typeof Root + Node: typeof Node +} + +export const stringify: Stringifier +export const parse: Parser +export const fromJSON: JSONHydrator + +export const comment: Postcss['comment'] +export const atRule: Postcss['atRule'] +export const decl: Postcss['decl'] +export const rule: Postcss['rule'] +export const root: Postcss['root'] + +declare const postcss: Postcss + +export default postcss diff --git a/node_modules/postcss/lib/postcss.js b/node_modules/postcss/lib/postcss.js new file mode 100644 index 00000000..d3f640e4 --- /dev/null +++ b/node_modules/postcss/lib/postcss.js @@ -0,0 +1,99 @@ +'use strict' + +let CssSyntaxError = require('./css-syntax-error') +let Declaration = require('./declaration') +let LazyResult = require('./lazy-result') +let Container = require('./container') +let Processor = require('./processor') +let stringify = require('./stringify') +let fromJSON = require('./fromJSON') +let Document = require('./document') +let Warning = require('./warning') +let Comment = require('./comment') +let AtRule = require('./at-rule') +let Result = require('./result.js') +let Input = require('./input') +let parse = require('./parse') +let list = require('./list') +let Rule = require('./rule') +let Root = require('./root') +let Node = require('./node') + +function postcss(...plugins) { + if (plugins.length === 1 && Array.isArray(plugins[0])) { + plugins = plugins[0] + } + return new Processor(plugins) +} + +postcss.plugin = function plugin(name, initializer) { + // eslint-disable-next-line no-console + if (console && console.warn) { + // eslint-disable-next-line no-console + console.warn( + name + + ': postcss.plugin was deprecated. Migration guide:\n' + + 'https://evilmartians.com/chronicles/postcss-8-plugin-migration' + ) + if (process.env.LANG && process.env.LANG.startsWith('cn')) { + /* c8 ignore next 7 */ + // eslint-disable-next-line no-console + console.warn( + name + + ': 里面 postcss.plugin 被弃用. 迁移指南:\n' + + 'https://www.w3ctech.com/topic/2226' + ) + } + } + function creator(...args) { + let transformer = initializer(...args) + transformer.postcssPlugin = name + transformer.postcssVersion = new Processor().version + return transformer + } + + let cache + Object.defineProperty(creator, 'postcss', { + get() { + if (!cache) cache = creator() + return cache + } + }) + + creator.process = function (css, processOpts, pluginOpts) { + return postcss([creator(pluginOpts)]).process(css, processOpts) + } + + return creator +} + +postcss.stringify = stringify +postcss.parse = parse +postcss.fromJSON = fromJSON +postcss.list = list + +postcss.comment = defaults => new Comment(defaults) +postcss.atRule = defaults => new AtRule(defaults) +postcss.decl = defaults => new Declaration(defaults) +postcss.rule = defaults => new Rule(defaults) +postcss.root = defaults => new Root(defaults) +postcss.document = defaults => new Document(defaults) + +postcss.CssSyntaxError = CssSyntaxError +postcss.Declaration = Declaration +postcss.Container = Container +postcss.Processor = Processor +postcss.Document = Document +postcss.Comment = Comment +postcss.Warning = Warning +postcss.AtRule = AtRule +postcss.Result = Result +postcss.Input = Input +postcss.Rule = Rule +postcss.Root = Root +postcss.Node = Node + +LazyResult.registerPostcss(postcss) + +module.exports = postcss +postcss.default = postcss diff --git a/node_modules/postcss/lib/postcss.mjs b/node_modules/postcss/lib/postcss.mjs new file mode 100644 index 00000000..35075988 --- /dev/null +++ b/node_modules/postcss/lib/postcss.mjs @@ -0,0 +1,30 @@ +import postcss from './postcss.js' + +export default postcss + +export const stringify = postcss.stringify +export const fromJSON = postcss.fromJSON +export const plugin = postcss.plugin +export const parse = postcss.parse +export const list = postcss.list + +export const document = postcss.document +export const comment = postcss.comment +export const atRule = postcss.atRule +export const rule = postcss.rule +export const decl = postcss.decl +export const root = postcss.root + +export const CssSyntaxError = postcss.CssSyntaxError +export const Declaration = postcss.Declaration +export const Container = postcss.Container +export const Processor = postcss.Processor +export const Document = postcss.Document +export const Comment = postcss.Comment +export const Warning = postcss.Warning +export const AtRule = postcss.AtRule +export const Result = postcss.Result +export const Input = postcss.Input +export const Rule = postcss.Rule +export const Root = postcss.Root +export const Node = postcss.Node diff --git a/node_modules/postcss/lib/previous-map.d.ts b/node_modules/postcss/lib/previous-map.d.ts new file mode 100644 index 00000000..490d885f --- /dev/null +++ b/node_modules/postcss/lib/previous-map.d.ts @@ -0,0 +1,72 @@ +import { SourceMapConsumer } from 'source-map-js' + +import { ProcessOptions } from './postcss.js' + +/** + * Source map information from input CSS. + * For example, source map after Sass compiler. + * + * This class will automatically find source map in input CSS or in file system + * near input file (according `from` option). + * + * ```js + * const root = parse(css, { from: 'a.sass.css' }) + * root.input.map //=> PreviousMap + * ``` + */ +export default class PreviousMap { + /** + * Was source map inlined by data-uri to input CSS. + */ + inline: boolean + + /** + * `sourceMappingURL` content. + */ + annotation?: string + + /** + * Source map file content. + */ + text?: string + + /** + * The directory with source map file, if source map is in separated file. + */ + root?: string + + /** + * The CSS source identifier. Contains `Input#file` if the user + * set the `from` option, or `Input#id` if they did not. + */ + file?: string + + /** + * Path to source map file. + */ + mapFile?: string + + /** + * @param css Input CSS source. + * @param opts Process options. + */ + constructor(css: string, opts?: ProcessOptions) + + /** + * Create a instance of `SourceMapGenerator` class + * from the `source-map` library to work with source map information. + * + * It is lazy method, so it will create object only on first call + * and then it will use cache. + * + * @return Object with source map information. + */ + consumer(): SourceMapConsumer + + /** + * Does source map contains `sourcesContent` with input source text. + * + * @return Is `sourcesContent` present. + */ + withContent(): boolean +} diff --git a/node_modules/postcss/lib/previous-map.js b/node_modules/postcss/lib/previous-map.js new file mode 100644 index 00000000..d13a93a3 --- /dev/null +++ b/node_modules/postcss/lib/previous-map.js @@ -0,0 +1,142 @@ +'use strict' + +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') +let { existsSync, readFileSync } = require('fs') +let { dirname, join } = require('path') + +function fromBase64(str) { + if (Buffer) { + return Buffer.from(str, 'base64').toString() + } else { + /* c8 ignore next 2 */ + return window.atob(str) + } +} + +class PreviousMap { + constructor(css, opts) { + if (opts.map === false) return + this.loadAnnotation(css) + this.inline = this.startWith(this.annotation, 'data:') + + let prev = opts.map ? opts.map.prev : undefined + let text = this.loadMap(opts.from, prev) + if (!this.mapFile && opts.from) { + this.mapFile = opts.from + } + if (this.mapFile) this.root = dirname(this.mapFile) + if (text) this.text = text + } + + consumer() { + if (!this.consumerCache) { + this.consumerCache = new SourceMapConsumer(this.text) + } + return this.consumerCache + } + + withContent() { + return !!( + this.consumer().sourcesContent && + this.consumer().sourcesContent.length > 0 + ) + } + + startWith(string, start) { + if (!string) return false + return string.substr(0, start.length) === start + } + + getAnnotationURL(sourceMapString) { + return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, '').trim() + } + + loadAnnotation(css) { + let comments = css.match(/\/\*\s*# sourceMappingURL=/gm) + if (!comments) return + + // sourceMappingURLs from comments, strings, etc. + let start = css.lastIndexOf(comments.pop()) + let end = css.indexOf('*/', start) + + if (start > -1 && end > -1) { + // Locate the last sourceMappingURL to avoid pickin + this.annotation = this.getAnnotationURL(css.substring(start, end)) + } + } + + decodeInline(text) { + let baseCharsetUri = /^data:application\/json;charset=utf-?8;base64,/ + let baseUri = /^data:application\/json;base64,/ + let charsetUri = /^data:application\/json;charset=utf-?8,/ + let uri = /^data:application\/json,/ + + if (charsetUri.test(text) || uri.test(text)) { + return decodeURIComponent(text.substr(RegExp.lastMatch.length)) + } + + if (baseCharsetUri.test(text) || baseUri.test(text)) { + return fromBase64(text.substr(RegExp.lastMatch.length)) + } + + let encoding = text.match(/data:application\/json;([^,]+),/)[1] + throw new Error('Unsupported source map encoding ' + encoding) + } + + loadFile(path) { + this.root = dirname(path) + if (existsSync(path)) { + this.mapFile = path + return readFileSync(path, 'utf-8').toString().trim() + } + } + + loadMap(file, prev) { + if (prev === false) return false + + if (prev) { + if (typeof prev === 'string') { + return prev + } else if (typeof prev === 'function') { + let prevPath = prev(file) + if (prevPath) { + let map = this.loadFile(prevPath) + if (!map) { + throw new Error( + 'Unable to load previous source map: ' + prevPath.toString() + ) + } + return map + } + } else if (prev instanceof SourceMapConsumer) { + return SourceMapGenerator.fromSourceMap(prev).toString() + } else if (prev instanceof SourceMapGenerator) { + return prev.toString() + } else if (this.isMap(prev)) { + return JSON.stringify(prev) + } else { + throw new Error( + 'Unsupported previous source map format: ' + prev.toString() + ) + } + } else if (this.inline) { + return this.decodeInline(this.annotation) + } else if (this.annotation) { + let map = this.annotation + if (file) map = join(dirname(file), map) + return this.loadFile(map) + } + } + + isMap(map) { + if (typeof map !== 'object') return false + return ( + typeof map.mappings === 'string' || + typeof map._mappings === 'string' || + Array.isArray(map.sections) + ) + } +} + +module.exports = PreviousMap +PreviousMap.default = PreviousMap diff --git a/node_modules/postcss/lib/processor.d.ts b/node_modules/postcss/lib/processor.d.ts new file mode 100644 index 00000000..e1affa48 --- /dev/null +++ b/node_modules/postcss/lib/processor.d.ts @@ -0,0 +1,102 @@ +import { + AcceptedPlugin, + Plugin, + ProcessOptions, + Transformer, + TransformCallback +} from './postcss.js' +import LazyResult from './lazy-result.js' +import Result from './result.js' +import Root from './root.js' +import NoWorkResult from './no-work-result.js' + +/** + * Contains plugins to process CSS. Create one `Processor` instance, + * initialize its plugins, and then use that instance on numerous CSS files. + * + * ```js + * const processor = postcss([autoprefixer, postcssNested]) + * processor.process(css1).then(result => console.log(result.css)) + * processor.process(css2).then(result => console.log(result.css)) + * ``` + */ +export default class Processor { + /** + * Current PostCSS version. + * + * ```js + * if (result.processor.version.split('.')[0] !== '6') { + * throw new Error('This plugin works only with PostCSS 6') + * } + * ``` + */ + version: string + + /** + * Plugins added to this processor. + * + * ```js + * const processor = postcss([autoprefixer, postcssNested]) + * processor.plugins.length //=> 2 + * ``` + */ + plugins: (Plugin | Transformer | TransformCallback)[] + + /** + * @param plugins PostCSS plugins + */ + constructor(plugins?: AcceptedPlugin[]) + + /** + * Adds a plugin to be used as a CSS processor. + * + * PostCSS plugin can be in 4 formats: + * * A plugin in `Plugin` format. + * * A plugin creator function with `pluginCreator.postcss = true`. + * PostCSS will call this function without argument to get plugin. + * * A function. PostCSS will pass the function a @{link Root} + * as the first argument and current `Result` instance + * as the second. + * * Another `Processor` instance. PostCSS will copy plugins + * from that instance into this one. + * + * Plugins can also be added by passing them as arguments when creating + * a `postcss` instance (see [`postcss(plugins)`]). + * + * Asynchronous plugins should return a `Promise` instance. + * + * ```js + * const processor = postcss() + * .use(autoprefixer) + * .use(postcssNested) + * ``` + * + * @param plugin PostCSS plugin or `Processor` with plugins. + * @return {Processes} Current processor to make methods chain. + */ + use(plugin: AcceptedPlugin): this + + /** + * Parses source CSS and returns a `LazyResult` Promise proxy. + * Because some plugins can be asynchronous it doesn’t make + * any transformations. Transformations will be applied + * in the `LazyResult` methods. + * + * ```js + * processor.process(css, { from: 'a.css', to: 'a.out.css' }) + * .then(result => { + * console.log(result.css) + * }) + * ``` + * + * @param css String with input CSS or any object with a `toString()` method, + * like a Buffer. Optionally, senda `Result` instance + * and the processor will take the `Root` from it. + * @param opts Options. + * @return Promise proxy. + */ + process( + css: string | { toString(): string } | Result | LazyResult | Root, + options?: ProcessOptions + ): LazyResult | NoWorkResult +} diff --git a/node_modules/postcss/lib/processor.js b/node_modules/postcss/lib/processor.js new file mode 100644 index 00000000..2a555ab1 --- /dev/null +++ b/node_modules/postcss/lib/processor.js @@ -0,0 +1,67 @@ +'use strict' + +let NoWorkResult = require('./no-work-result') +let LazyResult = require('./lazy-result') +let Document = require('./document') +let Root = require('./root') + +class Processor { + constructor(plugins = []) { + this.version = '8.4.6' + this.plugins = this.normalize(plugins) + } + + use(plugin) { + this.plugins = this.plugins.concat(this.normalize([plugin])) + return this + } + + process(css, opts = {}) { + if ( + this.plugins.length === 0 && + typeof opts.parser === 'undefined' && + typeof opts.stringifier === 'undefined' && + typeof opts.syntax === 'undefined' + ) { + return new NoWorkResult(this, css, opts) + } else { + return new LazyResult(this, css, opts) + } + } + + normalize(plugins) { + let normalized = [] + for (let i of plugins) { + if (i.postcss === true) { + i = i() + } else if (i.postcss) { + i = i.postcss + } + + if (typeof i === 'object' && Array.isArray(i.plugins)) { + normalized = normalized.concat(i.plugins) + } else if (typeof i === 'object' && i.postcssPlugin) { + normalized.push(i) + } else if (typeof i === 'function') { + normalized.push(i) + } else if (typeof i === 'object' && (i.parse || i.stringify)) { + if (process.env.NODE_ENV !== 'production') { + throw new Error( + 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' + + 'one of the syntax/parser/stringifier options as outlined ' + + 'in your PostCSS runner documentation.' + ) + } + } else { + throw new Error(i + ' is not a PostCSS plugin') + } + } + return normalized + } +} + +module.exports = Processor +Processor.default = Processor + +Root.registerProcessor(Processor) +Document.registerProcessor(Processor) diff --git a/node_modules/postcss/lib/result.d.ts b/node_modules/postcss/lib/result.d.ts new file mode 100644 index 00000000..8a582b69 --- /dev/null +++ b/node_modules/postcss/lib/result.d.ts @@ -0,0 +1,196 @@ +import { + ProcessOptions, + Plugin, + SourceMap, + TransformCallback, + Root, + Document, + Node, + Warning, + WarningOptions +} from './postcss.js' +import Processor from './processor.js' + +export interface Message { + /** + * Message type. + */ + type: string + + /** + * Source PostCSS plugin name. + */ + plugin?: string + + [others: string]: any +} + +export interface ResultOptions extends ProcessOptions { + /** + * The CSS node that was the source of the warning. + */ + node?: Node + + /** + * Name of plugin that created this warning. `Result#warn` will fill it + * automatically with `Plugin#postcssPlugin` value. + */ + plugin?: string +} + +/** + * Provides the result of the PostCSS transformations. + * + * A Result instance is returned by `LazyResult#then` + * or `Root#toResult` methods. + * + * ```js + * postcss([autoprefixer]).process(css).then(result => { + * console.log(result.css) + * }) + * ``` + * + * ```js + * const result2 = postcss.parse(css).toResult() + * ``` + */ +export default class Result { + /** + * The Processor instance used for this transformation. + * + * ```js + * for (const plugin of result.processor.plugins) { + * if (plugin.postcssPlugin === 'postcss-bad') { + * throw 'postcss-good is incompatible with postcss-bad' + * } + * }) + * ``` + */ + processor: Processor + + /** + * Contains messages from plugins (e.g., warnings or custom messages). + * Each message should have type and plugin properties. + * + * ```js + * AtRule: { + * import: (atRule, { result }) { + * const importedFile = parseImport(atRule) + * result.messages.push({ + * type: 'dependency', + * plugin: 'postcss-import', + * file: importedFile, + * parent: result.opts.from + * }) + * } + * } + * ``` + */ + messages: Message[] + + /** + * Root node after all transformations. + * + * ```js + * root.toResult().root === root + * ``` + */ + root: Root | Document + + /** + * Options from the `Processor#process` or `Root#toResult` call + * that produced this Result instance.] + * + * ```js + * root.toResult(opts).opts === opts + * ``` + */ + opts: ResultOptions + + /** + * A CSS string representing of `Result#root`. + * + * ```js + * postcss.parse('a{}').toResult().css //=> "a{}" + * ``` + */ + css: string + + /** + * An instance of `SourceMapGenerator` class from the `source-map` library, + * representing changes to the `Result#root` instance. + * + * ```js + * result.map.toJSON() //=> { version: 3, file: 'a.css', … } + * ``` + * + * ```js + * if (result.map) { + * fs.writeFileSync(result.opts.to + '.map', result.map.toString()) + * } + * ``` + */ + map: SourceMap + + /** + * Last runned PostCSS plugin. + */ + lastPlugin: Plugin | TransformCallback + + /** + * @param processor Processor used for this transformation. + * @param root Root node after all transformations. + * @param opts Options from the `Processor#process` or `Root#toResult`. + */ + constructor(processor: Processor, root: Root | Document, opts: ResultOptions) + + /** + * An alias for the `Result#css` property. + * Use it with syntaxes that generate non-CSS output. + * + * ```js + * result.css === result.content + * ``` + */ + get content(): string + + /** + * Returns for `Result#css` content. + * + * ```js + * result + '' === result.css + * ``` + * + * @return String representing of `Result#root`. + */ + toString(): string + + /** + * Creates an instance of `Warning` and adds it to `Result#messages`. + * + * ```js + * if (decl.important) { + * result.warn('Avoid !important', { node: decl, word: '!important' }) + * } + * ``` + * + * @param text Warning message. + * @param opts Warning options. + * @return Created warning. + */ + warn(message: string, options?: WarningOptions): Warning + + /** + * Returns warnings from plugins. Filters `Warning` instances + * from `Result#messages`. + * + * ```js + * result.warnings().forEach(warn => { + * console.warn(warn.toString()) + * }) + * ``` + * + * @return Warnings from plugins. + */ + warnings(): Warning[] +} diff --git a/node_modules/postcss/lib/result.js b/node_modules/postcss/lib/result.js new file mode 100644 index 00000000..a39751de --- /dev/null +++ b/node_modules/postcss/lib/result.js @@ -0,0 +1,42 @@ +'use strict' + +let Warning = require('./warning') + +class Result { + constructor(processor, root, opts) { + this.processor = processor + this.messages = [] + this.root = root + this.opts = opts + this.css = undefined + this.map = undefined + } + + toString() { + return this.css + } + + warn(text, opts = {}) { + if (!opts.plugin) { + if (this.lastPlugin && this.lastPlugin.postcssPlugin) { + opts.plugin = this.lastPlugin.postcssPlugin + } + } + + let warning = new Warning(text, opts) + this.messages.push(warning) + + return warning + } + + warnings() { + return this.messages.filter(i => i.type === 'warning') + } + + get content() { + return this.css + } +} + +module.exports = Result +Result.default = Result diff --git a/node_modules/postcss/lib/root.d.ts b/node_modules/postcss/lib/root.d.ts new file mode 100644 index 00000000..251b92b4 --- /dev/null +++ b/node_modules/postcss/lib/root.d.ts @@ -0,0 +1,73 @@ +import Container, { ContainerProps } from './container.js' +import Document from './document.js' +import { ProcessOptions } from './postcss.js' +import Result from './result.js' + +interface RootRaws extends Record { + /** + * The space symbols after the last child to the end of file. + */ + after?: string + + /** + * Non-CSS code before `Root`, when `Root` is inside `Document`. + * + * **Experimental:** some aspects of this node could change within minor + * or patch version releases. + */ + codeBefore?: string + + /** + * Non-CSS code after `Root`, when `Root` is inside `Document`. + * + * **Experimental:** some aspects of this node could change within minor + * or patch version releases. + */ + codeAfter?: string + + /** + * Is the last child has an (optional) semicolon. + */ + semicolon?: boolean +} + +export interface RootProps extends ContainerProps { + /** + * Information used to generate byte-to-byte equal node string + * as it was in the origin input. + * */ + raws?: RootRaws +} + +/** + * Represents a CSS file and contains all its parsed nodes. + * + * ```js + * const root = postcss.parse('a{color:black} b{z-index:2}') + * root.type //=> 'root' + * root.nodes.length //=> 2 + * ``` + */ +export default class Root extends Container { + type: 'root' + parent: Document | undefined + raws: RootRaws + + /** + * Returns a `Result` instance representing the root’s CSS. + * + * ```js + * const root1 = postcss.parse(css1, { from: 'a.css' }) + * const root2 = postcss.parse(css2, { from: 'b.css' }) + * root1.append(root2) + * const result = root1.toResult({ to: 'all.css', map: true }) + * ``` + * + * @param opts Options. + * @return Result with current root’s CSS. + */ + toResult(options?: ProcessOptions): Result + + constructor(defaults?: RootProps) + assign(overrides: object | RootProps): this +} diff --git a/node_modules/postcss/lib/root.js b/node_modules/postcss/lib/root.js new file mode 100644 index 00000000..18e4ceaf --- /dev/null +++ b/node_modules/postcss/lib/root.js @@ -0,0 +1,59 @@ +'use strict' + +let Container = require('./container') + +let LazyResult, Processor + +class Root extends Container { + constructor(defaults) { + super(defaults) + this.type = 'root' + if (!this.nodes) this.nodes = [] + } + + removeChild(child, ignore) { + let index = this.index(child) + + if (!ignore && index === 0 && this.nodes.length > 1) { + this.nodes[1].raws.before = this.nodes[index].raws.before + } + + return super.removeChild(child) + } + + normalize(child, sample, type) { + let nodes = super.normalize(child) + + if (sample) { + if (type === 'prepend') { + if (this.nodes.length > 1) { + sample.raws.before = this.nodes[1].raws.before + } else { + delete sample.raws.before + } + } else if (this.first !== sample) { + for (let node of nodes) { + node.raws.before = sample.raws.before + } + } + } + + return nodes + } + + toResult(opts = {}) { + let lazy = new LazyResult(new Processor(), this, opts) + return lazy.stringify() + } +} + +Root.registerLazyResult = dependant => { + LazyResult = dependant +} + +Root.registerProcessor = dependant => { + Processor = dependant +} + +module.exports = Root +Root.default = Root diff --git a/node_modules/postcss/lib/rule.d.ts b/node_modules/postcss/lib/rule.d.ts new file mode 100644 index 00000000..ad6abb5f --- /dev/null +++ b/node_modules/postcss/lib/rule.d.ts @@ -0,0 +1,104 @@ +import Container, { ContainerProps } from './container.js' + +interface RuleRaws extends Record { + /** + * The space symbols before the node. It also stores `*` + * and `_` symbols before the declaration (IE hack). + */ + before?: string + + /** + * The space symbols after the last child of the node to the end of the node. + */ + after?: string + + /** + * The symbols between the selector and `{` for rules. + */ + between?: string + + /** + * Contains `true` if the last child has an (optional) semicolon. + */ + semicolon?: boolean + + /** + * Contains `true` if there is semicolon after rule. + */ + ownSemicolon?: string + + /** + * The rule’s selector with comments. + */ + selector?: { + value: string + raw: string + } +} + +export interface RuleProps extends ContainerProps { + /** Selector or selectors of the rule. */ + selector?: string + /** Selectors of the rule represented as an array of strings. */ + selectors?: string[] + /** Information used to generate byte-to-byte equal node string as it was in the origin input. */ + raws?: RuleRaws +} + +/** + * Represents a CSS rule: a selector followed by a declaration block. + * + * ```js + * Once (root, { Rule }) { + * let a = new Rule({ selector: 'a' }) + * a.append(…) + * root.append(a) + * } + * ``` + * + * ```js + * const root = postcss.parse('a{}') + * const rule = root.first + * rule.type //=> 'rule' + * rule.toString() //=> 'a{}' + * ``` + */ +export default class Rule extends Container { + type: 'rule' + parent: Container | undefined + raws: RuleRaws + + /** + * The rule’s full selector represented as a string. + * + * ```js + * const root = postcss.parse('a, b { }') + * const rule = root.first + * rule.selector //=> 'a, b' + * ``` + */ + selector: string + + /** + * An array containing the rule’s individual selectors. + * Groups of selectors are split at commas. + * + * ```js + * const root = postcss.parse('a, b { }') + * const rule = root.first + * + * rule.selector //=> 'a, b' + * rule.selectors //=> ['a', 'b'] + * + * rule.selectors = ['a', 'strong'] + * rule.selector //=> 'a, strong' + * ``` + */ + selectors: string[] + + constructor(defaults?: RuleProps) + assign(overrides: object | RuleProps): this + clone(overrides?: Partial): this + cloneBefore(overrides?: Partial): this + cloneAfter(overrides?: Partial): this +} diff --git a/node_modules/postcss/lib/rule.js b/node_modules/postcss/lib/rule.js new file mode 100644 index 00000000..a93ab25b --- /dev/null +++ b/node_modules/postcss/lib/rule.js @@ -0,0 +1,27 @@ +'use strict' + +let Container = require('./container') +let list = require('./list') + +class Rule extends Container { + constructor(defaults) { + super(defaults) + this.type = 'rule' + if (!this.nodes) this.nodes = [] + } + + get selectors() { + return list.comma(this.selector) + } + + set selectors(values) { + let match = this.selector ? this.selector.match(/,\s*/) : null + let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen') + this.selector = values.join(sep) + } +} + +module.exports = Rule +Rule.default = Rule + +Container.registerRule(Rule) diff --git a/node_modules/postcss/lib/stringifier.d.ts b/node_modules/postcss/lib/stringifier.d.ts new file mode 100644 index 00000000..23289dfb --- /dev/null +++ b/node_modules/postcss/lib/stringifier.d.ts @@ -0,0 +1,37 @@ +import { + Document, + Root, + Comment, + Declaration, + Builder, + AnyNode, + Rule, + AtRule, + Container +} from './postcss.js' + +export default class Stringifier { + builder: Builder + constructor(builder: Builder) + stringify(node: AnyNode, semicolon?: boolean): void + document(node: Document): void + root(node: Root): void + comment(node: Comment): void + decl(node: Declaration, semicolon?: boolean): void + rule(node: Rule): void + atrule(node: AtRule, semicolon?: boolean): void + body(node: Container): void + block(node: AnyNode, start: string): void + raw(node: AnyNode, own: string | null, detect?: string): string + rawSemicolon(root: Root): boolean | undefined + rawEmptyBody(root: Root): string | undefined + rawIndent(root: Root): string | undefined + rawBeforeComment(root: Root, node: Comment): string | undefined + rawBeforeDecl(root: Root, node: Declaration): string | undefined + rawBeforeRule(root: Root): string | undefined + rawBeforeClose(root: Root): string | undefined + rawBeforeOpen(root: Root): string | undefined + rawColon(root: Root): string | undefined + beforeAfter(node: AnyNode, detect: 'before' | 'after'): string + rawValue(node: AnyNode, prop: string): string +} diff --git a/node_modules/postcss/lib/stringifier.js b/node_modules/postcss/lib/stringifier.js new file mode 100644 index 00000000..4065c475 --- /dev/null +++ b/node_modules/postcss/lib/stringifier.js @@ -0,0 +1,353 @@ +'use strict' + +const DEFAULT_RAW = { + colon: ': ', + indent: ' ', + beforeDecl: '\n', + beforeRule: '\n', + beforeOpen: ' ', + beforeClose: '\n', + beforeComment: '\n', + after: '\n', + emptyBody: '', + commentLeft: ' ', + commentRight: ' ', + semicolon: false +} + +function capitalize(str) { + return str[0].toUpperCase() + str.slice(1) +} + +class Stringifier { + constructor(builder) { + this.builder = builder + } + + stringify(node, semicolon) { + /* c8 ignore start */ + if (!this[node.type]) { + throw new Error( + 'Unknown AST node type ' + + node.type + + '. ' + + 'Maybe you need to change PostCSS stringifier.' + ) + } + /* c8 ignore stop */ + this[node.type](node, semicolon) + } + + document(node) { + this.body(node) + } + + root(node) { + this.body(node) + if (node.raws.after) this.builder(node.raws.after) + } + + comment(node) { + let left = this.raw(node, 'left', 'commentLeft') + let right = this.raw(node, 'right', 'commentRight') + this.builder('/*' + left + node.text + right + '*/', node) + } + + decl(node, semicolon) { + let between = this.raw(node, 'between', 'colon') + let string = node.prop + between + this.rawValue(node, 'value') + + if (node.important) { + string += node.raws.important || ' !important' + } + + if (semicolon) string += ';' + this.builder(string, node) + } + + rule(node) { + this.block(node, this.rawValue(node, 'selector')) + if (node.raws.ownSemicolon) { + this.builder(node.raws.ownSemicolon, node, 'end') + } + } + + atrule(node, semicolon) { + let name = '@' + node.name + let params = node.params ? this.rawValue(node, 'params') : '' + + if (typeof node.raws.afterName !== 'undefined') { + name += node.raws.afterName + } else if (params) { + name += ' ' + } + + if (node.nodes) { + this.block(node, name + params) + } else { + let end = (node.raws.between || '') + (semicolon ? ';' : '') + this.builder(name + params + end, node) + } + } + + body(node) { + let last = node.nodes.length - 1 + while (last > 0) { + if (node.nodes[last].type !== 'comment') break + last -= 1 + } + + let semicolon = this.raw(node, 'semicolon') + for (let i = 0; i < node.nodes.length; i++) { + let child = node.nodes[i] + let before = this.raw(child, 'before') + if (before) this.builder(before) + this.stringify(child, last !== i || semicolon) + } + } + + block(node, start) { + let between = this.raw(node, 'between', 'beforeOpen') + this.builder(start + between + '{', node, 'start') + + let after + if (node.nodes && node.nodes.length) { + this.body(node) + after = this.raw(node, 'after') + } else { + after = this.raw(node, 'after', 'emptyBody') + } + + if (after) this.builder(after) + this.builder('}', node, 'end') + } + + raw(node, own, detect) { + let value + if (!detect) detect = own + + // Already had + if (own) { + value = node.raws[own] + if (typeof value !== 'undefined') return value + } + + let parent = node.parent + + if (detect === 'before') { + // Hack for first rule in CSS + if (!parent || (parent.type === 'root' && parent.first === node)) { + return '' + } + + // `root` nodes in `document` should use only their own raws + if (parent && parent.type === 'document') { + return '' + } + } + + // Floating child without parent + if (!parent) return DEFAULT_RAW[detect] + + // Detect style by other nodes + let root = node.root() + if (!root.rawCache) root.rawCache = {} + if (typeof root.rawCache[detect] !== 'undefined') { + return root.rawCache[detect] + } + + if (detect === 'before' || detect === 'after') { + return this.beforeAfter(node, detect) + } else { + let method = 'raw' + capitalize(detect) + if (this[method]) { + value = this[method](root, node) + } else { + root.walk(i => { + value = i.raws[own] + if (typeof value !== 'undefined') return false + }) + } + } + + if (typeof value === 'undefined') value = DEFAULT_RAW[detect] + + root.rawCache[detect] = value + return value + } + + rawSemicolon(root) { + let value + root.walk(i => { + if (i.nodes && i.nodes.length && i.last.type === 'decl') { + value = i.raws.semicolon + if (typeof value !== 'undefined') return false + } + }) + return value + } + + rawEmptyBody(root) { + let value + root.walk(i => { + if (i.nodes && i.nodes.length === 0) { + value = i.raws.after + if (typeof value !== 'undefined') return false + } + }) + return value + } + + rawIndent(root) { + if (root.raws.indent) return root.raws.indent + let value + root.walk(i => { + let p = i.parent + if (p && p !== root && p.parent && p.parent === root) { + if (typeof i.raws.before !== 'undefined') { + let parts = i.raws.before.split('\n') + value = parts[parts.length - 1] + value = value.replace(/\S/g, '') + return false + } + } + }) + return value + } + + rawBeforeComment(root, node) { + let value + root.walkComments(i => { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, '') + } + return false + } + }) + if (typeof value === 'undefined') { + value = this.raw(node, null, 'beforeDecl') + } else if (value) { + value = value.replace(/\S/g, '') + } + return value + } + + rawBeforeDecl(root, node) { + let value + root.walkDecls(i => { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, '') + } + return false + } + }) + if (typeof value === 'undefined') { + value = this.raw(node, null, 'beforeRule') + } else if (value) { + value = value.replace(/\S/g, '') + } + return value + } + + rawBeforeRule(root) { + let value + root.walk(i => { + if (i.nodes && (i.parent !== root || root.first !== i)) { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, '') + } + return false + } + } + }) + if (value) value = value.replace(/\S/g, '') + return value + } + + rawBeforeClose(root) { + let value + root.walk(i => { + if (i.nodes && i.nodes.length > 0) { + if (typeof i.raws.after !== 'undefined') { + value = i.raws.after + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, '') + } + return false + } + } + }) + if (value) value = value.replace(/\S/g, '') + return value + } + + rawBeforeOpen(root) { + let value + root.walk(i => { + if (i.type !== 'decl') { + value = i.raws.between + if (typeof value !== 'undefined') return false + } + }) + return value + } + + rawColon(root) { + let value + root.walkDecls(i => { + if (typeof i.raws.between !== 'undefined') { + value = i.raws.between.replace(/[^\s:]/g, '') + return false + } + }) + return value + } + + beforeAfter(node, detect) { + let value + if (node.type === 'decl') { + value = this.raw(node, null, 'beforeDecl') + } else if (node.type === 'comment') { + value = this.raw(node, null, 'beforeComment') + } else if (detect === 'before') { + value = this.raw(node, null, 'beforeRule') + } else { + value = this.raw(node, null, 'beforeClose') + } + + let buf = node.parent + let depth = 0 + while (buf && buf.type !== 'root') { + depth += 1 + buf = buf.parent + } + + if (value.includes('\n')) { + let indent = this.raw(node, null, 'indent') + if (indent.length) { + for (let step = 0; step < depth; step++) value += indent + } + } + + return value + } + + rawValue(node, prop) { + let value = node[prop] + let raw = node.raws[prop] + if (raw && raw.value === value) { + return raw.raw + } + + return value + } +} + +module.exports = Stringifier +Stringifier.default = Stringifier diff --git a/node_modules/postcss/lib/stringify.d.ts b/node_modules/postcss/lib/stringify.d.ts new file mode 100644 index 00000000..363682ff --- /dev/null +++ b/node_modules/postcss/lib/stringify.d.ts @@ -0,0 +1,5 @@ +import { Stringifier } from './postcss.js' + +declare const stringify: Stringifier + +export default stringify diff --git a/node_modules/postcss/lib/stringify.js b/node_modules/postcss/lib/stringify.js new file mode 100644 index 00000000..77bd0178 --- /dev/null +++ b/node_modules/postcss/lib/stringify.js @@ -0,0 +1,11 @@ +'use strict' + +let Stringifier = require('./stringifier') + +function stringify(node, builder) { + let str = new Stringifier(builder) + str.stringify(node) +} + +module.exports = stringify +stringify.default = stringify diff --git a/node_modules/postcss/lib/symbols.js b/node_modules/postcss/lib/symbols.js new file mode 100644 index 00000000..a142c268 --- /dev/null +++ b/node_modules/postcss/lib/symbols.js @@ -0,0 +1,5 @@ +'use strict' + +module.exports.isClean = Symbol('isClean') + +module.exports.my = Symbol('my') diff --git a/node_modules/postcss/lib/terminal-highlight.js b/node_modules/postcss/lib/terminal-highlight.js new file mode 100644 index 00000000..1f9f19e7 --- /dev/null +++ b/node_modules/postcss/lib/terminal-highlight.js @@ -0,0 +1,70 @@ +'use strict' + +let pico = require('picocolors') + +let tokenizer = require('./tokenize') + +let Input + +function registerInput(dependant) { + Input = dependant +} + +const HIGHLIGHT_THEME = { + 'brackets': pico.cyan, + 'at-word': pico.cyan, + 'comment': pico.gray, + 'string': pico.green, + 'class': pico.yellow, + 'hash': pico.magenta, + 'call': pico.cyan, + '(': pico.cyan, + ')': pico.cyan, + '{': pico.yellow, + '}': pico.yellow, + '[': pico.yellow, + ']': pico.yellow, + ':': pico.yellow, + ';': pico.yellow +} + +function getTokenType([type, value], processor) { + if (type === 'word') { + if (value[0] === '.') { + return 'class' + } + if (value[0] === '#') { + return 'hash' + } + } + + if (!processor.endOfFile()) { + let next = processor.nextToken() + processor.back(next) + if (next[0] === 'brackets' || next[0] === '(') return 'call' + } + + return type +} + +function terminalHighlight(css) { + let processor = tokenizer(new Input(css), { ignoreErrors: true }) + let result = '' + while (!processor.endOfFile()) { + let token = processor.nextToken() + let color = HIGHLIGHT_THEME[getTokenType(token, processor)] + if (color) { + result += token[1] + .split(/\r?\n/) + .map(i => color(i)) + .join('\n') + } else { + result += token[1] + } + } + return result +} + +terminalHighlight.registerInput = registerInput + +module.exports = terminalHighlight diff --git a/node_modules/postcss/lib/tokenize.js b/node_modules/postcss/lib/tokenize.js new file mode 100644 index 00000000..8dac706f --- /dev/null +++ b/node_modules/postcss/lib/tokenize.js @@ -0,0 +1,266 @@ +'use strict' + +const SINGLE_QUOTE = "'".charCodeAt(0) +const DOUBLE_QUOTE = '"'.charCodeAt(0) +const BACKSLASH = '\\'.charCodeAt(0) +const SLASH = '/'.charCodeAt(0) +const NEWLINE = '\n'.charCodeAt(0) +const SPACE = ' '.charCodeAt(0) +const FEED = '\f'.charCodeAt(0) +const TAB = '\t'.charCodeAt(0) +const CR = '\r'.charCodeAt(0) +const OPEN_SQUARE = '['.charCodeAt(0) +const CLOSE_SQUARE = ']'.charCodeAt(0) +const OPEN_PARENTHESES = '('.charCodeAt(0) +const CLOSE_PARENTHESES = ')'.charCodeAt(0) +const OPEN_CURLY = '{'.charCodeAt(0) +const CLOSE_CURLY = '}'.charCodeAt(0) +const SEMICOLON = ';'.charCodeAt(0) +const ASTERISK = '*'.charCodeAt(0) +const COLON = ':'.charCodeAt(0) +const AT = '@'.charCodeAt(0) + +const RE_AT_END = /[\t\n\f\r "#'()/;[\\\]{}]/g +const RE_WORD_END = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g +const RE_BAD_BRACKET = /.[\n"'(/\\]/ +const RE_HEX_ESCAPE = /[\da-f]/i + +module.exports = function tokenizer(input, options = {}) { + let css = input.css.valueOf() + let ignore = options.ignoreErrors + + let code, next, quote, content, escape + let escaped, escapePos, prev, n, currentToken + + let length = css.length + let pos = 0 + let buffer = [] + let returned = [] + + function position() { + return pos + } + + function unclosed(what) { + throw input.error('Unclosed ' + what, pos) + } + + function endOfFile() { + return returned.length === 0 && pos >= length + } + + function nextToken(opts) { + if (returned.length) return returned.pop() + if (pos >= length) return + + let ignoreUnclosed = opts ? opts.ignoreUnclosed : false + + code = css.charCodeAt(pos) + + switch (code) { + case NEWLINE: + case SPACE: + case TAB: + case CR: + case FEED: { + next = pos + do { + next += 1 + code = css.charCodeAt(next) + } while ( + code === SPACE || + code === NEWLINE || + code === TAB || + code === CR || + code === FEED + ) + + currentToken = ['space', css.slice(pos, next)] + pos = next - 1 + break + } + + case OPEN_SQUARE: + case CLOSE_SQUARE: + case OPEN_CURLY: + case CLOSE_CURLY: + case COLON: + case SEMICOLON: + case CLOSE_PARENTHESES: { + let controlChar = String.fromCharCode(code) + currentToken = [controlChar, controlChar, pos] + break + } + + case OPEN_PARENTHESES: { + prev = buffer.length ? buffer.pop()[1] : '' + n = css.charCodeAt(pos + 1) + if ( + prev === 'url' && + n !== SINGLE_QUOTE && + n !== DOUBLE_QUOTE && + n !== SPACE && + n !== NEWLINE && + n !== TAB && + n !== FEED && + n !== CR + ) { + next = pos + do { + escaped = false + next = css.indexOf(')', next + 1) + if (next === -1) { + if (ignore || ignoreUnclosed) { + next = pos + break + } else { + unclosed('bracket') + } + } + escapePos = next + while (css.charCodeAt(escapePos - 1) === BACKSLASH) { + escapePos -= 1 + escaped = !escaped + } + } while (escaped) + + currentToken = ['brackets', css.slice(pos, next + 1), pos, next] + + pos = next + } else { + next = css.indexOf(')', pos + 1) + content = css.slice(pos, next + 1) + + if (next === -1 || RE_BAD_BRACKET.test(content)) { + currentToken = ['(', '(', pos] + } else { + currentToken = ['brackets', content, pos, next] + pos = next + } + } + + break + } + + case SINGLE_QUOTE: + case DOUBLE_QUOTE: { + quote = code === SINGLE_QUOTE ? "'" : '"' + next = pos + do { + escaped = false + next = css.indexOf(quote, next + 1) + if (next === -1) { + if (ignore || ignoreUnclosed) { + next = pos + 1 + break + } else { + unclosed('string') + } + } + escapePos = next + while (css.charCodeAt(escapePos - 1) === BACKSLASH) { + escapePos -= 1 + escaped = !escaped + } + } while (escaped) + + currentToken = ['string', css.slice(pos, next + 1), pos, next] + pos = next + break + } + + case AT: { + RE_AT_END.lastIndex = pos + 1 + RE_AT_END.test(css) + if (RE_AT_END.lastIndex === 0) { + next = css.length - 1 + } else { + next = RE_AT_END.lastIndex - 2 + } + + currentToken = ['at-word', css.slice(pos, next + 1), pos, next] + + pos = next + break + } + + case BACKSLASH: { + next = pos + escape = true + while (css.charCodeAt(next + 1) === BACKSLASH) { + next += 1 + escape = !escape + } + code = css.charCodeAt(next + 1) + if ( + escape && + code !== SLASH && + code !== SPACE && + code !== NEWLINE && + code !== TAB && + code !== CR && + code !== FEED + ) { + next += 1 + if (RE_HEX_ESCAPE.test(css.charAt(next))) { + while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) { + next += 1 + } + if (css.charCodeAt(next + 1) === SPACE) { + next += 1 + } + } + } + + currentToken = ['word', css.slice(pos, next + 1), pos, next] + + pos = next + break + } + + default: { + if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) { + next = css.indexOf('*/', pos + 2) + 1 + if (next === 0) { + if (ignore || ignoreUnclosed) { + next = css.length + } else { + unclosed('comment') + } + } + + currentToken = ['comment', css.slice(pos, next + 1), pos, next] + pos = next + } else { + RE_WORD_END.lastIndex = pos + 1 + RE_WORD_END.test(css) + if (RE_WORD_END.lastIndex === 0) { + next = css.length - 1 + } else { + next = RE_WORD_END.lastIndex - 2 + } + + currentToken = ['word', css.slice(pos, next + 1), pos, next] + buffer.push(currentToken) + pos = next + } + + break + } + } + + pos++ + return currentToken + } + + function back(token) { + returned.push(token) + } + + return { + back, + nextToken, + endOfFile, + position + } +} diff --git a/node_modules/postcss/lib/warn-once.js b/node_modules/postcss/lib/warn-once.js new file mode 100644 index 00000000..316e1cf4 --- /dev/null +++ b/node_modules/postcss/lib/warn-once.js @@ -0,0 +1,13 @@ +/* eslint-disable no-console */ +'use strict' + +let printed = {} + +module.exports = function warnOnce(message) { + if (printed[message]) return + printed[message] = true + + if (typeof console !== 'undefined' && console.warn) { + console.warn(message) + } +} diff --git a/node_modules/postcss/lib/warning.d.ts b/node_modules/postcss/lib/warning.d.ts new file mode 100644 index 00000000..838bef18 --- /dev/null +++ b/node_modules/postcss/lib/warning.d.ts @@ -0,0 +1,138 @@ +import { RangePosition } from './css-syntax-error.js' +import Node from './node.js' + +export interface WarningOptions { + /** + * CSS node that caused the warning. + */ + node?: Node + + /** + * Word in CSS source that caused the warning. + */ + word?: string + + /** + * Start index, inclusive, in CSS node string that caused the warning. + */ + index?: number + + /** + * End index, exclusive, in CSS node string that caused the warning. + */ + endIndex?: number + + /** + * Start position, inclusive, in CSS node string that caused the warning. + */ + start?: RangePosition + + /** + * End position, exclusive, in CSS node string that caused the warning. + */ + end?: RangePosition + + /** + * Name of the plugin that created this warning. `Result#warn` fills + * this property automatically. + */ + plugin?: string +} + +/** + * Represents a plugin’s warning. It can be created using `Node#warn`. + * + * ```js + * if (decl.important) { + * decl.warn(result, 'Avoid !important', { word: '!important' }) + * } + * ``` + */ +export default class Warning { + /** + * Type to filter warnings from `Result#messages`. + * Always equal to `"warning"`. + */ + type: 'warning' + + /** + * The warning message. + * + * ```js + * warning.text //=> 'Try to avoid !important' + * ``` + */ + text: string + + /** + * The name of the plugin that created this warning. + * When you call `Node#warn` it will fill this property automatically. + * + * ```js + * warning.plugin //=> 'postcss-important' + * ``` + */ + plugin: string + + /** + * Contains the CSS node that caused the warning. + * + * ```js + * warning.node.toString() //=> 'color: white !important' + * ``` + */ + node: Node + + /** + * Line for inclusive start position in the input file with this warning’s source. + * + * ```js + * warning.line //=> 5 + * ``` + */ + line: number + + /** + * Column for inclusive start position in the input file with this warning’s source. + * + * ```js + * warning.column //=> 6 + * ``` + */ + column: number + + /** + * Line for exclusive end position in the input file with this warning’s source. + * + * ```js + * warning.endLine //=> 6 + * ``` + */ + endLine?: number + + /** + * Column for exclusive end position in the input file with this warning’s source. + * + * ```js + * warning.endColumn //=> 4 + * ``` + */ + endColumn?: number + + /** + * @param text Warning message. + * @param opts Warning options. + */ + constructor(text: string, opts?: WarningOptions) + + /** + * Returns a warning position and message. + * + * ```js + * warning.toString() //=> 'postcss-lint:a.css:10:14: Avoid !important' + * ``` + * + * @return Warning position and message. + */ + toString(): string +} diff --git a/node_modules/postcss/lib/warning.js b/node_modules/postcss/lib/warning.js new file mode 100644 index 00000000..65aa5252 --- /dev/null +++ b/node_modules/postcss/lib/warning.js @@ -0,0 +1,37 @@ +'use strict' + +class Warning { + constructor(text, opts = {}) { + this.type = 'warning' + this.text = text + + if (opts.node && opts.node.source) { + let range = opts.node.rangeBy(opts) + this.line = range.start.line + this.column = range.start.column + this.endLine = range.end.line + this.endColumn = range.end.column + } + + for (let opt in opts) this[opt] = opts[opt] + } + + toString() { + if (this.node) { + return this.node.error(this.text, { + plugin: this.plugin, + index: this.index, + word: this.word + }).message + } + + if (this.plugin) { + return this.plugin + ': ' + this.text + } + + return this.text + } +} + +module.exports = Warning +Warning.default = Warning diff --git a/node_modules/postcss/package.json b/node_modules/postcss/package.json new file mode 100755 index 00000000..2fe51ecf --- /dev/null +++ b/node_modules/postcss/package.json @@ -0,0 +1,79 @@ +{ + "name": "postcss", + "version": "8.4.6", + "description": "Tool for transforming styles with JS plugins", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "exports": { + ".": { + "require": "./lib/postcss.js", + "import": "./lib/postcss.mjs", + "types": "./lib/postcss.d.ts" + }, + "./lib/at-rule": "./lib/at-rule.js", + "./lib/comment": "./lib/comment.js", + "./lib/container": "./lib/container.js", + "./lib/css-syntax-error": "./lib/css-syntax-error.js", + "./lib/declaration": "./lib/declaration.js", + "./lib/fromJSON": "./lib/fromJSON.js", + "./lib/input": "./lib/input.js", + "./lib/lazy-result": "./lib/lazy-result.js", + "./lib/no-work-result": "./lib/no-work-result.js", + "./lib/list": "./lib/list.js", + "./lib/map-generator": "./lib/map-generator.js", + "./lib/node": "./lib/node.js", + "./lib/parse": "./lib/parse.js", + "./lib/parser": "./lib/parser.js", + "./lib/postcss": "./lib/postcss.js", + "./lib/previous-map": "./lib/previous-map.js", + "./lib/processor": "./lib/processor.js", + "./lib/result": "./lib/result.js", + "./lib/root": "./lib/root.js", + "./lib/rule": "./lib/rule.js", + "./lib/stringifier": "./lib/stringifier.js", + "./lib/stringify": "./lib/stringify.js", + "./lib/symbols": "./lib/symbols.js", + "./lib/terminal-highlight": "./lib/terminal-highlight.js", + "./lib/tokenize": "./lib/tokenize.js", + "./lib/warn-once": "./lib/warn-once.js", + "./lib/warning": "./lib/warning.js", + "./package.json": "./package.json" + }, + "main": "./lib/postcss.js", + "types": "./lib/postcss.d.ts", + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "author": "Andrey Sitnik ", + "license": "MIT", + "homepage": "https://postcss.org/", + "repository": "postcss/postcss", + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "nanoid": "^3.2.0", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "browser": { + "./lib/terminal-highlight": false, + "source-map-js": false, + "path": false, + "url": false, + "fs": false + } +} diff --git a/node_modules/pretty-hrtime/.jshintignore b/node_modules/pretty-hrtime/.jshintignore new file mode 100644 index 00000000..cb28eb3c --- /dev/null +++ b/node_modules/pretty-hrtime/.jshintignore @@ -0,0 +1 @@ +node_modules/** diff --git a/node_modules/pretty-hrtime/.npmignore b/node_modules/pretty-hrtime/.npmignore new file mode 100644 index 00000000..094a5f35 --- /dev/null +++ b/node_modules/pretty-hrtime/.npmignore @@ -0,0 +1,10 @@ +.DS_Store +*.log +node_modules +build +*.node +components +*.orig +.idea +test +.travis.yml diff --git a/node_modules/pretty-hrtime/LICENSE b/node_modules/pretty-hrtime/LICENSE new file mode 100644 index 00000000..b7346abd --- /dev/null +++ b/node_modules/pretty-hrtime/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2013 [Richardson & Sons, LLC](http://richardsonandsons.com/) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/pretty-hrtime/README.md b/node_modules/pretty-hrtime/README.md new file mode 100644 index 00000000..f4be28dd --- /dev/null +++ b/node_modules/pretty-hrtime/README.md @@ -0,0 +1,57 @@ +[![Build Status](https://secure.travis-ci.org/robrich/pretty-hrtime.png?branch=master)](https://travis-ci.org/robrich/pretty-hrtime) +[![Dependency Status](https://david-dm.org/robrich/pretty-hrtime.png)](https://david-dm.org/robrich/pretty-hrtime) + +pretty-hrtime +============ + +[process.hrtime()](http://nodejs.org/api/process.html#process_process_hrtime) to words + +Usage +----- + +```javascript +var prettyHrtime = require('pretty-hrtime'); + +var start = process.hrtime(); +// do stuff +var end = process.hrtime(start); + +var words = prettyHrtime(end); +console.log(words); // '1.2 ms' + +words = prettyHrtime(end, {verbose:true}); +console.log(words); // '1 millisecond 209 microseconds' + +words = prettyHrtime(end, {precise:true}); +console.log(words); // '1.20958 ms' +``` + +Note: process.hrtime() has been available since 0.7.6. +See [http://nodejs.org/changelog.html](http://nodejs.org/changelog.html) +and [https://github.com/joyent/node/commit/f06abd](https://github.com/joyent/node/commit/f06abd). + +LICENSE +------- + +(MIT License) + +Copyright (c) 2013 [Richardson & Sons, LLC](http://richardsonandsons.com/) + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/pretty-hrtime/index.js b/node_modules/pretty-hrtime/index.js new file mode 100644 index 00000000..bed3f899 --- /dev/null +++ b/node_modules/pretty-hrtime/index.js @@ -0,0 +1,80 @@ +/*jshint node:true */ + +"use strict"; + +var minimalDesc = ['h', 'min', 's', 'ms', 'μs', 'ns']; +var verboseDesc = ['hour', 'minute', 'second', 'millisecond', 'microsecond', 'nanosecond']; +var convert = [60*60, 60, 1, 1e6, 1e3, 1]; + +module.exports = function (source, opts) { + var verbose, precise, i, spot, sourceAtStep, valAtStep, decimals, strAtStep, results, totalSeconds; + + verbose = false; + precise = false; + if (opts) { + verbose = opts.verbose || false; + precise = opts.precise || false; + } + + if (!Array.isArray(source) || source.length !== 2) { + return ''; + } + if (typeof source[0] !== 'number' || typeof source[1] !== 'number') { + return ''; + } + + // normalize source array due to changes in node v5.4+ + if (source[1] < 0) { + totalSeconds = source[0] + source[1] / 1e9; + source[0] = parseInt(totalSeconds); + source[1] = parseFloat((totalSeconds % 1).toPrecision(9)) * 1e9; + } + + results = ''; + + // foreach unit + for (i = 0; i < 6; i++) { + spot = i < 3 ? 0 : 1; // grabbing first or second spot in source array + sourceAtStep = source[spot]; + if (i !== 3 && i !== 0) { + sourceAtStep = sourceAtStep % convert[i-1]; // trim off previous portions + } + if (i === 2) { + sourceAtStep += source[1]/1e9; // get partial seconds from other portion of the array + } + valAtStep = sourceAtStep / convert[i]; // val at this unit + if (valAtStep >= 1) { + if (verbose) { + valAtStep = Math.floor(valAtStep); // deal in whole units, subsequent laps will get the decimal portion + } + if (!precise) { + // don't fling too many decimals + decimals = valAtStep >= 10 ? 0 : 2; + strAtStep = valAtStep.toFixed(decimals); + } else { + strAtStep = valAtStep.toString(); + } + if (strAtStep.indexOf('.') > -1 && strAtStep[strAtStep.length-1] === '0') { + strAtStep = strAtStep.replace(/\.?0+$/,''); // remove trailing zeros + } + if (results) { + results += ' '; // append space if we have a previous value + } + results += strAtStep; // append the value + // append units + if (verbose) { + results += ' '+verboseDesc[i]; + if (strAtStep !== '1') { + results += 's'; + } + } else { + results += ' '+minimalDesc[i]; + } + if (!verbose) { + break; // verbose gets as many groups as necessary, the rest get only one + } + } + } + + return results; +}; diff --git a/node_modules/pretty-hrtime/package.json b/node_modules/pretty-hrtime/package.json new file mode 100644 index 00000000..e4a7985c --- /dev/null +++ b/node_modules/pretty-hrtime/package.json @@ -0,0 +1,25 @@ +{ + "name": "pretty-hrtime", + "description": "process.hrtime() to words", + "version": "1.0.3", + "homepage": "https://github.com/robrich/pretty-hrtime", + "repository": "git://github.com/robrich/pretty-hrtime.git", + "author": "Rob Richardson (http://robrich.org/)", + "main": "./index.js", + "keywords": [ + "hrtime", + "benchmark" + ], + "devDependencies": { + "jshint": "^2.9.4", + "mocha": "^3.1.2", + "should": "^11.1.1" + }, + "scripts": { + "test": "mocha && jshint ." + }, + "engines": { + "node": ">= 0.8" + }, + "license": "MIT" +} diff --git a/node_modules/queue-microtask/LICENSE b/node_modules/queue-microtask/LICENSE new file mode 100755 index 00000000..c7e68527 --- /dev/null +++ b/node_modules/queue-microtask/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/queue-microtask/README.md b/node_modules/queue-microtask/README.md new file mode 100644 index 00000000..0be05a64 --- /dev/null +++ b/node_modules/queue-microtask/README.md @@ -0,0 +1,90 @@ +# queue-microtask [![ci][ci-image]][ci-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[ci-image]: https://img.shields.io/github/workflow/status/feross/queue-microtask/ci/master +[ci-url]: https://github.com/feross/queue-microtask/actions +[npm-image]: https://img.shields.io/npm/v/queue-microtask.svg +[npm-url]: https://npmjs.org/package/queue-microtask +[downloads-image]: https://img.shields.io/npm/dm/queue-microtask.svg +[downloads-url]: https://npmjs.org/package/queue-microtask +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +### fast, tiny [`queueMicrotask`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/queueMicrotask) shim for modern engines + +- Use [`queueMicrotask`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/queueMicrotask) in all modern JS engines. +- No dependencies. Less than 10 lines. No shims or complicated fallbacks. +- Optimal performance in all modern environments + - Uses `queueMicrotask` in modern environments + - Fallback to `Promise.resolve().then(fn)` in Node.js 10 and earlier, and old browsers (same performance as `queueMicrotask`) + +## install + +``` +npm install queue-microtask +``` + +## usage + +```js +const queueMicrotask = require('queue-microtask') + +queueMicrotask(() => { /* this will run soon */ }) +``` + +## What is `queueMicrotask` and why would one use it? + +The `queueMicrotask` function is a WHATWG standard. It queues a microtask to be executed prior to control returning to the event loop. + +A microtask is a short function which will run after the current task has completed its work and when there is no other code waiting to be run before control of the execution context is returned to the event loop. + +The code `queueMicrotask(fn)` is equivalent to the code `Promise.resolve().then(fn)`. It is also very similar to [`process.nextTick(fn)`](https://nodejs.org/api/process.html#process_process_nexttick_callback_args) in Node. + +Using microtasks lets code run without interfering with any other, potentially higher priority, code that is pending, but before the JS engine regains control over the execution context. + +See the [spec](https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#microtask-queuing) or [Node documentation](https://nodejs.org/api/globals.html#globals_queuemicrotask_callback) for more information. + +## Who is this package for? + +This package allows you to use `queueMicrotask` safely in all modern JS engines. Use it if you prioritize small JS bundle size over support for old browsers. + +If you just need to support Node 12 and later, use `queueMicrotask` directly. If you need to support all versions of Node, use this package. + +## Why not use `process.nextTick`? + +In Node, `queueMicrotask` and `process.nextTick` are [essentially equivalent](https://nodejs.org/api/globals.html#globals_queuemicrotask_callback), though there are [subtle differences](https://github.com/YuzuJS/setImmediate#macrotasks-and-microtasks) that don't matter in most situations. + +You can think of `queueMicrotask` as a standardized version of `process.nextTick` that works in the browser. No need to rely on your browser bundler to shim `process` for the browser environment. + +## Why not use `setTimeout(fn, 0)`? + +This approach is the most compatible, but it has problems. Modern browsers throttle timers severely, so `setTimeout(…, 0)` usually takes at least 4ms to run. Furthermore, the throttling gets even worse if the page is backgrounded. If you have many `setTimeout` calls, then this can severely limit the performance of your program. + +## Why not use a microtask library like [`immediate`](https://www.npmjs.com/package/immediate) or [`asap`](https://www.npmjs.com/package/asap)? + +These packages are great! However, if you prioritize small JS bundle size over optimal performance in old browsers then you may want to consider this package. + +This package (`queue-microtask`) is four times smaller than `immediate`, twice as small as `asap`, and twice as small as using `process.nextTick` and letting the browser bundler shim it automatically. + +Note: This package throws an exception in JS environments which lack `Promise` support -- which are usually very old browsers and Node.js versions. + +Since the `queueMicrotask` API is supported in Node.js, Chrome, Firefox, Safari, Opera, and Edge, **the vast majority of users will get optimal performance**. Any JS environment with `Promise`, which is almost all of them, also get optimal performance. If you need support for JS environments which lack `Promise` support, use one of the alternative packages. + +## What is a shim? + +> In computer programming, a shim is a library that transparently intercepts API calls and changes the arguments passed, handles the operation itself or redirects the operation elsewhere. – [Wikipedia](https://en.wikipedia.org/wiki/Shim_(computing)) + +This package could also be described as a "ponyfill". + +> A ponyfill is almost the same as a polyfill, but not quite. Instead of patching functionality for older browsers, a ponyfill provides that functionality as a standalone module you can use. – [PonyFoo](https://ponyfoo.com/articles/polyfills-or-ponyfills) + +## API + +### `queueMicrotask(fn)` + +The `queueMicrotask()` method queues a microtask. + +The `fn` argument is a function to be executed after all pending tasks have completed but before yielding control to the browser's event loop. + +## license + +MIT. Copyright (c) [Feross Aboukhadijeh](https://feross.org). diff --git a/node_modules/queue-microtask/index.d.ts b/node_modules/queue-microtask/index.d.ts new file mode 100644 index 00000000..b6a86463 --- /dev/null +++ b/node_modules/queue-microtask/index.d.ts @@ -0,0 +1,2 @@ +declare const queueMicrotask: (cb: () => void) => void +export = queueMicrotask diff --git a/node_modules/queue-microtask/index.js b/node_modules/queue-microtask/index.js new file mode 100644 index 00000000..55605343 --- /dev/null +++ b/node_modules/queue-microtask/index.js @@ -0,0 +1,9 @@ +/*! queue-microtask. MIT License. Feross Aboukhadijeh */ +let promise + +module.exports = typeof queueMicrotask === 'function' + ? queueMicrotask.bind(typeof window !== 'undefined' ? window : global) + // reuse resolved promise, and allocate it lazily + : cb => (promise || (promise = Promise.resolve())) + .then(cb) + .catch(err => setTimeout(() => { throw err }, 0)) diff --git a/node_modules/queue-microtask/package.json b/node_modules/queue-microtask/package.json new file mode 100644 index 00000000..d29a401f --- /dev/null +++ b/node_modules/queue-microtask/package.json @@ -0,0 +1,55 @@ +{ + "name": "queue-microtask", + "description": "fast, tiny `queueMicrotask` shim for modern engines", + "version": "1.2.3", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "https://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/queue-microtask/issues" + }, + "devDependencies": { + "standard": "*", + "tape": "^5.2.2" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "homepage": "https://github.com/feross/queue-microtask", + "keywords": [ + "asap", + "immediate", + "micro task", + "microtask", + "nextTick", + "process.nextTick", + "queue micro task", + "queue microtask", + "queue-microtask", + "queueMicrotask", + "setImmediate", + "task" + ], + "license": "MIT", + "main": "index.js", + "repository": { + "type": "git", + "url": "git://github.com/feross/queue-microtask.git" + }, + "scripts": { + "test": "standard && tape test/*.js" + } +} diff --git a/node_modules/read-cache/LICENSE b/node_modules/read-cache/LICENSE new file mode 100644 index 00000000..4b98a41f --- /dev/null +++ b/node_modules/read-cache/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2016 Bogdan Chadkin + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/read-cache/README.md b/node_modules/read-cache/README.md new file mode 100644 index 00000000..16a5c36e --- /dev/null +++ b/node_modules/read-cache/README.md @@ -0,0 +1,46 @@ +# read-cache [![Build Status](https://travis-ci.org/TrySound/read-cache.svg?branch=master)](https://travis-ci.org/TrySound/read-cache) + +Reads and caches the entire contents of a file until it is modified. + + +## Install + +``` +$ npm i read-cache +``` + + +## Usage + +```js +// foo.js +var readCache = require('read-cache'); + +readCache('foo.js').then(function (contents) { + console.log(contents); +}); +``` + + +## API + +### readCache(path[, encoding]) + +Returns a promise that resolves with the file's contents. + +### readCache.sync(path[, encoding]) + +Returns the content of the file. + +### readCache.get(path[, encoding]) + +Returns the content of cached file or null. + +### readCache.clear() + +Clears the contents of the cache. + + +## License + +MIT © [Bogdan Chadkin](mailto:trysound@yandex.ru) diff --git a/node_modules/read-cache/index.js b/node_modules/read-cache/index.js new file mode 100644 index 00000000..b5263e68 --- /dev/null +++ b/node_modules/read-cache/index.js @@ -0,0 +1,78 @@ +var fs = require('fs'); +var path = require('path'); +var pify = require('pify'); + +var stat = pify(fs.stat); +var readFile = pify(fs.readFile); +var resolve = path.resolve; + +var cache = Object.create(null); + +function convert(content, encoding) { + if (Buffer.isEncoding(encoding)) { + return content.toString(encoding); + } + return content; +} + +module.exports = function (path, encoding) { + path = resolve(path); + + return stat(path).then(function (stats) { + var item = cache[path]; + + if (item && item.mtime.getTime() === stats.mtime.getTime()) { + return convert(item.content, encoding); + } + + return readFile(path).then(function (data) { + cache[path] = { + mtime: stats.mtime, + content: data + }; + + return convert(data, encoding); + }); + }).catch(function (err) { + cache[path] = null; + return Promise.reject(err); + }); +}; + +module.exports.sync = function (path, encoding) { + path = resolve(path); + + try { + var stats = fs.statSync(path); + var item = cache[path]; + + if (item && item.mtime.getTime() === stats.mtime.getTime()) { + return convert(item.content, encoding); + } + + var data = fs.readFileSync(path); + + cache[path] = { + mtime: stats.mtime, + content: data + }; + + return convert(data, encoding); + } catch (err) { + cache[path] = null; + throw err; + } + +}; + +module.exports.get = function (path, encoding) { + path = resolve(path); + if (cache[path]) { + return convert(cache[path].content, encoding); + } + return null; +}; + +module.exports.clear = function () { + cache = Object.create(null); +}; diff --git a/node_modules/read-cache/package.json b/node_modules/read-cache/package.json new file mode 100644 index 00000000..87199b0e --- /dev/null +++ b/node_modules/read-cache/package.json @@ -0,0 +1,34 @@ +{ + "name": "read-cache", + "version": "1.0.0", + "description": "Reads and caches the entire contents of a file until it is modified", + "files": [ + "index.js" + ], + "main": "index.js", + "scripts": { + "test": "ava" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/TrySound/read-cache.git" + }, + "keywords": [ + "fs", + "read", + "cache" + ], + "author": "Bogdan Chadkin ", + "license": "MIT", + "bugs": { + "url": "https://github.com/TrySound/read-cache/issues" + }, + "homepage": "https://github.com/TrySound/read-cache#readme", + "devDependencies": { + "ava": "^0.9.1", + "del": "^2.2.0" + }, + "dependencies": { + "pify": "^2.3.0" + } +} diff --git a/node_modules/readdirp/LICENSE b/node_modules/readdirp/LICENSE new file mode 100644 index 00000000..037cbb4e --- /dev/null +++ b/node_modules/readdirp/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/readdirp/README.md b/node_modules/readdirp/README.md new file mode 100644 index 00000000..465593c9 --- /dev/null +++ b/node_modules/readdirp/README.md @@ -0,0 +1,122 @@ +# readdirp [![Weekly downloads](https://img.shields.io/npm/dw/readdirp.svg)](https://github.com/paulmillr/readdirp) + +Recursive version of [fs.readdir](https://nodejs.org/api/fs.html#fs_fs_readdir_path_options_callback). Exposes a **stream API** and a **promise API**. + + +```sh +npm install readdirp +``` + +```javascript +const readdirp = require('readdirp'); + +// Use streams to achieve small RAM & CPU footprint. +// 1) Streams example with for-await. +for await (const entry of readdirp('.')) { + const {path} = entry; + console.log(`${JSON.stringify({path})}`); +} + +// 2) Streams example, non for-await. +// Print out all JS files along with their size within the current folder & subfolders. +readdirp('.', {fileFilter: '*.js', alwaysStat: true}) + .on('data', (entry) => { + const {path, stats: {size}} = entry; + console.log(`${JSON.stringify({path, size})}`); + }) + // Optionally call stream.destroy() in `warn()` in order to abort and cause 'close' to be emitted + .on('warn', error => console.error('non-fatal error', error)) + .on('error', error => console.error('fatal error', error)) + .on('end', () => console.log('done')); + +// 3) Promise example. More RAM and CPU than streams / for-await. +const files = await readdirp.promise('.'); +console.log(files.map(file => file.path)); + +// Other options. +readdirp('test', { + fileFilter: '*.js', + directoryFilter: ['!.git', '!*modules'] + // directoryFilter: (di) => di.basename.length === 9 + type: 'files_directories', + depth: 1 +}); +``` + +For more examples, check out `examples` directory. + +## API + +`const stream = readdirp(root[, options])` — **Stream API** + +- Reads given root recursively and returns a `stream` of [entry infos](#entryinfo) +- Optionally can be used like `for await (const entry of stream)` with node.js 10+ (`asyncIterator`). +- `on('data', (entry) => {})` [entry info](#entryinfo) for every file / dir. +- `on('warn', (error) => {})` non-fatal `Error` that prevents a file / dir from being processed. Example: inaccessible to the user. +- `on('error', (error) => {})` fatal `Error` which also ends the stream. Example: illegal options where passed. +- `on('end')` — we are done. Called when all entries were found and no more will be emitted. +- `on('close')` — stream is destroyed via `stream.destroy()`. + Could be useful if you want to manually abort even on a non fatal error. + At that point the stream is no longer `readable` and no more entries, warning or errors are emitted +- To learn more about streams, consult the very detailed [nodejs streams documentation](https://nodejs.org/api/stream.html) + or the [stream-handbook](https://github.com/substack/stream-handbook) + +`const entries = await readdirp.promise(root[, options])` — **Promise API**. Returns a list of [entry infos](#entryinfo). + +First argument is awalys `root`, path in which to start reading and recursing into subdirectories. + +### options + +- `fileFilter: ["*.js"]`: filter to include or exclude files. A `Function`, Glob string or Array of glob strings. + - **Function**: a function that takes an entry info as a parameter and returns true to include or false to exclude the entry + - **Glob string**: a string (e.g., `*.js`) which is matched using [picomatch](https://github.com/micromatch/picomatch), so go there for more + information. Globstars (`**`) are not supported since specifying a recursive pattern for an already recursive function doesn't make sense. Negated globs (as explained in the minimatch documentation) are allowed, e.g., `!*.txt` matches everything but text files. + - **Array of glob strings**: either need to be all inclusive or all exclusive (negated) patterns otherwise an error is thrown. + `['*.json', '*.js']` includes all JavaScript and Json files. + `['!.git', '!node_modules']` includes all directories except the '.git' and 'node_modules'. + - Directories that do not pass a filter will not be recursed into. +- `directoryFilter: ['!.git']`: filter to include/exclude directories found and to recurse into. Directories that do not pass a filter will not be recursed into. +- `depth: 5`: depth at which to stop recursing even if more subdirectories are found +- `type: 'files'`: determines if data events on the stream should be emitted for `'files'` (default), `'directories'`, `'files_directories'`, or `'all'`. Setting to `'all'` will also include entries for other types of file descriptors like character devices, unix sockets and named pipes. +- `alwaysStat: false`: always return `stats` property for every file. Default is `false`, readdirp will return `Dirent` entries. Setting it to `true` can double readdir execution time - use it only when you need file `size`, `mtime` etc. Cannot be enabled on node <10.10.0. +- `lstat: false`: include symlink entries in the stream along with files. When `true`, `fs.lstat` would be used instead of `fs.stat` + +### `EntryInfo` + +Has the following properties: + +- `path: 'assets/javascripts/react.js'`: path to the file/directory (relative to given root) +- `fullPath: '/Users/dev/projects/app/assets/javascripts/react.js'`: full path to the file/directory found +- `basename: 'react.js'`: name of the file/directory +- `dirent: fs.Dirent`: built-in [dir entry object](https://nodejs.org/api/fs.html#fs_class_fs_dirent) - only with `alwaysStat: false` +- `stats: fs.Stats`: built in [stat object](https://nodejs.org/api/fs.html#fs_class_fs_stats) - only with `alwaysStat: true` + +## Changelog + +- 3.5 (Oct 13, 2020) disallows recursive directory-based symlinks. + Before, it could have entered infinite loop. +- 3.4 (Mar 19, 2020) adds support for directory-based symlinks. +- 3.3 (Dec 6, 2019) stabilizes RAM consumption and enables perf management with `highWaterMark` option. Fixes race conditions related to `for-await` looping. +- 3.2 (Oct 14, 2019) improves performance by 250% and makes streams implementation more idiomatic. +- 3.1 (Jul 7, 2019) brings `bigint` support to `stat` output on Windows. This is backwards-incompatible for some cases. Be careful. It you use it incorrectly, you'll see "TypeError: Cannot mix BigInt and other types, use explicit conversions". +- 3.0 brings huge performance improvements and stream backpressure support. +- Upgrading 2.x to 3.x: + - Signature changed from `readdirp(options)` to `readdirp(root, options)` + - Replaced callback API with promise API. + - Renamed `entryType` option to `type` + - Renamed `entryType: 'both'` to `'files_directories'` + - `EntryInfo` + - Renamed `stat` to `stats` + - Emitted only when `alwaysStat: true` + - `dirent` is emitted instead of `stats` by default with `alwaysStat: false` + - Renamed `name` to `basename` + - Removed `parentDir` and `fullParentDir` properties +- Supported node.js versions: + - 3.x: node 8+ + - 2.x: node 0.6+ + +## License + +Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller () + +MIT License, see [LICENSE](LICENSE) file. diff --git a/node_modules/readdirp/index.d.ts b/node_modules/readdirp/index.d.ts new file mode 100644 index 00000000..cbbd76ca --- /dev/null +++ b/node_modules/readdirp/index.d.ts @@ -0,0 +1,43 @@ +// TypeScript Version: 3.2 + +/// + +import * as fs from 'fs'; +import { Readable } from 'stream'; + +declare namespace readdir { + interface EntryInfo { + path: string; + fullPath: string; + basename: string; + stats?: fs.Stats; + dirent?: fs.Dirent; + } + + interface ReaddirpOptions { + root?: string; + fileFilter?: string | string[] | ((entry: EntryInfo) => boolean); + directoryFilter?: string | string[] | ((entry: EntryInfo) => boolean); + type?: 'files' | 'directories' | 'files_directories' | 'all'; + lstat?: boolean; + depth?: number; + alwaysStat?: boolean; + } + + interface ReaddirpStream extends Readable, AsyncIterable { + read(): EntryInfo; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + + function promise( + root: string, + options?: ReaddirpOptions + ): Promise; +} + +declare function readdir( + root: string, + options?: readdir.ReaddirpOptions +): readdir.ReaddirpStream; + +export = readdir; diff --git a/node_modules/readdirp/index.js b/node_modules/readdirp/index.js new file mode 100644 index 00000000..cf739b2d --- /dev/null +++ b/node_modules/readdirp/index.js @@ -0,0 +1,287 @@ +'use strict'; + +const fs = require('fs'); +const { Readable } = require('stream'); +const sysPath = require('path'); +const { promisify } = require('util'); +const picomatch = require('picomatch'); + +const readdir = promisify(fs.readdir); +const stat = promisify(fs.stat); +const lstat = promisify(fs.lstat); +const realpath = promisify(fs.realpath); + +/** + * @typedef {Object} EntryInfo + * @property {String} path + * @property {String} fullPath + * @property {fs.Stats=} stats + * @property {fs.Dirent=} dirent + * @property {String} basename + */ + +const BANG = '!'; +const RECURSIVE_ERROR_CODE = 'READDIRP_RECURSIVE_ERROR'; +const NORMAL_FLOW_ERRORS = new Set(['ENOENT', 'EPERM', 'EACCES', 'ELOOP', RECURSIVE_ERROR_CODE]); +const FILE_TYPE = 'files'; +const DIR_TYPE = 'directories'; +const FILE_DIR_TYPE = 'files_directories'; +const EVERYTHING_TYPE = 'all'; +const ALL_TYPES = [FILE_TYPE, DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE]; + +const isNormalFlowError = error => NORMAL_FLOW_ERRORS.has(error.code); +const [maj, min] = process.versions.node.split('.').slice(0, 2).map(n => Number.parseInt(n, 10)); +const wantBigintFsStats = process.platform === 'win32' && (maj > 10 || (maj === 10 && min >= 5)); + +const normalizeFilter = filter => { + if (filter === undefined) return; + if (typeof filter === 'function') return filter; + + if (typeof filter === 'string') { + const glob = picomatch(filter.trim()); + return entry => glob(entry.basename); + } + + if (Array.isArray(filter)) { + const positive = []; + const negative = []; + for (const item of filter) { + const trimmed = item.trim(); + if (trimmed.charAt(0) === BANG) { + negative.push(picomatch(trimmed.slice(1))); + } else { + positive.push(picomatch(trimmed)); + } + } + + if (negative.length > 0) { + if (positive.length > 0) { + return entry => + positive.some(f => f(entry.basename)) && !negative.some(f => f(entry.basename)); + } + return entry => !negative.some(f => f(entry.basename)); + } + return entry => positive.some(f => f(entry.basename)); + } +}; + +class ReaddirpStream extends Readable { + static get defaultOptions() { + return { + root: '.', + /* eslint-disable no-unused-vars */ + fileFilter: (path) => true, + directoryFilter: (path) => true, + /* eslint-enable no-unused-vars */ + type: FILE_TYPE, + lstat: false, + depth: 2147483648, + alwaysStat: false + }; + } + + constructor(options = {}) { + super({ + objectMode: true, + autoDestroy: true, + highWaterMark: options.highWaterMark || 4096 + }); + const opts = { ...ReaddirpStream.defaultOptions, ...options }; + const { root, type } = opts; + + this._fileFilter = normalizeFilter(opts.fileFilter); + this._directoryFilter = normalizeFilter(opts.directoryFilter); + + const statMethod = opts.lstat ? lstat : stat; + // Use bigint stats if it's windows and stat() supports options (node 10+). + if (wantBigintFsStats) { + this._stat = path => statMethod(path, { bigint: true }); + } else { + this._stat = statMethod; + } + + this._maxDepth = opts.depth; + this._wantsDir = [DIR_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type); + this._wantsFile = [FILE_TYPE, FILE_DIR_TYPE, EVERYTHING_TYPE].includes(type); + this._wantsEverything = type === EVERYTHING_TYPE; + this._root = sysPath.resolve(root); + this._isDirent = ('Dirent' in fs) && !opts.alwaysStat; + this._statsProp = this._isDirent ? 'dirent' : 'stats'; + this._rdOptions = { encoding: 'utf8', withFileTypes: this._isDirent }; + + // Launch stream with one parent, the root dir. + this.parents = [this._exploreDir(root, 1)]; + this.reading = false; + this.parent = undefined; + } + + async _read(batch) { + if (this.reading) return; + this.reading = true; + + try { + while (!this.destroyed && batch > 0) { + const { path, depth, files = [] } = this.parent || {}; + + if (files.length > 0) { + const slice = files.splice(0, batch).map(dirent => this._formatEntry(dirent, path)); + for (const entry of await Promise.all(slice)) { + if (this.destroyed) return; + + const entryType = await this._getEntryType(entry); + if (entryType === 'directory' && this._directoryFilter(entry)) { + if (depth <= this._maxDepth) { + this.parents.push(this._exploreDir(entry.fullPath, depth + 1)); + } + + if (this._wantsDir) { + this.push(entry); + batch--; + } + } else if ((entryType === 'file' || this._includeAsFile(entry)) && this._fileFilter(entry)) { + if (this._wantsFile) { + this.push(entry); + batch--; + } + } + } + } else { + const parent = this.parents.pop(); + if (!parent) { + this.push(null); + break; + } + this.parent = await parent; + if (this.destroyed) return; + } + } + } catch (error) { + this.destroy(error); + } finally { + this.reading = false; + } + } + + async _exploreDir(path, depth) { + let files; + try { + files = await readdir(path, this._rdOptions); + } catch (error) { + this._onError(error); + } + return { files, depth, path }; + } + + async _formatEntry(dirent, path) { + let entry; + try { + const basename = this._isDirent ? dirent.name : dirent; + const fullPath = sysPath.resolve(sysPath.join(path, basename)); + entry = { path: sysPath.relative(this._root, fullPath), fullPath, basename }; + entry[this._statsProp] = this._isDirent ? dirent : await this._stat(fullPath); + } catch (err) { + this._onError(err); + } + return entry; + } + + _onError(err) { + if (isNormalFlowError(err) && !this.destroyed) { + this.emit('warn', err); + } else { + this.destroy(err); + } + } + + async _getEntryType(entry) { + // entry may be undefined, because a warning or an error were emitted + // and the statsProp is undefined + const stats = entry && entry[this._statsProp]; + if (!stats) { + return; + } + if (stats.isFile()) { + return 'file'; + } + if (stats.isDirectory()) { + return 'directory'; + } + if (stats && stats.isSymbolicLink()) { + const full = entry.fullPath; + try { + const entryRealPath = await realpath(full); + const entryRealPathStats = await lstat(entryRealPath); + if (entryRealPathStats.isFile()) { + return 'file'; + } + if (entryRealPathStats.isDirectory()) { + const len = entryRealPath.length; + if (full.startsWith(entryRealPath) && full.substr(len, 1) === sysPath.sep) { + const recursiveError = new Error( + `Circular symlink detected: "${full}" points to "${entryRealPath}"` + ); + recursiveError.code = RECURSIVE_ERROR_CODE; + return this._onError(recursiveError); + } + return 'directory'; + } + } catch (error) { + this._onError(error); + } + } + } + + _includeAsFile(entry) { + const stats = entry && entry[this._statsProp]; + + return stats && this._wantsEverything && !stats.isDirectory(); + } +} + +/** + * @typedef {Object} ReaddirpArguments + * @property {Function=} fileFilter + * @property {Function=} directoryFilter + * @property {String=} type + * @property {Number=} depth + * @property {String=} root + * @property {Boolean=} lstat + * @property {Boolean=} bigint + */ + +/** + * Main function which ends up calling readdirRec and reads all files and directories in given root recursively. + * @param {String} root Root directory + * @param {ReaddirpArguments=} options Options to specify root (start directory), filters and recursion depth + */ +const readdirp = (root, options = {}) => { + let type = options.entryType || options.type; + if (type === 'both') type = FILE_DIR_TYPE; // backwards-compatibility + if (type) options.type = type; + if (!root) { + throw new Error('readdirp: root argument is required. Usage: readdirp(root, options)'); + } else if (typeof root !== 'string') { + throw new TypeError('readdirp: root argument must be a string. Usage: readdirp(root, options)'); + } else if (type && !ALL_TYPES.includes(type)) { + throw new Error(`readdirp: Invalid type passed. Use one of ${ALL_TYPES.join(', ')}`); + } + + options.root = root; + return new ReaddirpStream(options); +}; + +const readdirpPromise = (root, options = {}) => { + return new Promise((resolve, reject) => { + const files = []; + readdirp(root, options) + .on('data', entry => files.push(entry)) + .on('end', () => resolve(files)) + .on('error', error => reject(error)); + }); +}; + +readdirp.promise = readdirpPromise; +readdirp.ReaddirpStream = ReaddirpStream; +readdirp.default = readdirp; + +module.exports = readdirp; diff --git a/node_modules/readdirp/package.json b/node_modules/readdirp/package.json new file mode 100644 index 00000000..dba53888 --- /dev/null +++ b/node_modules/readdirp/package.json @@ -0,0 +1,122 @@ +{ + "name": "readdirp", + "description": "Recursive version of fs.readdir with streaming API.", + "version": "3.6.0", + "homepage": "https://github.com/paulmillr/readdirp", + "repository": { + "type": "git", + "url": "git://github.com/paulmillr/readdirp.git" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/paulmillr/readdirp/issues" + }, + "author": "Thorsten Lorenz (thlorenz.com)", + "contributors": [ + "Thorsten Lorenz (thlorenz.com)", + "Paul Miller (https://paulmillr.com)" + ], + "main": "index.js", + "engines": { + "node": ">=8.10.0" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "recursive", + "fs", + "stream", + "streams", + "readdir", + "filesystem", + "find", + "filter" + ], + "scripts": { + "dtslint": "dtslint", + "nyc": "nyc", + "mocha": "mocha --exit", + "lint": "eslint --report-unused-disable-directives --ignore-path .gitignore .", + "test": "npm run lint && nyc npm run mocha" + }, + "dependencies": { + "picomatch": "^2.2.1" + }, + "devDependencies": { + "@types/node": "^14", + "chai": "^4.2", + "chai-subset": "^1.6", + "dtslint": "^3.3.0", + "eslint": "^7.0.0", + "mocha": "^7.1.1", + "nyc": "^15.0.0", + "rimraf": "^3.0.0", + "typescript": "^4.0.3" + }, + "nyc": { + "reporter": [ + "html", + "text" + ] + }, + "eslintConfig": { + "root": true, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaVersion": 9, + "sourceType": "script" + }, + "env": { + "node": true, + "es6": true + }, + "rules": { + "array-callback-return": "error", + "no-empty": [ + "error", + { + "allowEmptyCatch": true + } + ], + "no-else-return": [ + "error", + { + "allowElseIf": false + } + ], + "no-lonely-if": "error", + "no-var": "error", + "object-shorthand": "error", + "prefer-arrow-callback": [ + "error", + { + "allowNamedFunctions": true + } + ], + "prefer-const": [ + "error", + { + "ignoreReadBeforeAssign": true + } + ], + "prefer-destructuring": [ + "error", + { + "object": true, + "array": false + } + ], + "prefer-spread": "error", + "prefer-template": "error", + "radix": "error", + "semi": "error", + "strict": "error", + "quotes": [ + "error", + "single" + ] + } + } +} diff --git a/node_modules/require-directory/.jshintrc b/node_modules/require-directory/.jshintrc new file mode 100644 index 00000000..e14e4dcb --- /dev/null +++ b/node_modules/require-directory/.jshintrc @@ -0,0 +1,67 @@ +{ + "maxerr" : 50, + "bitwise" : true, + "camelcase" : true, + "curly" : true, + "eqeqeq" : true, + "forin" : true, + "immed" : true, + "indent" : 2, + "latedef" : true, + "newcap" : true, + "noarg" : true, + "noempty" : true, + "nonew" : true, + "plusplus" : true, + "quotmark" : true, + "undef" : true, + "unused" : true, + "strict" : true, + "trailing" : true, + "maxparams" : false, + "maxdepth" : false, + "maxstatements" : false, + "maxcomplexity" : false, + "maxlen" : false, + "asi" : false, + "boss" : false, + "debug" : false, + "eqnull" : true, + "es5" : false, + "esnext" : false, + "moz" : false, + "evil" : false, + "expr" : true, + "funcscope" : true, + "globalstrict" : true, + "iterator" : true, + "lastsemic" : false, + "laxbreak" : false, + "laxcomma" : false, + "loopfunc" : false, + "multistr" : false, + "proto" : false, + "scripturl" : false, + "smarttabs" : false, + "shadow" : false, + "sub" : false, + "supernew" : false, + "validthis" : false, + "browser" : true, + "couch" : false, + "devel" : true, + "dojo" : false, + "jquery" : false, + "mootools" : false, + "node" : true, + "nonstandard" : false, + "prototypejs" : false, + "rhino" : false, + "worker" : false, + "wsh" : false, + "yui" : false, + "nomen" : true, + "onevar" : true, + "passfail" : false, + "white" : true +} diff --git a/node_modules/require-directory/.npmignore b/node_modules/require-directory/.npmignore new file mode 100644 index 00000000..47cf365a --- /dev/null +++ b/node_modules/require-directory/.npmignore @@ -0,0 +1 @@ +test/** diff --git a/node_modules/require-directory/.travis.yml b/node_modules/require-directory/.travis.yml new file mode 100644 index 00000000..20fd86b6 --- /dev/null +++ b/node_modules/require-directory/.travis.yml @@ -0,0 +1,3 @@ +language: node_js +node_js: + - 0.10 diff --git a/node_modules/require-directory/LICENSE b/node_modules/require-directory/LICENSE new file mode 100644 index 00000000..a70f253a --- /dev/null +++ b/node_modules/require-directory/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2011 Troy Goode + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/require-directory/README.markdown b/node_modules/require-directory/README.markdown new file mode 100644 index 00000000..926a063e --- /dev/null +++ b/node_modules/require-directory/README.markdown @@ -0,0 +1,184 @@ +# require-directory + +Recursively iterates over specified directory, `require()`'ing each file, and returning a nested hash structure containing those modules. + +**[Follow me (@troygoode) on Twitter!](https://twitter.com/intent/user?screen_name=troygoode)** + +[![NPM](https://nodei.co/npm/require-directory.png?downloads=true&stars=true)](https://nodei.co/npm/require-directory/) + +[![build status](https://secure.travis-ci.org/troygoode/node-require-directory.png)](http://travis-ci.org/troygoode/node-require-directory) + +## How To Use + +### Installation (via [npm](https://npmjs.org/package/require-directory)) + +```bash +$ npm install require-directory +``` + +### Usage + +A common pattern in node.js is to include an index file which creates a hash of the files in its current directory. Given a directory structure like so: + +* app.js +* routes/ + * index.js + * home.js + * auth/ + * login.js + * logout.js + * register.js + +`routes/index.js` uses `require-directory` to build the hash (rather than doing so manually) like so: + +```javascript +var requireDirectory = require('require-directory'); +module.exports = requireDirectory(module); +``` + +`app.js` references `routes/index.js` like any other module, but it now has a hash/tree of the exports from the `./routes/` directory: + +```javascript +var routes = require('./routes'); + +// snip + +app.get('/', routes.home); +app.get('/register', routes.auth.register); +app.get('/login', routes.auth.login); +app.get('/logout', routes.auth.logout); +``` + +The `routes` variable above is the equivalent of this: + +```javascript +var routes = { + home: require('routes/home.js'), + auth: { + login: require('routes/auth/login.js'), + logout: require('routes/auth/logout.js'), + register: require('routes/auth/register.js') + } +}; +``` + +*Note that `routes.index` will be `undefined` as you would hope.* + +### Specifying Another Directory + +You can specify which directory you want to build a tree of (if it isn't the current directory for whatever reason) by passing it as the second parameter. Not specifying the path (`requireDirectory(module)`) is the equivelant of `requireDirectory(module, __dirname)`: + +```javascript +var requireDirectory = require('require-directory'); +module.exports = requireDirectory(module, './some/subdirectory'); +``` + +For example, in the [example in the Usage section](#usage) we could have avoided creating `routes/index.js` and instead changed the first lines of `app.js` to: + +```javascript +var requireDirectory = require('require-directory'); +var routes = requireDirectory(module, './routes'); +``` + +## Options + +You can pass an options hash to `require-directory` as the 2nd parameter (or 3rd if you're passing the path to another directory as the 2nd parameter already). Here are the available options: + +### Whitelisting + +Whitelisting (either via RegExp or function) allows you to specify that only certain files be loaded. + +```javascript +var requireDirectory = require('require-directory'), + whitelist = /onlyinclude.js$/, + hash = requireDirectory(module, {include: whitelist}); +``` + +```javascript +var requireDirectory = require('require-directory'), + check = function(path){ + if(/onlyinclude.js$/.test(path)){ + return true; // don't include + }else{ + return false; // go ahead and include + } + }, + hash = requireDirectory(module, {include: check}); +``` + +### Blacklisting + +Blacklisting (either via RegExp or function) allows you to specify that all but certain files should be loaded. + +```javascript +var requireDirectory = require('require-directory'), + blacklist = /dontinclude\.js$/, + hash = requireDirectory(module, {exclude: blacklist}); +``` + +```javascript +var requireDirectory = require('require-directory'), + check = function(path){ + if(/dontinclude\.js$/.test(path)){ + return false; // don't include + }else{ + return true; // go ahead and include + } + }, + hash = requireDirectory(module, {exclude: check}); +``` + +### Visiting Objects As They're Loaded + +`require-directory` takes a function as the `visit` option that will be called for each module that is added to module.exports. + +```javascript +var requireDirectory = require('require-directory'), + visitor = function(obj) { + console.log(obj); // will be called for every module that is loaded + }, + hash = requireDirectory(module, {visit: visitor}); +``` + +The visitor can also transform the objects by returning a value: + +```javascript +var requireDirectory = require('require-directory'), + visitor = function(obj) { + return obj(new Date()); + }, + hash = requireDirectory(module, {visit: visitor}); +``` + +### Renaming Keys + +```javascript +var requireDirectory = require('require-directory'), + renamer = function(name) { + return name.toUpperCase(); + }, + hash = requireDirectory(module, {rename: renamer}); +``` + +### No Recursion + +```javascript +var requireDirectory = require('require-directory'), + hash = requireDirectory(module, {recurse: false}); +``` + +## Run Unit Tests + +```bash +$ npm run lint +$ npm test +``` + +## License + +[MIT License](http://www.opensource.org/licenses/mit-license.php) + +## Author + +[Troy Goode](https://github.com/TroyGoode) ([troygoode@gmail.com](mailto:troygoode@gmail.com)) + diff --git a/node_modules/require-directory/index.js b/node_modules/require-directory/index.js new file mode 100644 index 00000000..cd37da7e --- /dev/null +++ b/node_modules/require-directory/index.js @@ -0,0 +1,86 @@ +'use strict'; + +var fs = require('fs'), + join = require('path').join, + resolve = require('path').resolve, + dirname = require('path').dirname, + defaultOptions = { + extensions: ['js', 'json', 'coffee'], + recurse: true, + rename: function (name) { + return name; + }, + visit: function (obj) { + return obj; + } + }; + +function checkFileInclusion(path, filename, options) { + return ( + // verify file has valid extension + (new RegExp('\\.(' + options.extensions.join('|') + ')$', 'i').test(filename)) && + + // if options.include is a RegExp, evaluate it and make sure the path passes + !(options.include && options.include instanceof RegExp && !options.include.test(path)) && + + // if options.include is a function, evaluate it and make sure the path passes + !(options.include && typeof options.include === 'function' && !options.include(path, filename)) && + + // if options.exclude is a RegExp, evaluate it and make sure the path doesn't pass + !(options.exclude && options.exclude instanceof RegExp && options.exclude.test(path)) && + + // if options.exclude is a function, evaluate it and make sure the path doesn't pass + !(options.exclude && typeof options.exclude === 'function' && options.exclude(path, filename)) + ); +} + +function requireDirectory(m, path, options) { + var retval = {}; + + // path is optional + if (path && !options && typeof path !== 'string') { + options = path; + path = null; + } + + // default options + options = options || {}; + for (var prop in defaultOptions) { + if (typeof options[prop] === 'undefined') { + options[prop] = defaultOptions[prop]; + } + } + + // if no path was passed in, assume the equivelant of __dirname from caller + // otherwise, resolve path relative to the equivalent of __dirname + path = !path ? dirname(m.filename) : resolve(dirname(m.filename), path); + + // get the path of each file in specified directory, append to current tree node, recurse + fs.readdirSync(path).forEach(function (filename) { + var joined = join(path, filename), + files, + key, + obj; + + if (fs.statSync(joined).isDirectory() && options.recurse) { + // this node is a directory; recurse + files = requireDirectory(m, joined, options); + // exclude empty directories + if (Object.keys(files).length) { + retval[options.rename(filename, joined, filename)] = files; + } + } else { + if (joined !== m.filename && checkFileInclusion(joined, filename, options)) { + // hash node key shouldn't include file extension + key = filename.substring(0, filename.lastIndexOf('.')); + obj = m.require(joined); + retval[options.rename(key, joined, filename)] = options.visit(obj, joined, filename) || obj; + } + } + }); + + return retval; +} + +module.exports = requireDirectory; +module.exports.defaults = defaultOptions; diff --git a/node_modules/require-directory/package.json b/node_modules/require-directory/package.json new file mode 100644 index 00000000..25ece4b3 --- /dev/null +++ b/node_modules/require-directory/package.json @@ -0,0 +1,40 @@ +{ + "author": "Troy Goode (http://github.com/troygoode/)", + "name": "require-directory", + "version": "2.1.1", + "description": "Recursively iterates over specified directory, require()'ing each file, and returning a nested hash structure containing those modules.", + "keywords": [ + "require", + "directory", + "library", + "recursive" + ], + "homepage": "https://github.com/troygoode/node-require-directory/", + "main": "index.js", + "repository": { + "type": "git", + "url": "git://github.com/troygoode/node-require-directory.git" + }, + "contributors": [ + { + "name": "Troy Goode", + "email": "troygoode@gmail.com", + "web": "http://github.com/troygoode/" + } + ], + "license": "MIT", + "bugs": { + "url": "http://github.com/troygoode/node-require-directory/issues/" + }, + "engines": { + "node": ">=0.10.0" + }, + "devDependencies": { + "jshint": "^2.6.0", + "mocha": "^2.1.0" + }, + "scripts": { + "test": "mocha", + "lint": "jshint index.js test/test.js" + } +} diff --git a/node_modules/reusify/.coveralls.yml b/node_modules/reusify/.coveralls.yml new file mode 100644 index 00000000..359f6834 --- /dev/null +++ b/node_modules/reusify/.coveralls.yml @@ -0,0 +1 @@ +repo_token: yIxhFqtaaz5iGVYfie9mODehFYogm8S8L diff --git a/node_modules/reusify/.travis.yml b/node_modules/reusify/.travis.yml new file mode 100644 index 00000000..19704768 --- /dev/null +++ b/node_modules/reusify/.travis.yml @@ -0,0 +1,28 @@ +language: node_js +sudo: false + +node_js: + - 9 + - 8 + - 7 + - 6 + - 5 + - 4 + - 4.0 + - iojs-v3 + - iojs-v2 + - iojs-v1 + - 0.12 + - 0.10 + +cache: + directories: + - node_modules + +after_script: +- npm run coverage + +notifications: + email: + on_success: never + on_failure: always diff --git a/node_modules/reusify/LICENSE b/node_modules/reusify/LICENSE new file mode 100644 index 00000000..fbf3a01d --- /dev/null +++ b/node_modules/reusify/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Matteo Collina + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/node_modules/reusify/README.md b/node_modules/reusify/README.md new file mode 100644 index 00000000..badcb7cc --- /dev/null +++ b/node_modules/reusify/README.md @@ -0,0 +1,145 @@ +# reusify + +[![npm version][npm-badge]][npm-url] +[![Build Status][travis-badge]][travis-url] +[![Coverage Status][coveralls-badge]][coveralls-url] + +Reuse your objects and functions for maximum speed. This technique will +make any function run ~10% faster. You call your functions a +lot, and it adds up quickly in hot code paths. + +``` +$ node benchmarks/createNoCodeFunction.js +Total time 53133 +Total iterations 100000000 +Iteration/s 1882069.5236482036 + +$ node benchmarks/reuseNoCodeFunction.js +Total time 50617 +Total iterations 100000000 +Iteration/s 1975620.838848608 +``` + +The above benchmark uses fibonacci to simulate a real high-cpu load. +The actual numbers might differ for your use case, but the difference +should not. + +The benchmark was taken using Node v6.10.0. + +This library was extracted from +[fastparallel](http://npm.im/fastparallel). + +## Example + +```js +var reusify = require('reusify') +var fib = require('reusify/benchmarks/fib') +var instance = reusify(MyObject) + +// get an object from the cache, +// or creates a new one when cache is empty +var obj = instance.get() + +// set the state +obj.num = 100 +obj.func() + +// reset the state. +// if the state contains any external object +// do not use delete operator (it is slow) +// prefer set them to null +obj.num = 0 + +// store an object in the cache +instance.release(obj) + +function MyObject () { + // you need to define this property + // so V8 can compile MyObject into an + // hidden class + this.next = null + this.num = 0 + + var that = this + + // this function is never reallocated, + // so it can be optimized by V8 + this.func = function () { + if (null) { + // do nothing + } else { + // calculates fibonacci + fib(that.num) + } + } +} +``` + +The above example was intended for synchronous code, let's see async: +```js +var reusify = require('reusify') +var instance = reusify(MyObject) + +for (var i = 0; i < 100; i++) { + getData(i, console.log) +} + +function getData (value, cb) { + var obj = instance.get() + + obj.value = value + obj.cb = cb + obj.run() +} + +function MyObject () { + this.next = null + this.value = null + + var that = this + + this.run = function () { + asyncOperation(that.value, that.handle) + } + + this.handle = function (err, result) { + that.cb(err, result) + that.value = null + that.cb = null + instance.release(that) + } +} +``` + +Also note how in the above examples, the code, that consumes an istance of `MyObject`, +reset the state to initial condition, just before storing it in the cache. +That's needed so that every subsequent request for an instance from the cache, +could get a clean instance. + +## Why + +It is faster because V8 doesn't have to collect all the functions you +create. On a short-lived benchmark, it is as fast as creating the +nested function, but on a longer time frame it creates less +pressure on the garbage collector. + +## Other examples +If you want to see some complex example, checkout [middie](https://github.com/fastify/middie) and [steed](https://github.com/mcollina/steed). + +## Acknowledgements + +Thanks to [Trevor Norris](https://github.com/trevnorris) for +getting me down the rabbit hole of performance, and thanks to [Mathias +Buss](http://github.com/mafintosh) for suggesting me to share this +trick. + +## License + +MIT + +[npm-badge]: https://badge.fury.io/js/reusify.svg +[npm-url]: https://badge.fury.io/js/reusify +[travis-badge]: https://api.travis-ci.org/mcollina/reusify.svg +[travis-url]: https://travis-ci.org/mcollina/reusify +[coveralls-badge]: https://coveralls.io/repos/mcollina/reusify/badge.svg?branch=master&service=github +[coveralls-url]: https://coveralls.io/github/mcollina/reusify?branch=master diff --git a/node_modules/reusify/benchmarks/createNoCodeFunction.js b/node_modules/reusify/benchmarks/createNoCodeFunction.js new file mode 100644 index 00000000..ce1aac7b --- /dev/null +++ b/node_modules/reusify/benchmarks/createNoCodeFunction.js @@ -0,0 +1,30 @@ +'use strict' + +var fib = require('./fib') +var max = 100000000 +var start = Date.now() + +// create a funcion with the typical error +// pattern, that delegates the heavy load +// to something else +function createNoCodeFunction () { + /* eslint no-constant-condition: "off" */ + var num = 100 + + ;(function () { + if (null) { + // do nothing + } else { + fib(num) + } + })() +} + +for (var i = 0; i < max; i++) { + createNoCodeFunction() +} + +var time = Date.now() - start +console.log('Total time', time) +console.log('Total iterations', max) +console.log('Iteration/s', max / time * 1000) diff --git a/node_modules/reusify/benchmarks/fib.js b/node_modules/reusify/benchmarks/fib.js new file mode 100644 index 00000000..e22cc48d --- /dev/null +++ b/node_modules/reusify/benchmarks/fib.js @@ -0,0 +1,13 @@ +'use strict' + +function fib (num) { + var fib = [] + + fib[0] = 0 + fib[1] = 1 + for (var i = 2; i <= num; i++) { + fib[i] = fib[i - 2] + fib[i - 1] + } +} + +module.exports = fib diff --git a/node_modules/reusify/benchmarks/reuseNoCodeFunction.js b/node_modules/reusify/benchmarks/reuseNoCodeFunction.js new file mode 100644 index 00000000..3358d6e5 --- /dev/null +++ b/node_modules/reusify/benchmarks/reuseNoCodeFunction.js @@ -0,0 +1,38 @@ +'use strict' + +var reusify = require('../') +var fib = require('./fib') +var instance = reusify(MyObject) +var max = 100000000 +var start = Date.now() + +function reuseNoCodeFunction () { + var obj = instance.get() + obj.num = 100 + obj.func() + obj.num = 0 + instance.release(obj) +} + +function MyObject () { + this.next = null + var that = this + this.num = 0 + this.func = function () { + /* eslint no-constant-condition: "off" */ + if (null) { + // do nothing + } else { + fib(that.num) + } + } +} + +for (var i = 0; i < max; i++) { + reuseNoCodeFunction() +} + +var time = Date.now() - start +console.log('Total time', time) +console.log('Total iterations', max) +console.log('Iteration/s', max / time * 1000) diff --git a/node_modules/reusify/package.json b/node_modules/reusify/package.json new file mode 100644 index 00000000..ee66aeec --- /dev/null +++ b/node_modules/reusify/package.json @@ -0,0 +1,45 @@ +{ + "name": "reusify", + "version": "1.0.4", + "description": "Reuse objects and functions with style", + "main": "reusify.js", + "scripts": { + "lint": "standard", + "test": "tape test.js | faucet", + "istanbul": "istanbul cover tape test.js", + "coverage": "npm run istanbul; cat coverage/lcov.info | coveralls" + }, + "pre-commit": [ + "lint", + "test" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/mcollina/reusify.git" + }, + "keywords": [ + "reuse", + "object", + "performance", + "function", + "fast" + ], + "author": "Matteo Collina ", + "license": "MIT", + "bugs": { + "url": "https://github.com/mcollina/reusify/issues" + }, + "homepage": "https://github.com/mcollina/reusify#readme", + "engines": { + "node": ">=0.10.0", + "iojs": ">=1.0.0" + }, + "devDependencies": { + "coveralls": "^2.13.3", + "faucet": "0.0.1", + "istanbul": "^0.4.5", + "pre-commit": "^1.2.2", + "standard": "^10.0.3", + "tape": "^4.8.0" + } +} diff --git a/node_modules/reusify/reusify.js b/node_modules/reusify/reusify.js new file mode 100644 index 00000000..e6f36f3a --- /dev/null +++ b/node_modules/reusify/reusify.js @@ -0,0 +1,33 @@ +'use strict' + +function reusify (Constructor) { + var head = new Constructor() + var tail = head + + function get () { + var current = head + + if (current.next) { + head = current.next + } else { + head = new Constructor() + tail = head + } + + current.next = null + + return current + } + + function release (obj) { + tail.next = obj + tail = obj + } + + return { + get: get, + release: release + } +} + +module.exports = reusify diff --git a/node_modules/reusify/test.js b/node_modules/reusify/test.js new file mode 100644 index 00000000..929cfd71 --- /dev/null +++ b/node_modules/reusify/test.js @@ -0,0 +1,66 @@ +'use strict' + +var test = require('tape') +var reusify = require('./') + +test('reuse objects', function (t) { + t.plan(6) + + function MyObject () { + t.pass('constructor called') + this.next = null + } + + var instance = reusify(MyObject) + var obj = instance.get() + + t.notEqual(obj, instance.get(), 'two instance created') + t.notOk(obj.next, 'next must be null') + + instance.release(obj) + + // the internals keeps a hot copy ready for reuse + // putting this one back in the queue + instance.release(instance.get()) + + // comparing the old one with the one we got + // never do this in real code, after release you + // should never reuse that instance + t.equal(obj, instance.get(), 'instance must be reused') +}) + +test('reuse more than 2 objects', function (t) { + function MyObject () { + t.pass('constructor called') + this.next = null + } + + var instance = reusify(MyObject) + var obj = instance.get() + var obj2 = instance.get() + var obj3 = instance.get() + + t.notOk(obj.next, 'next must be null') + t.notOk(obj2.next, 'next must be null') + t.notOk(obj3.next, 'next must be null') + + t.notEqual(obj, obj2) + t.notEqual(obj, obj3) + t.notEqual(obj3, obj2) + + instance.release(obj) + instance.release(obj2) + instance.release(obj3) + + // skip one + instance.get() + + var obj4 = instance.get() + var obj5 = instance.get() + var obj6 = instance.get() + + t.equal(obj4, obj) + t.equal(obj5, obj2) + t.equal(obj6, obj3) + t.end() +}) diff --git a/node_modules/run-parallel/LICENSE b/node_modules/run-parallel/LICENSE new file mode 100644 index 00000000..c7e68527 --- /dev/null +++ b/node_modules/run-parallel/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/run-parallel/README.md b/node_modules/run-parallel/README.md new file mode 100644 index 00000000..edc3da45 --- /dev/null +++ b/node_modules/run-parallel/README.md @@ -0,0 +1,85 @@ +# run-parallel [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url] + +[travis-image]: https://img.shields.io/travis/feross/run-parallel/master.svg +[travis-url]: https://travis-ci.org/feross/run-parallel +[npm-image]: https://img.shields.io/npm/v/run-parallel.svg +[npm-url]: https://npmjs.org/package/run-parallel +[downloads-image]: https://img.shields.io/npm/dm/run-parallel.svg +[downloads-url]: https://npmjs.org/package/run-parallel +[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg +[standard-url]: https://standardjs.com + +### Run an array of functions in parallel + +![parallel](https://raw.githubusercontent.com/feross/run-parallel/master/img.png) [![Sauce Test Status](https://saucelabs.com/browser-matrix/run-parallel.svg)](https://saucelabs.com/u/run-parallel) + +### install + +``` +npm install run-parallel +``` + +### usage + +#### parallel(tasks, [callback]) + +Run the `tasks` array of functions in parallel, without waiting until the previous +function has completed. If any of the functions pass an error to its callback, the main +`callback` is immediately called with the value of the error. Once the `tasks` have +completed, the results are passed to the final `callback` as an array. + +It is also possible to use an object instead of an array. Each property will be run as a +function and the results will be passed to the final `callback` as an object instead of +an array. This can be a more readable way of handling the results. + +##### arguments + +- `tasks` - An array or object containing functions to run. Each function is passed a +`callback(err, result)` which it must call on completion with an error `err` (which can +be `null`) and an optional `result` value. +- `callback(err, results)` - An optional callback to run once all the functions have +completed. This function gets a results array (or object) containing all the result +arguments passed to the task callbacks. + +##### example + +```js +var parallel = require('run-parallel') + +parallel([ + function (callback) { + setTimeout(function () { + callback(null, 'one') + }, 200) + }, + function (callback) { + setTimeout(function () { + callback(null, 'two') + }, 100) + } +], +// optional callback +function (err, results) { + // the results array will equal ['one','two'] even though + // the second function had a shorter timeout. +}) +``` + +This module is basically equavalent to +[`async.parallel`](https://github.com/caolan/async#paralleltasks-callback), but it's +handy to just have the one function you need instead of the kitchen sink. Modularity! +Especially handy if you're serving to the browser and need to reduce your javascript +bundle size. + +Works great in the browser with [browserify](http://browserify.org/)! + +### see also + +- [run-auto](https://github.com/feross/run-auto) +- [run-parallel-limit](https://github.com/feross/run-parallel-limit) +- [run-series](https://github.com/feross/run-series) +- [run-waterfall](https://github.com/feross/run-waterfall) + +### license + +MIT. Copyright (c) [Feross Aboukhadijeh](http://feross.org). diff --git a/node_modules/run-parallel/index.js b/node_modules/run-parallel/index.js new file mode 100644 index 00000000..6307141d --- /dev/null +++ b/node_modules/run-parallel/index.js @@ -0,0 +1,51 @@ +/*! run-parallel. MIT License. Feross Aboukhadijeh */ +module.exports = runParallel + +const queueMicrotask = require('queue-microtask') + +function runParallel (tasks, cb) { + let results, pending, keys + let isSync = true + + if (Array.isArray(tasks)) { + results = [] + pending = tasks.length + } else { + keys = Object.keys(tasks) + results = {} + pending = keys.length + } + + function done (err) { + function end () { + if (cb) cb(err, results) + cb = null + } + if (isSync) queueMicrotask(end) + else end() + } + + function each (i, err, result) { + results[i] = result + if (--pending === 0 || err) { + done(err) + } + } + + if (!pending) { + // empty + done(null) + } else if (keys) { + // object + keys.forEach(function (key) { + tasks[key](function (err, result) { each(key, err, result) }) + }) + } else { + // array + tasks.forEach(function (task, i) { + task(function (err, result) { each(i, err, result) }) + }) + } + + isSync = false +} diff --git a/node_modules/run-parallel/package.json b/node_modules/run-parallel/package.json new file mode 100644 index 00000000..1f147578 --- /dev/null +++ b/node_modules/run-parallel/package.json @@ -0,0 +1,58 @@ +{ + "name": "run-parallel", + "description": "Run an array of functions in parallel", + "version": "1.2.0", + "author": { + "name": "Feross Aboukhadijeh", + "email": "feross@feross.org", + "url": "https://feross.org" + }, + "bugs": { + "url": "https://github.com/feross/run-parallel/issues" + }, + "dependencies": { + "queue-microtask": "^1.2.2" + }, + "devDependencies": { + "airtap": "^3.0.0", + "standard": "*", + "tape": "^5.0.1" + }, + "homepage": "https://github.com/feross/run-parallel", + "keywords": [ + "parallel", + "async", + "function", + "callback", + "asynchronous", + "run", + "array", + "run parallel" + ], + "license": "MIT", + "main": "index.js", + "repository": { + "type": "git", + "url": "git://github.com/feross/run-parallel.git" + }, + "scripts": { + "test": "standard && npm run test-node && npm run test-browser", + "test-browser": "airtap -- test/*.js", + "test-browser-local": "airtap --local -- test/*.js", + "test-node": "tape test/*.js" + }, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] +} diff --git a/node_modules/slash/index.d.ts b/node_modules/slash/index.d.ts new file mode 100644 index 00000000..10438fbe --- /dev/null +++ b/node_modules/slash/index.d.ts @@ -0,0 +1,23 @@ +/** +Convert Windows backslash paths to slash paths: `foo\\bar` ➔ `foo/bar`. + +[Forward-slash paths can be used in Windows](http://superuser.com/a/176395/6877) as long as they're not extended-length paths and don't contain any non-ascii characters. + +@param path - A Windows backslash path. +@returns A path with forward slashes. + +@example +``` +import path from 'path'; +import slash from 'slash'; + +const string = path.join('foo', 'bar'); +// Unix => foo/bar +// Windows => foo\\bar + +slash(string); +// Unix => foo/bar +// Windows => foo/bar +``` +*/ +export default function slash(path: string): string; diff --git a/node_modules/slash/index.js b/node_modules/slash/index.js new file mode 100644 index 00000000..b52d8de8 --- /dev/null +++ b/node_modules/slash/index.js @@ -0,0 +1,10 @@ +export default function slash(path) { + const isExtendedLengthPath = /^\\\\\?\\/.test(path); + const hasNonAscii = /[^\u0000-\u0080]+/.test(path); // eslint-disable-line no-control-regex + + if (isExtendedLengthPath || hasNonAscii) { + return path; + } + + return path.replace(/\\/g, '/'); +} diff --git a/node_modules/slash/license b/node_modules/slash/license new file mode 100644 index 00000000..fa7ceba3 --- /dev/null +++ b/node_modules/slash/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/slash/package.json b/node_modules/slash/package.json new file mode 100644 index 00000000..ef78101e --- /dev/null +++ b/node_modules/slash/package.json @@ -0,0 +1,38 @@ +{ + "name": "slash", + "version": "4.0.0", + "description": "Convert Windows backslash paths to slash paths", + "license": "MIT", + "repository": "sindresorhus/slash", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "type": "module", + "exports": "./index.js", + "engines": { + "node": ">=12" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "path", + "seperator", + "slash", + "backslash", + "windows", + "convert" + ], + "devDependencies": { + "ava": "^3.15.0", + "tsd": "^0.14.0", + "xo": "^0.38.2" + } +} diff --git a/node_modules/slash/readme.md b/node_modules/slash/readme.md new file mode 100644 index 00000000..2a66eefb --- /dev/null +++ b/node_modules/slash/readme.md @@ -0,0 +1,48 @@ +# slash + +> Convert Windows backslash paths to slash paths: `foo\\bar` ➔ `foo/bar` + +[Forward-slash paths can be used in Windows](http://superuser.com/a/176395/6877) as long as they're not extended-length paths and don't contain any non-ascii characters. + +This was created since the `path` methods in Node.js outputs `\\` paths on Windows. + +## Install + +``` +$ npm install slash +``` + +## Usage + +```js +import path from 'path'; +import slash from 'slash'; + +const string = path.join('foo', 'bar'); +// Unix => foo/bar +// Windows => foo\\bar + +slash(string); +// Unix => foo/bar +// Windows => foo/bar +``` + +## API + +### slash(path) + +Type: `string` + +Accepts a Windows backslash path and returns a path with forward slashes. + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/source-map-js/CHANGELOG.md b/node_modules/source-map-js/CHANGELOG.md new file mode 100644 index 00000000..4cd53075 --- /dev/null +++ b/node_modules/source-map-js/CHANGELOG.md @@ -0,0 +1,320 @@ +# Change Log + +## 1.0.2 + +* Add types for path imports ([#13](https://github.com/7rulnik/source-map-js/pull/13)) [@TrySound](https://github.com/TrySound) + +## 1.0.1 + +* Remove cleanComments optimization ([#10](https://github.com/7rulnik/source-map-js/pull/10)) [@ai](https://github.com/ai) + +## 1.0.0 + +* Fix package.json#typings field ([#6](https://github.com/7rulnik/source-map-js/pull/6)) [@chalkygames123](https://github.com/chalkygames123) + +* Reduce memory usage of eachMapping w/ loop ([#5](https://github.com/7rulnik/source-map-js/pull/5)) [@noppa](https://github.com/noppa) + +* Reduce npm package size ([#7](https://github.com/7rulnik/source-map-js/pull/7)) [@ai](https://github.com/ai) + +---------- +# It doesn't related to this fork: + +## 0.5.6 + +* Fix for regression when people were using numbers as names in source maps. See + #236. + +## 0.5.5 + +* Fix "regression" of unsupported, implementation behavior that half the world + happens to have come to depend on. See #235. + +* Fix regression involving function hoisting in SpiderMonkey. See #233. + +## 0.5.4 + +* Large performance improvements to source-map serialization. See #228 and #229. + +## 0.5.3 + +* Do not include unnecessary distribution files. See + commit ef7006f8d1647e0a83fdc60f04f5a7ca54886f86. + +## 0.5.2 + +* Include browser distributions of the library in package.json's `files`. See + issue #212. + +## 0.5.1 + +* Fix latent bugs in IndexedSourceMapConsumer.prototype._parseMappings. See + ff05274becc9e6e1295ed60f3ea090d31d843379. + +## 0.5.0 + +* Node 0.8 is no longer supported. + +* Use webpack instead of dryice for bundling. + +* Big speedups serializing source maps. See pull request #203. + +* Fix a bug with `SourceMapConsumer.prototype.sourceContentFor` and sources that + explicitly start with the source root. See issue #199. + +## 0.4.4 + +* Fix an issue where using a `SourceMapGenerator` after having created a + `SourceMapConsumer` from it via `SourceMapConsumer.fromSourceMap` failed. See + issue #191. + +* Fix an issue with where `SourceMapGenerator` would mistakenly consider + different mappings as duplicates of each other and avoid generating them. See + issue #192. + +## 0.4.3 + +* A very large number of performance improvements, particularly when parsing + source maps. Collectively about 75% of time shaved off of the source map + parsing benchmark! + +* Fix a bug in `SourceMapConsumer.prototype.allGeneratedPositionsFor` and fuzzy + searching in the presence of a column option. See issue #177. + +* Fix a bug with joining a source and its source root when the source is above + the root. See issue #182. + +* Add the `SourceMapConsumer.prototype.hasContentsOfAllSources` method to + determine when all sources' contents are inlined into the source map. See + issue #190. + +## 0.4.2 + +* Add an `.npmignore` file so that the benchmarks aren't pulled down by + dependent projects. Issue #169. + +* Add an optional `column` argument to + `SourceMapConsumer.prototype.allGeneratedPositionsFor` and better handle lines + with no mappings. Issues #172 and #173. + +## 0.4.1 + +* Fix accidentally defining a global variable. #170. + +## 0.4.0 + +* The default direction for fuzzy searching was changed back to its original + direction. See #164. + +* There is now a `bias` option you can supply to `SourceMapConsumer` to control + the fuzzy searching direction. See #167. + +* About an 8% speed up in parsing source maps. See #159. + +* Added a benchmark for parsing and generating source maps. + +## 0.3.0 + +* Change the default direction that searching for positions fuzzes when there is + not an exact match. See #154. + +* Support for environments using json2.js for JSON serialization. See #156. + +## 0.2.0 + +* Support for consuming "indexed" source maps which do not have any remote + sections. See pull request #127. This introduces a minor backwards + incompatibility if you are monkey patching `SourceMapConsumer.prototype` + methods. + +## 0.1.43 + +* Performance improvements for `SourceMapGenerator` and `SourceNode`. See issue + #148 for some discussion and issues #150, #151, and #152 for implementations. + +## 0.1.42 + +* Fix an issue where `SourceNode`s from different versions of the source-map + library couldn't be used in conjunction with each other. See issue #142. + +## 0.1.41 + +* Fix a bug with getting the source content of relative sources with a "./" + prefix. See issue #145 and [Bug 1090768](bugzil.la/1090768). + +* Add the `SourceMapConsumer.prototype.computeColumnSpans` method to compute the + column span of each mapping. + +* Add the `SourceMapConsumer.prototype.allGeneratedPositionsFor` method to find + all generated positions associated with a given original source and line. + +## 0.1.40 + +* Performance improvements for parsing source maps in SourceMapConsumer. + +## 0.1.39 + +* Fix a bug where setting a source's contents to null before any source content + had been set before threw a TypeError. See issue #131. + +## 0.1.38 + +* Fix a bug where finding relative paths from an empty path were creating + absolute paths. See issue #129. + +## 0.1.37 + +* Fix a bug where if the source root was an empty string, relative source paths + would turn into absolute source paths. Issue #124. + +## 0.1.36 + +* Allow the `names` mapping property to be an empty string. Issue #121. + +## 0.1.35 + +* A third optional parameter was added to `SourceNode.fromStringWithSourceMap` + to specify a path that relative sources in the second parameter should be + relative to. Issue #105. + +* If no file property is given to a `SourceMapGenerator`, then the resulting + source map will no longer have a `null` file property. The property will + simply not exist. Issue #104. + +* Fixed a bug where consecutive newlines were ignored in `SourceNode`s. + Issue #116. + +## 0.1.34 + +* Make `SourceNode` work with windows style ("\r\n") newlines. Issue #103. + +* Fix bug involving source contents and the + `SourceMapGenerator.prototype.applySourceMap`. Issue #100. + +## 0.1.33 + +* Fix some edge cases surrounding path joining and URL resolution. + +* Add a third parameter for relative path to + `SourceMapGenerator.prototype.applySourceMap`. + +* Fix issues with mappings and EOLs. + +## 0.1.32 + +* Fixed a bug where SourceMapConsumer couldn't handle negative relative columns + (issue 92). + +* Fixed test runner to actually report number of failed tests as its process + exit code. + +* Fixed a typo when reporting bad mappings (issue 87). + +## 0.1.31 + +* Delay parsing the mappings in SourceMapConsumer until queried for a source + location. + +* Support Sass source maps (which at the time of writing deviate from the spec + in small ways) in SourceMapConsumer. + +## 0.1.30 + +* Do not join source root with a source, when the source is a data URI. + +* Extend the test runner to allow running single specific test files at a time. + +* Performance improvements in `SourceNode.prototype.walk` and + `SourceMapConsumer.prototype.eachMapping`. + +* Source map browser builds will now work inside Workers. + +* Better error messages when attempting to add an invalid mapping to a + `SourceMapGenerator`. + +## 0.1.29 + +* Allow duplicate entries in the `names` and `sources` arrays of source maps + (usually from TypeScript) we are parsing. Fixes github issue 72. + +## 0.1.28 + +* Skip duplicate mappings when creating source maps from SourceNode; github + issue 75. + +## 0.1.27 + +* Don't throw an error when the `file` property is missing in SourceMapConsumer, + we don't use it anyway. + +## 0.1.26 + +* Fix SourceNode.fromStringWithSourceMap for empty maps. Fixes github issue 70. + +## 0.1.25 + +* Make compatible with browserify + +## 0.1.24 + +* Fix issue with absolute paths and `file://` URIs. See + https://bugzilla.mozilla.org/show_bug.cgi?id=885597 + +## 0.1.23 + +* Fix issue with absolute paths and sourcesContent, github issue 64. + +## 0.1.22 + +* Ignore duplicate mappings in SourceMapGenerator. Fixes github issue 21. + +## 0.1.21 + +* Fixed handling of sources that start with a slash so that they are relative to + the source root's host. + +## 0.1.20 + +* Fixed github issue #43: absolute URLs aren't joined with the source root + anymore. + +## 0.1.19 + +* Using Travis CI to run tests. + +## 0.1.18 + +* Fixed a bug in the handling of sourceRoot. + +## 0.1.17 + +* Added SourceNode.fromStringWithSourceMap. + +## 0.1.16 + +* Added missing documentation. + +* Fixed the generating of empty mappings in SourceNode. + +## 0.1.15 + +* Added SourceMapGenerator.applySourceMap. + +## 0.1.14 + +* The sourceRoot is now handled consistently. + +## 0.1.13 + +* Added SourceMapGenerator.fromSourceMap. + +## 0.1.12 + +* SourceNode now generates empty mappings too. + +## 0.1.11 + +* Added name support to SourceNode. + +## 0.1.10 + +* Added sourcesContent support to the customer and generator. diff --git a/node_modules/source-map-js/LICENSE b/node_modules/source-map-js/LICENSE new file mode 100644 index 00000000..ed1b7cf2 --- /dev/null +++ b/node_modules/source-map-js/LICENSE @@ -0,0 +1,28 @@ + +Copyright (c) 2009-2011, Mozilla Foundation and contributors +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the names of the Mozilla Foundation nor the names of project + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/source-map-js/README.md b/node_modules/source-map-js/README.md new file mode 100644 index 00000000..ba01846c --- /dev/null +++ b/node_modules/source-map-js/README.md @@ -0,0 +1,758 @@ +# Source Map JS + +[![NPM](https://nodei.co/npm/source-map-js.png?downloads=true&downloadRank=true)](https://www.npmjs.com/package/source-map-js) + +Difference between original [source-map](https://github.com/mozilla/source-map): + +> TL,DR: it's fork of original source-map@0.6, but with perfomance optimizations. + +This journey starts from [source-map@0.7.0](https://github.com/mozilla/source-map/blob/master/CHANGELOG.md#070). Some part of it was rewritten to Rust and WASM and API became async. + +It's still a major block for many libraries like PostCSS or Sass for example because they need to migrate the whole API to the async way. This is the reason why 0.6.1 has 2x more downloads than 0.7.3 while it's faster several times. + +![Downloads count](media/downloads.png) + +More important that WASM version has some optimizations in JS code too. This is why [community asked to create branch for 0.6 version](https://github.com/mozilla/source-map/issues/324) and port these optimizations but, sadly, the answer was «no». A bit later I discovered [the issue](https://github.com/mozilla/source-map/issues/370) created by [Ben Rothman (@benthemonkey)](https://github.com/benthemonkey) with no response at all. + +[Roman Dvornov (@lahmatiy)](https://github.com/lahmatiy) wrote a [serveral posts](https://t.me/gorshochekvarit/76) (russian, only, sorry) about source-map library in his own Telegram channel. He mentioned the article [«Maybe you don't need Rust and WASM to speed up your JS»](https://mrale.ph/blog/2018/02/03/maybe-you-dont-need-rust-to-speed-up-your-js.html) written by [Vyacheslav Egorov (@mraleph)](https://github.com/mraleph). This article contains optimizations and hacks that lead to almost the same performance compare to WASM implementation. + +I decided to fork the original source-map and port these optimizations from the article and several others PR from the original source-map. + +--------- + +This is a library to generate and consume the source map format +[described here][format]. + +[format]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit + +## Use with Node + + $ npm install source-map-js + + + +-------------------------------------------------------------------------------- + + + + + +## Table of Contents + +- [Examples](#examples) + - [Consuming a source map](#consuming-a-source-map) + - [Generating a source map](#generating-a-source-map) + - [With SourceNode (high level API)](#with-sourcenode-high-level-api) + - [With SourceMapGenerator (low level API)](#with-sourcemapgenerator-low-level-api) +- [API](#api) + - [SourceMapConsumer](#sourcemapconsumer) + - [new SourceMapConsumer(rawSourceMap)](#new-sourcemapconsumerrawsourcemap) + - [SourceMapConsumer.prototype.computeColumnSpans()](#sourcemapconsumerprototypecomputecolumnspans) + - [SourceMapConsumer.prototype.originalPositionFor(generatedPosition)](#sourcemapconsumerprototypeoriginalpositionforgeneratedposition) + - [SourceMapConsumer.prototype.generatedPositionFor(originalPosition)](#sourcemapconsumerprototypegeneratedpositionfororiginalposition) + - [SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition)](#sourcemapconsumerprototypeallgeneratedpositionsfororiginalposition) + - [SourceMapConsumer.prototype.hasContentsOfAllSources()](#sourcemapconsumerprototypehascontentsofallsources) + - [SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing])](#sourcemapconsumerprototypesourcecontentforsource-returnnullonmissing) + - [SourceMapConsumer.prototype.eachMapping(callback, context, order)](#sourcemapconsumerprototypeeachmappingcallback-context-order) + - [SourceMapGenerator](#sourcemapgenerator) + - [new SourceMapGenerator([startOfSourceMap])](#new-sourcemapgeneratorstartofsourcemap) + - [SourceMapGenerator.fromSourceMap(sourceMapConsumer)](#sourcemapgeneratorfromsourcemapsourcemapconsumer) + - [SourceMapGenerator.prototype.addMapping(mapping)](#sourcemapgeneratorprototypeaddmappingmapping) + - [SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent)](#sourcemapgeneratorprototypesetsourcecontentsourcefile-sourcecontent) + - [SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]])](#sourcemapgeneratorprototypeapplysourcemapsourcemapconsumer-sourcefile-sourcemappath) + - [SourceMapGenerator.prototype.toString()](#sourcemapgeneratorprototypetostring) + - [SourceNode](#sourcenode) + - [new SourceNode([line, column, source[, chunk[, name]]])](#new-sourcenodeline-column-source-chunk-name) + - [SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath])](#sourcenodefromstringwithsourcemapcode-sourcemapconsumer-relativepath) + - [SourceNode.prototype.add(chunk)](#sourcenodeprototypeaddchunk) + - [SourceNode.prototype.prepend(chunk)](#sourcenodeprototypeprependchunk) + - [SourceNode.prototype.setSourceContent(sourceFile, sourceContent)](#sourcenodeprototypesetsourcecontentsourcefile-sourcecontent) + - [SourceNode.prototype.walk(fn)](#sourcenodeprototypewalkfn) + - [SourceNode.prototype.walkSourceContents(fn)](#sourcenodeprototypewalksourcecontentsfn) + - [SourceNode.prototype.join(sep)](#sourcenodeprototypejoinsep) + - [SourceNode.prototype.replaceRight(pattern, replacement)](#sourcenodeprototypereplacerightpattern-replacement) + - [SourceNode.prototype.toString()](#sourcenodeprototypetostring) + - [SourceNode.prototype.toStringWithSourceMap([startOfSourceMap])](#sourcenodeprototypetostringwithsourcemapstartofsourcemap) + + + +## Examples + +### Consuming a source map + +```js +var rawSourceMap = { + version: 3, + file: 'min.js', + names: ['bar', 'baz', 'n'], + sources: ['one.js', 'two.js'], + sourceRoot: 'http://example.com/www/js/', + mappings: 'CAAC,IAAI,IAAM,SAAUA,GAClB,OAAOC,IAAID;CCDb,IAAI,IAAM,SAAUE,GAClB,OAAOA' +}; + +var smc = new SourceMapConsumer(rawSourceMap); + +console.log(smc.sources); +// [ 'http://example.com/www/js/one.js', +// 'http://example.com/www/js/two.js' ] + +console.log(smc.originalPositionFor({ + line: 2, + column: 28 +})); +// { source: 'http://example.com/www/js/two.js', +// line: 2, +// column: 10, +// name: 'n' } + +console.log(smc.generatedPositionFor({ + source: 'http://example.com/www/js/two.js', + line: 2, + column: 10 +})); +// { line: 2, column: 28 } + +smc.eachMapping(function (m) { + // ... +}); +``` + +### Generating a source map + +In depth guide: +[**Compiling to JavaScript, and Debugging with Source Maps**](https://hacks.mozilla.org/2013/05/compiling-to-javascript-and-debugging-with-source-maps/) + +#### With SourceNode (high level API) + +```js +function compile(ast) { + switch (ast.type) { + case 'BinaryExpression': + return new SourceNode( + ast.location.line, + ast.location.column, + ast.location.source, + [compile(ast.left), " + ", compile(ast.right)] + ); + case 'Literal': + return new SourceNode( + ast.location.line, + ast.location.column, + ast.location.source, + String(ast.value) + ); + // ... + default: + throw new Error("Bad AST"); + } +} + +var ast = parse("40 + 2", "add.js"); +console.log(compile(ast).toStringWithSourceMap({ + file: 'add.js' +})); +// { code: '40 + 2', +// map: [object SourceMapGenerator] } +``` + +#### With SourceMapGenerator (low level API) + +```js +var map = new SourceMapGenerator({ + file: "source-mapped.js" +}); + +map.addMapping({ + generated: { + line: 10, + column: 35 + }, + source: "foo.js", + original: { + line: 33, + column: 2 + }, + name: "christopher" +}); + +console.log(map.toString()); +// '{"version":3,"file":"source-mapped.js","sources":["foo.js"],"names":["christopher"],"mappings":";;;;;;;;;mCAgCEA"}' +``` + +## API + +Get a reference to the module: + +```js +// Node.js +var sourceMap = require('source-map'); + +// Browser builds +var sourceMap = window.sourceMap; + +// Inside Firefox +const sourceMap = require("devtools/toolkit/sourcemap/source-map.js"); +``` + +### SourceMapConsumer + +A SourceMapConsumer instance represents a parsed source map which we can query +for information about the original file positions by giving it a file position +in the generated source. + +#### new SourceMapConsumer(rawSourceMap) + +The only parameter is the raw source map (either as a string which can be +`JSON.parse`'d, or an object). According to the spec, source maps have the +following attributes: + +* `version`: Which version of the source map spec this map is following. + +* `sources`: An array of URLs to the original source files. + +* `names`: An array of identifiers which can be referenced by individual + mappings. + +* `sourceRoot`: Optional. The URL root from which all sources are relative. + +* `sourcesContent`: Optional. An array of contents of the original source files. + +* `mappings`: A string of base64 VLQs which contain the actual mappings. + +* `file`: Optional. The generated filename this source map is associated with. + +```js +var consumer = new sourceMap.SourceMapConsumer(rawSourceMapJsonData); +``` + +#### SourceMapConsumer.prototype.computeColumnSpans() + +Compute the last column for each generated mapping. The last column is +inclusive. + +```js +// Before: +consumer.allGeneratedPositionsFor({ line: 2, source: "foo.coffee" }) +// [ { line: 2, +// column: 1 }, +// { line: 2, +// column: 10 }, +// { line: 2, +// column: 20 } ] + +consumer.computeColumnSpans(); + +// After: +consumer.allGeneratedPositionsFor({ line: 2, source: "foo.coffee" }) +// [ { line: 2, +// column: 1, +// lastColumn: 9 }, +// { line: 2, +// column: 10, +// lastColumn: 19 }, +// { line: 2, +// column: 20, +// lastColumn: Infinity } ] + +``` + +#### SourceMapConsumer.prototype.originalPositionFor(generatedPosition) + +Returns the original source, line, and column information for the generated +source's line and column positions provided. The only argument is an object with +the following properties: + +* `line`: The line number in the generated source. Line numbers in + this library are 1-based (note that the underlying source map + specification uses 0-based line numbers -- this library handles the + translation). + +* `column`: The column number in the generated source. Column numbers + in this library are 0-based. + +* `bias`: Either `SourceMapConsumer.GREATEST_LOWER_BOUND` or + `SourceMapConsumer.LEAST_UPPER_BOUND`. Specifies whether to return the closest + element that is smaller than or greater than the one we are searching for, + respectively, if the exact element cannot be found. Defaults to + `SourceMapConsumer.GREATEST_LOWER_BOUND`. + +and an object is returned with the following properties: + +* `source`: The original source file, or null if this information is not + available. + +* `line`: The line number in the original source, or null if this information is + not available. The line number is 1-based. + +* `column`: The column number in the original source, or null if this + information is not available. The column number is 0-based. + +* `name`: The original identifier, or null if this information is not available. + +```js +consumer.originalPositionFor({ line: 2, column: 10 }) +// { source: 'foo.coffee', +// line: 2, +// column: 2, +// name: null } + +consumer.originalPositionFor({ line: 99999999999999999, column: 999999999999999 }) +// { source: null, +// line: null, +// column: null, +// name: null } +``` + +#### SourceMapConsumer.prototype.generatedPositionFor(originalPosition) + +Returns the generated line and column information for the original source, +line, and column positions provided. The only argument is an object with +the following properties: + +* `source`: The filename of the original source. + +* `line`: The line number in the original source. The line number is + 1-based. + +* `column`: The column number in the original source. The column + number is 0-based. + +and an object is returned with the following properties: + +* `line`: The line number in the generated source, or null. The line + number is 1-based. + +* `column`: The column number in the generated source, or null. The + column number is 0-based. + +```js +consumer.generatedPositionFor({ source: "example.js", line: 2, column: 10 }) +// { line: 1, +// column: 56 } +``` + +#### SourceMapConsumer.prototype.allGeneratedPositionsFor(originalPosition) + +Returns all generated line and column information for the original source, line, +and column provided. If no column is provided, returns all mappings +corresponding to a either the line we are searching for or the next closest line +that has any mappings. Otherwise, returns all mappings corresponding to the +given line and either the column we are searching for or the next closest column +that has any offsets. + +The only argument is an object with the following properties: + +* `source`: The filename of the original source. + +* `line`: The line number in the original source. The line number is + 1-based. + +* `column`: Optional. The column number in the original source. The + column number is 0-based. + +and an array of objects is returned, each with the following properties: + +* `line`: The line number in the generated source, or null. The line + number is 1-based. + +* `column`: The column number in the generated source, or null. The + column number is 0-based. + +```js +consumer.allGeneratedpositionsfor({ line: 2, source: "foo.coffee" }) +// [ { line: 2, +// column: 1 }, +// { line: 2, +// column: 10 }, +// { line: 2, +// column: 20 } ] +``` + +#### SourceMapConsumer.prototype.hasContentsOfAllSources() + +Return true if we have the embedded source content for every source listed in +the source map, false otherwise. + +In other words, if this method returns `true`, then +`consumer.sourceContentFor(s)` will succeed for every source `s` in +`consumer.sources`. + +```js +// ... +if (consumer.hasContentsOfAllSources()) { + consumerReadyCallback(consumer); +} else { + fetchSources(consumer, consumerReadyCallback); +} +// ... +``` + +#### SourceMapConsumer.prototype.sourceContentFor(source[, returnNullOnMissing]) + +Returns the original source content for the source provided. The only +argument is the URL of the original source file. + +If the source content for the given source is not found, then an error is +thrown. Optionally, pass `true` as the second param to have `null` returned +instead. + +```js +consumer.sources +// [ "my-cool-lib.clj" ] + +consumer.sourceContentFor("my-cool-lib.clj") +// "..." + +consumer.sourceContentFor("this is not in the source map"); +// Error: "this is not in the source map" is not in the source map + +consumer.sourceContentFor("this is not in the source map", true); +// null +``` + +#### SourceMapConsumer.prototype.eachMapping(callback, context, order) + +Iterate over each mapping between an original source/line/column and a +generated line/column in this source map. + +* `callback`: The function that is called with each mapping. Mappings have the + form `{ source, generatedLine, generatedColumn, originalLine, originalColumn, + name }` + +* `context`: Optional. If specified, this object will be the value of `this` + every time that `callback` is called. + +* `order`: Either `SourceMapConsumer.GENERATED_ORDER` or + `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to iterate over + the mappings sorted by the generated file's line/column order or the + original's source/line/column order, respectively. Defaults to + `SourceMapConsumer.GENERATED_ORDER`. + +```js +consumer.eachMapping(function (m) { console.log(m); }) +// ... +// { source: 'illmatic.js', +// generatedLine: 1, +// generatedColumn: 0, +// originalLine: 1, +// originalColumn: 0, +// name: null } +// { source: 'illmatic.js', +// generatedLine: 2, +// generatedColumn: 0, +// originalLine: 2, +// originalColumn: 0, +// name: null } +// ... +``` +### SourceMapGenerator + +An instance of the SourceMapGenerator represents a source map which is being +built incrementally. + +#### new SourceMapGenerator([startOfSourceMap]) + +You may pass an object with the following properties: + +* `file`: The filename of the generated source that this source map is + associated with. + +* `sourceRoot`: A root for all relative URLs in this source map. + +* `skipValidation`: Optional. When `true`, disables validation of mappings as + they are added. This can improve performance but should be used with + discretion, as a last resort. Even then, one should avoid using this flag when + running tests, if possible. + +```js +var generator = new sourceMap.SourceMapGenerator({ + file: "my-generated-javascript-file.js", + sourceRoot: "http://example.com/app/js/" +}); +``` + +#### SourceMapGenerator.fromSourceMap(sourceMapConsumer) + +Creates a new `SourceMapGenerator` from an existing `SourceMapConsumer` instance. + +* `sourceMapConsumer` The SourceMap. + +```js +var generator = sourceMap.SourceMapGenerator.fromSourceMap(consumer); +``` + +#### SourceMapGenerator.prototype.addMapping(mapping) + +Add a single mapping from original source line and column to the generated +source's line and column for this source map being created. The mapping object +should have the following properties: + +* `generated`: An object with the generated line and column positions. + +* `original`: An object with the original line and column positions. + +* `source`: The original source file (relative to the sourceRoot). + +* `name`: An optional original token name for this mapping. + +```js +generator.addMapping({ + source: "module-one.scm", + original: { line: 128, column: 0 }, + generated: { line: 3, column: 456 } +}) +``` + +#### SourceMapGenerator.prototype.setSourceContent(sourceFile, sourceContent) + +Set the source content for an original source file. + +* `sourceFile` the URL of the original source file. + +* `sourceContent` the content of the source file. + +```js +generator.setSourceContent("module-one.scm", + fs.readFileSync("path/to/module-one.scm")) +``` + +#### SourceMapGenerator.prototype.applySourceMap(sourceMapConsumer[, sourceFile[, sourceMapPath]]) + +Applies a SourceMap for a source file to the SourceMap. +Each mapping to the supplied source file is rewritten using the +supplied SourceMap. Note: The resolution for the resulting mappings +is the minimum of this map and the supplied map. + +* `sourceMapConsumer`: The SourceMap to be applied. + +* `sourceFile`: Optional. The filename of the source file. + If omitted, sourceMapConsumer.file will be used, if it exists. + Otherwise an error will be thrown. + +* `sourceMapPath`: Optional. The dirname of the path to the SourceMap + to be applied. If relative, it is relative to the SourceMap. + + This parameter is needed when the two SourceMaps aren't in the same + directory, and the SourceMap to be applied contains relative source + paths. If so, those relative source paths need to be rewritten + relative to the SourceMap. + + If omitted, it is assumed that both SourceMaps are in the same directory, + thus not needing any rewriting. (Supplying `'.'` has the same effect.) + +#### SourceMapGenerator.prototype.toString() + +Renders the source map being generated to a string. + +```js +generator.toString() +// '{"version":3,"sources":["module-one.scm"],"names":[],"mappings":"...snip...","file":"my-generated-javascript-file.js","sourceRoot":"http://example.com/app/js/"}' +``` + +### SourceNode + +SourceNodes provide a way to abstract over interpolating and/or concatenating +snippets of generated JavaScript source code, while maintaining the line and +column information associated between those snippets and the original source +code. This is useful as the final intermediate representation a compiler might +use before outputting the generated JS and source map. + +#### new SourceNode([line, column, source[, chunk[, name]]]) + +* `line`: The original line number associated with this source node, or null if + it isn't associated with an original line. The line number is 1-based. + +* `column`: The original column number associated with this source node, or null + if it isn't associated with an original column. The column number + is 0-based. + +* `source`: The original source's filename; null if no filename is provided. + +* `chunk`: Optional. Is immediately passed to `SourceNode.prototype.add`, see + below. + +* `name`: Optional. The original identifier. + +```js +var node = new SourceNode(1, 2, "a.cpp", [ + new SourceNode(3, 4, "b.cpp", "extern int status;\n"), + new SourceNode(5, 6, "c.cpp", "std::string* make_string(size_t n);\n"), + new SourceNode(7, 8, "d.cpp", "int main(int argc, char** argv) {}\n"), +]); +``` + +#### SourceNode.fromStringWithSourceMap(code, sourceMapConsumer[, relativePath]) + +Creates a SourceNode from generated code and a SourceMapConsumer. + +* `code`: The generated code + +* `sourceMapConsumer` The SourceMap for the generated code + +* `relativePath` The optional path that relative sources in `sourceMapConsumer` + should be relative to. + +```js +var consumer = new SourceMapConsumer(fs.readFileSync("path/to/my-file.js.map", "utf8")); +var node = SourceNode.fromStringWithSourceMap(fs.readFileSync("path/to/my-file.js"), + consumer); +``` + +#### SourceNode.prototype.add(chunk) + +Add a chunk of generated JS to this source node. + +* `chunk`: A string snippet of generated JS code, another instance of + `SourceNode`, or an array where each member is one of those things. + +```js +node.add(" + "); +node.add(otherNode); +node.add([leftHandOperandNode, " + ", rightHandOperandNode]); +``` + +#### SourceNode.prototype.prepend(chunk) + +Prepend a chunk of generated JS to this source node. + +* `chunk`: A string snippet of generated JS code, another instance of + `SourceNode`, or an array where each member is one of those things. + +```js +node.prepend("/** Build Id: f783haef86324gf **/\n\n"); +``` + +#### SourceNode.prototype.setSourceContent(sourceFile, sourceContent) + +Set the source content for a source file. This will be added to the +`SourceMap` in the `sourcesContent` field. + +* `sourceFile`: The filename of the source file + +* `sourceContent`: The content of the source file + +```js +node.setSourceContent("module-one.scm", + fs.readFileSync("path/to/module-one.scm")) +``` + +#### SourceNode.prototype.walk(fn) + +Walk over the tree of JS snippets in this node and its children. The walking +function is called once for each snippet of JS and is passed that snippet and +the its original associated source's line/column location. + +* `fn`: The traversal function. + +```js +var node = new SourceNode(1, 2, "a.js", [ + new SourceNode(3, 4, "b.js", "uno"), + "dos", + [ + "tres", + new SourceNode(5, 6, "c.js", "quatro") + ] +]); + +node.walk(function (code, loc) { console.log("WALK:", code, loc); }) +// WALK: uno { source: 'b.js', line: 3, column: 4, name: null } +// WALK: dos { source: 'a.js', line: 1, column: 2, name: null } +// WALK: tres { source: 'a.js', line: 1, column: 2, name: null } +// WALK: quatro { source: 'c.js', line: 5, column: 6, name: null } +``` + +#### SourceNode.prototype.walkSourceContents(fn) + +Walk over the tree of SourceNodes. The walking function is called for each +source file content and is passed the filename and source content. + +* `fn`: The traversal function. + +```js +var a = new SourceNode(1, 2, "a.js", "generated from a"); +a.setSourceContent("a.js", "original a"); +var b = new SourceNode(1, 2, "b.js", "generated from b"); +b.setSourceContent("b.js", "original b"); +var c = new SourceNode(1, 2, "c.js", "generated from c"); +c.setSourceContent("c.js", "original c"); + +var node = new SourceNode(null, null, null, [a, b, c]); +node.walkSourceContents(function (source, contents) { console.log("WALK:", source, ":", contents); }) +// WALK: a.js : original a +// WALK: b.js : original b +// WALK: c.js : original c +``` + +#### SourceNode.prototype.join(sep) + +Like `Array.prototype.join` except for SourceNodes. Inserts the separator +between each of this source node's children. + +* `sep`: The separator. + +```js +var lhs = new SourceNode(1, 2, "a.rs", "my_copy"); +var operand = new SourceNode(3, 4, "a.rs", "="); +var rhs = new SourceNode(5, 6, "a.rs", "orig.clone()"); + +var node = new SourceNode(null, null, null, [ lhs, operand, rhs ]); +var joinedNode = node.join(" "); +``` + +#### SourceNode.prototype.replaceRight(pattern, replacement) + +Call `String.prototype.replace` on the very right-most source snippet. Useful +for trimming white space from the end of a source node, etc. + +* `pattern`: The pattern to replace. + +* `replacement`: The thing to replace the pattern with. + +```js +// Trim trailing white space. +node.replaceRight(/\s*$/, ""); +``` + +#### SourceNode.prototype.toString() + +Return the string representation of this source node. Walks over the tree and +concatenates all the various snippets together to one string. + +```js +var node = new SourceNode(1, 2, "a.js", [ + new SourceNode(3, 4, "b.js", "uno"), + "dos", + [ + "tres", + new SourceNode(5, 6, "c.js", "quatro") + ] +]); + +node.toString() +// 'unodostresquatro' +``` + +#### SourceNode.prototype.toStringWithSourceMap([startOfSourceMap]) + +Returns the string representation of this tree of source nodes, plus a +SourceMapGenerator which contains all the mappings between the generated and +original sources. + +The arguments are the same as those to `new SourceMapGenerator`. + +```js +var node = new SourceNode(1, 2, "a.js", [ + new SourceNode(3, 4, "b.js", "uno"), + "dos", + [ + "tres", + new SourceNode(5, 6, "c.js", "quatro") + ] +]); + +node.toStringWithSourceMap({ file: "my-output-file.js" }) +// { code: 'unodostresquatro', +// map: [object SourceMapGenerator] } +``` diff --git a/node_modules/source-map-js/lib/array-set.js b/node_modules/source-map-js/lib/array-set.js new file mode 100644 index 00000000..fbd5c81c --- /dev/null +++ b/node_modules/source-map-js/lib/array-set.js @@ -0,0 +1,121 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); +var has = Object.prototype.hasOwnProperty; +var hasNativeMap = typeof Map !== "undefined"; + +/** + * A data structure which is a combination of an array and a set. Adding a new + * member is O(1), testing for membership is O(1), and finding the index of an + * element is O(1). Removing elements from the set is not supported. Only + * strings are supported for membership. + */ +function ArraySet() { + this._array = []; + this._set = hasNativeMap ? new Map() : Object.create(null); +} + +/** + * Static method for creating ArraySet instances from an existing array. + */ +ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set = new ArraySet(); + for (var i = 0, len = aArray.length; i < len; i++) { + set.add(aArray[i], aAllowDuplicates); + } + return set; +}; + +/** + * Return how many unique items are in this ArraySet. If duplicates have been + * added, than those do not count towards the size. + * + * @returns Number + */ +ArraySet.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; +}; + +/** + * Add the given string to this set. + * + * @param String aStr + */ +ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } +}; + +/** + * Is the given string a member of this set? + * + * @param String aStr + */ +ArraySet.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util.toSetString(aStr); + return has.call(this._set, sStr); + } +}; + +/** + * What is the index of the given string in the array? + * + * @param String aStr + */ +ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util.toSetString(aStr); + if (has.call(this._set, sStr)) { + return this._set[sStr]; + } + } + + throw new Error('"' + aStr + '" is not in the set.'); +}; + +/** + * What is the element at the given index? + * + * @param Number aIdx + */ +ArraySet.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error('No element indexed by ' + aIdx); +}; + +/** + * Returns the array representation of this set (which has the proper indices + * indicated by indexOf). Note that this is a copy of the internal array used + * for storing the members so that no one can mess with internal state. + */ +ArraySet.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); +}; + +exports.ArraySet = ArraySet; diff --git a/node_modules/source-map-js/lib/base64-vlq.js b/node_modules/source-map-js/lib/base64-vlq.js new file mode 100644 index 00000000..612b4040 --- /dev/null +++ b/node_modules/source-map-js/lib/base64-vlq.js @@ -0,0 +1,140 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + * + * Based on the Base 64 VLQ implementation in Closure Compiler: + * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java + * + * Copyright 2011 The Closure Compiler Authors. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +var base64 = require('./base64'); + +// A single base 64 digit can contain 6 bits of data. For the base 64 variable +// length quantities we use in the source map spec, the first bit is the sign, +// the next four bits are the actual value, and the 6th bit is the +// continuation bit. The continuation bit tells us whether there are more +// digits in this value following this digit. +// +// Continuation +// | Sign +// | | +// V V +// 101011 + +var VLQ_BASE_SHIFT = 5; + +// binary: 100000 +var VLQ_BASE = 1 << VLQ_BASE_SHIFT; + +// binary: 011111 +var VLQ_BASE_MASK = VLQ_BASE - 1; + +// binary: 100000 +var VLQ_CONTINUATION_BIT = VLQ_BASE; + +/** + * Converts from a two-complement value to a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + */ +function toVLQSigned(aValue) { + return aValue < 0 + ? ((-aValue) << 1) + 1 + : (aValue << 1) + 0; +} + +/** + * Converts to a two-complement value from a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + */ +function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative + ? -shifted + : shifted; +} + +/** + * Returns the base 64 VLQ encoded value. + */ +exports.encode = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; + + var vlq = toVLQSigned(aValue); + + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + // There are still more digits in this value, so we must make sure the + // continuation bit is marked. + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + + return encoded; +}; + +/** + * Decodes the next base 64 VLQ value from the given string and returns the + * value and the rest of the string via the out parameter. + */ +exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; + + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } + + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } + + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); + + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; +}; diff --git a/node_modules/source-map-js/lib/base64.js b/node_modules/source-map-js/lib/base64.js new file mode 100644 index 00000000..8aa86b30 --- /dev/null +++ b/node_modules/source-map-js/lib/base64.js @@ -0,0 +1,67 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); + +/** + * Encode an integer in the range of 0 to 63 to a single base 64 digit. + */ +exports.encode = function (number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); +}; + +/** + * Decode a single base 64 character code digit to an integer. Returns -1 on + * failure. + */ +exports.decode = function (charCode) { + var bigA = 65; // 'A' + var bigZ = 90; // 'Z' + + var littleA = 97; // 'a' + var littleZ = 122; // 'z' + + var zero = 48; // '0' + var nine = 57; // '9' + + var plus = 43; // '+' + var slash = 47; // '/' + + var littleOffset = 26; + var numberOffset = 52; + + // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ + if (bigA <= charCode && charCode <= bigZ) { + return (charCode - bigA); + } + + // 26 - 51: abcdefghijklmnopqrstuvwxyz + if (littleA <= charCode && charCode <= littleZ) { + return (charCode - littleA + littleOffset); + } + + // 52 - 61: 0123456789 + if (zero <= charCode && charCode <= nine) { + return (charCode - zero + numberOffset); + } + + // 62: + + if (charCode == plus) { + return 62; + } + + // 63: / + if (charCode == slash) { + return 63; + } + + // Invalid base64 digit. + return -1; +}; diff --git a/node_modules/source-map-js/lib/binary-search.js b/node_modules/source-map-js/lib/binary-search.js new file mode 100644 index 00000000..010ac941 --- /dev/null +++ b/node_modules/source-map-js/lib/binary-search.js @@ -0,0 +1,111 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +exports.GREATEST_LOWER_BOUND = 1; +exports.LEAST_UPPER_BOUND = 2; + +/** + * Recursive implementation of binary search. + * + * @param aLow Indices here and lower do not contain the needle. + * @param aHigh Indices here and higher do not contain the needle. + * @param aNeedle The element being searched for. + * @param aHaystack The non-empty array being searched. + * @param aCompare Function which takes two elements and returns -1, 0, or 1. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + */ +function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + // This function terminates when one of the following is true: + // + // 1. We find the exact element we are looking for. + // + // 2. We did not find the exact element, but we can return the index of + // the next-closest element. + // + // 3. We did not find the exact element, and there is no next-closest + // element than the one we are searching for, so we return -1. + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + // Found the element we are looking for. + return mid; + } + else if (cmp > 0) { + // Our needle is greater than aHaystack[mid]. + if (aHigh - mid > 1) { + // The element is in the upper half. + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + + // The exact needle element was not found in this haystack. Determine if + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; + } + } + else { + // Our needle is less than aHaystack[mid]. + if (mid - aLow > 1) { + // The element is in the lower half. + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } +} + +/** + * This is an implementation of binary search which will always try and return + * the index of the closest element if there is no exact hit. This is because + * mappings between original and generated line/col pairs are single points, + * and there is an implicit region between each of them, so a miss just means + * that you aren't on the very start of a region. + * + * @param aNeedle The element you are looking for. + * @param aHaystack The array that is being searched. + * @param aCompare A function which takes the needle and an element in the + * array and returns -1, 0, or 1 depending on whether the needle is less + * than, equal to, or greater than the element, respectively. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. + */ +exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + + var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, + aCompare, aBias || exports.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } + + // We have found either the exact element, or the next-closest element than + // the one we are searching for. However, there may be more than one such + // element. Make sure we always return the smallest of these. + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + + return index; +}; diff --git a/node_modules/source-map-js/lib/mapping-list.js b/node_modules/source-map-js/lib/mapping-list.js new file mode 100644 index 00000000..06d1274a --- /dev/null +++ b/node_modules/source-map-js/lib/mapping-list.js @@ -0,0 +1,79 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); + +/** + * Determine whether mappingB is after mappingA with respect to generated + * position. + */ +function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; +} + +/** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a neglibable overhead in general + * case for a large speedup in case of mappings being added in order. + */ +function MappingList() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; +} + +/** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ +MappingList.prototype.unsortedForEach = + function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + +/** + * Add the given source mapping. + * + * @param Object aMapping + */ +MappingList.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } +}; + +/** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ +MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; +}; + +exports.MappingList = MappingList; diff --git a/node_modules/source-map-js/lib/quick-sort.js b/node_modules/source-map-js/lib/quick-sort.js new file mode 100644 index 00000000..23f9eda5 --- /dev/null +++ b/node_modules/source-map-js/lib/quick-sort.js @@ -0,0 +1,132 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +// It turns out that some (most?) JavaScript engines don't self-host +// `Array.prototype.sort`. This makes sense because C++ will likely remain +// faster than JS when doing raw CPU-intensive sorting. However, when using a +// custom comparator function, calling back and forth between the VM's C++ and +// JIT'd JS is rather slow *and* loses JIT type information, resulting in +// worse generated code for the comparator function than would be optimal. In +// fact, when sorting with a comparator, these costs outweigh the benefits of +// sorting in C++. By using our own JS-implemented Quick Sort (below), we get +// a ~3500ms mean speed-up in `bench/bench.html`. + +function SortTemplate(comparator) { + +/** + * Swap the elements indexed by `x` and `y` in the array `ary`. + * + * @param {Array} ary + * The array. + * @param {Number} x + * The index of the first item. + * @param {Number} y + * The index of the second item. + */ +function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; +} + +/** + * Returns a random integer within the range `low .. high` inclusive. + * + * @param {Number} low + * The lower bound on the range. + * @param {Number} high + * The upper bound on the range. + */ +function randomIntInRange(low, high) { + return Math.round(low + (Math.random() * (high - low))); +} + +/** + * The Quick Sort algorithm. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + * @param {Number} p + * Start index of the array + * @param {Number} r + * End index of the array + */ +function doQuickSort(ary, comparator, p, r) { + // If our lower bound is less than our upper bound, we (1) partition the + // array into two pieces and (2) recurse on each half. If it is not, this is + // the empty array and our base case. + + if (p < r) { + // (1) Partitioning. + // + // The partitioning chooses a pivot between `p` and `r` and moves all + // elements that are less than or equal to the pivot to the before it, and + // all the elements that are greater than it after it. The effect is that + // once partition is done, the pivot is in the exact place it will be when + // the array is put in sorted order, and it will not need to be moved + // again. This runs in O(n) time. + + // Always choose a random pivot so that an input array which is reverse + // sorted does not cause O(n^2) running time. + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; + + swap(ary, pivotIndex, r); + var pivot = ary[r]; + + // Immediately after `j` is incremented in this loop, the following hold + // true: + // + // * Every element in `ary[p .. i]` is less than or equal to the pivot. + // + // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. + for (var j = p; j < r; j++) { + if (comparator(ary[j], pivot, false) <= 0) { + i += 1; + swap(ary, i, j); + } + } + + swap(ary, i + 1, j); + var q = i + 1; + + // (2) Recurse on each half. + + doQuickSort(ary, comparator, p, q - 1); + doQuickSort(ary, comparator, q + 1, r); + } +} + + return doQuickSort; +} + +function cloneSort(comparator) { + let template = SortTemplate.toString(); + let templateFn = new Function(`return ${template}`)(); + return templateFn(comparator); +} + +/** + * Sort the given array in-place with the given comparator function. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + */ + +let sortCache = new WeakMap(); +exports.quickSort = function (ary, comparator, start = 0) { + let doQuickSort = sortCache.get(comparator); + if (doQuickSort === void 0) { + doQuickSort = cloneSort(comparator); + sortCache.set(comparator, doQuickSort); + } + doQuickSort(ary, comparator, start, ary.length - 1); +}; diff --git a/node_modules/source-map-js/lib/source-map-consumer.js b/node_modules/source-map-js/lib/source-map-consumer.js new file mode 100644 index 00000000..4bd7a4a5 --- /dev/null +++ b/node_modules/source-map-js/lib/source-map-consumer.js @@ -0,0 +1,1184 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); +var binarySearch = require('./binary-search'); +var ArraySet = require('./array-set').ArraySet; +var base64VLQ = require('./base64-vlq'); +var quickSort = require('./quick-sort').quickSort; + +function SourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + return sourceMap.sections != null + ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) + : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); +} + +SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); +} + +/** + * The version of the source mapping spec that we are consuming. + */ +SourceMapConsumer.prototype._version = 3; + +// `__generatedMappings` and `__originalMappings` are arrays that hold the +// parsed mapping coordinates from the source map's "mappings" attribute. They +// are lazily instantiated, accessed via the `_generatedMappings` and +// `_originalMappings` getters respectively, and we only parse the mappings +// and create these arrays once queried for a source location. We jump through +// these hoops because there can be many thousands of mappings, and parsing +// them is expensive, so we only want to do it if we must. +// +// Each object in the arrays is of the form: +// +// { +// generatedLine: The line number in the generated code, +// generatedColumn: The column number in the generated code, +// source: The path to the original source file that generated this +// chunk of code, +// originalLine: The line number in the original source that +// corresponds to this chunk of generated code, +// originalColumn: The column number in the original source that +// corresponds to this chunk of generated code, +// name: The name of the original symbol which generated this chunk of +// code. +// } +// +// All properties except for `generatedLine` and `generatedColumn` can be +// `null`. +// +// `_generatedMappings` is ordered by the generated positions. +// +// `_originalMappings` is ordered by the original positions. + +SourceMapConsumer.prototype.__generatedMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__generatedMappings; + } +}); + +SourceMapConsumer.prototype.__originalMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__originalMappings; + } +}); + +SourceMapConsumer.prototype._charIsMappingSeparator = + function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +SourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; + +SourceMapConsumer.GENERATED_ORDER = 1; +SourceMapConsumer.ORIGINAL_ORDER = 2; + +SourceMapConsumer.GREATEST_LOWER_BOUND = 1; +SourceMapConsumer.LEAST_UPPER_BOUND = 2; + +/** + * Iterate over each mapping between an original source/line/column and a + * generated line/column in this source map. + * + * @param Function aCallback + * The function that is called with each mapping. + * @param Object aContext + * Optional. If specified, this object will be the value of `this` every + * time that `aCallback` is called. + * @param aOrder + * Either `SourceMapConsumer.GENERATED_ORDER` or + * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to + * iterate over the mappings sorted by the generated file's line/column + * order or the original's source/line/column order, respectively. Defaults to + * `SourceMapConsumer.GENERATED_ORDER`. + */ +SourceMapConsumer.prototype.eachMapping = + function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + + var sourceRoot = this.sourceRoot; + var boundCallback = aCallback.bind(context); + var names = this._names; + var sources = this._sources; + var sourceMapURL = this._sourceMapURL; + + for (var i = 0, n = mappings.length; i < n; i++) { + var mapping = mappings[i]; + var source = mapping.source === null ? null : sources.at(mapping.source); + source = util.computeSourceURL(sourceRoot, source, sourceMapURL); + boundCallback({ + source: source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : names.at(mapping.name) + }); + } + }; + +/** + * Returns all generated line and column information for the original source, + * line, and column provided. If no column is provided, returns all mappings + * corresponding to a either the line we are searching for or the next + * closest line that has any mappings. Otherwise, returns all mappings + * corresponding to the given line and either the column we are searching for + * or the next closest column that has any offsets. + * + * The only argument is an object with the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number is 1-based. + * - column: Optional. the column number in the original source. + * The column number is 0-based. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +SourceMapConsumer.prototype.allGeneratedPositionsFor = + function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util.getArg(aArgs, 'line'); + + // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping + // returns the index of the closest mapping less than the needle. By + // setting needle.originalColumn to 0, we thus find the last mapping for + // the given line, provided such a mapping exists. + var needle = { + source: util.getArg(aArgs, 'source'), + originalLine: line, + originalColumn: util.getArg(aArgs, 'column', 0) + }; + + needle.source = this._findSourceIndex(needle.source); + if (needle.source < 0) { + return []; + } + + var mappings = []; + + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + binarySearch.LEAST_UPPER_BOUND); + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (aArgs.column === undefined) { + var originalLine = mapping.originalLine; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we found. Since + // mappings are sorted, this is guaranteed to find all mappings for + // the line we found. + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } else { + var originalColumn = mapping.originalColumn; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we were searching for. + // Since mappings are sorted, this is guaranteed to find all mappings for + // the line we are searching for. + while (mapping && + mapping.originalLine === line && + mapping.originalColumn == originalColumn) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } + } + + return mappings; + }; + +exports.SourceMapConsumer = SourceMapConsumer; + +/** + * A BasicSourceMapConsumer instance represents a parsed source map which we can + * query for information about the original file positions by giving it a file + * position in the generated source. + * + * The first parameter is the raw source map (either as a JSON string, or + * already parsed to an object). According to the spec, source maps have the + * following attributes: + * + * - version: Which version of the source map spec this map is following. + * - sources: An array of URLs to the original source files. + * - names: An array of identifiers which can be referrenced by individual mappings. + * - sourceRoot: Optional. The URL root from which all sources are relative. + * - sourcesContent: Optional. An array of contents of the original source files. + * - mappings: A string of base64 VLQs which contain the actual mappings. + * - file: Optional. The generated file this source map is associated with. + * + * Here is an example source map, taken from the source map spec[0]: + * + * { + * version : 3, + * file: "out.js", + * sourceRoot : "", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AA,AB;;ABCDE;" + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# + */ +function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sources = util.getArg(sourceMap, 'sources'); + // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which + // requires the array) to play nice here. + var names = util.getArg(sourceMap, 'names', []); + var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); + var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); + var mappings = util.getArg(sourceMap, 'mappings'); + var file = util.getArg(sourceMap, 'file', null); + + // Once again, Sass deviates from the spec and supplies the version as a + // string rather than a number, so we use loose equality checking here. + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + if (sourceRoot) { + sourceRoot = util.normalize(sourceRoot); + } + + sources = sources + .map(String) + // Some source maps produce relative source paths like "./foo.js" instead of + // "foo.js". Normalize these first so that future comparisons will succeed. + // See bugzil.la/1090768. + .map(util.normalize) + // Always ensure that absolute sources are internally stored relative to + // the source root, if the source root is absolute. Not doing this would + // be particularly problematic when the source root is a prefix of the + // source (valid, but why??). See github issue #199 and bugzil.la/1188982. + .map(function (source) { + return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) + ? util.relative(sourceRoot, source) + : source; + }); + + // Pass `true` below to allow duplicate names and sources. While source maps + // are intended to be compressed and deduplicated, the TypeScript compiler + // sometimes generates source maps with duplicates in them. See Github issue + // #72 and bugzil.la/889492. + this._names = ArraySet.fromArray(names.map(String), true); + this._sources = ArraySet.fromArray(sources, true); + + this._absoluteSources = this._sources.toArray().map(function (s) { + return util.computeSourceURL(sourceRoot, s, aSourceMapURL); + }); + + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this._sourceMapURL = aSourceMapURL; + this.file = file; +} + +BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + +/** + * Utility function to find the index of a source. Returns -1 if not + * found. + */ +BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) { + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + if (this._sources.has(relativeSource)) { + return this._sources.indexOf(relativeSource); + } + + // Maybe aSource is an absolute URL as returned by |sources|. In + // this case we can't simply undo the transform. + var i; + for (i = 0; i < this._absoluteSources.length; ++i) { + if (this._absoluteSources[i] == aSource) { + return i; + } + } + + return -1; +}; + +/** + * Create a BasicSourceMapConsumer from a SourceMapGenerator. + * + * @param SourceMapGenerator aSourceMap + * The source map that will be consumed. + * @param String aSourceMapURL + * The URL at which the source map can be found (optional) + * @returns BasicSourceMapConsumer + */ +BasicSourceMapConsumer.fromSourceMap = + function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) { + var smc = Object.create(BasicSourceMapConsumer.prototype); + + var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), + smc.sourceRoot); + smc.file = aSourceMap._file; + smc._sourceMapURL = aSourceMapURL; + smc._absoluteSources = smc._sources.toArray().map(function (s) { + return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL); + }); + + // Because we are modifying the entries (by converting string sources and + // names to indices into the sources and names ArraySets), we have to make + // a copy of the entry or else bad things happen. Shared mutable state + // strikes again! See github issue #191. + + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; + + for (var i = 0, length = generatedMappings.length; i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping; + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; + + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + + destOriginalMappings.push(destMapping); + } + + destGeneratedMappings.push(destMapping); + } + + quickSort(smc.__originalMappings, util.compareByOriginalPositions); + + return smc; + }; + +/** + * The version of the source mapping spec that we are consuming. + */ +BasicSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { + get: function () { + return this._absoluteSources.slice(); + } +}); + +/** + * Provide the JIT with a nice shape / hidden class. + */ +function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; +} + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + +const compareGenerated = util.compareByGeneratedPositionsDeflatedNoLine; +function sortGenerated(array, start) { + let l = array.length; + let n = array.length - start; + if (n <= 1) { + return; + } else if (n == 2) { + let a = array[start]; + let b = array[start + 1]; + if (compareGenerated(a, b) > 0) { + array[start] = b; + array[start + 1] = a; + } + } else if (n < 20) { + for (let i = start; i < l; i++) { + for (let j = i; j > start; j--) { + let a = array[j - 1]; + let b = array[j]; + if (compareGenerated(a, b) <= 0) { + break; + } + array[j - 1] = b; + array[j] = a; + } + } + } else { + quickSort(array, compareGenerated, start); + } +} +BasicSourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var cachedSegments = {}; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, str, segment, end, value; + + let subarrayStart = 0; + while (index < length) { + if (aStr.charAt(index) === ';') { + generatedLine++; + index++; + previousGeneratedColumn = 0; + + sortGenerated(generatedMappings, subarrayStart); + subarrayStart = generatedMappings.length; + } + else if (aStr.charAt(index) === ',') { + index++; + } + else { + mapping = new Mapping(); + mapping.generatedLine = generatedLine; + + for (end = index; end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + str = aStr.slice(index, end); + + segment = []; + while (index < end) { + base64VLQ.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } + + if (segment.length === 2) { + throw new Error('Found a source, but no line and column'); + } + + if (segment.length === 3) { + throw new Error('Found a source and line, but no column'); + } + + // Generated column. + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; + + if (segment.length > 1) { + // Original source. + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; + + // Original line. + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + // Lines are stored 0-based + mapping.originalLine += 1; + + // Original column. + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; + + if (segment.length > 4) { + // Original name. + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + + generatedMappings.push(mapping); + if (typeof mapping.originalLine === 'number') { + let currentSource = mapping.source; + while (originalMappings.length <= currentSource) { + originalMappings.push(null); + } + if (originalMappings[currentSource] === null) { + originalMappings[currentSource] = []; + } + originalMappings[currentSource].push(mapping); + } + } + } + + sortGenerated(generatedMappings, subarrayStart); + this.__generatedMappings = generatedMappings; + + for (var i = 0; i < originalMappings.length; i++) { + if (originalMappings[i] != null) { + quickSort(originalMappings[i], util.compareByOriginalPositionsNoSource); + } + } + this.__originalMappings = [].concat(...originalMappings); + }; + +/** + * Find the mapping that best matches the hypothetical "needle" mapping that + * we are searching for in the given "haystack" of mappings. + */ +BasicSourceMapConsumer.prototype._findMapping = + function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, + aColumnName, aComparator, aBias) { + // To return the position we are searching for, we must first find the + // mapping for the given position and then return the opposite position it + // points to. Because the mappings are sorted, we can use binary search to + // find the best mapping. + + if (aNeedle[aLineName] <= 0) { + throw new TypeError('Line must be greater than or equal to 1, got ' + + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError('Column must be greater than or equal to 0, got ' + + aNeedle[aColumnName]); + } + + return binarySearch.search(aNeedle, aMappings, aComparator, aBias); + }; + +/** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ +BasicSourceMapConsumer.prototype.computeColumnSpans = + function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + + // Mappings do not contain a field for the last generated columnt. We + // can come up with an optimistic estimate, however, by assuming that + // mappings are contiguous (i.e. given two consecutive mappings, the + // first mapping ends where the second one starts). + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + + // The last mapping for each line spans the entire line. + mapping.lastGeneratedColumn = Infinity; + } + }; + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +BasicSourceMapConsumer.prototype.originalPositionFor = + function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util.compareByGeneratedPositionsDeflated, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._generatedMappings[index]; + + if (mapping.generatedLine === needle.generatedLine) { + var source = util.getArg(mapping, 'source', null); + if (source !== null) { + source = this._sources.at(source); + source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL); + } + var name = util.getArg(mapping, 'name', null); + if (name !== null) { + name = this._names.at(name); + } + return { + source: source, + line: util.getArg(mapping, 'originalLine', null), + column: util.getArg(mapping, 'originalColumn', null), + name: name + }; + } + } + + return { + source: null, + line: null, + column: null, + name: null + }; + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +BasicSourceMapConsumer.prototype.hasContentsOfAllSources = + function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && + !this.sourcesContent.some(function (sc) { return sc == null; }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +BasicSourceMapConsumer.prototype.sourceContentFor = + function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + + var index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + var url; + if (this.sourceRoot != null + && (url = util.urlParse(this.sourceRoot))) { + // XXX: file:// URIs and absolute paths lead to unexpected behavior for + // many users. We can help them out when they expect file:// URIs to + // behave like it would if they were running a local HTTP server. See + // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. + var fileUriAbsPath = relativeSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" + && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] + } + + if ((!url.path || url.path == "/") + && this._sources.has("/" + relativeSource)) { + return this.sourcesContent[this._sources.indexOf("/" + relativeSource)]; + } + } + + // This function is used recursively from + // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we + // don't want to throw if we can't find the source - we just want to + // return null, so we provide a flag to exit gracefully. + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + relativeSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +BasicSourceMapConsumer.prototype.generatedPositionFor = + function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util.getArg(aArgs, 'source'); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + + var needle = { + source: source, + originalLine: util.getArg(aArgs, 'line'), + originalColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (mapping.source === needle.source) { + return { + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }; + } + } + + return { + line: null, + column: null, + lastColumn: null + }; + }; + +exports.BasicSourceMapConsumer = BasicSourceMapConsumer; + +/** + * An IndexedSourceMapConsumer instance represents a parsed source map which + * we can query for information. It differs from BasicSourceMapConsumer in + * that it takes "indexed" source maps (i.e. ones with a "sections" field) as + * input. + * + * The first parameter is a raw source map (either as a JSON string, or already + * parsed to an object). According to the spec for indexed source maps, they + * have the following attributes: + * + * - version: Which version of the source map spec this map is following. + * - file: Optional. The generated file this source map is associated with. + * - sections: A list of section definitions. + * + * Each value under the "sections" field has two fields: + * - offset: The offset into the original specified at which this section + * begins to apply, defined as an object with a "line" and "column" + * field. + * - map: A source map definition. This source map could also be indexed, + * but doesn't have to be. + * + * Instead of the "map" field, it's also possible to have a "url" field + * specifying a URL to retrieve a source map from, but that's currently + * unsupported. + * + * Here's an example source map, taken from the source map spec[0], but + * modified to omit a section which uses the "url" field. + * + * { + * version : 3, + * file: "app.js", + * sections: [{ + * offset: {line:100, column:10}, + * map: { + * version : 3, + * file: "section.js", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AAAA,E;;ABCDE;" + * } + * }], + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt + */ +function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sections = util.getArg(sourceMap, 'sections'); + + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + this._sources = new ArraySet(); + this._names = new ArraySet(); + + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function (s) { + if (s.url) { + // The url field will require support for asynchronicity. + // See https://github.com/mozilla/source-map/issues/16 + throw new Error('Support for url field in sections not implemented.'); + } + var offset = util.getArg(s, 'offset'); + var offsetLine = util.getArg(offset, 'line'); + var offsetColumn = util.getArg(offset, 'column'); + + if (offsetLine < lastOffset.line || + (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { + throw new Error('Section offsets must be ordered and non-overlapping.'); + } + lastOffset = offset; + + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL) + } + }); +} + +IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; + +/** + * The version of the source mapping spec that we are consuming. + */ +IndexedSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { + get: function () { + var sources = []; + for (var i = 0; i < this._sections.length; i++) { + for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } +}); + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +IndexedSourceMapConsumer.prototype.originalPositionFor = + function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + // Find the section containing the generated position we're trying to map + // to an original position. + var sectionIndex = binarySearch.search(needle, this._sections, + function(needle, section) { + var cmp = needle.generatedLine - section.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + + return (needle.generatedColumn - + section.generatedOffset.generatedColumn); + }); + var section = this._sections[sectionIndex]; + + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + + return section.consumer.originalPositionFor({ + line: needle.generatedLine - + (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - + (section.generatedOffset.generatedLine === needle.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + bias: aArgs.bias + }); + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = + function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function (s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +IndexedSourceMapConsumer.prototype.sourceContentFor = + function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + var content = section.consumer.sourceContentFor(aSource, true); + if (content) { + return content; + } + } + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +IndexedSourceMapConsumer.prototype.generatedPositionFor = + function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + // Only consider this section if the requested source is in the list of + // sources of the consumer. + if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + + (section.generatedOffset.generatedLine === generatedPosition.line + ? section.generatedOffset.generatedColumn - 1 + : 0) + }; + return ret; + } + } + + return { + line: null, + column: null + }; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +IndexedSourceMapConsumer.prototype._parseMappings = + function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0; j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; + + var source = section.consumer._sources.at(mapping.source); + source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + this._sources.add(source); + source = this._sources.indexOf(source); + + var name = null; + if (mapping.name) { + name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); + } + + // The mappings coming from the consumer for the section have + // generated positions relative to the start of the section, so we + // need to offset them to be relative to the start of the concatenated + // generated file. + var adjustedMapping = { + source: source, + generatedLine: mapping.generatedLine + + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + + (section.generatedOffset.generatedLine === mapping.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: name + }; + + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === 'number') { + this.__originalMappings.push(adjustedMapping); + } + } + } + + quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); + quickSort(this.__originalMappings, util.compareByOriginalPositions); + }; + +exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; diff --git a/node_modules/source-map-js/lib/source-map-generator.js b/node_modules/source-map-js/lib/source-map-generator.js new file mode 100644 index 00000000..508bcfbb --- /dev/null +++ b/node_modules/source-map-js/lib/source-map-generator.js @@ -0,0 +1,425 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var base64VLQ = require('./base64-vlq'); +var util = require('./util'); +var ArraySet = require('./array-set').ArraySet; +var MappingList = require('./mapping-list').MappingList; + +/** + * An instance of the SourceMapGenerator represents a source map which is + * being built incrementally. You may pass an object with the following + * properties: + * + * - file: The filename of the generated source. + * - sourceRoot: A root for all relative URLs in this source map. + */ +function SourceMapGenerator(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util.getArg(aArgs, 'file', null); + this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); + this._skipValidation = util.getArg(aArgs, 'skipValidation', false); + this._sources = new ArraySet(); + this._names = new ArraySet(); + this._mappings = new MappingList(); + this._sourcesContents = null; +} + +SourceMapGenerator.prototype._version = 3; + +/** + * Creates a new SourceMapGenerator based on a SourceMapConsumer + * + * @param aSourceMapConsumer The SourceMap. + */ +SourceMapGenerator.fromSourceMap = + function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator({ + file: aSourceMapConsumer.file, + sourceRoot: sourceRoot + }); + aSourceMapConsumer.eachMapping(function (mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util.relative(sourceRoot, newMapping.source); + } + + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util.relative(sourceRoot, sourceFile); + } + + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + }; + +/** + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * + * - generated: An object with the generated line and column positions. + * - original: An object with the original line and column positions. + * - source: The original source file (relative to the sourceRoot). + * - name: An optional original token name for this mapping. + */ +SourceMapGenerator.prototype.addMapping = + function SourceMapGenerator_addMapping(aArgs) { + var generated = util.getArg(aArgs, 'generated'); + var original = util.getArg(aArgs, 'original', null); + var source = util.getArg(aArgs, 'source', null); + var name = util.getArg(aArgs, 'name', null); + + if (!this._skipValidation) { + this._validateMapping(generated, original, source, name); + } + + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source: source, + name: name + }); + }; + +/** + * Set the source content for a source file. + */ +SourceMapGenerator.prototype.setSourceContent = + function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util.relative(this._sourceRoot, source); + } + + if (aSourceContent != null) { + // Add the source content to the _sourcesContents map. + // Create a new _sourcesContents map if the property is null. + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + // Remove the source file from the _sourcesContents map. + // If the _sourcesContents map is empty, set the property to null. + delete this._sourcesContents[util.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + }; + +/** + * Applies the mappings of a sub-source-map for a specific source file to the + * source map being generated. Each mapping to the supplied source file is + * rewritten using the supplied source map. Note: The resolution for the + * resulting mappings is the minimium of this map and the supplied map. + * + * @param aSourceMapConsumer The source map to be applied. + * @param aSourceFile Optional. The filename of the source file. + * If omitted, SourceMapConsumer's file property will be used. + * @param aSourceMapPath Optional. The dirname of the path to the source map + * to be applied. If relative, it is relative to the SourceMapConsumer. + * This parameter is needed when the two source maps aren't in the same + * directory, and the source map to be applied contains relative source + * paths. If so, those relative source paths need to be rewritten + * relative to the SourceMapGenerator. + */ +SourceMapGenerator.prototype.applySourceMap = + function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + // If aSourceFile is omitted, we will use the file property of the SourceMap + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + + 'or the source map\'s "file" property. Both were omitted.' + ); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + // Make "sourceFile" relative if an absolute Url is passed. + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + // Applying the SourceMap can add and remove items from the sources and + // the names array. + var newSources = new ArraySet(); + var newNames = new ArraySet(); + + // Find mappings for the "sourceFile" + this._mappings.unsortedForEach(function (mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + // Copy mapping + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util.join(aSourceMapPath, mapping.source) + } + if (sourceRoot != null) { + mapping.source = util.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + + }, this); + this._sources = newSources; + this._names = newNames; + + // Copy sourcesContents of applied map. + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile = util.join(aSourceMapPath, sourceFile); + } + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + this.setSourceContent(sourceFile, content); + } + }, this); + }; + +/** + * A mapping can have one of the three levels of data: + * + * 1. Just the generated position. + * 2. The Generated position, original position, and original source. + * 3. Generated and original position, original source, as well as a name + * token. + * + * To maintain consistency, we validate that any new mapping being added falls + * in to one of these categories. + */ +SourceMapGenerator.prototype._validateMapping = + function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, + aName) { + // When aOriginal is truthy but has empty values for .line and .column, + // it is most likely a programmer error. In this case we throw a very + // specific error message to try to guide them the right way. + // For example: https://github.com/Polymer/polymer-bundler/pull/519 + if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { + throw new Error( + 'original.line and original.column are not numbers -- you probably meant to omit ' + + 'the original mapping entirely and only map the generated position. If so, pass ' + + 'null for the original mapping instead of an object with empty or null values.' + ); + } + + if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aGenerated.line > 0 && aGenerated.column >= 0 + && !aOriginal && !aSource && !aName) { + // Case 1. + return; + } + else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aOriginal && 'line' in aOriginal && 'column' in aOriginal + && aGenerated.line > 0 && aGenerated.column >= 0 + && aOriginal.line > 0 && aOriginal.column >= 0 + && aSource) { + // Cases 2 and 3. + return; + } + else { + throw new Error('Invalid mapping: ' + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + })); + } + }; + +/** + * Serialize the accumulated mappings in to the stream of base 64 VLQs + * specified by the source map format. + */ +SourceMapGenerator.prototype._serializeMappings = + function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ''; + var next; + var mapping; + var nameIdx; + var sourceIdx; + + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = '' + + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ';'; + previousGeneratedLine++; + } + } + else { + if (i > 0) { + if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ','; + } + } + + next += base64VLQ.encode(mapping.generatedColumn + - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + + // lines are stored 0-based in SourceMap spec version 3 + next += base64VLQ.encode(mapping.originalLine - 1 + - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + + next += base64VLQ.encode(mapping.originalColumn + - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + + result += next; + } + + return result; + }; + +SourceMapGenerator.prototype._generateSourcesContent = + function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function (source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util.relative(aSourceRoot, source); + } + var key = util.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) + ? this._sourcesContents[key] + : null; + }, this); + }; + +/** + * Externalize the source map. + */ +SourceMapGenerator.prototype.toJSON = + function SourceMapGenerator_toJSON() { + var map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); + } + + return map; + }; + +/** + * Render the source map being generated to a string. + */ +SourceMapGenerator.prototype.toString = + function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; + +exports.SourceMapGenerator = SourceMapGenerator; diff --git a/node_modules/source-map-js/lib/source-node.js b/node_modules/source-map-js/lib/source-node.js new file mode 100644 index 00000000..8bcdbe38 --- /dev/null +++ b/node_modules/source-map-js/lib/source-node.js @@ -0,0 +1,413 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator; +var util = require('./util'); + +// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other +// operating systems these days (capturing the result). +var REGEX_NEWLINE = /(\r?\n)/; + +// Newline character code for charCodeAt() comparisons +var NEWLINE_CODE = 10; + +// Private symbol for identifying `SourceNode`s when multiple versions of +// the source-map library are loaded. This MUST NOT CHANGE across +// versions! +var isSourceNode = "$$$isSourceNode$$$"; + +/** + * SourceNodes provide a way to abstract over interpolating/concatenating + * snippets of generated JavaScript source code while maintaining the line and + * column information associated with the original source code. + * + * @param aLine The original line number. + * @param aColumn The original column number. + * @param aSource The original source's filename. + * @param aChunks Optional. An array of strings which are snippets of + * generated JS, or other SourceNodes. + * @param aName The original identifier. + */ +function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) this.add(aChunks); +} + +/** + * Creates a SourceNode from generated code and a SourceMapConsumer. + * + * @param aGeneratedCode The generated code + * @param aSourceMapConsumer The SourceMap for the generated code + * @param aRelativePath Optional. The path that relative sources in the + * SourceMapConsumer should be relative to. + */ +SourceNode.fromStringWithSourceMap = + function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + // The SourceNode we want to fill with the generated code + // and the SourceMap + var node = new SourceNode(); + + // All even indices of this array are one line of the generated code, + // while all odd indices are the newlines between two adjacent lines + // (since `REGEX_NEWLINE` captures its match). + // Processed fragments are accessed by calling `shiftNextLine`. + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + // The last line of a file might not have a newline. + var newLine = getNextLine() || ""; + return lineContents + newLine; + + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? + remainingLines[remainingLinesIndex++] : undefined; + } + }; + + // We need to remember the position of "remainingLines" + var lastGeneratedLine = 1, lastGeneratedColumn = 0; + + // The generate SourceNodes we need a code range. + // To extract it current and last mapping is used. + // Here we store the last mapping. + var lastMapping = null; + + aSourceMapConsumer.eachMapping(function (mapping) { + if (lastMapping !== null) { + // We add the code from "lastMapping" to "mapping": + // First check if there is a new line in between. + if (lastGeneratedLine < mapping.generatedLine) { + // Associate first line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + // The remaining code is added without mapping + } else { + // There is no new line in between. + // Associate the code between "lastGeneratedColumn" and + // "mapping.generatedColumn" with "lastMapping" + var nextLine = remainingLines[remainingLinesIndex] || ''; + var code = nextLine.substr(0, mapping.generatedColumn - + lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - + lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + // No more remaining code, continue + lastMapping = mapping; + return; + } + } + // We add the generated code until the first mapping + // to the SourceNode without any mapping. + // Each line is added as separate string. + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex] || ''; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + // We have processed all mappings. + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + // Associate the remaining code in the current line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + } + // and add the remaining lines without any mapping + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + + // Copy sourcesContent into SourceNode + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + + return node; + + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + var source = aRelativePath + ? util.join(aRelativePath, mapping.source) + : mapping.source; + node.add(new SourceNode(mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name)); + } + } + }; + +/** + * Add a chunk of generated JS to this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function (chunk) { + this.add(chunk); + }, this); + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Add a chunk of generated JS to the beginning of this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length-1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Walk over the tree of JS snippets in this node and its children. The + * walking function is called once for each snippet of JS and is passed that + * snippet and the its original associated source's line/column location. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } + else { + if (chunk !== '') { + aFn(chunk, { source: this.source, + line: this.line, + column: this.column, + name: this.name }); + } + } + } +}; + +/** + * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between + * each of `this.children`. + * + * @param aSep The separator. + */ +SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len-1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; +}; + +/** + * Call String.prototype.replace on the very right-most source snippet. Useful + * for trimming whitespace from the end of a source node, etc. + * + * @param aPattern The pattern to replace. + * @param aReplacement The thing to replace the pattern with. + */ +SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } + else if (typeof lastChild === 'string') { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } + else { + this.children.push(''.replace(aPattern, aReplacement)); + } + return this; +}; + +/** + * Set the source content for a source file. This will be added to the SourceMapGenerator + * in the sourcesContent field. + * + * @param aSourceFile The filename of the source file + * @param aSourceContent The content of the source file + */ +SourceNode.prototype.setSourceContent = + function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; + }; + +/** + * Walk over the tree of SourceNodes. The walking function is called for each + * source file content and is passed the filename and source content. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walkSourceContents = + function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length; i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; + +/** + * Return the string representation of this source node. Walks over the tree + * and concatenates all the various snippets together to one string. + */ +SourceNode.prototype.toString = function SourceNode_toString() { + var str = ""; + this.walk(function (chunk) { + str += chunk; + }); + return str; +}; + +/** + * Returns the string representation of this source node along with a source + * map. + */ +SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map = new SourceMapGenerator(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function (chunk, original) { + generated.code += chunk; + if (original.source !== null + && original.line !== null + && original.column !== null) { + if(lastOriginalSource !== original.source + || lastOriginalLine !== original.line + || lastOriginalColumn !== original.column + || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + // Mappings end at eol + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function (sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + + return { code: generated.code, map: map }; +}; + +exports.SourceNode = SourceNode; diff --git a/node_modules/source-map-js/lib/util.js b/node_modules/source-map-js/lib/util.js new file mode 100644 index 00000000..430e2d0f --- /dev/null +++ b/node_modules/source-map-js/lib/util.js @@ -0,0 +1,594 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +/** + * This is a helper function for getting values from parameter/options + * objects. + * + * @param args The object we are extracting values from + * @param name The name of the property we are getting. + * @param defaultValue An optional value to return if the property is missing + * from the object. If this is not specified and the property is missing, an + * error will be thrown. + */ +function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } +} +exports.getArg = getArg; + +var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/; +var dataUrlRegexp = /^data:.+\,.+$/; + +function urlParse(aUrl) { + var match = aUrl.match(urlRegexp); + if (!match) { + return null; + } + return { + scheme: match[1], + auth: match[2], + host: match[3], + port: match[4], + path: match[5] + }; +} +exports.urlParse = urlParse; + +function urlGenerate(aParsedUrl) { + var url = ''; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ':'; + } + url += '//'; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + '@'; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; +} +exports.urlGenerate = urlGenerate; + +var MAX_CACHED_INPUTS = 32; + +/** + * Takes some function `f(input) -> result` and returns a memoized version of + * `f`. + * + * We keep at most `MAX_CACHED_INPUTS` memoized results of `f` alive. The + * memoization is a dumb-simple, linear least-recently-used cache. + */ +function lruMemoize(f) { + var cache = []; + + return function(input) { + for (var i = 0; i < cache.length; i++) { + if (cache[i].input === input) { + var temp = cache[0]; + cache[0] = cache[i]; + cache[i] = temp; + return cache[0].result; + } + } + + var result = f(input); + + cache.unshift({ + input, + result, + }); + + if (cache.length > MAX_CACHED_INPUTS) { + cache.pop(); + } + + return result; + }; +} + +/** + * Normalizes a path, or the path portion of a URL: + * + * - Replaces consecutive slashes with one slash. + * - Removes unnecessary '.' parts. + * - Removes unnecessary '/..' parts. + * + * Based on code in the Node.js 'path' core module. + * + * @param aPath The path or url to normalize. + */ +var normalize = lruMemoize(function normalize(aPath) { + var path = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path = url.path; + } + var isAbsolute = exports.isAbsolute(path); + // Split the path into parts between `/` characters. This is much faster than + // using `.split(/\/+/g)`. + var parts = []; + var start = 0; + var i = 0; + while (true) { + start = i; + i = path.indexOf("/", start); + if (i === -1) { + parts.push(path.slice(start)); + break; + } else { + parts.push(path.slice(start, i)); + while (i < path.length && path[i] === "/") { + i++; + } + } + } + + for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { + part = parts[i]; + if (part === '.') { + parts.splice(i, 1); + } else if (part === '..') { + up++; + } else if (up > 0) { + if (part === '') { + // The first part is blank if the path is absolute. Trying to go + // above the root is a no-op. Therefore we can remove all '..' parts + // directly after the root. + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; + } + } + } + path = parts.join('/'); + + if (path === '') { + path = isAbsolute ? '/' : '.'; + } + + if (url) { + url.path = path; + return urlGenerate(url); + } + return path; +}); +exports.normalize = normalize; + +/** + * Joins two paths/URLs. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be joined with the root. + * + * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a + * scheme-relative URL: Then the scheme of aRoot, if any, is prepended + * first. + * - Otherwise aPath is a path. If aRoot is a URL, then its path portion + * is updated with the result and aRoot is returned. Otherwise the result + * is returned. + * - If aPath is absolute, the result is aPath. + * - Otherwise the two paths are joined with a slash. + * - Joining for example 'http://' and 'www.example.com' is also supported. + */ +function join(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || '/'; + } + + // `join(foo, '//www.example.org')` + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } + + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } + + // `join('http://', 'www.example.com')` + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } + + var joined = aPath.charAt(0) === '/' + ? aPath + : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); + + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; +} +exports.join = join; + +exports.isAbsolute = function (aPath) { + return aPath.charAt(0) === '/' || urlRegexp.test(aPath); +}; + +/** + * Make a path relative to a URL or another path. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be made relative to aRoot. + */ +function relative(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + + aRoot = aRoot.replace(/\/$/, ''); + + // It is possible for the path to be above the root. In this case, simply + // checking whether the root is a prefix of the path won't work. Instead, we + // need to remove components from the root one by one, until either we find + // a prefix that fits, or we run out of components to remove. + var level = 0; + while (aPath.indexOf(aRoot + '/') !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } + + // If the only part of the root that is left is the scheme (i.e. http://, + // file:///, etc.), one or more slashes (/), or simply nothing at all, we + // have exhausted all components, so the path is not relative to the root. + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; + } + + ++level; + } + + // Make sure we add a "../" for each component we removed from the root. + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); +} +exports.relative = relative; + +var supportsNullProto = (function () { + var obj = Object.create(null); + return !('__proto__' in obj); +}()); + +function identity (s) { + return s; +} + +/** + * Because behavior goes wacky when you set `__proto__` on objects, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ +function toSetString(aStr) { + if (isProtoString(aStr)) { + return '$' + aStr; + } + + return aStr; +} +exports.toSetString = supportsNullProto ? identity : toSetString; + +function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + + return aStr; +} +exports.fromSetString = supportsNullProto ? identity : fromSetString; + +function isProtoString(s) { + if (!s) { + return false; + } + + var length = s.length; + + if (length < 9 /* "__proto__".length */) { + return false; + } + + if (s.charCodeAt(length - 1) !== 95 /* '_' */ || + s.charCodeAt(length - 2) !== 95 /* '_' */ || + s.charCodeAt(length - 3) !== 111 /* 'o' */ || + s.charCodeAt(length - 4) !== 116 /* 't' */ || + s.charCodeAt(length - 5) !== 111 /* 'o' */ || + s.charCodeAt(length - 6) !== 114 /* 'r' */ || + s.charCodeAt(length - 7) !== 112 /* 'p' */ || + s.charCodeAt(length - 8) !== 95 /* '_' */ || + s.charCodeAt(length - 9) !== 95 /* '_' */) { + return false; + } + + for (var i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36 /* '$' */) { + return false; + } + } + + return true; +} + +/** + * Comparator between two mappings where the original positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same original source/line/column, but different generated + * line and column the same. Useful when searching for a mapping with a + * stubbed out mapping. + */ +function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByOriginalPositions = compareByOriginalPositions; + +function compareByOriginalPositionsNoSource(mappingA, mappingB, onlyCompareOriginal) { + var cmp + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByOriginalPositionsNoSource = compareByOriginalPositionsNoSource; + +/** + * Comparator between two mappings with deflated source and name indices where + * the generated positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same generated line and column, but different + * source/name/original line and column the same. Useful when searching for a + * mapping with a stubbed out mapping. + */ +function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + +function compareByGeneratedPositionsDeflatedNoLine(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsDeflatedNoLine = compareByGeneratedPositionsDeflatedNoLine; + +function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + + if (aStr1 === null) { + return 1; // aStr2 !== null + } + + if (aStr2 === null) { + return -1; // aStr1 !== null + } + + if (aStr1 > aStr2) { + return 1; + } + + return -1; +} + +/** + * Comparator between two mappings with inflated source and name strings where + * the generated positions are compared. + */ +function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + +/** + * Strip any JSON XSSI avoidance prefix from the string (as documented + * in the source maps specification), and then parse the string as + * JSON. + */ +function parseSourceMapInput(str) { + return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, '')); +} +exports.parseSourceMapInput = parseSourceMapInput; + +/** + * Compute the URL of a source given the the source root, the source's + * URL, and the source map's URL. + */ +function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + sourceURL = sourceURL || ''; + + if (sourceRoot) { + // This follows what Chrome does. + if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') { + sourceRoot += '/'; + } + // The spec says: + // Line 4: An optional source root, useful for relocating source + // files on a server or removing repeated values in the + // “sources” entry. This value is prepended to the individual + // entries in the “source” field. + sourceURL = sourceRoot + sourceURL; + } + + // Historically, SourceMapConsumer did not take the sourceMapURL as + // a parameter. This mode is still somewhat supported, which is why + // this code block is conditional. However, it's preferable to pass + // the source map URL to SourceMapConsumer, so that this function + // can implement the source URL resolution algorithm as outlined in + // the spec. This block is basically the equivalent of: + // new URL(sourceURL, sourceMapURL).toString() + // ... except it avoids using URL, which wasn't available in the + // older releases of node still supported by this library. + // + // The spec says: + // If the sources are not absolute URLs after prepending of the + // “sourceRoot”, the sources are resolved relative to the + // SourceMap (like resolving script src in a html document). + if (sourceMapURL) { + var parsed = urlParse(sourceMapURL); + if (!parsed) { + throw new Error("sourceMapURL could not be parsed"); + } + if (parsed.path) { + // Strip the last path component, but keep the "/". + var index = parsed.path.lastIndexOf('/'); + if (index >= 0) { + parsed.path = parsed.path.substring(0, index + 1); + } + } + sourceURL = join(urlGenerate(parsed), sourceURL); + } + + return normalize(sourceURL); +} +exports.computeSourceURL = computeSourceURL; diff --git a/node_modules/source-map-js/package.json b/node_modules/source-map-js/package.json new file mode 100644 index 00000000..501fafe1 --- /dev/null +++ b/node_modules/source-map-js/package.json @@ -0,0 +1,71 @@ +{ + "name": "source-map-js", + "description": "Generates and consumes source maps", + "version": "1.0.2", + "homepage": "https://github.com/7rulnik/source-map-js", + "author": "Valentin 7rulnik Semirulnik ", + "contributors": [ + "Nick Fitzgerald ", + "Tobias Koppers ", + "Duncan Beevers ", + "Stephen Crane ", + "Ryan Seddon ", + "Miles Elam ", + "Mihai Bazon ", + "Michael Ficarra ", + "Todd Wolfson ", + "Alexander Solovyov ", + "Felix Gnass ", + "Conrad Irwin ", + "usrbincc ", + "David Glasser ", + "Chase Douglas ", + "Evan Wallace ", + "Heather Arthur ", + "Hugh Kennedy ", + "David Glasser ", + "Simon Lydell ", + "Jmeas Smith ", + "Michael Z Goddard ", + "azu ", + "John Gozde ", + "Adam Kirkton ", + "Chris Montgomery ", + "J. Ryan Stinnett ", + "Jack Herrington ", + "Chris Truter ", + "Daniel Espeset ", + "Jamie Wong ", + "Eddy Bruël ", + "Hawken Rives ", + "Gilad Peleg ", + "djchie ", + "Gary Ye ", + "Nicolas Lalevée " + ], + "repository": "7rulnik/source-map-js", + "main": "./source-map.js", + "files": [ + "source-map.js", + "source-map.d.ts", + "lib/" + ], + "engines": { + "node": ">=0.10.0" + }, + "license": "BSD-3-Clause", + "scripts": { + "test": "npm run build && node test/run-tests.js", + "build": "webpack --color", + "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" + }, + "devDependencies": { + "clean-publish": "^3.1.0", + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "clean-publish": { + "cleanDocs": true + }, + "typings": "source-map.d.ts" +} diff --git a/node_modules/source-map-js/source-map.d.ts b/node_modules/source-map-js/source-map.d.ts new file mode 100644 index 00000000..9f8a4b38 --- /dev/null +++ b/node_modules/source-map-js/source-map.d.ts @@ -0,0 +1,115 @@ +declare module 'source-map-js' { + export interface StartOfSourceMap { + file?: string; + sourceRoot?: string; + } + + export interface RawSourceMap extends StartOfSourceMap { + version: string; + sources: string[]; + names: string[]; + sourcesContent?: string[]; + mappings: string; + } + + export interface Position { + line: number; + column: number; + } + + export interface LineRange extends Position { + lastColumn: number; + } + + export interface FindPosition extends Position { + // SourceMapConsumer.GREATEST_LOWER_BOUND or SourceMapConsumer.LEAST_UPPER_BOUND + bias?: number; + } + + export interface SourceFindPosition extends FindPosition { + source: string; + } + + export interface MappedPosition extends Position { + source: string; + name?: string; + } + + export interface MappingItem { + source: string; + generatedLine: number; + generatedColumn: number; + originalLine: number; + originalColumn: number; + name: string; + } + + export class SourceMapConsumer { + static GENERATED_ORDER: number; + static ORIGINAL_ORDER: number; + + static GREATEST_LOWER_BOUND: number; + static LEAST_UPPER_BOUND: number; + + constructor(rawSourceMap: RawSourceMap); + computeColumnSpans(): void; + originalPositionFor(generatedPosition: FindPosition): MappedPosition; + generatedPositionFor(originalPosition: SourceFindPosition): LineRange; + allGeneratedPositionsFor(originalPosition: MappedPosition): Position[]; + hasContentsOfAllSources(): boolean; + sourceContentFor(source: string, returnNullOnMissing?: boolean): string; + eachMapping(callback: (mapping: MappingItem) => void, context?: any, order?: number): void; + } + + export interface Mapping { + generated: Position; + original: Position; + source: string; + name?: string; + } + + export class SourceMapGenerator { + constructor(startOfSourceMap?: StartOfSourceMap); + static fromSourceMap(sourceMapConsumer: SourceMapConsumer): SourceMapGenerator; + addMapping(mapping: Mapping): void; + setSourceContent(sourceFile: string, sourceContent: string): void; + applySourceMap(sourceMapConsumer: SourceMapConsumer, sourceFile?: string, sourceMapPath?: string): void; + toString(): string; + } + + export interface CodeWithSourceMap { + code: string; + map: SourceMapGenerator; + } + + export class SourceNode { + constructor(); + constructor(line: number, column: number, source: string); + constructor(line: number, column: number, source: string, chunk?: string, name?: string); + static fromStringWithSourceMap(code: string, sourceMapConsumer: SourceMapConsumer, relativePath?: string): SourceNode; + add(chunk: string): void; + prepend(chunk: string): void; + setSourceContent(sourceFile: string, sourceContent: string): void; + walk(fn: (chunk: string, mapping: MappedPosition) => void): void; + walkSourceContents(fn: (file: string, content: string) => void): void; + join(sep: string): SourceNode; + replaceRight(pattern: string, replacement: string): SourceNode; + toString(): string; + toStringWithSourceMap(startOfSourceMap?: StartOfSourceMap): CodeWithSourceMap; + } +} + +declare module 'source-map-js/lib/source-map-generator' { + import { SourceMapGenerator } from 'source-map-js' + export { SourceMapGenerator } +} + +declare module 'source-map-js/lib/source-map-consumer' { + import { SourceMapConsumer } from 'source-map-js' + export { SourceMapConsumer } +} + +declare module 'source-map-js/lib/source-node' { + import { SourceNode } from 'source-map-js' + export { SourceNode } +} diff --git a/node_modules/source-map-js/source-map.js b/node_modules/source-map-js/source-map.js new file mode 100644 index 00000000..bc88fe82 --- /dev/null +++ b/node_modules/source-map-js/source-map.js @@ -0,0 +1,8 @@ +/* + * Copyright 2009-2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE.txt or: + * http://opensource.org/licenses/BSD-3-Clause + */ +exports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator; +exports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer; +exports.SourceNode = require('./lib/source-node').SourceNode; diff --git a/node_modules/string-width/index.d.ts b/node_modules/string-width/index.d.ts new file mode 100644 index 00000000..12b53097 --- /dev/null +++ b/node_modules/string-width/index.d.ts @@ -0,0 +1,29 @@ +declare const stringWidth: { + /** + Get the visual width of a string - the number of columns required to display it. + + Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width. + + @example + ``` + import stringWidth = require('string-width'); + + stringWidth('a'); + //=> 1 + + stringWidth('古'); + //=> 2 + + stringWidth('\u001B[1m古\u001B[22m'); + //=> 2 + ``` + */ + (string: string): number; + + // TODO: remove this in the next major version, refactor the whole definition to: + // declare function stringWidth(string: string): number; + // export = stringWidth; + default: typeof stringWidth; +} + +export = stringWidth; diff --git a/node_modules/string-width/index.js b/node_modules/string-width/index.js new file mode 100644 index 00000000..f4d261a9 --- /dev/null +++ b/node_modules/string-width/index.js @@ -0,0 +1,47 @@ +'use strict'; +const stripAnsi = require('strip-ansi'); +const isFullwidthCodePoint = require('is-fullwidth-code-point'); +const emojiRegex = require('emoji-regex'); + +const stringWidth = string => { + if (typeof string !== 'string' || string.length === 0) { + return 0; + } + + string = stripAnsi(string); + + if (string.length === 0) { + return 0; + } + + string = string.replace(emojiRegex(), ' '); + + let width = 0; + + for (let i = 0; i < string.length; i++) { + const code = string.codePointAt(i); + + // Ignore control characters + if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) { + continue; + } + + // Ignore combining characters + if (code >= 0x300 && code <= 0x36F) { + continue; + } + + // Surrogates + if (code > 0xFFFF) { + i++; + } + + width += isFullwidthCodePoint(code) ? 2 : 1; + } + + return width; +}; + +module.exports = stringWidth; +// TODO: remove this in the next major version +module.exports.default = stringWidth; diff --git a/node_modules/string-width/license b/node_modules/string-width/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/string-width/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/string-width/package.json b/node_modules/string-width/package.json new file mode 100644 index 00000000..28ba7b4c --- /dev/null +++ b/node_modules/string-width/package.json @@ -0,0 +1,56 @@ +{ + "name": "string-width", + "version": "4.2.3", + "description": "Get the visual width of a string - the number of columns required to display it", + "license": "MIT", + "repository": "sindresorhus/string-width", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "string", + "character", + "unicode", + "width", + "visual", + "column", + "columns", + "fullwidth", + "full-width", + "full", + "ansi", + "escape", + "codes", + "cli", + "command-line", + "terminal", + "console", + "cjk", + "chinese", + "japanese", + "korean", + "fixed-width" + ], + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "devDependencies": { + "ava": "^1.4.1", + "tsd": "^0.7.1", + "xo": "^0.24.0" + } +} diff --git a/node_modules/string-width/readme.md b/node_modules/string-width/readme.md new file mode 100644 index 00000000..bdd31412 --- /dev/null +++ b/node_modules/string-width/readme.md @@ -0,0 +1,50 @@ +# string-width + +> Get the visual width of a string - the number of columns required to display it + +Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width. + +Useful to be able to measure the actual width of command-line output. + + +## Install + +``` +$ npm install string-width +``` + + +## Usage + +```js +const stringWidth = require('string-width'); + +stringWidth('a'); +//=> 1 + +stringWidth('古'); +//=> 2 + +stringWidth('\u001B[1m古\u001B[22m'); +//=> 2 +``` + + +## Related + +- [string-width-cli](https://github.com/sindresorhus/string-width-cli) - CLI for this module +- [string-length](https://github.com/sindresorhus/string-length) - Get the real length of a string +- [widest-line](https://github.com/sindresorhus/widest-line) - Get the visual width of the widest line in a string + + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/strip-ansi/index.d.ts b/node_modules/strip-ansi/index.d.ts new file mode 100644 index 00000000..907fccc2 --- /dev/null +++ b/node_modules/strip-ansi/index.d.ts @@ -0,0 +1,17 @@ +/** +Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string. + +@example +``` +import stripAnsi = require('strip-ansi'); + +stripAnsi('\u001B[4mUnicorn\u001B[0m'); +//=> 'Unicorn' + +stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007'); +//=> 'Click' +``` +*/ +declare function stripAnsi(string: string): string; + +export = stripAnsi; diff --git a/node_modules/strip-ansi/index.js b/node_modules/strip-ansi/index.js new file mode 100644 index 00000000..9a593dfc --- /dev/null +++ b/node_modules/strip-ansi/index.js @@ -0,0 +1,4 @@ +'use strict'; +const ansiRegex = require('ansi-regex'); + +module.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string; diff --git a/node_modules/strip-ansi/license b/node_modules/strip-ansi/license new file mode 100644 index 00000000..e7af2f77 --- /dev/null +++ b/node_modules/strip-ansi/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/strip-ansi/package.json b/node_modules/strip-ansi/package.json new file mode 100644 index 00000000..1a41108d --- /dev/null +++ b/node_modules/strip-ansi/package.json @@ -0,0 +1,54 @@ +{ + "name": "strip-ansi", + "version": "6.0.1", + "description": "Strip ANSI escape codes from a string", + "license": "MIT", + "repository": "chalk/strip-ansi", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "strip", + "trim", + "remove", + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "devDependencies": { + "ava": "^2.4.0", + "tsd": "^0.10.0", + "xo": "^0.25.3" + } +} diff --git a/node_modules/strip-ansi/readme.md b/node_modules/strip-ansi/readme.md new file mode 100644 index 00000000..7c4b56d4 --- /dev/null +++ b/node_modules/strip-ansi/readme.md @@ -0,0 +1,46 @@ +# strip-ansi [![Build Status](https://travis-ci.org/chalk/strip-ansi.svg?branch=master)](https://travis-ci.org/chalk/strip-ansi) + +> Strip [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) from a string + + +## Install + +``` +$ npm install strip-ansi +``` + + +## Usage + +```js +const stripAnsi = require('strip-ansi'); + +stripAnsi('\u001B[4mUnicorn\u001B[0m'); +//=> 'Unicorn' + +stripAnsi('\u001B]8;;https://github.com\u0007Click\u001B]8;;\u0007'); +//=> 'Click' +``` + + +## strip-ansi for enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of strip-ansi and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-strip-ansi?utm_source=npm-strip-ansi&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + + +## Related + +- [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module +- [strip-ansi-stream](https://github.com/chalk/strip-ansi-stream) - Streaming version of this module +- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes +- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes +- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right + + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) + diff --git a/node_modules/thenby/LICENSE.TXT b/node_modules/thenby/LICENSE.TXT new file mode 100644 index 00000000..8dada3ed --- /dev/null +++ b/node_modules/thenby/LICENSE.TXT @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/node_modules/thenby/README.md b/node_modules/thenby/README.md new file mode 100644 index 00000000..7b7aac09 --- /dev/null +++ b/node_modules/thenby/README.md @@ -0,0 +1,159 @@ + + + + +- [thenBy.js usage](#thenbyjs-usage) + - [Sort by property names](#sort-by-property-names) + - [Sort by unary functions](#sort-by-unary-functions) + - [Extra options](#extra-options) + - [Sort descending](#sort-descending) + - [Case insensitive sorting](#case-insensitive-sorting) + - [Custom compare function](#custom-compare-function) + - [Internationalization: Using javascripts native `Intl.Collator`](#internationalization-using-javascripts-native-intlcollator) + - [A word on performance](#a-word-on-performance) + - [Installing](#installing) + - [Install in your HTML](#install-in-your-html) + - [Install using npm or yarn](#install-using-npm-or-yarn) + + + +# thenBy.js usage + + [![NPM Version][npm-image]][npm-url] + [![NPM Downloads][downloads-image]][downloads-url] + +`thenBy` is a javascript micro library that helps sorting arrays on multiple keys. It allows you to use the [native Array::sort() method](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) of javascript, but pass in multiple functions to sort that are composed with `firstBy().thenBy().thenBy()` style. + +Example: +```javascript +// first by length of name, then by population, then by ID +data.sort( + firstBy(function (v1, v2) { return v1.name.length - v2.name.length; }) + .thenBy(function (v1, v2) { return v1.population - v2.population; }) + .thenBy(function (v1, v2) { return v1.id - v2.id; }) +); +``` +`thenBy` also offers some nice shortcuts that make the most common ways of sorting even easier and more readable. + +### Sort by property names +Javascript sorting relies heavily on passing discriminator functions that return -1, 0 or 1 for a pair of items. While this is very flexible, often you want to sort on the value of a simple property. As a convenience, thenBy.js builds the appropriate compare function for you if you pass in a property name (instead of a function). The example above would then look like this: +```javascript +// first by length of name, then by population, then by ID +data.sort( + firstBy(function (v1, v2) { return v1.name.length - v2.name.length; }) + .thenBy("population") + .thenBy("id") +); +``` + +If an element doesn't have the property defined, it will sort like the empty string (""). Typically, this will be at the top. + +### Sort by unary functions +You can also pass a function that takes a single item and returns its sorting key. This turns the above expression into: +```javascript +// first by length of name, then by population, then by ID +data.sort( + firstBy(function (v) { return v.name.length; }) + .thenBy("population") + .thenBy("id") +); +``` + +Note that javascript contains a number of standard functions that can be passed in here as well. The Number() function will make your sorting sort on numeric values instead of lexical values: +```javascript +var values = ["2", "20", "03", "-2", "0", 200, "2"]; +var sorted = values.sort(firstBy(Number)); +``` +## Extra options +### Sort descending +thenBy.js allows you to pass in a second parameter for `direction`. If you pass in 'desc' or -1, the sorting will be reversed. So: +```javascript +// first by length of name descending, then by population descending, then by ID ascending +data.sort( + firstBy(function (v1, v2) { return v1.name.length - v2.name.length; }, -1) + .thenBy("population", "desc") + .thenBy("id") +); +``` + +### Case insensitive sorting +(as of v1.2.0) All of the shortcut methods allow you to sort case insensitive as well. The second parameter expects an options object (if it is a number, it is interpreted as `direction` as above). The ignoreCase property can be set to true, like this: +```javascript +// first by name, case insensitive, then by population +data.sort( + firstBy("name", {ignoreCase:true}) + .thenBy("population") +); +``` +If you want to use both descending and ignoreCase, you have to use the options syntax for direction as well: +```javascript +// sort by name, case insensitive and descending +data.sort(firstBy("name", {ignoreCase:true, direction:"desc"})); +``` +### Custom compare function +If you have more specific wishes for the exact sort order, but still want to use the convenience of unary functions or sorting on property names, you can pass in you own compare function in the options. Here we use a compare function that known about the relative values of playing cards:: + +```javascript +const cards = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']; +var cardCompare = (c1, c2) =>{ + return cards.indexOf(c1) - cards.indexOf(c2); +} +var handOfCards = [ + { id: 7, suit:"c", card:"A" }, + { id: 8, suit:"d", card:"10" }, + // etc + ]; +handOfCards.sort(firstBy("card", {cmp: cardCompare, direction: "desc"})); + +``` +You can use the `cmp` function together with `direction`, but not with `ignoreCase` (for obvious reasons). + +### Internationalization: Using javascripts native `Intl.Collator` +One of the more interesting custom compare functions you may want to pass in is the native `compare` function that is exposed by `Intl.Collator`. This compare function knows about the different sorting rules in different cultures. Many browsers have these implemented, but in NodeJS, the API is implemented, but only for the English culture. You would use it with thenBy like this: + +```javascript +// in German, ä sorts with a +var germanCompare = new Intl.Collator('de').compare; +// in Swedish, ä sorts after z +var swedishCompare = new Intl.Collator('sv').compare; +data.sort( + firstBy("name", {cmp: swedishCompare}) +); +``` +Check the [details on using Intl.Collator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Collator). + +## A word on performance +thenBy constructs a comparer function for you. It does this by combining the functions you pass in with a number of small utility functions that perform tasks like "reverting", "combining the current sort order with the previous one", etc. Also, these operations try to work correctly, no matter what content is in the sorted array. There are two steps here that cost time: constructing the über-function and running it. The construction time should always be negligible. The run time however can be slower than when you carefully handcraft the compare function. Still, *normally you shouldn't worry about this*, but if you're sorting very large sets, it could matter. For example, there is some overhead in making several small functions call each other instead of creating one piece of code. Also, if you know your data well, and know that a specific field is *alwways present* and is *always a number*, you could code a significantly faster compare function then thenBy's results. The unit tests contain an extreme example. + +If you use thenBy to combine multiple compare functions into one (where each function expects two parameters), the difference is small. Using unary functions adds some overhead, using direction:desc adds some, using only a property name adds a little, but will check for missing values, which could be optimized. Ignoring case will slow down, but not more so than when handcoded. + +## Installing +### Install in your HTML +To include it into your page/project, just paste the minified code from https://raw.github.com/Teun/thenBy.js/master/thenBy.min.js into yours (699 characters). If you don't want the `firstBy` function in your global namespace, you can assign it to a local variable (see sample.htm). + +### Install using npm or yarn +```npm install thenby``` + +or + +```yarn add thenby``` + +then in your app: + +```var firstBy = require('thenby');``` + +or in TypeScript/ES6: + +```import {firstBy} from "thenby";``` + +For a small demo of how TypeScript support looks in a good editor (i.e. VS Code), [check this short video](https://youtu.be/mKJovFLyxro). + + +Thanks a lot to [bergus](https://github.com/bergus), [hagabaka](https://github.com/hagabaka), [infolyzer](https://github.com/infolyzer) and [Foxhoundn](https://github.com/Foxhoundn) for their improvements. +Thanks to [jsgoupil](https://github.com/jsgoupil) and [HonoluluHenk](https://github.com/HonoluluHenk) for their help on the TypeScript declaration. + + +[npm-image]: https://img.shields.io/npm/v/thenby.svg +[npm-url]: https://npmjs.org/package/thenby +[downloads-image]: https://img.shields.io/npm/dm/thenby.svg +[downloads-url]: https://npmjs.org/package/thenby diff --git a/node_modules/thenby/package.json b/node_modules/thenby/package.json new file mode 100644 index 00000000..4efb912d --- /dev/null +++ b/node_modules/thenby/package.json @@ -0,0 +1,45 @@ +{ + "name": "thenby", + "version": "1.3.4", + "description": "Micro library for sorting arrays using the firstBy().thenBy().thenBy() syntax", + "main": "thenBy.module.js", + "types": "thenBy.module.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/Teun/thenBy.js.git" + }, + "keywords": [ + "sort", + "order", + "sorting", + "arrays", + "multiple" + ], + "files": [ + "thenBy.module.js", + "thenBy.module.d.ts", + "thenBy.min.js" + ], + "scripts": { + "test": "gulp", + "build": "gulp build" + }, + "author": "Teun Duynstee", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/Teun/thenBy.js/issues" + }, + "homepage": "https://github.com/Teun/thenBy.js", + "devDependencies": { + "chai": "^3.5.0", + "gulp": "^4.0.2", + "gulp-insert": "^0.5.0", + "gulp-mocha": "^7.0.2", + "gulp-rename": "^1.2.2", + "gulp-replace": "^0.5.4", + "gulp-uglify": "^2.1.2", + "gulp-umd": "^2.0.0", + "performance-now": "^0.2.0" + }, + "dependencies": {} +} diff --git a/node_modules/thenby/thenBy.min.js b/node_modules/thenby/thenBy.min.js new file mode 100644 index 00000000..ba9ef0be --- /dev/null +++ b/node_modules/thenby/thenBy.min.js @@ -0,0 +1,2 @@ +/*** Copyright 2020 Teun Duynstee Licensed under the Apache License, Version 2.0 ***/ +!function(n,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():n.firstBy=t()}(this,function(){return function(){function n(n){return n}function t(n){return"string"==typeof n?n.toLowerCase():n}function e(e,r){if(r="object"==typeof r?r:{direction:r},"function"!=typeof e){var i=e;e=function(n){return n[i]?n[i]:""}}if(1===e.length){var o=e,f=r.ignoreCase?t:n,u=r.cmp||function(n,t){return nt?1:0};e=function(n,t){return u(f(o(n)),f(o(t)))}}const c={"-1":"",desc:""};return r.direction in c?function(n,t){return-e(n,t)}:e}function r(n,t){var i="function"==typeof this&&!this.firstBy&&this,o=e(n,t),f=i?function(n,t){return i(n,t)||o(n,t)}:o;return f.thenBy=r,f}return r.firstBy=r,r}()}); \ No newline at end of file diff --git a/node_modules/thenby/thenBy.module.d.ts b/node_modules/thenby/thenBy.module.d.ts new file mode 100644 index 00000000..becb6d50 --- /dev/null +++ b/node_modules/thenby/thenBy.module.d.ts @@ -0,0 +1,51 @@ +// Type definitions for thenBy +// Definitions by: Teun Duynstee (with significant help from @HonoluluHenk) +type SortOrder = "asc" | "desc" | -1 | 1; +declare class opt { + direction?:SortOrder; + ignoreCase?:boolean; +} +declare class typedOpt extends opt { + cmp?: (a:T, b:T)=> number; +} +interface IThenBy { + (v1: T, v2: T) : number; + /** + * Full format to compare two elements and determine which sorts first. + * @param compare function that receives two values from the sorted array and returns a number indicating which comes first: < 0: first comes first, 0: doesn't matter, > 0: second comes first. + * @param direction can be used to reverse the sorting by passing -1 + **/ + thenBy(compare: ((v1: T, v2: T) => number), direction?: SortOrder | opt): IThenBy; + /** + * Shorthand for selecting a value to sort on from the sorted element. + * @param select function that receives a value from the sorted array and selects the thing to sort on + * @param direction reverse by passing -1. opt for other options + **/ + thenBy(select: ((v: T) => U), direction?: SortOrder | typedOpt): IThenBy; + /** + * Shorthand for sorting on a simple property. + * @param byPropertyName is the name of the property to sort on as a string + * @param direction reverse by passing -1. opt for other options + **/ + thenBy(byPropertyName: (keyof T), direction?: SortOrder | typedOpt): IThenBy; +} +declare module "thenby" { + /** + * Full format to compare two elements and determine which sorts first. + * @param compare function that receives two values from the sorted array and returns a number indicating which comes first: < 0: first comes first, 0: doesn't matter, > 0: second comes first. + * @param direction can be used to reverse the sorting by passing -1 + **/ + export function firstBy(compare: ((v1: T, v2: T) => number), direction?: SortOrder | opt): IThenBy; + /** + * Shorthand for selecting a value to sort on from the sorted element. + * @param select function that receives a value from the sorted array and selects the thing to sort on + * @param direction reverse by passing -1. opt for other options + **/ + export function firstBy(select: ((v: T) => U), direction?: SortOrder | typedOpt): IThenBy; + /** + * Shorthand for sorting on a simple property. + * @param byPropertyName is the name of the property to sort on as a string + * @param direction reverse by passing -1. opt for other options + **/ + export function firstBy(byPropertyName: (keyof T), direction?: SortOrder | typedOpt): IThenBy; + } diff --git a/node_modules/thenby/thenBy.module.js b/node_modules/thenby/thenBy.module.js new file mode 100644 index 00000000..bd1dccb3 --- /dev/null +++ b/node_modules/thenby/thenBy.module.js @@ -0,0 +1,60 @@ +/*** + Copyright 2013 Teun Duynstee + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ +module.exports = (function() { + + function identity(v){return v;} + + function ignoreCase(v){return typeof(v)==="string" ? v.toLowerCase() : v;} + + function makeCompareFunction(f, opt){ + opt = typeof(opt)==="object" ? opt : {direction:opt}; + + if(typeof(f)!="function"){ + var prop = f; + // make unary function + f = function(v1){return !!v1[prop] ? v1[prop] : "";} + } + if(f.length === 1) { + // f is a unary function mapping a single item to its sort score + var uf = f; + var preprocess = opt.ignoreCase?ignoreCase:identity; + var cmp = opt.cmp || function(v1,v2) {return v1 < v2 ? -1 : v1 > v2 ? 1 : 0;} + f = function(v1,v2) {return cmp(preprocess(uf(v1)), preprocess(uf(v2)));} + } + const descTokens = {"-1":'', desc:''}; + if(opt.direction in descTokens) return function(v1,v2){return -f(v1,v2)}; + return f; + } + + /* adds a secondary compare function to the target function (`this` context) + which is applied in case the first one returns 0 (equal) + returns a new compare function, which has a `thenBy` method as well */ + function tb(func, opt) { + /* should get value false for the first call. This can be done by calling the + exported function, or the firstBy property on it (for es6 module compatibility) + */ + var x = (typeof(this) == "function" && !this.firstBy) ? this : false; + var y = makeCompareFunction(func, opt); + var f = x ? function(a, b) { + return x(a,b) || y(a,b); + } + : y; + f.thenBy = tb; + return f; + } + tb.firstBy = tb; + return tb; +})(); diff --git a/node_modules/to-regex-range/LICENSE b/node_modules/to-regex-range/LICENSE new file mode 100644 index 00000000..7cccaf9e --- /dev/null +++ b/node_modules/to-regex-range/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015-present, Jon Schlinkert. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/to-regex-range/README.md b/node_modules/to-regex-range/README.md new file mode 100644 index 00000000..38887daf --- /dev/null +++ b/node_modules/to-regex-range/README.md @@ -0,0 +1,305 @@ +# to-regex-range [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=W8YFZ425KND68) [![NPM version](https://img.shields.io/npm/v/to-regex-range.svg?style=flat)](https://www.npmjs.com/package/to-regex-range) [![NPM monthly downloads](https://img.shields.io/npm/dm/to-regex-range.svg?style=flat)](https://npmjs.org/package/to-regex-range) [![NPM total downloads](https://img.shields.io/npm/dt/to-regex-range.svg?style=flat)](https://npmjs.org/package/to-regex-range) [![Linux Build Status](https://img.shields.io/travis/micromatch/to-regex-range.svg?style=flat&label=Travis)](https://travis-ci.org/micromatch/to-regex-range) + +> Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions. + +Please consider following this project's author, [Jon Schlinkert](https://github.com/jonschlinkert), and consider starring the project to show your :heart: and support. + +## Install + +Install with [npm](https://www.npmjs.com/): + +```sh +$ npm install --save to-regex-range +``` + +
+What does this do? + +
+ +This libary generates the `source` string to be passed to `new RegExp()` for matching a range of numbers. + +**Example** + +```js +const toRegexRange = require('to-regex-range'); +const regex = new RegExp(toRegexRange('15', '95')); +``` + +A string is returned so that you can do whatever you need with it before passing it to `new RegExp()` (like adding `^` or `$` boundaries, defining flags, or combining it another string). + +
+ +
+ +
+Why use this library? + +
+ +### Convenience + +Creating regular expressions for matching numbers gets deceptively complicated pretty fast. + +For example, let's say you need a validation regex for matching part of a user-id, postal code, social security number, tax id, etc: + +* regex for matching `1` => `/1/` (easy enough) +* regex for matching `1` through `5` => `/[1-5]/` (not bad...) +* regex for matching `1` or `5` => `/(1|5)/` (still easy...) +* regex for matching `1` through `50` => `/([1-9]|[1-4][0-9]|50)/` (uh-oh...) +* regex for matching `1` through `55` => `/([1-9]|[1-4][0-9]|5[0-5])/` (no prob, I can do this...) +* regex for matching `1` through `555` => `/([1-9]|[1-9][0-9]|[1-4][0-9]{2}|5[0-4][0-9]|55[0-5])/` (maybe not...) +* regex for matching `0001` through `5555` => `/(0{3}[1-9]|0{2}[1-9][0-9]|0[1-9][0-9]{2}|[1-4][0-9]{3}|5[0-4][0-9]{2}|55[0-4][0-9]|555[0-5])/` (okay, I get the point!) + +The numbers are contrived, but they're also really basic. In the real world you might need to generate a regex on-the-fly for validation. + +**Learn more** + +If you're interested in learning more about [character classes](http://www.regular-expressions.info/charclass.html) and other regex features, I personally have always found [regular-expressions.info](http://www.regular-expressions.info/charclass.html) to be pretty useful. + +### Heavily tested + +As of April 07, 2019, this library runs [>1m test assertions](./test/test.js) against generated regex-ranges to provide brute-force verification that results are correct. + +Tests run in ~280ms on my MacBook Pro, 2.5 GHz Intel Core i7. + +### Optimized + +Generated regular expressions are optimized: + +* duplicate sequences and character classes are reduced using quantifiers +* smart enough to use `?` conditionals when number(s) or range(s) can be positive or negative +* uses fragment caching to avoid processing the same exact string more than once + +
+ +
+ +## Usage + +Add this library to your javascript application with the following line of code + +```js +const toRegexRange = require('to-regex-range'); +``` + +The main export is a function that takes two integers: the `min` value and `max` value (formatted as strings or numbers). + +```js +const source = toRegexRange('15', '95'); +//=> 1[5-9]|[2-8][0-9]|9[0-5] + +const regex = new RegExp(`^${source}$`); +console.log(regex.test('14')); //=> false +console.log(regex.test('50')); //=> true +console.log(regex.test('94')); //=> true +console.log(regex.test('96')); //=> false +``` + +## Options + +### options.capture + +**Type**: `boolean` + +**Deafault**: `undefined` + +Wrap the returned value in parentheses when there is more than one regex condition. Useful when you're dynamically generating ranges. + +```js +console.log(toRegexRange('-10', '10')); +//=> -[1-9]|-?10|[0-9] + +console.log(toRegexRange('-10', '10', { capture: true })); +//=> (-[1-9]|-?10|[0-9]) +``` + +### options.shorthand + +**Type**: `boolean` + +**Deafault**: `undefined` + +Use the regex shorthand for `[0-9]`: + +```js +console.log(toRegexRange('0', '999999')); +//=> [0-9]|[1-9][0-9]{1,5} + +console.log(toRegexRange('0', '999999', { shorthand: true })); +//=> \d|[1-9]\d{1,5} +``` + +### options.relaxZeros + +**Type**: `boolean` + +**Default**: `true` + +This option relaxes matching for leading zeros when when ranges are zero-padded. + +```js +const source = toRegexRange('-0010', '0010'); +const regex = new RegExp(`^${source}$`); +console.log(regex.test('-10')); //=> true +console.log(regex.test('-010')); //=> true +console.log(regex.test('-0010')); //=> true +console.log(regex.test('10')); //=> true +console.log(regex.test('010')); //=> true +console.log(regex.test('0010')); //=> true +``` + +When `relaxZeros` is false, matching is strict: + +```js +const source = toRegexRange('-0010', '0010', { relaxZeros: false }); +const regex = new RegExp(`^${source}$`); +console.log(regex.test('-10')); //=> false +console.log(regex.test('-010')); //=> false +console.log(regex.test('-0010')); //=> true +console.log(regex.test('10')); //=> false +console.log(regex.test('010')); //=> false +console.log(regex.test('0010')); //=> true +``` + +## Examples + +| **Range** | **Result** | **Compile time** | +| --- | --- | --- | +| `toRegexRange(-10, 10)` | `-[1-9]\|-?10\|[0-9]` | _132μs_ | +| `toRegexRange(-100, -10)` | `-1[0-9]\|-[2-9][0-9]\|-100` | _50μs_ | +| `toRegexRange(-100, 100)` | `-[1-9]\|-?[1-9][0-9]\|-?100\|[0-9]` | _42μs_ | +| `toRegexRange(001, 100)` | `0{0,2}[1-9]\|0?[1-9][0-9]\|100` | _109μs_ | +| `toRegexRange(001, 555)` | `0{0,2}[1-9]\|0?[1-9][0-9]\|[1-4][0-9]{2}\|5[0-4][0-9]\|55[0-5]` | _51μs_ | +| `toRegexRange(0010, 1000)` | `0{0,2}1[0-9]\|0{0,2}[2-9][0-9]\|0?[1-9][0-9]{2}\|1000` | _31μs_ | +| `toRegexRange(1, 50)` | `[1-9]\|[1-4][0-9]\|50` | _24μs_ | +| `toRegexRange(1, 55)` | `[1-9]\|[1-4][0-9]\|5[0-5]` | _23μs_ | +| `toRegexRange(1, 555)` | `[1-9]\|[1-9][0-9]\|[1-4][0-9]{2}\|5[0-4][0-9]\|55[0-5]` | _30μs_ | +| `toRegexRange(1, 5555)` | `[1-9]\|[1-9][0-9]{1,2}\|[1-4][0-9]{3}\|5[0-4][0-9]{2}\|55[0-4][0-9]\|555[0-5]` | _43μs_ | +| `toRegexRange(111, 555)` | `11[1-9]\|1[2-9][0-9]\|[2-4][0-9]{2}\|5[0-4][0-9]\|55[0-5]` | _38μs_ | +| `toRegexRange(29, 51)` | `29\|[34][0-9]\|5[01]` | _24μs_ | +| `toRegexRange(31, 877)` | `3[1-9]\|[4-9][0-9]\|[1-7][0-9]{2}\|8[0-6][0-9]\|87[0-7]` | _32μs_ | +| `toRegexRange(5, 5)` | `5` | _8μs_ | +| `toRegexRange(5, 6)` | `5\|6` | _11μs_ | +| `toRegexRange(1, 2)` | `1\|2` | _6μs_ | +| `toRegexRange(1, 5)` | `[1-5]` | _15μs_ | +| `toRegexRange(1, 10)` | `[1-9]\|10` | _22μs_ | +| `toRegexRange(1, 100)` | `[1-9]\|[1-9][0-9]\|100` | _25μs_ | +| `toRegexRange(1, 1000)` | `[1-9]\|[1-9][0-9]{1,2}\|1000` | _31μs_ | +| `toRegexRange(1, 10000)` | `[1-9]\|[1-9][0-9]{1,3}\|10000` | _34μs_ | +| `toRegexRange(1, 100000)` | `[1-9]\|[1-9][0-9]{1,4}\|100000` | _36μs_ | +| `toRegexRange(1, 1000000)` | `[1-9]\|[1-9][0-9]{1,5}\|1000000` | _42μs_ | +| `toRegexRange(1, 10000000)` | `[1-9]\|[1-9][0-9]{1,6}\|10000000` | _42μs_ | + +## Heads up! + +**Order of arguments** + +When the `min` is larger than the `max`, values will be flipped to create a valid range: + +```js +toRegexRange('51', '29'); +``` + +Is effectively flipped to: + +```js +toRegexRange('29', '51'); +//=> 29|[3-4][0-9]|5[0-1] +``` + +**Steps / increments** + +This library does not support steps (increments). A pr to add support would be welcome. + +## History + +### v2.0.0 - 2017-04-21 + +**New features** + +Adds support for zero-padding! + +### v1.0.0 + +**Optimizations** + +Repeating ranges are now grouped using quantifiers. rocessing time is roughly the same, but the generated regex is much smaller, which should result in faster matching. + +## Attribution + +Inspired by the python library [range-regex](https://github.com/dimka665/range-regex). + +## About + +
+Contributing + +Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new). + +
+ +
+Running Tests + +Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command: + +```sh +$ npm install && npm test +``` + +
+ +
+Building docs + +_(This project's readme.md is generated by [verb](https://github.com/verbose/verb-generate-readme), please don't edit the readme directly. Any changes to the readme must be made in the [.verb.md](.verb.md) readme template.)_ + +To generate the readme, run the following command: + +```sh +$ npm install -g verbose/verb#dev verb-generate-readme && verb +``` + +
+ +### Related projects + +You might also be interested in these projects: + +* [expand-range](https://www.npmjs.com/package/expand-range): Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used… [more](https://github.com/jonschlinkert/expand-range) | [homepage](https://github.com/jonschlinkert/expand-range "Fast, bash-like range expansion. Expand a range of numbers or letters, uppercase or lowercase. Used by micromatch.") +* [fill-range](https://www.npmjs.com/package/fill-range): Fill in a range of numbers or letters, optionally passing an increment or `step` to… [more](https://github.com/jonschlinkert/fill-range) | [homepage](https://github.com/jonschlinkert/fill-range "Fill in a range of numbers or letters, optionally passing an increment or `step` to use, or create a regex-compatible range with `options.toRegex`") +* [micromatch](https://www.npmjs.com/package/micromatch): Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch. | [homepage](https://github.com/micromatch/micromatch "Glob matching for javascript/node.js. A drop-in replacement and faster alternative to minimatch and multimatch.") +* [repeat-element](https://www.npmjs.com/package/repeat-element): Create an array by repeating the given value n times. | [homepage](https://github.com/jonschlinkert/repeat-element "Create an array by repeating the given value n times.") +* [repeat-string](https://www.npmjs.com/package/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string. | [homepage](https://github.com/jonschlinkert/repeat-string "Repeat the given string n times. Fastest implementation for repeating a string.") + +### Contributors + +| **Commits** | **Contributor** | +| --- | --- | +| 63 | [jonschlinkert](https://github.com/jonschlinkert) | +| 3 | [doowb](https://github.com/doowb) | +| 2 | [realityking](https://github.com/realityking) | + +### Author + +**Jon Schlinkert** + +* [GitHub Profile](https://github.com/jonschlinkert) +* [Twitter Profile](https://twitter.com/jonschlinkert) +* [LinkedIn Profile](https://linkedin.com/in/jonschlinkert) + +Please consider supporting me on Patreon, or [start your own Patreon page](https://patreon.com/invite/bxpbvm)! + + + + + +### License + +Copyright © 2019, [Jon Schlinkert](https://github.com/jonschlinkert). +Released under the [MIT License](LICENSE). + +*** + +_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.8.0, on April 07, 2019._ \ No newline at end of file diff --git a/node_modules/to-regex-range/index.js b/node_modules/to-regex-range/index.js new file mode 100644 index 00000000..77fbaced --- /dev/null +++ b/node_modules/to-regex-range/index.js @@ -0,0 +1,288 @@ +/*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + */ + +'use strict'; + +const isNumber = require('is-number'); + +const toRegexRange = (min, max, options) => { + if (isNumber(min) === false) { + throw new TypeError('toRegexRange: expected the first argument to be a number'); + } + + if (max === void 0 || min === max) { + return String(min); + } + + if (isNumber(max) === false) { + throw new TypeError('toRegexRange: expected the second argument to be a number.'); + } + + let opts = { relaxZeros: true, ...options }; + if (typeof opts.strictZeros === 'boolean') { + opts.relaxZeros = opts.strictZeros === false; + } + + let relax = String(opts.relaxZeros); + let shorthand = String(opts.shorthand); + let capture = String(opts.capture); + let wrap = String(opts.wrap); + let cacheKey = min + ':' + max + '=' + relax + shorthand + capture + wrap; + + if (toRegexRange.cache.hasOwnProperty(cacheKey)) { + return toRegexRange.cache[cacheKey].result; + } + + let a = Math.min(min, max); + let b = Math.max(min, max); + + if (Math.abs(a - b) === 1) { + let result = min + '|' + max; + if (opts.capture) { + return `(${result})`; + } + if (opts.wrap === false) { + return result; + } + return `(?:${result})`; + } + + let isPadded = hasPadding(min) || hasPadding(max); + let state = { min, max, a, b }; + let positives = []; + let negatives = []; + + if (isPadded) { + state.isPadded = isPadded; + state.maxLen = String(state.max).length; + } + + if (a < 0) { + let newMin = b < 0 ? Math.abs(b) : 1; + negatives = splitToPatterns(newMin, Math.abs(a), state, opts); + a = state.a = 0; + } + + if (b >= 0) { + positives = splitToPatterns(a, b, state, opts); + } + + state.negatives = negatives; + state.positives = positives; + state.result = collatePatterns(negatives, positives, opts); + + if (opts.capture === true) { + state.result = `(${state.result})`; + } else if (opts.wrap !== false && (positives.length + negatives.length) > 1) { + state.result = `(?:${state.result})`; + } + + toRegexRange.cache[cacheKey] = state; + return state.result; +}; + +function collatePatterns(neg, pos, options) { + let onlyNegative = filterPatterns(neg, pos, '-', false, options) || []; + let onlyPositive = filterPatterns(pos, neg, '', false, options) || []; + let intersected = filterPatterns(neg, pos, '-?', true, options) || []; + let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive); + return subpatterns.join('|'); +} + +function splitToRanges(min, max) { + let nines = 1; + let zeros = 1; + + let stop = countNines(min, nines); + let stops = new Set([max]); + + while (min <= stop && stop <= max) { + stops.add(stop); + nines += 1; + stop = countNines(min, nines); + } + + stop = countZeros(max + 1, zeros) - 1; + + while (min < stop && stop <= max) { + stops.add(stop); + zeros += 1; + stop = countZeros(max + 1, zeros) - 1; + } + + stops = [...stops]; + stops.sort(compare); + return stops; +} + +/** + * Convert a range to a regex pattern + * @param {Number} `start` + * @param {Number} `stop` + * @return {String} + */ + +function rangeToPattern(start, stop, options) { + if (start === stop) { + return { pattern: start, count: [], digits: 0 }; + } + + let zipped = zip(start, stop); + let digits = zipped.length; + let pattern = ''; + let count = 0; + + for (let i = 0; i < digits; i++) { + let [startDigit, stopDigit] = zipped[i]; + + if (startDigit === stopDigit) { + pattern += startDigit; + + } else if (startDigit !== '0' || stopDigit !== '9') { + pattern += toCharacterClass(startDigit, stopDigit, options); + + } else { + count++; + } + } + + if (count) { + pattern += options.shorthand === true ? '\\d' : '[0-9]'; + } + + return { pattern, count: [count], digits }; +} + +function splitToPatterns(min, max, tok, options) { + let ranges = splitToRanges(min, max); + let tokens = []; + let start = min; + let prev; + + for (let i = 0; i < ranges.length; i++) { + let max = ranges[i]; + let obj = rangeToPattern(String(start), String(max), options); + let zeros = ''; + + if (!tok.isPadded && prev && prev.pattern === obj.pattern) { + if (prev.count.length > 1) { + prev.count.pop(); + } + + prev.count.push(obj.count[0]); + prev.string = prev.pattern + toQuantifier(prev.count); + start = max + 1; + continue; + } + + if (tok.isPadded) { + zeros = padZeros(max, tok, options); + } + + obj.string = zeros + obj.pattern + toQuantifier(obj.count); + tokens.push(obj); + start = max + 1; + prev = obj; + } + + return tokens; +} + +function filterPatterns(arr, comparison, prefix, intersection, options) { + let result = []; + + for (let ele of arr) { + let { string } = ele; + + // only push if _both_ are negative... + if (!intersection && !contains(comparison, 'string', string)) { + result.push(prefix + string); + } + + // or _both_ are positive + if (intersection && contains(comparison, 'string', string)) { + result.push(prefix + string); + } + } + return result; +} + +/** + * Zip strings + */ + +function zip(a, b) { + let arr = []; + for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]); + return arr; +} + +function compare(a, b) { + return a > b ? 1 : b > a ? -1 : 0; +} + +function contains(arr, key, val) { + return arr.some(ele => ele[key] === val); +} + +function countNines(min, len) { + return Number(String(min).slice(0, -len) + '9'.repeat(len)); +} + +function countZeros(integer, zeros) { + return integer - (integer % Math.pow(10, zeros)); +} + +function toQuantifier(digits) { + let [start = 0, stop = ''] = digits; + if (stop || start > 1) { + return `{${start + (stop ? ',' + stop : '')}}`; + } + return ''; +} + +function toCharacterClass(a, b, options) { + return `[${a}${(b - a === 1) ? '' : '-'}${b}]`; +} + +function hasPadding(str) { + return /^-?(0+)\d/.test(str); +} + +function padZeros(value, tok, options) { + if (!tok.isPadded) { + return value; + } + + let diff = Math.abs(tok.maxLen - String(value).length); + let relax = options.relaxZeros !== false; + + switch (diff) { + case 0: + return ''; + case 1: + return relax ? '0?' : '0'; + case 2: + return relax ? '0{0,2}' : '00'; + default: { + return relax ? `0{0,${diff}}` : `0{${diff}}`; + } + } +} + +/** + * Cache + */ + +toRegexRange.cache = {}; +toRegexRange.clearCache = () => (toRegexRange.cache = {}); + +/** + * Expose `toRegexRange` + */ + +module.exports = toRegexRange; diff --git a/node_modules/to-regex-range/package.json b/node_modules/to-regex-range/package.json new file mode 100644 index 00000000..4ef194f3 --- /dev/null +++ b/node_modules/to-regex-range/package.json @@ -0,0 +1,88 @@ +{ + "name": "to-regex-range", + "description": "Pass two numbers, get a regex-compatible source string for matching ranges. Validated against more than 2.78 million test assertions.", + "version": "5.0.1", + "homepage": "https://github.com/micromatch/to-regex-range", + "author": "Jon Schlinkert (https://github.com/jonschlinkert)", + "contributors": [ + "Jon Schlinkert (http://twitter.com/jonschlinkert)", + "Rouven Weßling (www.rouvenwessling.de)" + ], + "repository": "micromatch/to-regex-range", + "bugs": { + "url": "https://github.com/micromatch/to-regex-range/issues" + }, + "license": "MIT", + "files": [ + "index.js" + ], + "main": "index.js", + "engines": { + "node": ">=8.0" + }, + "scripts": { + "test": "mocha" + }, + "dependencies": { + "is-number": "^7.0.0" + }, + "devDependencies": { + "fill-range": "^6.0.0", + "gulp-format-md": "^2.0.0", + "mocha": "^6.0.2", + "text-table": "^0.2.0", + "time-diff": "^0.3.1" + }, + "keywords": [ + "bash", + "date", + "expand", + "expansion", + "expression", + "glob", + "match", + "match date", + "match number", + "match numbers", + "match year", + "matches", + "matching", + "number", + "numbers", + "numerical", + "range", + "ranges", + "regex", + "regexp", + "regular", + "regular expression", + "sequence" + ], + "verb": { + "layout": "default", + "toc": false, + "tasks": [ + "readme" + ], + "plugins": [ + "gulp-format-md" + ], + "lint": { + "reflinks": true + }, + "helpers": { + "examples": { + "displayName": "examples" + } + }, + "related": { + "list": [ + "expand-range", + "fill-range", + "micromatch", + "repeat-element", + "repeat-string" + ] + } + } +} diff --git a/node_modules/universalify/LICENSE b/node_modules/universalify/LICENSE new file mode 100644 index 00000000..514e84e6 --- /dev/null +++ b/node_modules/universalify/LICENSE @@ -0,0 +1,20 @@ +(The MIT License) + +Copyright (c) 2017, Ryan Zimmerman + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the 'Software'), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/universalify/README.md b/node_modules/universalify/README.md new file mode 100644 index 00000000..aa124747 --- /dev/null +++ b/node_modules/universalify/README.md @@ -0,0 +1,76 @@ +# universalify + +[![Travis branch](https://img.shields.io/travis/RyanZim/universalify/master.svg)](https://travis-ci.org/RyanZim/universalify) +![Coveralls github branch](https://img.shields.io/coveralls/github/RyanZim/universalify/master.svg) +![npm](https://img.shields.io/npm/dm/universalify.svg) +![npm](https://img.shields.io/npm/l/universalify.svg) + +Make a callback- or promise-based function support both promises and callbacks. + +Uses the native promise implementation. + +## Installation + +```bash +npm install universalify +``` + +## API + +### `universalify.fromCallback(fn)` + +Takes a callback-based function to universalify, and returns the universalified function. + +Function must take a callback as the last parameter that will be called with the signature `(error, result)`. `universalify` does not support calling the callback with three or more arguments, and does not ensure that the callback is only called once. + +```js +function callbackFn (n, cb) { + setTimeout(() => cb(null, n), 15) +} + +const fn = universalify.fromCallback(callbackFn) + +// Works with Promises: +fn('Hello World!') +.then(result => console.log(result)) // -> Hello World! +.catch(error => console.error(error)) + +// Works with Callbacks: +fn('Hi!', (error, result) => { + if (error) return console.error(error) + console.log(result) + // -> Hi! +}) +``` + +### `universalify.fromPromise(fn)` + +Takes a promise-based function to universalify, and returns the universalified function. + +Function must return a valid JS promise. `universalify` does not ensure that a valid promise is returned. + +```js +function promiseFn (n) { + return new Promise(resolve => { + setTimeout(() => resolve(n), 15) + }) +} + +const fn = universalify.fromPromise(promiseFn) + +// Works with Promises: +fn('Hello World!') +.then(result => console.log(result)) // -> Hello World! +.catch(error => console.error(error)) + +// Works with Callbacks: +fn('Hi!', (error, result) => { + if (error) return console.error(error) + console.log(result) + // -> Hi! +}) +``` + +## License + +MIT diff --git a/node_modules/universalify/index.js b/node_modules/universalify/index.js new file mode 100644 index 00000000..ba6c6626 --- /dev/null +++ b/node_modules/universalify/index.js @@ -0,0 +1,24 @@ +'use strict' + +exports.fromCallback = function (fn) { + return Object.defineProperty(function (...args) { + if (typeof args[args.length - 1] === 'function') fn.apply(this, args) + else { + return new Promise((resolve, reject) => { + fn.call( + this, + ...args, + (err, res) => (err != null) ? reject(err) : resolve(res) + ) + }) + } + }, 'name', { value: fn.name }) +} + +exports.fromPromise = function (fn) { + return Object.defineProperty(function (...args) { + const cb = args[args.length - 1] + if (typeof cb !== 'function') return fn.apply(this, args) + else fn.apply(this, args.slice(0, -1)).then(r => cb(null, r), cb) + }, 'name', { value: fn.name }) +} diff --git a/node_modules/universalify/package.json b/node_modules/universalify/package.json new file mode 100644 index 00000000..006d4cc7 --- /dev/null +++ b/node_modules/universalify/package.json @@ -0,0 +1,34 @@ +{ + "name": "universalify", + "version": "2.0.0", + "description": "Make a callback- or promise-based function support both promises and callbacks.", + "keywords": [ + "callback", + "native", + "promise" + ], + "homepage": "https://github.com/RyanZim/universalify#readme", + "bugs": "https://github.com/RyanZim/universalify/issues", + "license": "MIT", + "author": "Ryan Zimmerman ", + "files": [ + "index.js" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/RyanZim/universalify.git" + }, + "scripts": { + "test": "standard && nyc tape test/*.js | colortape" + }, + "devDependencies": { + "colortape": "^0.1.2", + "coveralls": "^3.0.1", + "nyc": "^15.0.0", + "standard": "^14.3.1", + "tape": "^5.0.1" + }, + "engines": { + "node": ">= 10.0.0" + } +} diff --git a/node_modules/wrap-ansi/index.js b/node_modules/wrap-ansi/index.js new file mode 100755 index 00000000..d502255b --- /dev/null +++ b/node_modules/wrap-ansi/index.js @@ -0,0 +1,216 @@ +'use strict'; +const stringWidth = require('string-width'); +const stripAnsi = require('strip-ansi'); +const ansiStyles = require('ansi-styles'); + +const ESCAPES = new Set([ + '\u001B', + '\u009B' +]); + +const END_CODE = 39; + +const ANSI_ESCAPE_BELL = '\u0007'; +const ANSI_CSI = '['; +const ANSI_OSC = ']'; +const ANSI_SGR_TERMINATOR = 'm'; +const ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`; + +const wrapAnsi = code => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`; +const wrapAnsiHyperlink = uri => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${uri}${ANSI_ESCAPE_BELL}`; + +// Calculate the length of words split on ' ', ignoring +// the extra characters added by ansi escape codes +const wordLengths = string => string.split(' ').map(character => stringWidth(character)); + +// Wrap a long word across multiple rows +// Ansi escape codes do not count towards length +const wrapWord = (rows, word, columns) => { + const characters = [...word]; + + let isInsideEscape = false; + let isInsideLinkEscape = false; + let visible = stringWidth(stripAnsi(rows[rows.length - 1])); + + for (const [index, character] of characters.entries()) { + const characterLength = stringWidth(character); + + if (visible + characterLength <= columns) { + rows[rows.length - 1] += character; + } else { + rows.push(character); + visible = 0; + } + + if (ESCAPES.has(character)) { + isInsideEscape = true; + isInsideLinkEscape = characters.slice(index + 1).join('').startsWith(ANSI_ESCAPE_LINK); + } + + if (isInsideEscape) { + if (isInsideLinkEscape) { + if (character === ANSI_ESCAPE_BELL) { + isInsideEscape = false; + isInsideLinkEscape = false; + } + } else if (character === ANSI_SGR_TERMINATOR) { + isInsideEscape = false; + } + + continue; + } + + visible += characterLength; + + if (visible === columns && index < characters.length - 1) { + rows.push(''); + visible = 0; + } + } + + // It's possible that the last row we copy over is only + // ansi escape characters, handle this edge-case + if (!visible && rows[rows.length - 1].length > 0 && rows.length > 1) { + rows[rows.length - 2] += rows.pop(); + } +}; + +// Trims spaces from a string ignoring invisible sequences +const stringVisibleTrimSpacesRight = string => { + const words = string.split(' '); + let last = words.length; + + while (last > 0) { + if (stringWidth(words[last - 1]) > 0) { + break; + } + + last--; + } + + if (last === words.length) { + return string; + } + + return words.slice(0, last).join(' ') + words.slice(last).join(''); +}; + +// The wrap-ansi module can be invoked in either 'hard' or 'soft' wrap mode +// +// 'hard' will never allow a string to take up more than columns characters +// +// 'soft' allows long words to expand past the column length +const exec = (string, columns, options = {}) => { + if (options.trim !== false && string.trim() === '') { + return ''; + } + + let returnValue = ''; + let escapeCode; + let escapeUrl; + + const lengths = wordLengths(string); + let rows = ['']; + + for (const [index, word] of string.split(' ').entries()) { + if (options.trim !== false) { + rows[rows.length - 1] = rows[rows.length - 1].trimStart(); + } + + let rowLength = stringWidth(rows[rows.length - 1]); + + if (index !== 0) { + if (rowLength >= columns && (options.wordWrap === false || options.trim === false)) { + // If we start with a new word but the current row length equals the length of the columns, add a new row + rows.push(''); + rowLength = 0; + } + + if (rowLength > 0 || options.trim === false) { + rows[rows.length - 1] += ' '; + rowLength++; + } + } + + // In 'hard' wrap mode, the length of a line is never allowed to extend past 'columns' + if (options.hard && lengths[index] > columns) { + const remainingColumns = (columns - rowLength); + const breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns); + const breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns); + if (breaksStartingNextLine < breaksStartingThisLine) { + rows.push(''); + } + + wrapWord(rows, word, columns); + continue; + } + + if (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) { + if (options.wordWrap === false && rowLength < columns) { + wrapWord(rows, word, columns); + continue; + } + + rows.push(''); + } + + if (rowLength + lengths[index] > columns && options.wordWrap === false) { + wrapWord(rows, word, columns); + continue; + } + + rows[rows.length - 1] += word; + } + + if (options.trim !== false) { + rows = rows.map(stringVisibleTrimSpacesRight); + } + + const pre = [...rows.join('\n')]; + + for (const [index, character] of pre.entries()) { + returnValue += character; + + if (ESCAPES.has(character)) { + const {groups} = new RegExp(`(?:\\${ANSI_CSI}(?\\d+)m|\\${ANSI_ESCAPE_LINK}(?.*)${ANSI_ESCAPE_BELL})`).exec(pre.slice(index).join('')) || {groups: {}}; + if (groups.code !== undefined) { + const code = Number.parseFloat(groups.code); + escapeCode = code === END_CODE ? undefined : code; + } else if (groups.uri !== undefined) { + escapeUrl = groups.uri.length === 0 ? undefined : groups.uri; + } + } + + const code = ansiStyles.codes.get(Number(escapeCode)); + + if (pre[index + 1] === '\n') { + if (escapeUrl) { + returnValue += wrapAnsiHyperlink(''); + } + + if (escapeCode && code) { + returnValue += wrapAnsi(code); + } + } else if (character === '\n') { + if (escapeCode && code) { + returnValue += wrapAnsi(escapeCode); + } + + if (escapeUrl) { + returnValue += wrapAnsiHyperlink(escapeUrl); + } + } + } + + return returnValue; +}; + +// For each newline, invoke the method separately +module.exports = (string, columns, options) => { + return String(string) + .normalize() + .replace(/\r\n/g, '\n') + .split('\n') + .map(line => exec(line, columns, options)) + .join('\n'); +}; diff --git a/node_modules/wrap-ansi/license b/node_modules/wrap-ansi/license new file mode 100644 index 00000000..fa7ceba3 --- /dev/null +++ b/node_modules/wrap-ansi/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/wrap-ansi/package.json b/node_modules/wrap-ansi/package.json new file mode 100644 index 00000000..dfb2f4f1 --- /dev/null +++ b/node_modules/wrap-ansi/package.json @@ -0,0 +1,62 @@ +{ + "name": "wrap-ansi", + "version": "7.0.0", + "description": "Wordwrap a string with ANSI escape codes", + "license": "MIT", + "repository": "chalk/wrap-ansi", + "funding": "https://github.com/chalk/wrap-ansi?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { + "node": ">=10" + }, + "scripts": { + "test": "xo && nyc ava" + }, + "files": [ + "index.js" + ], + "keywords": [ + "wrap", + "break", + "wordwrap", + "wordbreak", + "linewrap", + "ansi", + "styles", + "color", + "colour", + "colors", + "terminal", + "console", + "cli", + "string", + "tty", + "escape", + "formatting", + "rgb", + "256", + "shell", + "xterm", + "log", + "logging", + "command-line", + "text" + ], + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "devDependencies": { + "ava": "^2.1.0", + "chalk": "^4.0.0", + "coveralls": "^3.0.3", + "has-ansi": "^4.0.0", + "nyc": "^15.0.1", + "xo": "^0.29.1" + } +} diff --git a/node_modules/wrap-ansi/readme.md b/node_modules/wrap-ansi/readme.md new file mode 100644 index 00000000..68779ba5 --- /dev/null +++ b/node_modules/wrap-ansi/readme.md @@ -0,0 +1,91 @@ +# wrap-ansi [![Build Status](https://travis-ci.com/chalk/wrap-ansi.svg?branch=master)](https://travis-ci.com/chalk/wrap-ansi) [![Coverage Status](https://coveralls.io/repos/github/chalk/wrap-ansi/badge.svg?branch=master)](https://coveralls.io/github/chalk/wrap-ansi?branch=master) + +> Wordwrap a string with [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) + +## Install + +``` +$ npm install wrap-ansi +``` + +## Usage + +```js +const chalk = require('chalk'); +const wrapAnsi = require('wrap-ansi'); + +const input = 'The quick brown ' + chalk.red('fox jumped over ') + + 'the lazy ' + chalk.green('dog and then ran away with the unicorn.'); + +console.log(wrapAnsi(input, 20)); +``` + + + +## API + +### wrapAnsi(string, columns, options?) + +Wrap words to the specified column width. + +#### string + +Type: `string` + +String with ANSI escape codes. Like one styled by [`chalk`](https://github.com/chalk/chalk). Newline characters will be normalized to `\n`. + +#### columns + +Type: `number` + +Number of columns to wrap the text to. + +#### options + +Type: `object` + +##### hard + +Type: `boolean`\ +Default: `false` + +By default the wrap is soft, meaning long words may extend past the column width. Setting this to `true` will make it hard wrap at the column width. + +##### wordWrap + +Type: `boolean`\ +Default: `true` + +By default, an attempt is made to split words at spaces, ensuring that they don't extend past the configured columns. If wordWrap is `false`, each column will instead be completely filled splitting words as necessary. + +##### trim + +Type: `boolean`\ +Default: `true` + +Whitespace on all lines is removed by default. Set this option to `false` if you don't want to trim. + +## Related + +- [slice-ansi](https://github.com/chalk/slice-ansi) - Slice a string with ANSI escape codes +- [cli-truncate](https://github.com/sindresorhus/cli-truncate) - Truncate a string to a specific width in the terminal +- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right +- [jsesc](https://github.com/mathiasbynens/jsesc) - Generate ASCII-only output from Unicode strings. Useful for creating test fixtures. + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Josh Junon](https://github.com/qix-) +- [Benjamin Coe](https://github.com/bcoe) + +--- + +
+ + Get professional support for this package with a Tidelift subscription + +
+ + Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. +
+
diff --git a/node_modules/y18n/CHANGELOG.md b/node_modules/y18n/CHANGELOG.md new file mode 100644 index 00000000..244d8385 --- /dev/null +++ b/node_modules/y18n/CHANGELOG.md @@ -0,0 +1,100 @@ +# Change Log + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +### [5.0.8](https://www.github.com/yargs/y18n/compare/v5.0.7...v5.0.8) (2021-04-07) + + +### Bug Fixes + +* **deno:** force modern release for Deno ([b1c215a](https://www.github.com/yargs/y18n/commit/b1c215aed714bee5830e76de3e335504dc2c4dab)) + +### [5.0.7](https://www.github.com/yargs/y18n/compare/v5.0.6...v5.0.7) (2021-04-07) + + +### Bug Fixes + +* **deno:** force release for deno ([#121](https://www.github.com/yargs/y18n/issues/121)) ([d3f2560](https://www.github.com/yargs/y18n/commit/d3f2560e6cedf2bfa2352e9eec044da53f9a06b2)) + +### [5.0.6](https://www.github.com/yargs/y18n/compare/v5.0.5...v5.0.6) (2021-04-05) + + +### Bug Fixes + +* **webpack:** skip readFileSync if not defined ([#117](https://www.github.com/yargs/y18n/issues/117)) ([6966fa9](https://www.github.com/yargs/y18n/commit/6966fa91d2881cc6a6c531e836099e01f4da1616)) + +### [5.0.5](https://www.github.com/yargs/y18n/compare/v5.0.4...v5.0.5) (2020-10-25) + + +### Bug Fixes + +* address prototype pollution issue ([#108](https://www.github.com/yargs/y18n/issues/108)) ([a9ac604](https://www.github.com/yargs/y18n/commit/a9ac604abf756dec9687be3843e2c93bfe581f25)) + +### [5.0.4](https://www.github.com/yargs/y18n/compare/v5.0.3...v5.0.4) (2020-10-16) + + +### Bug Fixes + +* **exports:** node 13.0 and 13.1 require the dotted object form _with_ a string fallback ([#105](https://www.github.com/yargs/y18n/issues/105)) ([4f85d80](https://www.github.com/yargs/y18n/commit/4f85d80dbaae6d2c7899ae394f7ad97805df4886)) + +### [5.0.3](https://www.github.com/yargs/y18n/compare/v5.0.2...v5.0.3) (2020-10-16) + + +### Bug Fixes + +* **exports:** node 13.0-13.6 require a string fallback ([#103](https://www.github.com/yargs/y18n/issues/103)) ([e39921e](https://www.github.com/yargs/y18n/commit/e39921e1017f88f5d8ea97ddea854ffe92d68e74)) + +### [5.0.2](https://www.github.com/yargs/y18n/compare/v5.0.1...v5.0.2) (2020-10-01) + + +### Bug Fixes + +* **deno:** update types for deno ^1.4.0 ([#100](https://www.github.com/yargs/y18n/issues/100)) ([3834d9a](https://www.github.com/yargs/y18n/commit/3834d9ab1332f2937c935ada5e76623290efae81)) + +### [5.0.1](https://www.github.com/yargs/y18n/compare/v5.0.0...v5.0.1) (2020-09-05) + + +### Bug Fixes + +* main had old index path ([#98](https://www.github.com/yargs/y18n/issues/98)) ([124f7b0](https://www.github.com/yargs/y18n/commit/124f7b047ba9596bdbdf64459988304e77f3de1b)) + +## [5.0.0](https://www.github.com/yargs/y18n/compare/v4.0.0...v5.0.0) (2020-09-05) + + +### ⚠ BREAKING CHANGES + +* exports maps are now used, which modifies import behavior. +* drops Node 6 and 4. begin following Node.js LTS schedule (#89) + +### Features + +* add support for ESM and Deno [#95](https://www.github.com/yargs/y18n/issues/95)) ([4d7ae94](https://www.github.com/yargs/y18n/commit/4d7ae94bcb42e84164e2180366474b1cd321ed94)) + + +### Build System + +* drops Node 6 and 4. begin following Node.js LTS schedule ([#89](https://www.github.com/yargs/y18n/issues/89)) ([3cc0c28](https://www.github.com/yargs/y18n/commit/3cc0c287240727b84eaf1927f903612ec80f5e43)) + +### 4.0.1 (2020-10-25) + + +### Bug Fixes + +* address prototype pollution issue ([#108](https://www.github.com/yargs/y18n/issues/108)) ([a9ac604](https://www.github.com/yargs/y18n/commit/7de58ca0d315990cdb38234e97fc66254cdbcd71)) + +## [4.0.0](https://github.com/yargs/y18n/compare/v3.2.1...v4.0.0) (2017-10-10) + + +### Bug Fixes + +* allow support for falsy values like 0 in tagged literal ([#45](https://github.com/yargs/y18n/issues/45)) ([c926123](https://github.com/yargs/y18n/commit/c926123)) + + +### Features + +* **__:** added tagged template literal support ([#44](https://github.com/yargs/y18n/issues/44)) ([0598daf](https://github.com/yargs/y18n/commit/0598daf)) + + +### BREAKING CHANGES + +* **__:** dropping Node 0.10/Node 0.12 support diff --git a/node_modules/y18n/LICENSE b/node_modules/y18n/LICENSE new file mode 100644 index 00000000..3c157f0b --- /dev/null +++ b/node_modules/y18n/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2015, Contributors + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. diff --git a/node_modules/y18n/README.md b/node_modules/y18n/README.md new file mode 100644 index 00000000..5102bb17 --- /dev/null +++ b/node_modules/y18n/README.md @@ -0,0 +1,127 @@ +# y18n + +[![NPM version][npm-image]][npm-url] +[![js-standard-style][standard-image]][standard-url] +[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org) + +The bare-bones internationalization library used by yargs. + +Inspired by [i18n](https://www.npmjs.com/package/i18n). + +## Examples + +_simple string translation:_ + +```js +const __ = require('y18n')().__; + +console.log(__('my awesome string %s', 'foo')); +``` + +output: + +`my awesome string foo` + +_using tagged template literals_ + +```js +const __ = require('y18n')().__; + +const str = 'foo'; + +console.log(__`my awesome string ${str}`); +``` + +output: + +`my awesome string foo` + +_pluralization support:_ + +```js +const __n = require('y18n')().__n; + +console.log(__n('one fish %s', '%d fishes %s', 2, 'foo')); +``` + +output: + +`2 fishes foo` + +## Deno Example + +As of `v5` `y18n` supports [Deno](https://github.com/denoland/deno): + +```typescript +import y18n from "https://deno.land/x/y18n/deno.ts"; + +const __ = y18n({ + locale: 'pirate', + directory: './test/locales' +}).__ + +console.info(__`Hi, ${'Ben'} ${'Coe'}!`) +``` + +You will need to run with `--allow-read` to load alternative locales. + +## JSON Language Files + +The JSON language files should be stored in a `./locales` folder. +File names correspond to locales, e.g., `en.json`, `pirate.json`. + +When strings are observed for the first time they will be +added to the JSON file corresponding to the current locale. + +## Methods + +### require('y18n')(config) + +Create an instance of y18n with the config provided, options include: + +* `directory`: the locale directory, default `./locales`. +* `updateFiles`: should newly observed strings be updated in file, default `true`. +* `locale`: what locale should be used. +* `fallbackToLanguage`: should fallback to a language-only file (e.g. `en.json`) + be allowed if a file matching the locale does not exist (e.g. `en_US.json`), + default `true`. + +### y18n.\_\_(str, arg, arg, arg) + +Print a localized string, `%s` will be replaced with `arg`s. + +This function can also be used as a tag for a template literal. You can use it +like this: __`hello ${'world'}`. This will be equivalent to +`__('hello %s', 'world')`. + +### y18n.\_\_n(singularString, pluralString, count, arg, arg, arg) + +Print a localized string with appropriate pluralization. If `%d` is provided +in the string, the `count` will replace this placeholder. + +### y18n.setLocale(str) + +Set the current locale being used. + +### y18n.getLocale() + +What locale is currently being used? + +### y18n.updateLocale(obj) + +Update the current locale with the key value pairs in `obj`. + +## Supported Node.js Versions + +Libraries in this ecosystem make a best effort to track +[Node.js' release schedule](https://nodejs.org/en/about/releases/). Here's [a +post on why we think this is important](https://medium.com/the-node-js-collection/maintainers-should-consider-following-node-js-release-schedule-ab08ed4de71a). + +## License + +ISC + +[npm-url]: https://npmjs.org/package/y18n +[npm-image]: https://img.shields.io/npm/v/y18n.svg +[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg +[standard-url]: https://github.com/feross/standard diff --git a/node_modules/y18n/build/index.cjs b/node_modules/y18n/build/index.cjs new file mode 100644 index 00000000..b2731e1a --- /dev/null +++ b/node_modules/y18n/build/index.cjs @@ -0,0 +1,203 @@ +'use strict'; + +var fs = require('fs'); +var util = require('util'); +var path = require('path'); + +let shim; +class Y18N { + constructor(opts) { + // configurable options. + opts = opts || {}; + this.directory = opts.directory || './locales'; + this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true; + this.locale = opts.locale || 'en'; + this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true; + // internal stuff. + this.cache = Object.create(null); + this.writeQueue = []; + } + __(...args) { + if (typeof arguments[0] !== 'string') { + return this._taggedLiteral(arguments[0], ...arguments); + } + const str = args.shift(); + let cb = function () { }; // start with noop. + if (typeof args[args.length - 1] === 'function') + cb = args.pop(); + cb = cb || function () { }; // noop. + if (!this.cache[this.locale]) + this._readLocaleFile(); + // we've observed a new string, update the language file. + if (!this.cache[this.locale][str] && this.updateFiles) { + this.cache[this.locale][str] = str; + // include the current directory and locale, + // since these values could change before the + // write is performed. + this._enqueueWrite({ + directory: this.directory, + locale: this.locale, + cb + }); + } + else { + cb(); + } + return shim.format.apply(shim.format, [this.cache[this.locale][str] || str].concat(args)); + } + __n() { + const args = Array.prototype.slice.call(arguments); + const singular = args.shift(); + const plural = args.shift(); + const quantity = args.shift(); + let cb = function () { }; // start with noop. + if (typeof args[args.length - 1] === 'function') + cb = args.pop(); + if (!this.cache[this.locale]) + this._readLocaleFile(); + let str = quantity === 1 ? singular : plural; + if (this.cache[this.locale][singular]) { + const entry = this.cache[this.locale][singular]; + str = entry[quantity === 1 ? 'one' : 'other']; + } + // we've observed a new string, update the language file. + if (!this.cache[this.locale][singular] && this.updateFiles) { + this.cache[this.locale][singular] = { + one: singular, + other: plural + }; + // include the current directory and locale, + // since these values could change before the + // write is performed. + this._enqueueWrite({ + directory: this.directory, + locale: this.locale, + cb + }); + } + else { + cb(); + } + // if a %d placeholder is provided, add quantity + // to the arguments expanded by util.format. + const values = [str]; + if (~str.indexOf('%d')) + values.push(quantity); + return shim.format.apply(shim.format, values.concat(args)); + } + setLocale(locale) { + this.locale = locale; + } + getLocale() { + return this.locale; + } + updateLocale(obj) { + if (!this.cache[this.locale]) + this._readLocaleFile(); + for (const key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + this.cache[this.locale][key] = obj[key]; + } + } + } + _taggedLiteral(parts, ...args) { + let str = ''; + parts.forEach(function (part, i) { + const arg = args[i + 1]; + str += part; + if (typeof arg !== 'undefined') { + str += '%s'; + } + }); + return this.__.apply(this, [str].concat([].slice.call(args, 1))); + } + _enqueueWrite(work) { + this.writeQueue.push(work); + if (this.writeQueue.length === 1) + this._processWriteQueue(); + } + _processWriteQueue() { + const _this = this; + const work = this.writeQueue[0]; + // destructure the enqueued work. + const directory = work.directory; + const locale = work.locale; + const cb = work.cb; + const languageFile = this._resolveLocaleFile(directory, locale); + const serializedLocale = JSON.stringify(this.cache[locale], null, 2); + shim.fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) { + _this.writeQueue.shift(); + if (_this.writeQueue.length > 0) + _this._processWriteQueue(); + cb(err); + }); + } + _readLocaleFile() { + let localeLookup = {}; + const languageFile = this._resolveLocaleFile(this.directory, this.locale); + try { + // When using a bundler such as webpack, readFileSync may not be defined: + if (shim.fs.readFileSync) { + localeLookup = JSON.parse(shim.fs.readFileSync(languageFile, 'utf-8')); + } + } + catch (err) { + if (err instanceof SyntaxError) { + err.message = 'syntax error in ' + languageFile; + } + if (err.code === 'ENOENT') + localeLookup = {}; + else + throw err; + } + this.cache[this.locale] = localeLookup; + } + _resolveLocaleFile(directory, locale) { + let file = shim.resolve(directory, './', locale + '.json'); + if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) { + // attempt fallback to language only + const languageFile = shim.resolve(directory, './', locale.split('_')[0] + '.json'); + if (this._fileExistsSync(languageFile)) + file = languageFile; + } + return file; + } + _fileExistsSync(file) { + return shim.exists(file); + } +} +function y18n$1(opts, _shim) { + shim = _shim; + const y18n = new Y18N(opts); + return { + __: y18n.__.bind(y18n), + __n: y18n.__n.bind(y18n), + setLocale: y18n.setLocale.bind(y18n), + getLocale: y18n.getLocale.bind(y18n), + updateLocale: y18n.updateLocale.bind(y18n), + locale: y18n.locale + }; +} + +var nodePlatformShim = { + fs: { + readFileSync: fs.readFileSync, + writeFile: fs.writeFile + }, + format: util.format, + resolve: path.resolve, + exists: (file) => { + try { + return fs.statSync(file).isFile(); + } + catch (err) { + return false; + } + } +}; + +const y18n = (opts) => { + return y18n$1(opts, nodePlatformShim); +}; + +module.exports = y18n; diff --git a/node_modules/y18n/build/lib/cjs.js b/node_modules/y18n/build/lib/cjs.js new file mode 100644 index 00000000..ff584709 --- /dev/null +++ b/node_modules/y18n/build/lib/cjs.js @@ -0,0 +1,6 @@ +import { y18n as _y18n } from './index.js'; +import nodePlatformShim from './platform-shims/node.js'; +const y18n = (opts) => { + return _y18n(opts, nodePlatformShim); +}; +export default y18n; diff --git a/node_modules/y18n/build/lib/index.js b/node_modules/y18n/build/lib/index.js new file mode 100644 index 00000000..e38f3359 --- /dev/null +++ b/node_modules/y18n/build/lib/index.js @@ -0,0 +1,174 @@ +let shim; +class Y18N { + constructor(opts) { + // configurable options. + opts = opts || {}; + this.directory = opts.directory || './locales'; + this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true; + this.locale = opts.locale || 'en'; + this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true; + // internal stuff. + this.cache = Object.create(null); + this.writeQueue = []; + } + __(...args) { + if (typeof arguments[0] !== 'string') { + return this._taggedLiteral(arguments[0], ...arguments); + } + const str = args.shift(); + let cb = function () { }; // start with noop. + if (typeof args[args.length - 1] === 'function') + cb = args.pop(); + cb = cb || function () { }; // noop. + if (!this.cache[this.locale]) + this._readLocaleFile(); + // we've observed a new string, update the language file. + if (!this.cache[this.locale][str] && this.updateFiles) { + this.cache[this.locale][str] = str; + // include the current directory and locale, + // since these values could change before the + // write is performed. + this._enqueueWrite({ + directory: this.directory, + locale: this.locale, + cb + }); + } + else { + cb(); + } + return shim.format.apply(shim.format, [this.cache[this.locale][str] || str].concat(args)); + } + __n() { + const args = Array.prototype.slice.call(arguments); + const singular = args.shift(); + const plural = args.shift(); + const quantity = args.shift(); + let cb = function () { }; // start with noop. + if (typeof args[args.length - 1] === 'function') + cb = args.pop(); + if (!this.cache[this.locale]) + this._readLocaleFile(); + let str = quantity === 1 ? singular : plural; + if (this.cache[this.locale][singular]) { + const entry = this.cache[this.locale][singular]; + str = entry[quantity === 1 ? 'one' : 'other']; + } + // we've observed a new string, update the language file. + if (!this.cache[this.locale][singular] && this.updateFiles) { + this.cache[this.locale][singular] = { + one: singular, + other: plural + }; + // include the current directory and locale, + // since these values could change before the + // write is performed. + this._enqueueWrite({ + directory: this.directory, + locale: this.locale, + cb + }); + } + else { + cb(); + } + // if a %d placeholder is provided, add quantity + // to the arguments expanded by util.format. + const values = [str]; + if (~str.indexOf('%d')) + values.push(quantity); + return shim.format.apply(shim.format, values.concat(args)); + } + setLocale(locale) { + this.locale = locale; + } + getLocale() { + return this.locale; + } + updateLocale(obj) { + if (!this.cache[this.locale]) + this._readLocaleFile(); + for (const key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + this.cache[this.locale][key] = obj[key]; + } + } + } + _taggedLiteral(parts, ...args) { + let str = ''; + parts.forEach(function (part, i) { + const arg = args[i + 1]; + str += part; + if (typeof arg !== 'undefined') { + str += '%s'; + } + }); + return this.__.apply(this, [str].concat([].slice.call(args, 1))); + } + _enqueueWrite(work) { + this.writeQueue.push(work); + if (this.writeQueue.length === 1) + this._processWriteQueue(); + } + _processWriteQueue() { + const _this = this; + const work = this.writeQueue[0]; + // destructure the enqueued work. + const directory = work.directory; + const locale = work.locale; + const cb = work.cb; + const languageFile = this._resolveLocaleFile(directory, locale); + const serializedLocale = JSON.stringify(this.cache[locale], null, 2); + shim.fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) { + _this.writeQueue.shift(); + if (_this.writeQueue.length > 0) + _this._processWriteQueue(); + cb(err); + }); + } + _readLocaleFile() { + let localeLookup = {}; + const languageFile = this._resolveLocaleFile(this.directory, this.locale); + try { + // When using a bundler such as webpack, readFileSync may not be defined: + if (shim.fs.readFileSync) { + localeLookup = JSON.parse(shim.fs.readFileSync(languageFile, 'utf-8')); + } + } + catch (err) { + if (err instanceof SyntaxError) { + err.message = 'syntax error in ' + languageFile; + } + if (err.code === 'ENOENT') + localeLookup = {}; + else + throw err; + } + this.cache[this.locale] = localeLookup; + } + _resolveLocaleFile(directory, locale) { + let file = shim.resolve(directory, './', locale + '.json'); + if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) { + // attempt fallback to language only + const languageFile = shim.resolve(directory, './', locale.split('_')[0] + '.json'); + if (this._fileExistsSync(languageFile)) + file = languageFile; + } + return file; + } + _fileExistsSync(file) { + return shim.exists(file); + } +} +export function y18n(opts, _shim) { + shim = _shim; + const y18n = new Y18N(opts); + return { + __: y18n.__.bind(y18n), + __n: y18n.__n.bind(y18n), + setLocale: y18n.setLocale.bind(y18n), + getLocale: y18n.getLocale.bind(y18n), + updateLocale: y18n.updateLocale.bind(y18n), + locale: y18n.locale + }; +} diff --git a/node_modules/y18n/build/lib/platform-shims/node.js b/node_modules/y18n/build/lib/platform-shims/node.js new file mode 100644 index 00000000..181208b8 --- /dev/null +++ b/node_modules/y18n/build/lib/platform-shims/node.js @@ -0,0 +1,19 @@ +import { readFileSync, statSync, writeFile } from 'fs'; +import { format } from 'util'; +import { resolve } from 'path'; +export default { + fs: { + readFileSync, + writeFile + }, + format, + resolve, + exists: (file) => { + try { + return statSync(file).isFile(); + } + catch (err) { + return false; + } + } +}; diff --git a/node_modules/y18n/index.mjs b/node_modules/y18n/index.mjs new file mode 100644 index 00000000..46c82133 --- /dev/null +++ b/node_modules/y18n/index.mjs @@ -0,0 +1,8 @@ +import shim from './build/lib/platform-shims/node.js' +import { y18n as _y18n } from './build/lib/index.js' + +const y18n = (opts) => { + return _y18n(opts, shim) +} + +export default y18n diff --git a/node_modules/y18n/package.json b/node_modules/y18n/package.json new file mode 100644 index 00000000..4e5c1ca6 --- /dev/null +++ b/node_modules/y18n/package.json @@ -0,0 +1,70 @@ +{ + "name": "y18n", + "version": "5.0.8", + "description": "the bare-bones internationalization library used by yargs", + "exports": { + ".": [ + { + "import": "./index.mjs", + "require": "./build/index.cjs" + }, + "./build/index.cjs" + ] + }, + "type": "module", + "module": "./build/lib/index.js", + "keywords": [ + "i18n", + "internationalization", + "yargs" + ], + "homepage": "https://github.com/yargs/y18n", + "bugs": { + "url": "https://github.com/yargs/y18n/issues" + }, + "repository": "yargs/y18n", + "license": "ISC", + "author": "Ben Coe ", + "main": "./build/index.cjs", + "scripts": { + "check": "standardx **/*.ts **/*.cjs **/*.mjs", + "fix": "standardx --fix **/*.ts **/*.cjs **/*.mjs", + "pretest": "rimraf build && tsc -p tsconfig.test.json && cross-env NODE_ENV=test npm run build:cjs", + "test": "c8 --reporter=text --reporter=html mocha test/*.cjs", + "test:esm": "c8 --reporter=text --reporter=html mocha test/esm/*.mjs", + "posttest": "npm run check", + "coverage": "c8 report --check-coverage", + "precompile": "rimraf build", + "compile": "tsc", + "postcompile": "npm run build:cjs", + "build:cjs": "rollup -c", + "prepare": "npm run compile" + }, + "devDependencies": { + "@types/node": "^14.6.4", + "@wessberg/rollup-plugin-ts": "^1.3.1", + "c8": "^7.3.0", + "chai": "^4.0.1", + "cross-env": "^7.0.2", + "gts": "^3.0.0", + "mocha": "^8.0.0", + "rimraf": "^3.0.2", + "rollup": "^2.26.10", + "standardx": "^7.0.0", + "ts-transform-default-export": "^1.0.2", + "typescript": "^4.0.0" + }, + "files": [ + "build", + "index.mjs", + "!*.d.ts" + ], + "engines": { + "node": ">=10" + }, + "standardx": { + "ignore": [ + "build" + ] + } +} diff --git a/node_modules/yaml/LICENSE b/node_modules/yaml/LICENSE new file mode 100644 index 00000000..7ca44e3f --- /dev/null +++ b/node_modules/yaml/LICENSE @@ -0,0 +1,13 @@ +Copyright 2018 Eemeli Aro + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. diff --git a/node_modules/yaml/README.md b/node_modules/yaml/README.md new file mode 100644 index 00000000..2c51aea2 --- /dev/null +++ b/node_modules/yaml/README.md @@ -0,0 +1,127 @@ +# YAML + +`yaml` is a JavaScript parser and stringifier for [YAML](http://yaml.org/), a human friendly data serialization standard. It supports both parsing and stringifying data using all versions of YAML, along with all common data schemas. As a particularly distinguishing feature, `yaml` fully supports reading and writing comments and blank lines in YAML documents. + +The library is released under the ISC open source license, and the code is [available on GitHub](https://github.com/eemeli/yaml/). It has no external dependencies and runs on Node.js 6 and later, and in browsers from IE 11 upwards. + +For the purposes of versioning, any changes that break any of the endpoints or APIs documented here will be considered semver-major breaking changes. Undocumented library internals may change between minor versions, and previous APIs may be deprecated (but not removed). + +For more information, see the project's documentation site: [**eemeli.org/yaml/v1**](https://eemeli.org/yaml/v1/) + +To install: + +```sh +npm install yaml +``` + +**Note:** This is `yaml@1`. You may also be interested in the next version, currently available as [`yaml@next`](https://www.npmjs.com/package/yaml/v/next). + +## API Overview + +The API provided by `yaml` has three layers, depending on how deep you need to go: [Parse & Stringify](https://eemeli.org/yaml/v1/#parse-amp-stringify), [Documents](https://eemeli.org/yaml/#documents), and the [CST Parser](https://eemeli.org/yaml/#cst-parser). The first has the simplest API and "just works", the second gets you all the bells and whistles supported by the library along with a decent [AST](https://eemeli.org/yaml/#content-nodes), and the third is the closest to YAML source, making it fast, raw, and crude. + +```js +import YAML from 'yaml' +// or +const YAML = require('yaml') +``` + +### Parse & Stringify + +- [`YAML.parse(str, options): value`](https://eemeli.org/yaml/v1/#yaml-parse) +- [`YAML.stringify(value, options): string`](https://eemeli.org/yaml/v1/#yaml-stringify) + +### YAML Documents + +- [`YAML.createNode(value, wrapScalars, tag): Node`](https://eemeli.org/yaml/v1/#creating-nodes) +- [`YAML.defaultOptions`](https://eemeli.org/yaml/v1/#options) +- [`YAML.Document`](https://eemeli.org/yaml/v1/#yaml-documents) + - [`constructor(options)`](https://eemeli.org/yaml/v1/#creating-documents) + - [`defaults`](https://eemeli.org/yaml/v1/#options) + - [`#anchors`](https://eemeli.org/yaml/v1/#working-with-anchors) + - [`#contents`](https://eemeli.org/yaml/v1/#content-nodes) + - [`#errors`](https://eemeli.org/yaml/v1/#errors) +- [`YAML.parseAllDocuments(str, options): YAML.Document[]`](https://eemeli.org/yaml/v1/#parsing-documents) +- [`YAML.parseDocument(str, options): YAML.Document`](https://eemeli.org/yaml/v1/#parsing-documents) + +```js +import { Pair, YAMLMap, YAMLSeq } from 'yaml/types' +``` + +- [`new Pair(key, value)`](https://eemeli.org/yaml/v1/#creating-nodes) +- [`new YAMLMap()`](https://eemeli.org/yaml/v1/#creating-nodes) +- [`new YAMLSeq()`](https://eemeli.org/yaml/v1/#creating-nodes) + +### CST Parser + +```js +import parseCST from 'yaml/parse-cst' +``` + +- [`parseCST(str): CSTDocument[]`](https://eemeli.org/yaml/v1/#parsecst) +- [`YAML.parseCST(str): CSTDocument[]`](https://eemeli.org/yaml/v1/#parsecst) + +## YAML.parse + +```yaml +# file.yml +YAML: + - A human-readable data serialization language + - https://en.wikipedia.org/wiki/YAML +yaml: + - A complete JavaScript implementation + - https://www.npmjs.com/package/yaml +``` + +```js +import fs from 'fs' +import YAML from 'yaml' + +YAML.parse('3.14159') +// 3.14159 + +YAML.parse('[ true, false, maybe, null ]\n') +// [ true, false, 'maybe', null ] + +const file = fs.readFileSync('./file.yml', 'utf8') +YAML.parse(file) +// { YAML: +// [ 'A human-readable data serialization language', +// 'https://en.wikipedia.org/wiki/YAML' ], +// yaml: +// [ 'A complete JavaScript implementation', +// 'https://www.npmjs.com/package/yaml' ] } +``` + +## YAML.stringify + +```js +import YAML from 'yaml' + +YAML.stringify(3.14159) +// '3.14159\n' + +YAML.stringify([true, false, 'maybe', null]) +// `- true +// - false +// - maybe +// - null +// ` + +YAML.stringify({ number: 3, plain: 'string', block: 'two\nlines\n' }) +// `number: 3 +// plain: string +// block: > +// two +// +// lines +// ` +``` + +--- + +Browser testing provided by: + + + + diff --git a/node_modules/yaml/browser/dist/PlainValue-b8036b75.js b/node_modules/yaml/browser/dist/PlainValue-b8036b75.js new file mode 100644 index 00000000..2a4255a2 --- /dev/null +++ b/node_modules/yaml/browser/dist/PlainValue-b8036b75.js @@ -0,0 +1,1275 @@ +function _typeof(obj) { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function (obj) { + return typeof obj; + }; + } else { + _typeof = function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); +} + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf(subClass, superClass); +} + +function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); +} + +function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); +} + +function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} + +function _construct(Parent, args, Class) { + if (_isNativeReflectConstruct()) { + _construct = Reflect.construct; + } else { + _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) _setPrototypeOf(instance, Class.prototype); + return instance; + }; + } + + return _construct.apply(null, arguments); +} + +function _isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; +} + +function _wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? new Map() : undefined; + + _wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !_isNativeFunction(Class)) return Class; + + if (typeof Class !== "function") { + throw new TypeError("Super expression must either be null or a function"); + } + + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + + _cache.set(Class, Wrapper); + } + + function Wrapper() { + return _construct(Class, arguments, _getPrototypeOf(this).constructor); + } + + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } + }); + return _setPrototypeOf(Wrapper, Class); + }; + + return _wrapNativeSuper(Class); +} + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +function _possibleConstructorReturn(self, call) { + if (call && (typeof call === "object" || typeof call === "function")) { + return call; + } + + return _assertThisInitialized(self); +} + +function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), + result; + + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + + return _possibleConstructorReturn(this, result); + }; +} + +function _superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = _getPrototypeOf(object); + if (object === null) break; + } + + return object; +} + +function _get(target, property, receiver) { + if (typeof Reflect !== "undefined" && Reflect.get) { + _get = Reflect.get; + } else { + _get = function _get(target, property, receiver) { + var base = _superPropBase(target, property); + + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + + if (desc.get) { + return desc.get.call(receiver); + } + + return desc.value; + }; + } + + return _get(target, property, receiver || target); +} + +function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); +} + +function _toArray(arr) { + return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); +} + +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} + +function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); +} + +function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; +} + +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} + +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + + return arr2; +} + +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +function _createForOfIteratorHelper(o, allowArrayLike) { + var it; + + if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + + var F = function () {}; + + return { + s: F, + n: function () { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function (e) { + throw e; + }, + f: F + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + var normalCompletion = true, + didErr = false, + err; + return { + s: function () { + it = o[Symbol.iterator](); + }, + n: function () { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function (e) { + didErr = true; + err = e; + }, + f: function () { + try { + if (!normalCompletion && it.return != null) it.return(); + } finally { + if (didErr) throw err; + } + } + }; +} + +var Char = { + ANCHOR: '&', + COMMENT: '#', + TAG: '!', + DIRECTIVES_END: '-', + DOCUMENT_END: '.' +}; +var Type = { + ALIAS: 'ALIAS', + BLANK_LINE: 'BLANK_LINE', + BLOCK_FOLDED: 'BLOCK_FOLDED', + BLOCK_LITERAL: 'BLOCK_LITERAL', + COMMENT: 'COMMENT', + DIRECTIVE: 'DIRECTIVE', + DOCUMENT: 'DOCUMENT', + FLOW_MAP: 'FLOW_MAP', + FLOW_SEQ: 'FLOW_SEQ', + MAP: 'MAP', + MAP_KEY: 'MAP_KEY', + MAP_VALUE: 'MAP_VALUE', + PLAIN: 'PLAIN', + QUOTE_DOUBLE: 'QUOTE_DOUBLE', + QUOTE_SINGLE: 'QUOTE_SINGLE', + SEQ: 'SEQ', + SEQ_ITEM: 'SEQ_ITEM' +}; +var defaultTagPrefix = 'tag:yaml.org,2002:'; +var defaultTags = { + MAP: 'tag:yaml.org,2002:map', + SEQ: 'tag:yaml.org,2002:seq', + STR: 'tag:yaml.org,2002:str' +}; + +function findLineStarts(src) { + var ls = [0]; + var offset = src.indexOf('\n'); + + while (offset !== -1) { + offset += 1; + ls.push(offset); + offset = src.indexOf('\n', offset); + } + + return ls; +} + +function getSrcInfo(cst) { + var lineStarts, src; + + if (typeof cst === 'string') { + lineStarts = findLineStarts(cst); + src = cst; + } else { + if (Array.isArray(cst)) cst = cst[0]; + + if (cst && cst.context) { + if (!cst.lineStarts) cst.lineStarts = findLineStarts(cst.context.src); + lineStarts = cst.lineStarts; + src = cst.context.src; + } + } + + return { + lineStarts: lineStarts, + src: src + }; +} +/** + * @typedef {Object} LinePos - One-indexed position in the source + * @property {number} line + * @property {number} col + */ + +/** + * Determine the line/col position matching a character offset. + * + * Accepts a source string or a CST document as the second parameter. With + * the latter, starting indices for lines are cached in the document as + * `lineStarts: number[]`. + * + * Returns a one-indexed `{ line, col }` location if found, or + * `undefined` otherwise. + * + * @param {number} offset + * @param {string|Document|Document[]} cst + * @returns {?LinePos} + */ + + +function getLinePos(offset, cst) { + if (typeof offset !== 'number' || offset < 0) return null; + + var _getSrcInfo = getSrcInfo(cst), + lineStarts = _getSrcInfo.lineStarts, + src = _getSrcInfo.src; + + if (!lineStarts || !src || offset > src.length) return null; + + for (var i = 0; i < lineStarts.length; ++i) { + var start = lineStarts[i]; + + if (offset < start) { + return { + line: i, + col: offset - lineStarts[i - 1] + 1 + }; + } + + if (offset === start) return { + line: i + 1, + col: 1 + }; + } + + var line = lineStarts.length; + return { + line: line, + col: offset - lineStarts[line - 1] + 1 + }; +} +/** + * Get a specified line from the source. + * + * Accepts a source string or a CST document as the second parameter. With + * the latter, starting indices for lines are cached in the document as + * `lineStarts: number[]`. + * + * Returns the line as a string if found, or `null` otherwise. + * + * @param {number} line One-indexed line number + * @param {string|Document|Document[]} cst + * @returns {?string} + */ + +function getLine(line, cst) { + var _getSrcInfo2 = getSrcInfo(cst), + lineStarts = _getSrcInfo2.lineStarts, + src = _getSrcInfo2.src; + + if (!lineStarts || !(line >= 1) || line > lineStarts.length) return null; + var start = lineStarts[line - 1]; + var end = lineStarts[line]; // undefined for last line; that's ok for slice() + + while (end && end > start && src[end - 1] === '\n') { + --end; + } + + return src.slice(start, end); +} +/** + * Pretty-print the starting line from the source indicated by the range `pos` + * + * Trims output to `maxWidth` chars while keeping the starting column visible, + * using `…` at either end to indicate dropped characters. + * + * Returns a two-line string (or `null`) with `\n` as separator; the second line + * will hold appropriately indented `^` marks indicating the column range. + * + * @param {Object} pos + * @param {LinePos} pos.start + * @param {LinePos} [pos.end] + * @param {string|Document|Document[]*} cst + * @param {number} [maxWidth=80] + * @returns {?string} + */ + +function getPrettyContext(_ref, cst) { + var start = _ref.start, + end = _ref.end; + var maxWidth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 80; + var src = getLine(start.line, cst); + if (!src) return null; + var col = start.col; + + if (src.length > maxWidth) { + if (col <= maxWidth - 10) { + src = src.substr(0, maxWidth - 1) + '…'; + } else { + var halfWidth = Math.round(maxWidth / 2); + if (src.length > col + halfWidth) src = src.substr(0, col + halfWidth - 1) + '…'; + col -= src.length - maxWidth; + src = '…' + src.substr(1 - maxWidth); + } + } + + var errLen = 1; + var errEnd = ''; + + if (end) { + if (end.line === start.line && col + (end.col - start.col) <= maxWidth + 1) { + errLen = end.col - start.col; + } else { + errLen = Math.min(src.length + 1, maxWidth) - col; + errEnd = '…'; + } + } + + var offset = col > 1 ? ' '.repeat(col - 1) : ''; + var err = '^'.repeat(errLen); + return "".concat(src, "\n").concat(offset).concat(err).concat(errEnd); +} + +var Range = /*#__PURE__*/function () { + function Range(start, end) { + _classCallCheck(this, Range); + + this.start = start; + this.end = end || start; + } + + _createClass(Range, [{ + key: "isEmpty", + value: function isEmpty() { + return typeof this.start !== 'number' || !this.end || this.end <= this.start; + } + /** + * Set `origStart` and `origEnd` to point to the original source range for + * this node, which may differ due to dropped CR characters. + * + * @param {number[]} cr - Positions of dropped CR characters + * @param {number} offset - Starting index of `cr` from the last call + * @returns {number} - The next offset, matching the one found for `origStart` + */ + + }, { + key: "setOrigRange", + value: function setOrigRange(cr, offset) { + var start = this.start, + end = this.end; + + if (cr.length === 0 || end <= cr[0]) { + this.origStart = start; + this.origEnd = end; + return offset; + } + + var i = offset; + + while (i < cr.length) { + if (cr[i] > start) break;else ++i; + } + + this.origStart = start + i; + var nextOffset = i; + + while (i < cr.length) { + // if end was at \n, it should now be at \r + if (cr[i] >= end) break;else ++i; + } + + this.origEnd = end + i; + return nextOffset; + } + }], [{ + key: "copy", + value: function copy(orig) { + return new Range(orig.start, orig.end); + } + }]); + + return Range; +}(); + +/** Root class of all nodes */ + +var Node = /*#__PURE__*/function () { + function Node(type, props, context) { + _classCallCheck(this, Node); + + Object.defineProperty(this, 'context', { + value: context || null, + writable: true + }); + this.error = null; + this.range = null; + this.valueRange = null; + this.props = props || []; + this.type = type; + this.value = null; + } + + _createClass(Node, [{ + key: "getPropValue", + value: function getPropValue(idx, key, skipKey) { + if (!this.context) return null; + var src = this.context.src; + var prop = this.props[idx]; + return prop && src[prop.start] === key ? src.slice(prop.start + (skipKey ? 1 : 0), prop.end) : null; + } + }, { + key: "anchor", + get: function get() { + for (var i = 0; i < this.props.length; ++i) { + var anchor = this.getPropValue(i, Char.ANCHOR, true); + if (anchor != null) return anchor; + } + + return null; + } + }, { + key: "comment", + get: function get() { + var comments = []; + + for (var i = 0; i < this.props.length; ++i) { + var comment = this.getPropValue(i, Char.COMMENT, true); + if (comment != null) comments.push(comment); + } + + return comments.length > 0 ? comments.join('\n') : null; + } + }, { + key: "commentHasRequiredWhitespace", + value: function commentHasRequiredWhitespace(start) { + var src = this.context.src; + if (this.header && start === this.header.end) return false; + if (!this.valueRange) return false; + var end = this.valueRange.end; + return start !== end || Node.atBlank(src, end - 1); + } + }, { + key: "hasComment", + get: function get() { + if (this.context) { + var src = this.context.src; + + for (var i = 0; i < this.props.length; ++i) { + if (src[this.props[i].start] === Char.COMMENT) return true; + } + } + + return false; + } + }, { + key: "hasProps", + get: function get() { + if (this.context) { + var src = this.context.src; + + for (var i = 0; i < this.props.length; ++i) { + if (src[this.props[i].start] !== Char.COMMENT) return true; + } + } + + return false; + } + }, { + key: "includesTrailingLines", + get: function get() { + return false; + } + }, { + key: "jsonLike", + get: function get() { + var jsonLikeTypes = [Type.FLOW_MAP, Type.FLOW_SEQ, Type.QUOTE_DOUBLE, Type.QUOTE_SINGLE]; + return jsonLikeTypes.indexOf(this.type) !== -1; + } + }, { + key: "rangeAsLinePos", + get: function get() { + if (!this.range || !this.context) return undefined; + var start = getLinePos(this.range.start, this.context.root); + if (!start) return undefined; + var end = getLinePos(this.range.end, this.context.root); + return { + start: start, + end: end + }; + } + }, { + key: "rawValue", + get: function get() { + if (!this.valueRange || !this.context) return null; + var _this$valueRange = this.valueRange, + start = _this$valueRange.start, + end = _this$valueRange.end; + return this.context.src.slice(start, end); + } + }, { + key: "tag", + get: function get() { + for (var i = 0; i < this.props.length; ++i) { + var tag = this.getPropValue(i, Char.TAG, false); + + if (tag != null) { + if (tag[1] === '<') { + return { + verbatim: tag.slice(2, -1) + }; + } else { + // eslint-disable-next-line no-unused-vars + var _tag$match = tag.match(/^(.*!)([^!]*)$/), + _tag$match2 = _slicedToArray(_tag$match, 3); + _tag$match2[0]; + var handle = _tag$match2[1], + suffix = _tag$match2[2]; + + return { + handle: handle, + suffix: suffix + }; + } + } + } + + return null; + } + }, { + key: "valueRangeContainsNewline", + get: function get() { + if (!this.valueRange || !this.context) return false; + var _this$valueRange2 = this.valueRange, + start = _this$valueRange2.start, + end = _this$valueRange2.end; + var src = this.context.src; + + for (var i = start; i < end; ++i) { + if (src[i] === '\n') return true; + } + + return false; + } + }, { + key: "parseComment", + value: function parseComment(start) { + var src = this.context.src; + + if (src[start] === Char.COMMENT) { + var end = Node.endOfLine(src, start + 1); + var commentRange = new Range(start, end); + this.props.push(commentRange); + return end; + } + + return start; + } + /** + * Populates the `origStart` and `origEnd` values of all ranges for this + * node. Extended by child classes to handle descendant nodes. + * + * @param {number[]} cr - Positions of dropped CR characters + * @param {number} offset - Starting index of `cr` from the last call + * @returns {number} - The next offset, matching the one found for `origStart` + */ + + }, { + key: "setOrigRanges", + value: function setOrigRanges(cr, offset) { + if (this.range) offset = this.range.setOrigRange(cr, offset); + if (this.valueRange) this.valueRange.setOrigRange(cr, offset); + this.props.forEach(function (prop) { + return prop.setOrigRange(cr, offset); + }); + return offset; + } + }, { + key: "toString", + value: function toString() { + var src = this.context.src, + range = this.range, + value = this.value; + if (value != null) return value; + var str = src.slice(range.start, range.end); + return Node.addStringTerminator(src, range.end, str); + } + }], [{ + key: "addStringTerminator", + value: function addStringTerminator(src, offset, str) { + if (str[str.length - 1] === '\n') return str; + var next = Node.endOfWhiteSpace(src, offset); + return next >= src.length || src[next] === '\n' ? str + '\n' : str; + } // ^(---|...) + + }, { + key: "atDocumentBoundary", + value: function atDocumentBoundary(src, offset, sep) { + var ch0 = src[offset]; + if (!ch0) return true; + var prev = src[offset - 1]; + if (prev && prev !== '\n') return false; + + if (sep) { + if (ch0 !== sep) return false; + } else { + if (ch0 !== Char.DIRECTIVES_END && ch0 !== Char.DOCUMENT_END) return false; + } + + var ch1 = src[offset + 1]; + var ch2 = src[offset + 2]; + if (ch1 !== ch0 || ch2 !== ch0) return false; + var ch3 = src[offset + 3]; + return !ch3 || ch3 === '\n' || ch3 === '\t' || ch3 === ' '; + } + }, { + key: "endOfIdentifier", + value: function endOfIdentifier(src, offset) { + var ch = src[offset]; + var isVerbatim = ch === '<'; + var notOk = isVerbatim ? ['\n', '\t', ' ', '>'] : ['\n', '\t', ' ', '[', ']', '{', '}', ',']; + + while (ch && notOk.indexOf(ch) === -1) { + ch = src[offset += 1]; + } + + if (isVerbatim && ch === '>') offset += 1; + return offset; + } + }, { + key: "endOfIndent", + value: function endOfIndent(src, offset) { + var ch = src[offset]; + + while (ch === ' ') { + ch = src[offset += 1]; + } + + return offset; + } + }, { + key: "endOfLine", + value: function endOfLine(src, offset) { + var ch = src[offset]; + + while (ch && ch !== '\n') { + ch = src[offset += 1]; + } + + return offset; + } + }, { + key: "endOfWhiteSpace", + value: function endOfWhiteSpace(src, offset) { + var ch = src[offset]; + + while (ch === '\t' || ch === ' ') { + ch = src[offset += 1]; + } + + return offset; + } + }, { + key: "startOfLine", + value: function startOfLine(src, offset) { + var ch = src[offset - 1]; + if (ch === '\n') return offset; + + while (ch && ch !== '\n') { + ch = src[offset -= 1]; + } + + return offset + 1; + } + /** + * End of indentation, or null if the line's indent level is not more + * than `indent` + * + * @param {string} src + * @param {number} indent + * @param {number} lineStart + * @returns {?number} + */ + + }, { + key: "endOfBlockIndent", + value: function endOfBlockIndent(src, indent, lineStart) { + var inEnd = Node.endOfIndent(src, lineStart); + + if (inEnd > lineStart + indent) { + return inEnd; + } else { + var wsEnd = Node.endOfWhiteSpace(src, inEnd); + var ch = src[wsEnd]; + if (!ch || ch === '\n') return wsEnd; + } + + return null; + } + }, { + key: "atBlank", + value: function atBlank(src, offset, endAsBlank) { + var ch = src[offset]; + return ch === '\n' || ch === '\t' || ch === ' ' || endAsBlank && !ch; + } + }, { + key: "nextNodeIsIndented", + value: function nextNodeIsIndented(ch, indentDiff, indicatorAsIndent) { + if (!ch || indentDiff < 0) return false; + if (indentDiff > 0) return true; + return indicatorAsIndent && ch === '-'; + } // should be at line or string end, or at next non-whitespace char + + }, { + key: "normalizeOffset", + value: function normalizeOffset(src, offset) { + var ch = src[offset]; + return !ch ? offset : ch !== '\n' && src[offset - 1] === '\n' ? offset - 1 : Node.endOfWhiteSpace(src, offset); + } // fold single newline into space, multiple newlines to N - 1 newlines + // presumes src[offset] === '\n' + + }, { + key: "foldNewline", + value: function foldNewline(src, offset, indent) { + var inCount = 0; + var error = false; + var fold = ''; + var ch = src[offset + 1]; + + while (ch === ' ' || ch === '\t' || ch === '\n') { + switch (ch) { + case '\n': + inCount = 0; + offset += 1; + fold += '\n'; + break; + + case '\t': + if (inCount <= indent) error = true; + offset = Node.endOfWhiteSpace(src, offset + 2) - 1; + break; + + case ' ': + inCount += 1; + offset += 1; + break; + } + + ch = src[offset + 1]; + } + + if (!fold) fold = ' '; + if (ch && inCount <= indent) error = true; + return { + fold: fold, + offset: offset, + error: error + }; + } + }]); + + return Node; +}(); + +var YAMLError = /*#__PURE__*/function (_Error) { + _inherits(YAMLError, _Error); + + var _super = _createSuper(YAMLError); + + function YAMLError(name, source, message) { + var _this; + + _classCallCheck(this, YAMLError); + + if (!message || !(source instanceof Node)) throw new Error("Invalid arguments for new ".concat(name)); + _this = _super.call(this); + _this.name = name; + _this.message = message; + _this.source = source; + return _this; + } + + _createClass(YAMLError, [{ + key: "makePretty", + value: function makePretty() { + if (!this.source) return; + this.nodeType = this.source.type; + var cst = this.source.context && this.source.context.root; + + if (typeof this.offset === 'number') { + this.range = new Range(this.offset, this.offset + 1); + var start = cst && getLinePos(this.offset, cst); + + if (start) { + var end = { + line: start.line, + col: start.col + 1 + }; + this.linePos = { + start: start, + end: end + }; + } + + delete this.offset; + } else { + this.range = this.source.range; + this.linePos = this.source.rangeAsLinePos; + } + + if (this.linePos) { + var _this$linePos$start = this.linePos.start, + line = _this$linePos$start.line, + col = _this$linePos$start.col; + this.message += " at line ".concat(line, ", column ").concat(col); + var ctx = cst && getPrettyContext(this.linePos, cst); + if (ctx) this.message += ":\n\n".concat(ctx, "\n"); + } + + delete this.source; + } + }]); + + return YAMLError; +}( /*#__PURE__*/_wrapNativeSuper(Error)); +var YAMLReferenceError = /*#__PURE__*/function (_YAMLError) { + _inherits(YAMLReferenceError, _YAMLError); + + var _super2 = _createSuper(YAMLReferenceError); + + function YAMLReferenceError(source, message) { + _classCallCheck(this, YAMLReferenceError); + + return _super2.call(this, 'YAMLReferenceError', source, message); + } + + return YAMLReferenceError; +}(YAMLError); +var YAMLSemanticError = /*#__PURE__*/function (_YAMLError2) { + _inherits(YAMLSemanticError, _YAMLError2); + + var _super3 = _createSuper(YAMLSemanticError); + + function YAMLSemanticError(source, message) { + _classCallCheck(this, YAMLSemanticError); + + return _super3.call(this, 'YAMLSemanticError', source, message); + } + + return YAMLSemanticError; +}(YAMLError); +var YAMLSyntaxError = /*#__PURE__*/function (_YAMLError3) { + _inherits(YAMLSyntaxError, _YAMLError3); + + var _super4 = _createSuper(YAMLSyntaxError); + + function YAMLSyntaxError(source, message) { + _classCallCheck(this, YAMLSyntaxError); + + return _super4.call(this, 'YAMLSyntaxError', source, message); + } + + return YAMLSyntaxError; +}(YAMLError); +var YAMLWarning = /*#__PURE__*/function (_YAMLError4) { + _inherits(YAMLWarning, _YAMLError4); + + var _super5 = _createSuper(YAMLWarning); + + function YAMLWarning(source, message) { + _classCallCheck(this, YAMLWarning); + + return _super5.call(this, 'YAMLWarning', source, message); + } + + return YAMLWarning; +}(YAMLError); + +var PlainValue = /*#__PURE__*/function (_Node) { + _inherits(PlainValue, _Node); + + var _super = _createSuper(PlainValue); + + function PlainValue() { + _classCallCheck(this, PlainValue); + + return _super.apply(this, arguments); + } + + _createClass(PlainValue, [{ + key: "strValue", + get: function get() { + if (!this.valueRange || !this.context) return null; + var _this$valueRange = this.valueRange, + start = _this$valueRange.start, + end = _this$valueRange.end; + var src = this.context.src; + var ch = src[end - 1]; + + while (start < end && (ch === '\n' || ch === '\t' || ch === ' ')) { + ch = src[--end - 1]; + } + + var str = ''; + + for (var i = start; i < end; ++i) { + var _ch = src[i]; + + if (_ch === '\n') { + var _Node$foldNewline = Node.foldNewline(src, i, -1), + fold = _Node$foldNewline.fold, + offset = _Node$foldNewline.offset; + + str += fold; + i = offset; + } else if (_ch === ' ' || _ch === '\t') { + // trim trailing whitespace + var wsStart = i; + var next = src[i + 1]; + + while (i < end && (next === ' ' || next === '\t')) { + i += 1; + next = src[i + 1]; + } + + if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : _ch; + } else { + str += _ch; + } + } + + var ch0 = src[start]; + + switch (ch0) { + case '\t': + { + var msg = 'Plain value cannot start with a tab character'; + var errors = [new YAMLSemanticError(this, msg)]; + return { + errors: errors, + str: str + }; + } + + case '@': + case '`': + { + var _msg = "Plain value cannot start with reserved character ".concat(ch0); + + var _errors = [new YAMLSemanticError(this, _msg)]; + return { + errors: _errors, + str: str + }; + } + + default: + return str; + } + } + }, { + key: "parseBlockValue", + value: function parseBlockValue(start) { + var _this$context = this.context, + indent = _this$context.indent, + inFlow = _this$context.inFlow, + src = _this$context.src; + var offset = start; + var valueEnd = start; + + for (var ch = src[offset]; ch === '\n'; ch = src[offset]) { + if (Node.atDocumentBoundary(src, offset + 1)) break; + var end = Node.endOfBlockIndent(src, indent, offset + 1); + if (end === null || src[end] === '#') break; + + if (src[end] === '\n') { + offset = end; + } else { + valueEnd = PlainValue.endOfLine(src, end, inFlow); + offset = valueEnd; + } + } + + if (this.valueRange.isEmpty()) this.valueRange.start = start; + this.valueRange.end = valueEnd; + return valueEnd; + } + /** + * Parses a plain value from the source + * + * Accepted forms are: + * ``` + * #comment + * + * first line + * + * first line #comment + * + * first line + * block + * lines + * + * #comment + * block + * lines + * ``` + * where block lines are empty or have an indent level greater than `indent`. + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar, may be `\n` + */ + + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + var inFlow = context.inFlow, + src = context.src; + var offset = start; + var ch = src[offset]; + + if (ch && ch !== '#' && ch !== '\n') { + offset = PlainValue.endOfLine(src, start, inFlow); + } + + this.valueRange = new Range(start, offset); + offset = Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + + if (!this.hasComment || this.valueRange.isEmpty()) { + offset = this.parseBlockValue(offset); + } + + return offset; + } + }], [{ + key: "endOfLine", + value: function endOfLine(src, start, inFlow) { + var ch = src[start]; + var offset = start; + + while (ch && ch !== '\n') { + if (inFlow && (ch === '[' || ch === ']' || ch === '{' || ch === '}' || ch === ',')) break; + var next = src[offset + 1]; + if (ch === ':' && (!next || next === '\n' || next === '\t' || next === ' ' || inFlow && next === ',')) break; + if ((ch === ' ' || ch === '\t') && next === '#') break; + offset += 1; + ch = next; + } + + return offset; + } + }]); + + return PlainValue; +}(Node); + +export { Char as C, Node as N, PlainValue as P, Range as R, Type as T, YAMLSyntaxError as Y, _createForOfIteratorHelper as _, _typeof as a, _createClass as b, _classCallCheck as c, defaultTagPrefix as d, _defineProperty as e, YAMLWarning as f, YAMLSemanticError as g, _slicedToArray as h, YAMLError as i, _inherits as j, _createSuper as k, _get as l, _getPrototypeOf as m, defaultTags as n, YAMLReferenceError as o, _assertThisInitialized as p, _toArray as q, _possibleConstructorReturn as r }; diff --git a/node_modules/yaml/browser/dist/Schema-e94716c8.js b/node_modules/yaml/browser/dist/Schema-e94716c8.js new file mode 100644 index 00000000..f18527dc --- /dev/null +++ b/node_modules/yaml/browser/dist/Schema-e94716c8.js @@ -0,0 +1,682 @@ +import { _ as _createForOfIteratorHelper, h as _slicedToArray, a as _typeof, b as _createClass, e as _defineProperty, c as _classCallCheck, d as defaultTagPrefix, n as defaultTags } from './PlainValue-b8036b75.js'; +import { d as YAMLMap, g as resolveMap, Y as YAMLSeq, h as resolveSeq, j as resolveString, c as stringifyString, s as strOptions, S as Scalar, n as nullOptions, a as boolOptions, i as intOptions, k as stringifyNumber, N as Node, A as Alias, P as Pair } from './resolveSeq-492ab440.js'; +import { b as binary, o as omap, p as pairs, s as set, i as intTime, f as floatTime, t as timestamp, a as warnOptionDeprecation } from './warnings-df54cb69.js'; + +function createMap(schema, obj, ctx) { + var map = new YAMLMap(schema); + + if (obj instanceof Map) { + var _iterator = _createForOfIteratorHelper(obj), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _step$value = _slicedToArray(_step.value, 2), + key = _step$value[0], + value = _step$value[1]; + + map.items.push(schema.createPair(key, value, ctx)); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } else if (obj && _typeof(obj) === 'object') { + for (var _i = 0, _Object$keys = Object.keys(obj); _i < _Object$keys.length; _i++) { + var _key = _Object$keys[_i]; + map.items.push(schema.createPair(_key, obj[_key], ctx)); + } + } + + if (typeof schema.sortMapEntries === 'function') { + map.items.sort(schema.sortMapEntries); + } + + return map; +} + +var map = { + createNode: createMap, + default: true, + nodeClass: YAMLMap, + tag: 'tag:yaml.org,2002:map', + resolve: resolveMap +}; + +function createSeq(schema, obj, ctx) { + var seq = new YAMLSeq(schema); + + if (obj && obj[Symbol.iterator]) { + var _iterator = _createForOfIteratorHelper(obj), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var it = _step.value; + var v = schema.createNode(it, ctx.wrapScalars, null, ctx); + seq.items.push(v); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } + + return seq; +} + +var seq = { + createNode: createSeq, + default: true, + nodeClass: YAMLSeq, + tag: 'tag:yaml.org,2002:seq', + resolve: resolveSeq +}; + +var string = { + identify: function identify(value) { + return typeof value === 'string'; + }, + default: true, + tag: 'tag:yaml.org,2002:str', + resolve: resolveString, + stringify: function stringify(item, ctx, onComment, onChompKeep) { + ctx = Object.assign({ + actualString: true + }, ctx); + return stringifyString(item, ctx, onComment, onChompKeep); + }, + options: strOptions +}; + +var failsafe = [map, seq, string]; + +/* global BigInt */ + +var intIdentify$2 = function intIdentify(value) { + return typeof value === 'bigint' || Number.isInteger(value); +}; + +var intResolve$1 = function intResolve(src, part, radix) { + return intOptions.asBigInt ? BigInt(src) : parseInt(part, radix); +}; + +function intStringify$1(node, radix, prefix) { + var value = node.value; + if (intIdentify$2(value) && value >= 0) return prefix + value.toString(radix); + return stringifyNumber(node); +} + +var nullObj = { + identify: function identify(value) { + return value == null; + }, + createNode: function createNode(schema, value, ctx) { + return ctx.wrapScalars ? new Scalar(null) : null; + }, + default: true, + tag: 'tag:yaml.org,2002:null', + test: /^(?:~|[Nn]ull|NULL)?$/, + resolve: function resolve() { + return null; + }, + options: nullOptions, + stringify: function stringify() { + return nullOptions.nullStr; + } +}; +var boolObj = { + identify: function identify(value) { + return typeof value === 'boolean'; + }, + default: true, + tag: 'tag:yaml.org,2002:bool', + test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/, + resolve: function resolve(str) { + return str[0] === 't' || str[0] === 'T'; + }, + options: boolOptions, + stringify: function stringify(_ref) { + var value = _ref.value; + return value ? boolOptions.trueStr : boolOptions.falseStr; + } +}; +var octObj = { + identify: function identify(value) { + return intIdentify$2(value) && value >= 0; + }, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'OCT', + test: /^0o([0-7]+)$/, + resolve: function resolve(str, oct) { + return intResolve$1(str, oct, 8); + }, + options: intOptions, + stringify: function stringify(node) { + return intStringify$1(node, 8, '0o'); + } +}; +var intObj = { + identify: intIdentify$2, + default: true, + tag: 'tag:yaml.org,2002:int', + test: /^[-+]?[0-9]+$/, + resolve: function resolve(str) { + return intResolve$1(str, str, 10); + }, + options: intOptions, + stringify: stringifyNumber +}; +var hexObj = { + identify: function identify(value) { + return intIdentify$2(value) && value >= 0; + }, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'HEX', + test: /^0x([0-9a-fA-F]+)$/, + resolve: function resolve(str, hex) { + return intResolve$1(str, hex, 16); + }, + options: intOptions, + stringify: function stringify(node) { + return intStringify$1(node, 16, '0x'); + } +}; +var nanObj = { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^(?:[-+]?\.inf|(\.nan))$/i, + resolve: function resolve(str, nan) { + return nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY; + }, + stringify: stringifyNumber +}; +var expObj = { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:float', + format: 'EXP', + test: /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/, + resolve: function resolve(str) { + return parseFloat(str); + }, + stringify: function stringify(_ref2) { + var value = _ref2.value; + return Number(value).toExponential(); + } +}; +var floatObj = { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/, + resolve: function resolve(str, frac1, frac2) { + var frac = frac1 || frac2; + var node = new Scalar(parseFloat(str)); + if (frac && frac[frac.length - 1] === '0') node.minFractionDigits = frac.length; + return node; + }, + stringify: stringifyNumber +}; +var core = failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]); + +/* global BigInt */ + +var intIdentify$1 = function intIdentify(value) { + return typeof value === 'bigint' || Number.isInteger(value); +}; + +var stringifyJSON = function stringifyJSON(_ref) { + var value = _ref.value; + return JSON.stringify(value); +}; + +var json = [map, seq, { + identify: function identify(value) { + return typeof value === 'string'; + }, + default: true, + tag: 'tag:yaml.org,2002:str', + resolve: resolveString, + stringify: stringifyJSON +}, { + identify: function identify(value) { + return value == null; + }, + createNode: function createNode(schema, value, ctx) { + return ctx.wrapScalars ? new Scalar(null) : null; + }, + default: true, + tag: 'tag:yaml.org,2002:null', + test: /^null$/, + resolve: function resolve() { + return null; + }, + stringify: stringifyJSON +}, { + identify: function identify(value) { + return typeof value === 'boolean'; + }, + default: true, + tag: 'tag:yaml.org,2002:bool', + test: /^true|false$/, + resolve: function resolve(str) { + return str === 'true'; + }, + stringify: stringifyJSON +}, { + identify: intIdentify$1, + default: true, + tag: 'tag:yaml.org,2002:int', + test: /^-?(?:0|[1-9][0-9]*)$/, + resolve: function resolve(str) { + return intOptions.asBigInt ? BigInt(str) : parseInt(str, 10); + }, + stringify: function stringify(_ref2) { + var value = _ref2.value; + return intIdentify$1(value) ? value.toString() : JSON.stringify(value); + } +}, { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/, + resolve: function resolve(str) { + return parseFloat(str); + }, + stringify: stringifyJSON +}]; + +json.scalarFallback = function (str) { + throw new SyntaxError("Unresolved plain scalar ".concat(JSON.stringify(str))); +}; + +/* global BigInt */ + +var boolStringify = function boolStringify(_ref) { + var value = _ref.value; + return value ? boolOptions.trueStr : boolOptions.falseStr; +}; + +var intIdentify = function intIdentify(value) { + return typeof value === 'bigint' || Number.isInteger(value); +}; + +function intResolve(sign, src, radix) { + var str = src.replace(/_/g, ''); + + if (intOptions.asBigInt) { + switch (radix) { + case 2: + str = "0b".concat(str); + break; + + case 8: + str = "0o".concat(str); + break; + + case 16: + str = "0x".concat(str); + break; + } + + var _n = BigInt(str); + + return sign === '-' ? BigInt(-1) * _n : _n; + } + + var n = parseInt(str, radix); + return sign === '-' ? -1 * n : n; +} + +function intStringify(node, radix, prefix) { + var value = node.value; + + if (intIdentify(value)) { + var str = value.toString(radix); + return value < 0 ? '-' + prefix + str.substr(1) : prefix + str; + } + + return stringifyNumber(node); +} + +var yaml11 = failsafe.concat([{ + identify: function identify(value) { + return value == null; + }, + createNode: function createNode(schema, value, ctx) { + return ctx.wrapScalars ? new Scalar(null) : null; + }, + default: true, + tag: 'tag:yaml.org,2002:null', + test: /^(?:~|[Nn]ull|NULL)?$/, + resolve: function resolve() { + return null; + }, + options: nullOptions, + stringify: function stringify() { + return nullOptions.nullStr; + } +}, { + identify: function identify(value) { + return typeof value === 'boolean'; + }, + default: true, + tag: 'tag:yaml.org,2002:bool', + test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/, + resolve: function resolve() { + return true; + }, + options: boolOptions, + stringify: boolStringify +}, { + identify: function identify(value) { + return typeof value === 'boolean'; + }, + default: true, + tag: 'tag:yaml.org,2002:bool', + test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i, + resolve: function resolve() { + return false; + }, + options: boolOptions, + stringify: boolStringify +}, { + identify: intIdentify, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'BIN', + test: /^([-+]?)0b([0-1_]+)$/, + resolve: function resolve(str, sign, bin) { + return intResolve(sign, bin, 2); + }, + stringify: function stringify(node) { + return intStringify(node, 2, '0b'); + } +}, { + identify: intIdentify, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'OCT', + test: /^([-+]?)0([0-7_]+)$/, + resolve: function resolve(str, sign, oct) { + return intResolve(sign, oct, 8); + }, + stringify: function stringify(node) { + return intStringify(node, 8, '0'); + } +}, { + identify: intIdentify, + default: true, + tag: 'tag:yaml.org,2002:int', + test: /^([-+]?)([0-9][0-9_]*)$/, + resolve: function resolve(str, sign, abs) { + return intResolve(sign, abs, 10); + }, + stringify: stringifyNumber +}, { + identify: intIdentify, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'HEX', + test: /^([-+]?)0x([0-9a-fA-F_]+)$/, + resolve: function resolve(str, sign, hex) { + return intResolve(sign, hex, 16); + }, + stringify: function stringify(node) { + return intStringify(node, 16, '0x'); + } +}, { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^(?:[-+]?\.inf|(\.nan))$/i, + resolve: function resolve(str, nan) { + return nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY; + }, + stringify: stringifyNumber +}, { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:float', + format: 'EXP', + test: /^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/, + resolve: function resolve(str) { + return parseFloat(str.replace(/_/g, '')); + }, + stringify: function stringify(_ref2) { + var value = _ref2.value; + return Number(value).toExponential(); + } +}, { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/, + resolve: function resolve(str, frac) { + var node = new Scalar(parseFloat(str.replace(/_/g, ''))); + + if (frac) { + var f = frac.replace(/_/g, ''); + if (f[f.length - 1] === '0') node.minFractionDigits = f.length; + } + + return node; + }, + stringify: stringifyNumber +}], binary, omap, pairs, set, intTime, floatTime, timestamp); + +var schemas = { + core: core, + failsafe: failsafe, + json: json, + yaml11: yaml11 +}; +var tags = { + binary: binary, + bool: boolObj, + float: floatObj, + floatExp: expObj, + floatNaN: nanObj, + floatTime: floatTime, + int: intObj, + intHex: hexObj, + intOct: octObj, + intTime: intTime, + map: map, + null: nullObj, + omap: omap, + pairs: pairs, + seq: seq, + set: set, + timestamp: timestamp +}; + +function findTagObject(value, tagName, tags) { + if (tagName) { + var match = tags.filter(function (t) { + return t.tag === tagName; + }); + var tagObj = match.find(function (t) { + return !t.format; + }) || match[0]; + if (!tagObj) throw new Error("Tag ".concat(tagName, " not found")); + return tagObj; + } // TODO: deprecate/remove class check + + + return tags.find(function (t) { + return (t.identify && t.identify(value) || t.class && value instanceof t.class) && !t.format; + }); +} + +function createNode(value, tagName, ctx) { + if (value instanceof Node) return value; + var defaultPrefix = ctx.defaultPrefix, + onTagObj = ctx.onTagObj, + prevObjects = ctx.prevObjects, + schema = ctx.schema, + wrapScalars = ctx.wrapScalars; + if (tagName && tagName.startsWith('!!')) tagName = defaultPrefix + tagName.slice(2); + var tagObj = findTagObject(value, tagName, schema.tags); + + if (!tagObj) { + if (typeof value.toJSON === 'function') value = value.toJSON(); + if (!value || _typeof(value) !== 'object') return wrapScalars ? new Scalar(value) : value; + tagObj = value instanceof Map ? map : value[Symbol.iterator] ? seq : map; + } + + if (onTagObj) { + onTagObj(tagObj); + delete ctx.onTagObj; + } // Detect duplicate references to the same object & use Alias nodes for all + // after first. The `obj` wrapper allows for circular references to resolve. + + + var obj = { + value: undefined, + node: undefined + }; + + if (value && _typeof(value) === 'object' && prevObjects) { + var prev = prevObjects.get(value); + + if (prev) { + var alias = new Alias(prev); // leaves source dirty; must be cleaned by caller + + ctx.aliasNodes.push(alias); // defined along with prevObjects + + return alias; + } + + obj.value = value; + prevObjects.set(value, obj); + } + + obj.node = tagObj.createNode ? tagObj.createNode(ctx.schema, value, ctx) : wrapScalars ? new Scalar(value) : value; + if (tagName && obj.node instanceof Node) obj.node.tag = tagName; + return obj.node; +} + +function getSchemaTags(schemas, knownTags, customTags, schemaId) { + var tags = schemas[schemaId.replace(/\W/g, '')]; // 'yaml-1.1' -> 'yaml11' + + if (!tags) { + var keys = Object.keys(schemas).map(function (key) { + return JSON.stringify(key); + }).join(', '); + throw new Error("Unknown schema \"".concat(schemaId, "\"; use one of ").concat(keys)); + } + + if (Array.isArray(customTags)) { + var _iterator = _createForOfIteratorHelper(customTags), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var tag = _step.value; + tags = tags.concat(tag); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } else if (typeof customTags === 'function') { + tags = customTags(tags.slice()); + } + + for (var i = 0; i < tags.length; ++i) { + var _tag = tags[i]; + + if (typeof _tag === 'string') { + var tagObj = knownTags[_tag]; + + if (!tagObj) { + var _keys = Object.keys(knownTags).map(function (key) { + return JSON.stringify(key); + }).join(', '); + + throw new Error("Unknown custom tag \"".concat(_tag, "\"; use one of ").concat(_keys)); + } + + tags[i] = tagObj; + } + } + + return tags; +} + +var sortMapEntriesByKey = function sortMapEntriesByKey(a, b) { + return a.key < b.key ? -1 : a.key > b.key ? 1 : 0; +}; + +var Schema = /*#__PURE__*/function () { + // TODO: remove in v2 + // TODO: remove in v2 + function Schema(_ref) { + var customTags = _ref.customTags, + merge = _ref.merge, + schema = _ref.schema, + sortMapEntries = _ref.sortMapEntries, + deprecatedCustomTags = _ref.tags; + + _classCallCheck(this, Schema); + + this.merge = !!merge; + this.name = schema; + this.sortMapEntries = sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null; + if (!customTags && deprecatedCustomTags) warnOptionDeprecation('tags', 'customTags'); + this.tags = getSchemaTags(schemas, tags, customTags || deprecatedCustomTags, schema); + } + + _createClass(Schema, [{ + key: "createNode", + value: function createNode$1(value, wrapScalars, tagName, ctx) { + var baseCtx = { + defaultPrefix: Schema.defaultPrefix, + schema: this, + wrapScalars: wrapScalars + }; + var createCtx = ctx ? Object.assign(ctx, baseCtx) : baseCtx; + return createNode(value, tagName, createCtx); + } + }, { + key: "createPair", + value: function createPair(key, value, ctx) { + if (!ctx) ctx = { + wrapScalars: true + }; + var k = this.createNode(key, ctx.wrapScalars, null, ctx); + var v = this.createNode(value, ctx.wrapScalars, null, ctx); + return new Pair(k, v); + } + }]); + + return Schema; +}(); + +_defineProperty(Schema, "defaultPrefix", defaultTagPrefix); + +_defineProperty(Schema, "defaultTags", defaultTags); + +export { Schema as S }; diff --git a/node_modules/yaml/browser/dist/index.js b/node_modules/yaml/browser/dist/index.js new file mode 100644 index 00000000..e67898bc --- /dev/null +++ b/node_modules/yaml/browser/dist/index.js @@ -0,0 +1,1002 @@ +import { d as defaultTagPrefix, _ as _createForOfIteratorHelper, a as _typeof, b as _createClass, c as _classCallCheck, e as _defineProperty, Y as YAMLSyntaxError, T as Type, f as YAMLWarning, g as YAMLSemanticError, h as _slicedToArray, i as YAMLError, j as _inherits, k as _createSuper } from './PlainValue-b8036b75.js'; +import { parse as parse$1 } from './parse-cst.js'; +import { b as binaryOptions, a as boolOptions, i as intOptions, n as nullOptions, s as strOptions, N as Node, P as Pair, S as Scalar, c as stringifyString, A as Alias, Y as YAMLSeq, d as YAMLMap, M as Merge, C as Collection, r as resolveNode, e as isEmptyPath, t as toJSON, f as addComment } from './resolveSeq-492ab440.js'; +import { S as Schema } from './Schema-e94716c8.js'; +import { w as warn } from './warnings-df54cb69.js'; + +var defaultOptions = { + anchorPrefix: 'a', + customTags: null, + indent: 2, + indentSeq: true, + keepCstNodes: false, + keepNodeTypes: true, + keepBlobsInJSON: true, + mapAsMap: false, + maxAliasCount: 100, + prettyErrors: false, + // TODO Set true in v2 + simpleKeys: false, + version: '1.2' +}; +var scalarOptions = { + get binary() { + return binaryOptions; + }, + + set binary(opt) { + Object.assign(binaryOptions, opt); + }, + + get bool() { + return boolOptions; + }, + + set bool(opt) { + Object.assign(boolOptions, opt); + }, + + get int() { + return intOptions; + }, + + set int(opt) { + Object.assign(intOptions, opt); + }, + + get null() { + return nullOptions; + }, + + set null(opt) { + Object.assign(nullOptions, opt); + }, + + get str() { + return strOptions; + }, + + set str(opt) { + Object.assign(strOptions, opt); + } + +}; +var documentOptions = { + '1.0': { + schema: 'yaml-1.1', + merge: true, + tagPrefixes: [{ + handle: '!', + prefix: defaultTagPrefix + }, { + handle: '!!', + prefix: 'tag:private.yaml.org,2002:' + }] + }, + 1.1: { + schema: 'yaml-1.1', + merge: true, + tagPrefixes: [{ + handle: '!', + prefix: '!' + }, { + handle: '!!', + prefix: defaultTagPrefix + }] + }, + 1.2: { + schema: 'core', + merge: false, + tagPrefixes: [{ + handle: '!', + prefix: '!' + }, { + handle: '!!', + prefix: defaultTagPrefix + }] + } +}; + +function stringifyTag(doc, tag) { + if ((doc.version || doc.options.version) === '1.0') { + var priv = tag.match(/^tag:private\.yaml\.org,2002:([^:/]+)$/); + if (priv) return '!' + priv[1]; + var vocab = tag.match(/^tag:([a-zA-Z0-9-]+)\.yaml\.org,2002:(.*)/); + return vocab ? "!".concat(vocab[1], "/").concat(vocab[2]) : "!".concat(tag.replace(/^tag:/, '')); + } + + var p = doc.tagPrefixes.find(function (p) { + return tag.indexOf(p.prefix) === 0; + }); + + if (!p) { + var dtp = doc.getDefaults().tagPrefixes; + p = dtp && dtp.find(function (p) { + return tag.indexOf(p.prefix) === 0; + }); + } + + if (!p) return tag[0] === '!' ? tag : "!<".concat(tag, ">"); + var suffix = tag.substr(p.prefix.length).replace(/[!,[\]{}]/g, function (ch) { + return { + '!': '%21', + ',': '%2C', + '[': '%5B', + ']': '%5D', + '{': '%7B', + '}': '%7D' + }[ch]; + }); + return p.handle + suffix; +} + +function getTagObject(tags, item) { + if (item instanceof Alias) return Alias; + + if (item.tag) { + var match = tags.filter(function (t) { + return t.tag === item.tag; + }); + if (match.length > 0) return match.find(function (t) { + return t.format === item.format; + }) || match[0]; + } + + var tagObj, obj; + + if (item instanceof Scalar) { + obj = item.value; // TODO: deprecate/remove class check + + var _match = tags.filter(function (t) { + return t.identify && t.identify(obj) || t.class && obj instanceof t.class; + }); + + tagObj = _match.find(function (t) { + return t.format === item.format; + }) || _match.find(function (t) { + return !t.format; + }); + } else { + obj = item; + tagObj = tags.find(function (t) { + return t.nodeClass && obj instanceof t.nodeClass; + }); + } + + if (!tagObj) { + var name = obj && obj.constructor ? obj.constructor.name : _typeof(obj); + throw new Error("Tag not resolved for ".concat(name, " value")); + } + + return tagObj; +} // needs to be called before value stringifier to allow for circular anchor refs + + +function stringifyProps(node, tagObj, _ref) { + var anchors = _ref.anchors, + doc = _ref.doc; + var props = []; + var anchor = doc.anchors.getName(node); + + if (anchor) { + anchors[anchor] = node; + props.push("&".concat(anchor)); + } + + if (node.tag) { + props.push(stringifyTag(doc, node.tag)); + } else if (!tagObj.default) { + props.push(stringifyTag(doc, tagObj.tag)); + } + + return props.join(' '); +} + +function stringify$1(item, ctx, onComment, onChompKeep) { + var _ctx$doc = ctx.doc, + anchors = _ctx$doc.anchors, + schema = _ctx$doc.schema; + var tagObj; + + if (!(item instanceof Node)) { + var createCtx = { + aliasNodes: [], + onTagObj: function onTagObj(o) { + return tagObj = o; + }, + prevObjects: new Map() + }; + item = schema.createNode(item, true, null, createCtx); + + var _iterator = _createForOfIteratorHelper(createCtx.aliasNodes), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var alias = _step.value; + alias.source = alias.source.node; + var name = anchors.getName(alias.source); + + if (!name) { + name = anchors.newName(); + anchors.map[name] = alias.source; + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + } + + if (item instanceof Pair) return item.toString(ctx, onComment, onChompKeep); + if (!tagObj) tagObj = getTagObject(schema.tags, item); + var props = stringifyProps(item, tagObj, ctx); + if (props.length > 0) ctx.indentAtStart = (ctx.indentAtStart || 0) + props.length + 1; + var str = typeof tagObj.stringify === 'function' ? tagObj.stringify(item, ctx, onComment, onChompKeep) : item instanceof Scalar ? stringifyString(item, ctx, onComment, onChompKeep) : item.toString(ctx, onComment, onChompKeep); + if (!props) return str; + return item instanceof Scalar || str[0] === '{' || str[0] === '[' ? "".concat(props, " ").concat(str) : "".concat(props, "\n").concat(ctx.indent).concat(str); +} + +var Anchors = /*#__PURE__*/function () { + function Anchors(prefix) { + _classCallCheck(this, Anchors); + + _defineProperty(this, "map", Object.create(null)); + + this.prefix = prefix; + } + + _createClass(Anchors, [{ + key: "createAlias", + value: function createAlias(node, name) { + this.setAnchor(node, name); + return new Alias(node); + } + }, { + key: "createMergePair", + value: function createMergePair() { + var _this = this; + + var merge = new Merge(); + + for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) { + sources[_key] = arguments[_key]; + } + + merge.value.items = sources.map(function (s) { + if (s instanceof Alias) { + if (s.source instanceof YAMLMap) return s; + } else if (s instanceof YAMLMap) { + return _this.createAlias(s); + } + + throw new Error('Merge sources must be Map nodes or their Aliases'); + }); + return merge; + } + }, { + key: "getName", + value: function getName(node) { + var map = this.map; + return Object.keys(map).find(function (a) { + return map[a] === node; + }); + } + }, { + key: "getNames", + value: function getNames() { + return Object.keys(this.map); + } + }, { + key: "getNode", + value: function getNode(name) { + return this.map[name]; + } + }, { + key: "newName", + value: function newName(prefix) { + if (!prefix) prefix = this.prefix; + var names = Object.keys(this.map); + + for (var i = 1; true; ++i) { + var name = "".concat(prefix).concat(i); + if (!names.includes(name)) return name; + } + } // During parsing, map & aliases contain CST nodes + + }, { + key: "resolveNodes", + value: function resolveNodes() { + var map = this.map, + _cstAliases = this._cstAliases; + Object.keys(map).forEach(function (a) { + map[a] = map[a].resolved; + }); + + _cstAliases.forEach(function (a) { + a.source = a.source.resolved; + }); + + delete this._cstAliases; + } + }, { + key: "setAnchor", + value: function setAnchor(node, name) { + if (node != null && !Anchors.validAnchorNode(node)) { + throw new Error('Anchors may only be set for Scalar, Seq and Map nodes'); + } + + if (name && /[\x00-\x19\s,[\]{}]/.test(name)) { + throw new Error('Anchor names must not contain whitespace or control characters'); + } + + var map = this.map; + var prev = node && Object.keys(map).find(function (a) { + return map[a] === node; + }); + + if (prev) { + if (!name) { + return prev; + } else if (prev !== name) { + delete map[prev]; + map[name] = node; + } + } else { + if (!name) { + if (!node) return null; + name = this.newName(); + } + + map[name] = node; + } + + return name; + } + }], [{ + key: "validAnchorNode", + value: function validAnchorNode(node) { + return node instanceof Scalar || node instanceof YAMLSeq || node instanceof YAMLMap; + } + }]); + + return Anchors; +}(); + +var visit = function visit(node, tags) { + if (node && _typeof(node) === 'object') { + var tag = node.tag; + + if (node instanceof Collection) { + if (tag) tags[tag] = true; + node.items.forEach(function (n) { + return visit(n, tags); + }); + } else if (node instanceof Pair) { + visit(node.key, tags); + visit(node.value, tags); + } else if (node instanceof Scalar) { + if (tag) tags[tag] = true; + } + } + + return tags; +}; + +var listTagNames = function listTagNames(node) { + return Object.keys(visit(node, {})); +}; + +function parseContents(doc, contents) { + var comments = { + before: [], + after: [] + }; + var body = undefined; + var spaceBefore = false; + + var _iterator = _createForOfIteratorHelper(contents), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var node = _step.value; + + if (node.valueRange) { + if (body !== undefined) { + var msg = 'Document contains trailing content not separated by a ... or --- line'; + doc.errors.push(new YAMLSyntaxError(node, msg)); + break; + } + + var res = resolveNode(doc, node); + + if (spaceBefore) { + res.spaceBefore = true; + spaceBefore = false; + } + + body = res; + } else if (node.comment !== null) { + var cc = body === undefined ? comments.before : comments.after; + cc.push(node.comment); + } else if (node.type === Type.BLANK_LINE) { + spaceBefore = true; + + if (body === undefined && comments.before.length > 0 && !doc.commentBefore) { + // space-separated comments at start are parsed as document comments + doc.commentBefore = comments.before.join('\n'); + comments.before = []; + } + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + doc.contents = body || null; + + if (!body) { + doc.comment = comments.before.concat(comments.after).join('\n') || null; + } else { + var cb = comments.before.join('\n'); + + if (cb) { + var cbNode = body instanceof Collection && body.items[0] ? body.items[0] : body; + cbNode.commentBefore = cbNode.commentBefore ? "".concat(cb, "\n").concat(cbNode.commentBefore) : cb; + } + + doc.comment = comments.after.join('\n') || null; + } +} + +function resolveTagDirective(_ref, directive) { + var tagPrefixes = _ref.tagPrefixes; + + var _directive$parameters = _slicedToArray(directive.parameters, 2), + handle = _directive$parameters[0], + prefix = _directive$parameters[1]; + + if (!handle || !prefix) { + var msg = 'Insufficient parameters given for %TAG directive'; + throw new YAMLSemanticError(directive, msg); + } + + if (tagPrefixes.some(function (p) { + return p.handle === handle; + })) { + var _msg = 'The %TAG directive must only be given at most once per handle in the same document.'; + throw new YAMLSemanticError(directive, _msg); + } + + return { + handle: handle, + prefix: prefix + }; +} + +function resolveYamlDirective(doc, directive) { + var _directive$parameters2 = _slicedToArray(directive.parameters, 1), + version = _directive$parameters2[0]; + + if (directive.name === 'YAML:1.0') version = '1.0'; + + if (!version) { + var msg = 'Insufficient parameters given for %YAML directive'; + throw new YAMLSemanticError(directive, msg); + } + + if (!documentOptions[version]) { + var v0 = doc.version || doc.options.version; + + var _msg2 = "Document will be parsed as YAML ".concat(v0, " rather than YAML ").concat(version); + + doc.warnings.push(new YAMLWarning(directive, _msg2)); + } + + return version; +} + +function parseDirectives(doc, directives, prevDoc) { + var directiveComments = []; + var hasDirectives = false; + + var _iterator = _createForOfIteratorHelper(directives), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var directive = _step.value; + var comment = directive.comment, + name = directive.name; + + switch (name) { + case 'TAG': + try { + doc.tagPrefixes.push(resolveTagDirective(doc, directive)); + } catch (error) { + doc.errors.push(error); + } + + hasDirectives = true; + break; + + case 'YAML': + case 'YAML:1.0': + if (doc.version) { + var msg = 'The %YAML directive must only be given at most once per document.'; + doc.errors.push(new YAMLSemanticError(directive, msg)); + } + + try { + doc.version = resolveYamlDirective(doc, directive); + } catch (error) { + doc.errors.push(error); + } + + hasDirectives = true; + break; + + default: + if (name) { + var _msg3 = "YAML only supports %TAG and %YAML directives, and not %".concat(name); + + doc.warnings.push(new YAMLWarning(directive, _msg3)); + } + + } + + if (comment) directiveComments.push(comment); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + if (prevDoc && !hasDirectives && '1.1' === (doc.version || prevDoc.version || doc.options.version)) { + var copyTagPrefix = function copyTagPrefix(_ref2) { + var handle = _ref2.handle, + prefix = _ref2.prefix; + return { + handle: handle, + prefix: prefix + }; + }; + + doc.tagPrefixes = prevDoc.tagPrefixes.map(copyTagPrefix); + doc.version = prevDoc.version; + } + + doc.commentBefore = directiveComments.join('\n') || null; +} + +function assertCollection(contents) { + if (contents instanceof Collection) return true; + throw new Error('Expected a YAML collection as document contents'); +} + +var Document$1 = /*#__PURE__*/function () { + function Document(options) { + _classCallCheck(this, Document); + + this.anchors = new Anchors(options.anchorPrefix); + this.commentBefore = null; + this.comment = null; + this.contents = null; + this.directivesEndMarker = null; + this.errors = []; + this.options = options; + this.schema = null; + this.tagPrefixes = []; + this.version = null; + this.warnings = []; + } + + _createClass(Document, [{ + key: "add", + value: function add(value) { + assertCollection(this.contents); + return this.contents.add(value); + } + }, { + key: "addIn", + value: function addIn(path, value) { + assertCollection(this.contents); + this.contents.addIn(path, value); + } + }, { + key: "delete", + value: function _delete(key) { + assertCollection(this.contents); + return this.contents.delete(key); + } + }, { + key: "deleteIn", + value: function deleteIn(path) { + if (isEmptyPath(path)) { + if (this.contents == null) return false; + this.contents = null; + return true; + } + + assertCollection(this.contents); + return this.contents.deleteIn(path); + } + }, { + key: "getDefaults", + value: function getDefaults() { + return Document.defaults[this.version] || Document.defaults[this.options.version] || {}; + } + }, { + key: "get", + value: function get(key, keepScalar) { + return this.contents instanceof Collection ? this.contents.get(key, keepScalar) : undefined; + } + }, { + key: "getIn", + value: function getIn(path, keepScalar) { + if (isEmptyPath(path)) return !keepScalar && this.contents instanceof Scalar ? this.contents.value : this.contents; + return this.contents instanceof Collection ? this.contents.getIn(path, keepScalar) : undefined; + } + }, { + key: "has", + value: function has(key) { + return this.contents instanceof Collection ? this.contents.has(key) : false; + } + }, { + key: "hasIn", + value: function hasIn(path) { + if (isEmptyPath(path)) return this.contents !== undefined; + return this.contents instanceof Collection ? this.contents.hasIn(path) : false; + } + }, { + key: "set", + value: function set(key, value) { + assertCollection(this.contents); + this.contents.set(key, value); + } + }, { + key: "setIn", + value: function setIn(path, value) { + if (isEmptyPath(path)) this.contents = value;else { + assertCollection(this.contents); + this.contents.setIn(path, value); + } + } + }, { + key: "setSchema", + value: function setSchema(id, customTags) { + if (!id && !customTags && this.schema) return; + if (typeof id === 'number') id = id.toFixed(1); + + if (id === '1.0' || id === '1.1' || id === '1.2') { + if (this.version) this.version = id;else this.options.version = id; + delete this.options.schema; + } else if (id && typeof id === 'string') { + this.options.schema = id; + } + + if (Array.isArray(customTags)) this.options.customTags = customTags; + var opt = Object.assign({}, this.getDefaults(), this.options); + this.schema = new Schema(opt); + } + }, { + key: "parse", + value: function parse(node, prevDoc) { + if (this.options.keepCstNodes) this.cstNode = node; + if (this.options.keepNodeTypes) this.type = 'DOCUMENT'; + var _node$directives = node.directives, + directives = _node$directives === void 0 ? [] : _node$directives, + _node$contents = node.contents, + contents = _node$contents === void 0 ? [] : _node$contents, + directivesEndMarker = node.directivesEndMarker, + error = node.error, + valueRange = node.valueRange; + + if (error) { + if (!error.source) error.source = this; + this.errors.push(error); + } + + parseDirectives(this, directives, prevDoc); + if (directivesEndMarker) this.directivesEndMarker = true; + this.range = valueRange ? [valueRange.start, valueRange.end] : null; + this.setSchema(); + this.anchors._cstAliases = []; + parseContents(this, contents); + this.anchors.resolveNodes(); + + if (this.options.prettyErrors) { + var _iterator = _createForOfIteratorHelper(this.errors), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _error = _step.value; + if (_error instanceof YAMLError) _error.makePretty(); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + var _iterator2 = _createForOfIteratorHelper(this.warnings), + _step2; + + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var warn = _step2.value; + if (warn instanceof YAMLError) warn.makePretty(); + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + } + + return this; + } + }, { + key: "listNonDefaultTags", + value: function listNonDefaultTags() { + return listTagNames(this.contents).filter(function (t) { + return t.indexOf(Schema.defaultPrefix) !== 0; + }); + } + }, { + key: "setTagPrefix", + value: function setTagPrefix(handle, prefix) { + if (handle[0] !== '!' || handle[handle.length - 1] !== '!') throw new Error('Handle must start and end with !'); + + if (prefix) { + var prev = this.tagPrefixes.find(function (p) { + return p.handle === handle; + }); + if (prev) prev.prefix = prefix;else this.tagPrefixes.push({ + handle: handle, + prefix: prefix + }); + } else { + this.tagPrefixes = this.tagPrefixes.filter(function (p) { + return p.handle !== handle; + }); + } + } + }, { + key: "toJSON", + value: function toJSON$1(arg, onAnchor) { + var _this = this; + + var _this$options = this.options, + keepBlobsInJSON = _this$options.keepBlobsInJSON, + mapAsMap = _this$options.mapAsMap, + maxAliasCount = _this$options.maxAliasCount; + var keep = keepBlobsInJSON && (typeof arg !== 'string' || !(this.contents instanceof Scalar)); + var ctx = { + doc: this, + indentStep: ' ', + keep: keep, + mapAsMap: keep && !!mapAsMap, + maxAliasCount: maxAliasCount, + stringify: stringify$1 // Requiring directly in Pair would create circular dependencies + + }; + var anchorNames = Object.keys(this.anchors.map); + if (anchorNames.length > 0) ctx.anchors = new Map(anchorNames.map(function (name) { + return [_this.anchors.map[name], { + alias: [], + aliasCount: 0, + count: 1 + }]; + })); + + var res = toJSON(this.contents, arg, ctx); + + if (typeof onAnchor === 'function' && ctx.anchors) { + var _iterator3 = _createForOfIteratorHelper(ctx.anchors.values()), + _step3; + + try { + for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { + var _step3$value = _step3.value, + count = _step3$value.count, + _res = _step3$value.res; + onAnchor(_res, count); + } + } catch (err) { + _iterator3.e(err); + } finally { + _iterator3.f(); + } + } + + return res; + } + }, { + key: "toString", + value: function toString() { + if (this.errors.length > 0) throw new Error('Document with errors cannot be stringified'); + var indentSize = this.options.indent; + + if (!Number.isInteger(indentSize) || indentSize <= 0) { + var s = JSON.stringify(indentSize); + throw new Error("\"indent\" option must be a positive integer, not ".concat(s)); + } + + this.setSchema(); + var lines = []; + var hasDirectives = false; + + if (this.version) { + var vd = '%YAML 1.2'; + + if (this.schema.name === 'yaml-1.1') { + if (this.version === '1.0') vd = '%YAML:1.0';else if (this.version === '1.1') vd = '%YAML 1.1'; + } + + lines.push(vd); + hasDirectives = true; + } + + var tagNames = this.listNonDefaultTags(); + this.tagPrefixes.forEach(function (_ref) { + var handle = _ref.handle, + prefix = _ref.prefix; + + if (tagNames.some(function (t) { + return t.indexOf(prefix) === 0; + })) { + lines.push("%TAG ".concat(handle, " ").concat(prefix)); + hasDirectives = true; + } + }); + if (hasDirectives || this.directivesEndMarker) lines.push('---'); + + if (this.commentBefore) { + if (hasDirectives || !this.directivesEndMarker) lines.unshift(''); + lines.unshift(this.commentBefore.replace(/^/gm, '#')); + } + + var ctx = { + anchors: Object.create(null), + doc: this, + indent: '', + indentStep: ' '.repeat(indentSize), + stringify: stringify$1 // Requiring directly in nodes would create circular dependencies + + }; + var chompKeep = false; + var contentComment = null; + + if (this.contents) { + if (this.contents instanceof Node) { + if (this.contents.spaceBefore && (hasDirectives || this.directivesEndMarker)) lines.push(''); + if (this.contents.commentBefore) lines.push(this.contents.commentBefore.replace(/^/gm, '#')); // top-level block scalars need to be indented if followed by a comment + + ctx.forceBlockIndent = !!this.comment; + contentComment = this.contents.comment; + } + + var onChompKeep = contentComment ? null : function () { + return chompKeep = true; + }; + var body = stringify$1(this.contents, ctx, function () { + return contentComment = null; + }, onChompKeep); + lines.push(addComment(body, '', contentComment)); + } else if (this.contents !== undefined) { + lines.push(stringify$1(this.contents, ctx)); + } + + if (this.comment) { + if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '') lines.push(''); + lines.push(this.comment.replace(/^/gm, '#')); + } + + return lines.join('\n') + '\n'; + } + }]); + + return Document; +}(); + +_defineProperty(Document$1, "defaults", documentOptions); + +function createNode(value) { + var wrapScalars = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + var tag = arguments.length > 2 ? arguments[2] : undefined; + + if (tag === undefined && typeof wrapScalars === 'string') { + tag = wrapScalars; + wrapScalars = true; + } + + var options = Object.assign({}, Document$1.defaults[defaultOptions.version], defaultOptions); + var schema = new Schema(options); + return schema.createNode(value, wrapScalars, tag); +} + +var Document = /*#__PURE__*/function (_YAMLDocument) { + _inherits(Document, _YAMLDocument); + + var _super = _createSuper(Document); + + function Document(options) { + _classCallCheck(this, Document); + + return _super.call(this, Object.assign({}, defaultOptions, options)); + } + + return Document; +}(Document$1); + +function parseAllDocuments(src, options) { + var stream = []; + var prev; + + var _iterator = _createForOfIteratorHelper(parse$1(src)), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var cstDoc = _step.value; + var doc = new Document(options); + doc.parse(cstDoc, prev); + stream.push(doc); + prev = doc; + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return stream; +} + +function parseDocument(src, options) { + var cst = parse$1(src); + var doc = new Document(options).parse(cst[0]); + + if (cst.length > 1) { + var errMsg = 'Source contains multiple documents; please use YAML.parseAllDocuments()'; + doc.errors.unshift(new YAMLSemanticError(cst[1], errMsg)); + } + + return doc; +} + +function parse(src, options) { + var doc = parseDocument(src, options); + doc.warnings.forEach(function (warning) { + return warn(warning); + }); + if (doc.errors.length > 0) throw doc.errors[0]; + return doc.toJSON(); +} + +function stringify(value, options) { + var doc = new Document(options); + doc.contents = value; + return String(doc); +} + +var YAML = { + createNode: createNode, + defaultOptions: defaultOptions, + Document: Document, + parse: parse, + parseAllDocuments: parseAllDocuments, + parseCST: parse$1, + parseDocument: parseDocument, + scalarOptions: scalarOptions, + stringify: stringify +}; + +export { YAML }; diff --git a/node_modules/yaml/browser/dist/legacy-exports.js b/node_modules/yaml/browser/dist/legacy-exports.js new file mode 100644 index 00000000..4400ed65 --- /dev/null +++ b/node_modules/yaml/browser/dist/legacy-exports.js @@ -0,0 +1,3 @@ +export { b as binary, f as floatTime, i as intTime, o as omap, p as pairs, s as set, t as timestamp, c as warnFileDeprecation } from './warnings-df54cb69.js'; +import './PlainValue-b8036b75.js'; +import './resolveSeq-492ab440.js'; diff --git a/node_modules/yaml/browser/dist/package.json b/node_modules/yaml/browser/dist/package.json new file mode 100644 index 00000000..5ffd9800 --- /dev/null +++ b/node_modules/yaml/browser/dist/package.json @@ -0,0 +1 @@ +{ "type": "module" } diff --git a/node_modules/yaml/browser/dist/parse-cst.js b/node_modules/yaml/browser/dist/parse-cst.js new file mode 100644 index 00000000..b68cf3c6 --- /dev/null +++ b/node_modules/yaml/browser/dist/parse-cst.js @@ -0,0 +1,1904 @@ +import { j as _inherits, k as _createSuper, c as _classCallCheck, T as Type, b as _createClass, R as Range, N as Node, g as YAMLSemanticError, l as _get, m as _getPrototypeOf, Y as YAMLSyntaxError, C as Char, e as _defineProperty, P as PlainValue } from './PlainValue-b8036b75.js'; + +var BlankLine = /*#__PURE__*/function (_Node) { + _inherits(BlankLine, _Node); + + var _super = _createSuper(BlankLine); + + function BlankLine() { + _classCallCheck(this, BlankLine); + + return _super.call(this, Type.BLANK_LINE); + } + /* istanbul ignore next */ + + + _createClass(BlankLine, [{ + key: "includesTrailingLines", + get: function get() { + // This is never called from anywhere, but if it were, + // this is the value it should return. + return true; + } + /** + * Parses a blank line from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first \n character + * @returns {number} - Index of the character after this + */ + + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + this.range = new Range(start, start + 1); + return start + 1; + } + }]); + + return BlankLine; +}(Node); + +var CollectionItem = /*#__PURE__*/function (_Node) { + _inherits(CollectionItem, _Node); + + var _super = _createSuper(CollectionItem); + + function CollectionItem(type, props) { + var _this; + + _classCallCheck(this, CollectionItem); + + _this = _super.call(this, type, props); + _this.node = null; + return _this; + } + + _createClass(CollectionItem, [{ + key: "includesTrailingLines", + get: function get() { + return !!this.node && this.node.includesTrailingLines; + } + /** + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this + */ + + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + var parseNode = context.parseNode, + src = context.src; + var atLineStart = context.atLineStart, + lineStart = context.lineStart; + if (!atLineStart && this.type === Type.SEQ_ITEM) this.error = new YAMLSemanticError(this, 'Sequence items must not have preceding content on the same line'); + var indent = atLineStart ? start - lineStart : context.indent; + var offset = Node.endOfWhiteSpace(src, start + 1); + var ch = src[offset]; + var inlineComment = ch === '#'; + var comments = []; + var blankLine = null; + + while (ch === '\n' || ch === '#') { + if (ch === '#') { + var _end = Node.endOfLine(src, offset + 1); + + comments.push(new Range(offset, _end)); + offset = _end; + } else { + atLineStart = true; + lineStart = offset + 1; + var wsEnd = Node.endOfWhiteSpace(src, lineStart); + + if (src[wsEnd] === '\n' && comments.length === 0) { + blankLine = new BlankLine(); + lineStart = blankLine.parse({ + src: src + }, lineStart); + } + + offset = Node.endOfIndent(src, lineStart); + } + + ch = src[offset]; + } + + if (Node.nextNodeIsIndented(ch, offset - (lineStart + indent), this.type !== Type.SEQ_ITEM)) { + this.node = parseNode({ + atLineStart: atLineStart, + inCollection: false, + indent: indent, + lineStart: lineStart, + parent: this + }, offset); + } else if (ch && lineStart > start + 1) { + offset = lineStart - 1; + } + + if (this.node) { + if (blankLine) { + // Only blank lines preceding non-empty nodes are captured. Note that + // this means that collection item range start indices do not always + // increase monotonically. -- eemeli/yaml#126 + var items = context.parent.items || context.parent.contents; + if (items) items.push(blankLine); + } + + if (comments.length) Array.prototype.push.apply(this.props, comments); + offset = this.node.range.end; + } else { + if (inlineComment) { + var c = comments[0]; + this.props.push(c); + offset = c.end; + } else { + offset = Node.endOfLine(src, start + 1); + } + } + + var end = this.node ? this.node.valueRange.end : offset; + this.valueRange = new Range(start, end); + return offset; + } + }, { + key: "setOrigRanges", + value: function setOrigRanges(cr, offset) { + offset = _get(_getPrototypeOf(CollectionItem.prototype), "setOrigRanges", this).call(this, cr, offset); + return this.node ? this.node.setOrigRanges(cr, offset) : offset; + } + }, { + key: "toString", + value: function toString() { + var src = this.context.src, + node = this.node, + range = this.range, + value = this.value; + if (value != null) return value; + var str = node ? src.slice(range.start, node.range.start) + String(node) : src.slice(range.start, range.end); + return Node.addStringTerminator(src, range.end, str); + } + }]); + + return CollectionItem; +}(Node); + +var Comment = /*#__PURE__*/function (_Node) { + _inherits(Comment, _Node); + + var _super = _createSuper(Comment); + + function Comment() { + _classCallCheck(this, Comment); + + return _super.call(this, Type.COMMENT); + } + /** + * Parses a comment line from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar + */ + + + _createClass(Comment, [{ + key: "parse", + value: function parse(context, start) { + this.context = context; + var offset = this.parseComment(start); + this.range = new Range(start, offset); + return offset; + } + }]); + + return Comment; +}(Node); + +function grabCollectionEndComments(node) { + var cnode = node; + + while (cnode instanceof CollectionItem) { + cnode = cnode.node; + } + + if (!(cnode instanceof Collection)) return null; + var len = cnode.items.length; + var ci = -1; + + for (var i = len - 1; i >= 0; --i) { + var n = cnode.items[i]; + + if (n.type === Type.COMMENT) { + // Keep sufficiently indented comments with preceding node + var _n$context = n.context, + indent = _n$context.indent, + lineStart = _n$context.lineStart; + if (indent > 0 && n.range.start >= lineStart + indent) break; + ci = i; + } else if (n.type === Type.BLANK_LINE) ci = i;else break; + } + + if (ci === -1) return null; + var ca = cnode.items.splice(ci, len - ci); + var prevEnd = ca[0].range.start; + + while (true) { + cnode.range.end = prevEnd; + if (cnode.valueRange && cnode.valueRange.end > prevEnd) cnode.valueRange.end = prevEnd; + if (cnode === node) break; + cnode = cnode.context.parent; + } + + return ca; +} +var Collection = /*#__PURE__*/function (_Node) { + _inherits(Collection, _Node); + + var _super = _createSuper(Collection); + + function Collection(firstItem) { + var _this; + + _classCallCheck(this, Collection); + + _this = _super.call(this, firstItem.type === Type.SEQ_ITEM ? Type.SEQ : Type.MAP); + + for (var i = firstItem.props.length - 1; i >= 0; --i) { + if (firstItem.props[i].start < firstItem.context.lineStart) { + // props on previous line are assumed by the collection + _this.props = firstItem.props.slice(0, i + 1); + firstItem.props = firstItem.props.slice(i + 1); + var itemRange = firstItem.props[0] || firstItem.valueRange; + firstItem.range.start = itemRange.start; + break; + } + } + + _this.items = [firstItem]; + var ec = grabCollectionEndComments(firstItem); + if (ec) Array.prototype.push.apply(_this.items, ec); + return _this; + } + + _createClass(Collection, [{ + key: "includesTrailingLines", + get: function get() { + return this.items.length > 0; + } + /** + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this + */ + + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + var parseNode = context.parseNode, + src = context.src; // It's easier to recalculate lineStart here rather than tracking down the + // last context from which to read it -- eemeli/yaml#2 + + var lineStart = Node.startOfLine(src, start); + var firstItem = this.items[0]; // First-item context needs to be correct for later comment handling + // -- eemeli/yaml#17 + + firstItem.context.parent = this; + this.valueRange = Range.copy(firstItem.valueRange); + var indent = firstItem.range.start - firstItem.context.lineStart; + var offset = start; + offset = Node.normalizeOffset(src, offset); + var ch = src[offset]; + var atLineStart = Node.endOfWhiteSpace(src, lineStart) === offset; + var prevIncludesTrailingLines = false; + + while (ch) { + while (ch === '\n' || ch === '#') { + if (atLineStart && ch === '\n' && !prevIncludesTrailingLines) { + var blankLine = new BlankLine(); + offset = blankLine.parse({ + src: src + }, offset); + this.valueRange.end = offset; + + if (offset >= src.length) { + ch = null; + break; + } + + this.items.push(blankLine); + offset -= 1; // blankLine.parse() consumes terminal newline + } else if (ch === '#') { + if (offset < lineStart + indent && !Collection.nextContentHasIndent(src, offset, indent)) { + return offset; + } + + var comment = new Comment(); + offset = comment.parse({ + indent: indent, + lineStart: lineStart, + src: src + }, offset); + this.items.push(comment); + this.valueRange.end = offset; + + if (offset >= src.length) { + ch = null; + break; + } + } + + lineStart = offset + 1; + offset = Node.endOfIndent(src, lineStart); + + if (Node.atBlank(src, offset)) { + var wsEnd = Node.endOfWhiteSpace(src, offset); + var next = src[wsEnd]; + + if (!next || next === '\n' || next === '#') { + offset = wsEnd; + } + } + + ch = src[offset]; + atLineStart = true; + } + + if (!ch) { + break; + } + + if (offset !== lineStart + indent && (atLineStart || ch !== ':')) { + if (offset < lineStart + indent) { + if (lineStart > start) offset = lineStart; + break; + } else if (!this.error) { + var msg = 'All collection items must start at the same column'; + this.error = new YAMLSyntaxError(this, msg); + } + } + + if (firstItem.type === Type.SEQ_ITEM) { + if (ch !== '-') { + if (lineStart > start) offset = lineStart; + break; + } + } else if (ch === '-' && !this.error) { + // map key may start with -, as long as it's followed by a non-whitespace char + var _next = src[offset + 1]; + + if (!_next || _next === '\n' || _next === '\t' || _next === ' ') { + var _msg = 'A collection cannot be both a mapping and a sequence'; + this.error = new YAMLSyntaxError(this, _msg); + } + } + + var node = parseNode({ + atLineStart: atLineStart, + inCollection: true, + indent: indent, + lineStart: lineStart, + parent: this + }, offset); + if (!node) return offset; // at next document start + + this.items.push(node); + this.valueRange.end = node.valueRange.end; + offset = Node.normalizeOffset(src, node.range.end); + ch = src[offset]; + atLineStart = false; + prevIncludesTrailingLines = node.includesTrailingLines; // Need to reset lineStart and atLineStart here if preceding node's range + // has advanced to check the current line's indentation level + // -- eemeli/yaml#10 & eemeli/yaml#38 + + if (ch) { + var ls = offset - 1; + var prev = src[ls]; + + while (prev === ' ' || prev === '\t') { + prev = src[--ls]; + } + + if (prev === '\n') { + lineStart = ls + 1; + atLineStart = true; + } + } + + var ec = grabCollectionEndComments(node); + if (ec) Array.prototype.push.apply(this.items, ec); + } + + return offset; + } + }, { + key: "setOrigRanges", + value: function setOrigRanges(cr, offset) { + offset = _get(_getPrototypeOf(Collection.prototype), "setOrigRanges", this).call(this, cr, offset); + this.items.forEach(function (node) { + offset = node.setOrigRanges(cr, offset); + }); + return offset; + } + }, { + key: "toString", + value: function toString() { + var src = this.context.src, + items = this.items, + range = this.range, + value = this.value; + if (value != null) return value; + var str = src.slice(range.start, items[0].range.start) + String(items[0]); + + for (var i = 1; i < items.length; ++i) { + var item = items[i]; + var _item$context = item.context, + atLineStart = _item$context.atLineStart, + indent = _item$context.indent; + if (atLineStart) for (var _i = 0; _i < indent; ++_i) { + str += ' '; + } + str += String(item); + } + + return Node.addStringTerminator(src, range.end, str); + } + }], [{ + key: "nextContentHasIndent", + value: function nextContentHasIndent(src, offset, indent) { + var lineStart = Node.endOfLine(src, offset) + 1; + offset = Node.endOfWhiteSpace(src, lineStart); + var ch = src[offset]; + if (!ch) return false; + if (offset >= lineStart + indent) return true; + if (ch !== '#' && ch !== '\n') return false; + return Collection.nextContentHasIndent(src, offset, indent); + } + }]); + + return Collection; +}(Node); + +var Directive = /*#__PURE__*/function (_Node) { + _inherits(Directive, _Node); + + var _super = _createSuper(Directive); + + function Directive() { + var _this; + + _classCallCheck(this, Directive); + + _this = _super.call(this, Type.DIRECTIVE); + _this.name = null; + return _this; + } + + _createClass(Directive, [{ + key: "parameters", + get: function get() { + var raw = this.rawValue; + return raw ? raw.trim().split(/[ \t]+/) : []; + } + }, { + key: "parseName", + value: function parseName(start) { + var src = this.context.src; + var offset = start; + var ch = src[offset]; + + while (ch && ch !== '\n' && ch !== '\t' && ch !== ' ') { + ch = src[offset += 1]; + } + + this.name = src.slice(start, offset); + return offset; + } + }, { + key: "parseParameters", + value: function parseParameters(start) { + var src = this.context.src; + var offset = start; + var ch = src[offset]; + + while (ch && ch !== '\n' && ch !== '#') { + ch = src[offset += 1]; + } + + this.valueRange = new Range(start, offset); + return offset; + } + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + var offset = this.parseName(start + 1); + offset = this.parseParameters(offset); + offset = this.parseComment(offset); + this.range = new Range(start, offset); + return offset; + } + }]); + + return Directive; +}(Node); + +var Document = /*#__PURE__*/function (_Node) { + _inherits(Document, _Node); + + var _super = _createSuper(Document); + + function Document() { + var _this; + + _classCallCheck(this, Document); + + _this = _super.call(this, Type.DOCUMENT); + _this.directives = null; + _this.contents = null; + _this.directivesEndMarker = null; + _this.documentEndMarker = null; + return _this; + } + + _createClass(Document, [{ + key: "parseDirectives", + value: function parseDirectives(start) { + var src = this.context.src; + this.directives = []; + var atLineStart = true; + var hasDirectives = false; + var offset = start; + + while (!Node.atDocumentBoundary(src, offset, Char.DIRECTIVES_END)) { + offset = Document.startCommentOrEndBlankLine(src, offset); + + switch (src[offset]) { + case '\n': + if (atLineStart) { + var blankLine = new BlankLine(); + offset = blankLine.parse({ + src: src + }, offset); + + if (offset < src.length) { + this.directives.push(blankLine); + } + } else { + offset += 1; + atLineStart = true; + } + + break; + + case '#': + { + var comment = new Comment(); + offset = comment.parse({ + src: src + }, offset); + this.directives.push(comment); + atLineStart = false; + } + break; + + case '%': + { + var directive = new Directive(); + offset = directive.parse({ + parent: this, + src: src + }, offset); + this.directives.push(directive); + hasDirectives = true; + atLineStart = false; + } + break; + + default: + if (hasDirectives) { + this.error = new YAMLSemanticError(this, 'Missing directives-end indicator line'); + } else if (this.directives.length > 0) { + this.contents = this.directives; + this.directives = []; + } + + return offset; + } + } + + if (src[offset]) { + this.directivesEndMarker = new Range(offset, offset + 3); + return offset + 3; + } + + if (hasDirectives) { + this.error = new YAMLSemanticError(this, 'Missing directives-end indicator line'); + } else if (this.directives.length > 0) { + this.contents = this.directives; + this.directives = []; + } + + return offset; + } + }, { + key: "parseContents", + value: function parseContents(start) { + var _this$context = this.context, + parseNode = _this$context.parseNode, + src = _this$context.src; + if (!this.contents) this.contents = []; + var lineStart = start; + + while (src[lineStart - 1] === '-') { + lineStart -= 1; + } + + var offset = Node.endOfWhiteSpace(src, start); + var atLineStart = lineStart === start; + this.valueRange = new Range(offset); + + while (!Node.atDocumentBoundary(src, offset, Char.DOCUMENT_END)) { + switch (src[offset]) { + case '\n': + if (atLineStart) { + var blankLine = new BlankLine(); + offset = blankLine.parse({ + src: src + }, offset); + + if (offset < src.length) { + this.contents.push(blankLine); + } + } else { + offset += 1; + atLineStart = true; + } + + lineStart = offset; + break; + + case '#': + { + var comment = new Comment(); + offset = comment.parse({ + src: src + }, offset); + this.contents.push(comment); + atLineStart = false; + } + break; + + default: + { + var iEnd = Node.endOfIndent(src, offset); + var context = { + atLineStart: atLineStart, + indent: -1, + inFlow: false, + inCollection: false, + lineStart: lineStart, + parent: this + }; + var node = parseNode(context, iEnd); + if (!node) return this.valueRange.end = iEnd; // at next document start + + this.contents.push(node); + offset = node.range.end; + atLineStart = false; + var ec = grabCollectionEndComments(node); + if (ec) Array.prototype.push.apply(this.contents, ec); + } + } + + offset = Document.startCommentOrEndBlankLine(src, offset); + } + + this.valueRange.end = offset; + + if (src[offset]) { + this.documentEndMarker = new Range(offset, offset + 3); + offset += 3; + + if (src[offset]) { + offset = Node.endOfWhiteSpace(src, offset); + + if (src[offset] === '#') { + var _comment = new Comment(); + + offset = _comment.parse({ + src: src + }, offset); + this.contents.push(_comment); + } + + switch (src[offset]) { + case '\n': + offset += 1; + break; + + case undefined: + break; + + default: + this.error = new YAMLSyntaxError(this, 'Document end marker line cannot have a non-comment suffix'); + } + } + } + + return offset; + } + /** + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this + */ + + }, { + key: "parse", + value: function parse(context, start) { + context.root = this; + this.context = context; + var src = context.src; + var offset = src.charCodeAt(start) === 0xfeff ? start + 1 : start; // skip BOM + + offset = this.parseDirectives(offset); + offset = this.parseContents(offset); + return offset; + } + }, { + key: "setOrigRanges", + value: function setOrigRanges(cr, offset) { + offset = _get(_getPrototypeOf(Document.prototype), "setOrigRanges", this).call(this, cr, offset); + this.directives.forEach(function (node) { + offset = node.setOrigRanges(cr, offset); + }); + if (this.directivesEndMarker) offset = this.directivesEndMarker.setOrigRange(cr, offset); + this.contents.forEach(function (node) { + offset = node.setOrigRanges(cr, offset); + }); + if (this.documentEndMarker) offset = this.documentEndMarker.setOrigRange(cr, offset); + return offset; + } + }, { + key: "toString", + value: function toString() { + var contents = this.contents, + directives = this.directives, + value = this.value; + if (value != null) return value; + var str = directives.join(''); + + if (contents.length > 0) { + if (directives.length > 0 || contents[0].type === Type.COMMENT) str += '---\n'; + str += contents.join(''); + } + + if (str[str.length - 1] !== '\n') str += '\n'; + return str; + } + }], [{ + key: "startCommentOrEndBlankLine", + value: function startCommentOrEndBlankLine(src, start) { + var offset = Node.endOfWhiteSpace(src, start); + var ch = src[offset]; + return ch === '#' || ch === '\n' ? offset : start; + } + }]); + + return Document; +}(Node); + +var Alias = /*#__PURE__*/function (_Node) { + _inherits(Alias, _Node); + + var _super = _createSuper(Alias); + + function Alias() { + _classCallCheck(this, Alias); + + return _super.apply(this, arguments); + } + + _createClass(Alias, [{ + key: "parse", + value: + /** + * Parses an *alias from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar + */ + function parse(context, start) { + this.context = context; + var src = context.src; + var offset = Node.endOfIdentifier(src, start + 1); + this.valueRange = new Range(start + 1, offset); + offset = Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + return offset; + } + }]); + + return Alias; +}(Node); + +var Chomp = { + CLIP: 'CLIP', + KEEP: 'KEEP', + STRIP: 'STRIP' +}; +var BlockValue = /*#__PURE__*/function (_Node) { + _inherits(BlockValue, _Node); + + var _super = _createSuper(BlockValue); + + function BlockValue(type, props) { + var _this; + + _classCallCheck(this, BlockValue); + + _this = _super.call(this, type, props); + _this.blockIndent = null; + _this.chomping = Chomp.CLIP; + _this.header = null; + return _this; + } + + _createClass(BlockValue, [{ + key: "includesTrailingLines", + get: function get() { + return this.chomping === Chomp.KEEP; + } + }, { + key: "strValue", + get: function get() { + if (!this.valueRange || !this.context) return null; + var _this$valueRange = this.valueRange, + start = _this$valueRange.start, + end = _this$valueRange.end; + var _this$context = this.context, + indent = _this$context.indent, + src = _this$context.src; + if (this.valueRange.isEmpty()) return ''; + var lastNewLine = null; + var ch = src[end - 1]; + + while (ch === '\n' || ch === '\t' || ch === ' ') { + end -= 1; + + if (end <= start) { + if (this.chomping === Chomp.KEEP) break;else return ''; // probably never happens + } + + if (ch === '\n') lastNewLine = end; + ch = src[end - 1]; + } + + var keepStart = end + 1; + + if (lastNewLine) { + if (this.chomping === Chomp.KEEP) { + keepStart = lastNewLine; + end = this.valueRange.end; + } else { + end = lastNewLine; + } + } + + var bi = indent + this.blockIndent; + var folded = this.type === Type.BLOCK_FOLDED; + var atStart = true; + var str = ''; + var sep = ''; + var prevMoreIndented = false; + + for (var i = start; i < end; ++i) { + for (var j = 0; j < bi; ++j) { + if (src[i] !== ' ') break; + i += 1; + } + + var _ch = src[i]; + + if (_ch === '\n') { + if (sep === '\n') str += '\n';else sep = '\n'; + } else { + var lineEnd = Node.endOfLine(src, i); + var line = src.slice(i, lineEnd); + i = lineEnd; + + if (folded && (_ch === ' ' || _ch === '\t') && i < keepStart) { + if (sep === ' ') sep = '\n';else if (!prevMoreIndented && !atStart && sep === '\n') sep = '\n\n'; + str += sep + line; //+ ((lineEnd < end && src[lineEnd]) || '') + + sep = lineEnd < end && src[lineEnd] || ''; + prevMoreIndented = true; + } else { + str += sep + line; + sep = folded && i < keepStart ? ' ' : '\n'; + prevMoreIndented = false; + } + + if (atStart && line !== '') atStart = false; + } + } + + return this.chomping === Chomp.STRIP ? str : str + '\n'; + } + }, { + key: "parseBlockHeader", + value: function parseBlockHeader(start) { + var src = this.context.src; + var offset = start + 1; + var bi = ''; + + while (true) { + var ch = src[offset]; + + switch (ch) { + case '-': + this.chomping = Chomp.STRIP; + break; + + case '+': + this.chomping = Chomp.KEEP; + break; + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + bi += ch; + break; + + default: + this.blockIndent = Number(bi) || null; + this.header = new Range(start, offset); + return offset; + } + + offset += 1; + } + } + }, { + key: "parseBlockValue", + value: function parseBlockValue(start) { + var _this$context2 = this.context, + indent = _this$context2.indent, + src = _this$context2.src; + var explicit = !!this.blockIndent; + var offset = start; + var valueEnd = start; + var minBlockIndent = 1; + + for (var ch = src[offset]; ch === '\n'; ch = src[offset]) { + offset += 1; + if (Node.atDocumentBoundary(src, offset)) break; + var end = Node.endOfBlockIndent(src, indent, offset); // should not include tab? + + if (end === null) break; + var _ch2 = src[end]; + var lineIndent = end - (offset + indent); + + if (!this.blockIndent) { + // no explicit block indent, none yet detected + if (src[end] !== '\n') { + // first line with non-whitespace content + if (lineIndent < minBlockIndent) { + var msg = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator'; + this.error = new YAMLSemanticError(this, msg); + } + + this.blockIndent = lineIndent; + } else if (lineIndent > minBlockIndent) { + // empty line with more whitespace + minBlockIndent = lineIndent; + } + } else if (_ch2 && _ch2 !== '\n' && lineIndent < this.blockIndent) { + if (src[end] === '#') break; + + if (!this.error) { + var _src = explicit ? 'explicit indentation indicator' : 'first line'; + + var _msg = "Block scalars must not be less indented than their ".concat(_src); + + this.error = new YAMLSemanticError(this, _msg); + } + } + + if (src[end] === '\n') { + offset = end; + } else { + offset = valueEnd = Node.endOfLine(src, end); + } + } + + if (this.chomping !== Chomp.KEEP) { + offset = src[valueEnd] ? valueEnd + 1 : valueEnd; + } + + this.valueRange = new Range(start + 1, offset); + return offset; + } + /** + * Parses a block value from the source + * + * Accepted forms are: + * ``` + * BS + * block + * lines + * + * BS #comment + * block + * lines + * ``` + * where the block style BS matches the regexp `[|>][-+1-9]*` and block lines + * are empty or have an indent level greater than `indent`. + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this block + */ + + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + var src = context.src; + var offset = this.parseBlockHeader(start); + offset = Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + offset = this.parseBlockValue(offset); + return offset; + } + }, { + key: "setOrigRanges", + value: function setOrigRanges(cr, offset) { + offset = _get(_getPrototypeOf(BlockValue.prototype), "setOrigRanges", this).call(this, cr, offset); + return this.header ? this.header.setOrigRange(cr, offset) : offset; + } + }]); + + return BlockValue; +}(Node); + +var FlowCollection = /*#__PURE__*/function (_Node) { + _inherits(FlowCollection, _Node); + + var _super = _createSuper(FlowCollection); + + function FlowCollection(type, props) { + var _this; + + _classCallCheck(this, FlowCollection); + + _this = _super.call(this, type, props); + _this.items = null; + return _this; + } + + _createClass(FlowCollection, [{ + key: "prevNodeIsJsonLike", + value: function prevNodeIsJsonLike() { + var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.items.length; + var node = this.items[idx - 1]; + return !!node && (node.jsonLike || node.type === Type.COMMENT && this.prevNodeIsJsonLike(idx - 1)); + } + /** + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this + */ + + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + var parseNode = context.parseNode, + src = context.src; + var indent = context.indent, + lineStart = context.lineStart; + var char = src[start]; // { or [ + + this.items = [{ + char: char, + offset: start + }]; + var offset = Node.endOfWhiteSpace(src, start + 1); + char = src[offset]; + + while (char && char !== ']' && char !== '}') { + switch (char) { + case '\n': + { + lineStart = offset + 1; + var wsEnd = Node.endOfWhiteSpace(src, lineStart); + + if (src[wsEnd] === '\n') { + var blankLine = new BlankLine(); + lineStart = blankLine.parse({ + src: src + }, lineStart); + this.items.push(blankLine); + } + + offset = Node.endOfIndent(src, lineStart); + + if (offset <= lineStart + indent) { + char = src[offset]; + + if (offset < lineStart + indent || char !== ']' && char !== '}') { + var msg = 'Insufficient indentation in flow collection'; + this.error = new YAMLSemanticError(this, msg); + } + } + } + break; + + case ',': + { + this.items.push({ + char: char, + offset: offset + }); + offset += 1; + } + break; + + case '#': + { + var comment = new Comment(); + offset = comment.parse({ + src: src + }, offset); + this.items.push(comment); + } + break; + + case '?': + case ':': + { + var next = src[offset + 1]; + + if (next === '\n' || next === '\t' || next === ' ' || next === ',' || // in-flow : after JSON-like key does not need to be followed by whitespace + char === ':' && this.prevNodeIsJsonLike()) { + this.items.push({ + char: char, + offset: offset + }); + offset += 1; + break; + } + } + // fallthrough + + default: + { + var node = parseNode({ + atLineStart: false, + inCollection: false, + inFlow: true, + indent: -1, + lineStart: lineStart, + parent: this + }, offset); + + if (!node) { + // at next document start + this.valueRange = new Range(start, offset); + return offset; + } + + this.items.push(node); + offset = Node.normalizeOffset(src, node.range.end); + } + } + + offset = Node.endOfWhiteSpace(src, offset); + char = src[offset]; + } + + this.valueRange = new Range(start, offset + 1); + + if (char) { + this.items.push({ + char: char, + offset: offset + }); + offset = Node.endOfWhiteSpace(src, offset + 1); + offset = this.parseComment(offset); + } + + return offset; + } + }, { + key: "setOrigRanges", + value: function setOrigRanges(cr, offset) { + offset = _get(_getPrototypeOf(FlowCollection.prototype), "setOrigRanges", this).call(this, cr, offset); + this.items.forEach(function (node) { + if (node instanceof Node) { + offset = node.setOrigRanges(cr, offset); + } else if (cr.length === 0) { + node.origOffset = node.offset; + } else { + var i = offset; + + while (i < cr.length) { + if (cr[i] > node.offset) break;else ++i; + } + + node.origOffset = node.offset + i; + offset = i; + } + }); + return offset; + } + }, { + key: "toString", + value: function toString() { + var src = this.context.src, + items = this.items, + range = this.range, + value = this.value; + if (value != null) return value; + var nodes = items.filter(function (item) { + return item instanceof Node; + }); + var str = ''; + var prevEnd = range.start; + nodes.forEach(function (node) { + var prefix = src.slice(prevEnd, node.range.start); + prevEnd = node.range.end; + str += prefix + String(node); + + if (str[str.length - 1] === '\n' && src[prevEnd - 1] !== '\n' && src[prevEnd] === '\n') { + // Comment range does not include the terminal newline, but its + // stringified value does. Without this fix, newlines at comment ends + // get duplicated. + prevEnd += 1; + } + }); + str += src.slice(prevEnd, range.end); + return Node.addStringTerminator(src, range.end, str); + } + }]); + + return FlowCollection; +}(Node); + +var QuoteDouble = /*#__PURE__*/function (_Node) { + _inherits(QuoteDouble, _Node); + + var _super = _createSuper(QuoteDouble); + + function QuoteDouble() { + _classCallCheck(this, QuoteDouble); + + return _super.apply(this, arguments); + } + + _createClass(QuoteDouble, [{ + key: "strValue", + get: + /** + * @returns {string | { str: string, errors: YAMLSyntaxError[] }} + */ + function get() { + if (!this.valueRange || !this.context) return null; + var errors = []; + var _this$valueRange = this.valueRange, + start = _this$valueRange.start, + end = _this$valueRange.end; + var _this$context = this.context, + indent = _this$context.indent, + src = _this$context.src; + if (src[end - 1] !== '"') errors.push(new YAMLSyntaxError(this, 'Missing closing "quote')); // Using String#replace is too painful with escaped newlines preceded by + // escaped backslashes; also, this should be faster. + + var str = ''; + + for (var i = start + 1; i < end - 1; ++i) { + var ch = src[i]; + + if (ch === '\n') { + if (Node.atDocumentBoundary(src, i + 1)) errors.push(new YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values')); + + var _Node$foldNewline = Node.foldNewline(src, i, indent), + fold = _Node$foldNewline.fold, + offset = _Node$foldNewline.offset, + error = _Node$foldNewline.error; + + str += fold; + i = offset; + if (error) errors.push(new YAMLSemanticError(this, 'Multi-line double-quoted string needs to be sufficiently indented')); + } else if (ch === '\\') { + i += 1; + + switch (src[i]) { + case '0': + str += '\0'; + break; + // null character + + case 'a': + str += '\x07'; + break; + // bell character + + case 'b': + str += '\b'; + break; + // backspace + + case 'e': + str += '\x1b'; + break; + // escape character + + case 'f': + str += '\f'; + break; + // form feed + + case 'n': + str += '\n'; + break; + // line feed + + case 'r': + str += '\r'; + break; + // carriage return + + case 't': + str += '\t'; + break; + // horizontal tab + + case 'v': + str += '\v'; + break; + // vertical tab + + case 'N': + str += "\x85"; + break; + // Unicode next line + + case '_': + str += "\xA0"; + break; + // Unicode non-breaking space + + case 'L': + str += "\u2028"; + break; + // Unicode line separator + + case 'P': + str += "\u2029"; + break; + // Unicode paragraph separator + + case ' ': + str += ' '; + break; + + case '"': + str += '"'; + break; + + case '/': + str += '/'; + break; + + case '\\': + str += '\\'; + break; + + case '\t': + str += '\t'; + break; + + case 'x': + str += this.parseCharCode(i + 1, 2, errors); + i += 2; + break; + + case 'u': + str += this.parseCharCode(i + 1, 4, errors); + i += 4; + break; + + case 'U': + str += this.parseCharCode(i + 1, 8, errors); + i += 8; + break; + + case '\n': + // skip escaped newlines, but still trim the following line + while (src[i + 1] === ' ' || src[i + 1] === '\t') { + i += 1; + } + + break; + + default: + errors.push(new YAMLSyntaxError(this, "Invalid escape sequence ".concat(src.substr(i - 1, 2)))); + str += '\\' + src[i]; + } + } else if (ch === ' ' || ch === '\t') { + // trim trailing whitespace + var wsStart = i; + var next = src[i + 1]; + + while (next === ' ' || next === '\t') { + i += 1; + next = src[i + 1]; + } + + if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch; + } else { + str += ch; + } + } + + return errors.length > 0 ? { + errors: errors, + str: str + } : str; + } + }, { + key: "parseCharCode", + value: function parseCharCode(offset, length, errors) { + var src = this.context.src; + var cc = src.substr(offset, length); + var ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc); + var code = ok ? parseInt(cc, 16) : NaN; + + if (isNaN(code)) { + errors.push(new YAMLSyntaxError(this, "Invalid escape sequence ".concat(src.substr(offset - 2, length + 2)))); + return src.substr(offset - 2, length + 2); + } + + return String.fromCodePoint(code); + } + /** + * Parses a "double quoted" value from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar + */ + + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + var src = context.src; + var offset = QuoteDouble.endOfQuote(src, start + 1); + this.valueRange = new Range(start, offset); + offset = Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + return offset; + } + }], [{ + key: "endOfQuote", + value: function endOfQuote(src, offset) { + var ch = src[offset]; + + while (ch && ch !== '"') { + offset += ch === '\\' ? 2 : 1; + ch = src[offset]; + } + + return offset + 1; + } + }]); + + return QuoteDouble; +}(Node); + +var QuoteSingle = /*#__PURE__*/function (_Node) { + _inherits(QuoteSingle, _Node); + + var _super = _createSuper(QuoteSingle); + + function QuoteSingle() { + _classCallCheck(this, QuoteSingle); + + return _super.apply(this, arguments); + } + + _createClass(QuoteSingle, [{ + key: "strValue", + get: + /** + * @returns {string | { str: string, errors: YAMLSyntaxError[] }} + */ + function get() { + if (!this.valueRange || !this.context) return null; + var errors = []; + var _this$valueRange = this.valueRange, + start = _this$valueRange.start, + end = _this$valueRange.end; + var _this$context = this.context, + indent = _this$context.indent, + src = _this$context.src; + if (src[end - 1] !== "'") errors.push(new YAMLSyntaxError(this, "Missing closing 'quote")); + var str = ''; + + for (var i = start + 1; i < end - 1; ++i) { + var ch = src[i]; + + if (ch === '\n') { + if (Node.atDocumentBoundary(src, i + 1)) errors.push(new YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values')); + + var _Node$foldNewline = Node.foldNewline(src, i, indent), + fold = _Node$foldNewline.fold, + offset = _Node$foldNewline.offset, + error = _Node$foldNewline.error; + + str += fold; + i = offset; + if (error) errors.push(new YAMLSemanticError(this, 'Multi-line single-quoted string needs to be sufficiently indented')); + } else if (ch === "'") { + str += ch; + i += 1; + if (src[i] !== "'") errors.push(new YAMLSyntaxError(this, 'Unescaped single quote? This should not happen.')); + } else if (ch === ' ' || ch === '\t') { + // trim trailing whitespace + var wsStart = i; + var next = src[i + 1]; + + while (next === ' ' || next === '\t') { + i += 1; + next = src[i + 1]; + } + + if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch; + } else { + str += ch; + } + } + + return errors.length > 0 ? { + errors: errors, + str: str + } : str; + } + /** + * Parses a 'single quoted' value from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar + */ + + }, { + key: "parse", + value: function parse(context, start) { + this.context = context; + var src = context.src; + var offset = QuoteSingle.endOfQuote(src, start + 1); + this.valueRange = new Range(start, offset); + offset = Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + return offset; + } + }], [{ + key: "endOfQuote", + value: function endOfQuote(src, offset) { + var ch = src[offset]; + + while (ch) { + if (ch === "'") { + if (src[offset + 1] !== "'") break; + ch = src[offset += 2]; + } else { + ch = src[offset += 1]; + } + } + + return offset + 1; + } + }]); + + return QuoteSingle; +}(Node); + +function createNewNode(type, props) { + switch (type) { + case Type.ALIAS: + return new Alias(type, props); + + case Type.BLOCK_FOLDED: + case Type.BLOCK_LITERAL: + return new BlockValue(type, props); + + case Type.FLOW_MAP: + case Type.FLOW_SEQ: + return new FlowCollection(type, props); + + case Type.MAP_KEY: + case Type.MAP_VALUE: + case Type.SEQ_ITEM: + return new CollectionItem(type, props); + + case Type.COMMENT: + case Type.PLAIN: + return new PlainValue(type, props); + + case Type.QUOTE_DOUBLE: + return new QuoteDouble(type, props); + + case Type.QUOTE_SINGLE: + return new QuoteSingle(type, props); + + /* istanbul ignore next */ + + default: + return null; + // should never happen + } +} +/** + * @param {boolean} atLineStart - Node starts at beginning of line + * @param {boolean} inFlow - true if currently in a flow context + * @param {boolean} inCollection - true if currently in a collection context + * @param {number} indent - Current level of indentation + * @param {number} lineStart - Start of the current line + * @param {Node} parent - The parent of the node + * @param {string} src - Source of the YAML document + */ + + +var ParseContext = /*#__PURE__*/function () { + function ParseContext() { + var _this = this; + + var orig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + atLineStart = _ref.atLineStart, + inCollection = _ref.inCollection, + inFlow = _ref.inFlow, + indent = _ref.indent, + lineStart = _ref.lineStart, + parent = _ref.parent; + + _classCallCheck(this, ParseContext); + + _defineProperty(this, "parseNode", function (overlay, start) { + if (Node.atDocumentBoundary(_this.src, start)) return null; + var context = new ParseContext(_this, overlay); + + var _context$parseProps = context.parseProps(start), + props = _context$parseProps.props, + type = _context$parseProps.type, + valueStart = _context$parseProps.valueStart; + + var node = createNewNode(type, props); + var offset = node.parse(context, valueStart); + node.range = new Range(start, offset); + /* istanbul ignore if */ + + if (offset <= start) { + // This should never happen, but if it does, let's make sure to at least + // step one character forward to avoid a busy loop. + node.error = new Error("Node#parse consumed no characters"); + node.error.parseEnd = offset; + node.error.source = node; + node.range.end = start + 1; + } + + if (context.nodeStartsCollection(node)) { + if (!node.error && !context.atLineStart && context.parent.type === Type.DOCUMENT) { + node.error = new YAMLSyntaxError(node, 'Block collection must not have preceding content here (e.g. directives-end indicator)'); + } + + var collection = new Collection(node); + offset = collection.parse(new ParseContext(context), offset); + collection.range = new Range(start, offset); + return collection; + } + + return node; + }); + + this.atLineStart = atLineStart != null ? atLineStart : orig.atLineStart || false; + this.inCollection = inCollection != null ? inCollection : orig.inCollection || false; + this.inFlow = inFlow != null ? inFlow : orig.inFlow || false; + this.indent = indent != null ? indent : orig.indent; + this.lineStart = lineStart != null ? lineStart : orig.lineStart; + this.parent = parent != null ? parent : orig.parent || {}; + this.root = orig.root; + this.src = orig.src; + } + + _createClass(ParseContext, [{ + key: "nodeStartsCollection", + value: function nodeStartsCollection(node) { + var inCollection = this.inCollection, + inFlow = this.inFlow, + src = this.src; + if (inCollection || inFlow) return false; + if (node instanceof CollectionItem) return true; // check for implicit key + + var offset = node.range.end; + if (src[offset] === '\n' || src[offset - 1] === '\n') return false; + offset = Node.endOfWhiteSpace(src, offset); + return src[offset] === ':'; + } // Anchor and tag are before type, which determines the node implementation + // class; hence this intermediate step. + + }, { + key: "parseProps", + value: function parseProps(offset) { + var inFlow = this.inFlow, + parent = this.parent, + src = this.src; + var props = []; + var lineHasProps = false; + offset = this.atLineStart ? Node.endOfIndent(src, offset) : Node.endOfWhiteSpace(src, offset); + var ch = src[offset]; + + while (ch === Char.ANCHOR || ch === Char.COMMENT || ch === Char.TAG || ch === '\n') { + if (ch === '\n') { + var inEnd = offset; + var lineStart = void 0; + + do { + lineStart = inEnd + 1; + inEnd = Node.endOfIndent(src, lineStart); + } while (src[inEnd] === '\n'); + + var indentDiff = inEnd - (lineStart + this.indent); + var noIndicatorAsIndent = parent.type === Type.SEQ_ITEM && parent.context.atLineStart; + if (src[inEnd] !== '#' && !Node.nextNodeIsIndented(src[inEnd], indentDiff, !noIndicatorAsIndent)) break; + this.atLineStart = true; + this.lineStart = lineStart; + lineHasProps = false; + offset = inEnd; + } else if (ch === Char.COMMENT) { + var end = Node.endOfLine(src, offset + 1); + props.push(new Range(offset, end)); + offset = end; + } else { + var _end = Node.endOfIdentifier(src, offset + 1); + + if (ch === Char.TAG && src[_end] === ',' && /^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(src.slice(offset + 1, _end + 13))) { + // Let's presume we're dealing with a YAML 1.0 domain tag here, rather + // than an empty but 'foo.bar' private-tagged node in a flow collection + // followed without whitespace by a plain string starting with a year + // or date divided by something. + _end = Node.endOfIdentifier(src, _end + 5); + } + + props.push(new Range(offset, _end)); + lineHasProps = true; + offset = Node.endOfWhiteSpace(src, _end); + } + + ch = src[offset]; + } // '- &a : b' has an anchor on an empty node + + + if (lineHasProps && ch === ':' && Node.atBlank(src, offset + 1, true)) offset -= 1; + var type = ParseContext.parseType(src, offset, inFlow); + return { + props: props, + type: type, + valueStart: offset + }; + } + /** + * Parses a node from the source + * @param {ParseContext} overlay + * @param {number} start - Index of first non-whitespace character for the node + * @returns {?Node} - null if at a document boundary + */ + + }], [{ + key: "parseType", + value: function parseType(src, offset, inFlow) { + switch (src[offset]) { + case '*': + return Type.ALIAS; + + case '>': + return Type.BLOCK_FOLDED; + + case '|': + return Type.BLOCK_LITERAL; + + case '{': + return Type.FLOW_MAP; + + case '[': + return Type.FLOW_SEQ; + + case '?': + return !inFlow && Node.atBlank(src, offset + 1, true) ? Type.MAP_KEY : Type.PLAIN; + + case ':': + return !inFlow && Node.atBlank(src, offset + 1, true) ? Type.MAP_VALUE : Type.PLAIN; + + case '-': + return !inFlow && Node.atBlank(src, offset + 1, true) ? Type.SEQ_ITEM : Type.PLAIN; + + case '"': + return Type.QUOTE_DOUBLE; + + case "'": + return Type.QUOTE_SINGLE; + + default: + return Type.PLAIN; + } + } + }]); + + return ParseContext; +}(); + +// Published as 'yaml/parse-cst' +function parse(src) { + var cr = []; + + if (src.indexOf('\r') !== -1) { + src = src.replace(/\r\n?/g, function (match, offset) { + if (match.length > 1) cr.push(offset); + return '\n'; + }); + } + + var documents = []; + var offset = 0; + + do { + var doc = new Document(); + var context = new ParseContext({ + src: src + }); + offset = doc.parse(context, offset); + documents.push(doc); + } while (offset < src.length); + + documents.setOrigRanges = function () { + if (cr.length === 0) return false; + + for (var i = 1; i < cr.length; ++i) { + cr[i] -= i; + } + + var crOffset = 0; + + for (var _i = 0; _i < documents.length; ++_i) { + crOffset = documents[_i].setOrigRanges(cr, crOffset); + } + + cr.splice(0, cr.length); + return true; + }; + + documents.toString = function () { + return documents.join('...\n'); + }; + + return documents; +} + +export { parse }; diff --git a/node_modules/yaml/browser/dist/resolveSeq-492ab440.js b/node_modules/yaml/browser/dist/resolveSeq-492ab440.js new file mode 100644 index 00000000..50c7c196 --- /dev/null +++ b/node_modules/yaml/browser/dist/resolveSeq-492ab440.js @@ -0,0 +1,2419 @@ +import { c as _classCallCheck, j as _inherits, k as _createSuper, b as _createClass, e as _defineProperty, p as _assertThisInitialized, a as _typeof, q as _toArray, T as Type, _ as _createForOfIteratorHelper, l as _get, m as _getPrototypeOf, o as YAMLReferenceError, r as _possibleConstructorReturn, h as _slicedToArray, g as YAMLSemanticError, n as defaultTags, f as YAMLWarning, C as Char, Y as YAMLSyntaxError, P as PlainValue } from './PlainValue-b8036b75.js'; + +function addCommentBefore(str, indent, comment) { + if (!comment) return str; + var cc = comment.replace(/[\s\S]^/gm, "$&".concat(indent, "#")); + return "#".concat(cc, "\n").concat(indent).concat(str); +} +function addComment(str, indent, comment) { + return !comment ? str : comment.indexOf('\n') === -1 ? "".concat(str, " #").concat(comment) : "".concat(str, "\n") + comment.replace(/^/gm, "".concat(indent || '', "#")); +} + +var Node = function Node() { + _classCallCheck(this, Node); +}; + +function toJSON(value, arg, ctx) { + if (Array.isArray(value)) return value.map(function (v, i) { + return toJSON(v, String(i), ctx); + }); + + if (value && typeof value.toJSON === 'function') { + var anchor = ctx && ctx.anchors && ctx.anchors.get(value); + if (anchor) ctx.onCreate = function (res) { + anchor.res = res; + delete ctx.onCreate; + }; + var res = value.toJSON(arg, ctx); + if (anchor && ctx.onCreate) ctx.onCreate(res); + return res; + } + + if ((!ctx || !ctx.keep) && typeof value === 'bigint') return Number(value); + return value; +} + +var Scalar = /*#__PURE__*/function (_Node) { + _inherits(Scalar, _Node); + + var _super = _createSuper(Scalar); + + function Scalar(value) { + var _this; + + _classCallCheck(this, Scalar); + + _this = _super.call(this); + _this.value = value; + return _this; + } + + _createClass(Scalar, [{ + key: "toJSON", + value: function toJSON$1(arg, ctx) { + return ctx && ctx.keep ? this.value : toJSON(this.value, arg, ctx); + } + }, { + key: "toString", + value: function toString() { + return String(this.value); + } + }]); + + return Scalar; +}(Node); + +function collectionFromPath(schema, path, value) { + var v = value; + + for (var i = path.length - 1; i >= 0; --i) { + var k = path[i]; + + if (Number.isInteger(k) && k >= 0) { + var a = []; + a[k] = v; + v = a; + } else { + var o = {}; + Object.defineProperty(o, k, { + value: v, + writable: true, + enumerable: true, + configurable: true + }); + v = o; + } + } + + return schema.createNode(v, false); +} // null, undefined, or an empty non-string iterable (e.g. []) + + +var isEmptyPath = function isEmptyPath(path) { + return path == null || _typeof(path) === 'object' && path[Symbol.iterator]().next().done; +}; +var Collection = /*#__PURE__*/function (_Node) { + _inherits(Collection, _Node); + + var _super = _createSuper(Collection); + + function Collection(schema) { + var _this; + + _classCallCheck(this, Collection); + + _this = _super.call(this); + + _defineProperty(_assertThisInitialized(_this), "items", []); + + _this.schema = schema; + return _this; + } + + _createClass(Collection, [{ + key: "addIn", + value: function addIn(path, value) { + if (isEmptyPath(path)) this.add(value);else { + var _path = _toArray(path), + key = _path[0], + rest = _path.slice(1); + + var node = this.get(key, true); + if (node instanceof Collection) node.addIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error("Expected YAML collection at ".concat(key, ". Remaining path: ").concat(rest)); + } + } + }, { + key: "deleteIn", + value: function deleteIn(_ref) { + var _ref2 = _toArray(_ref), + key = _ref2[0], + rest = _ref2.slice(1); + + if (rest.length === 0) return this.delete(key); + var node = this.get(key, true); + if (node instanceof Collection) return node.deleteIn(rest);else throw new Error("Expected YAML collection at ".concat(key, ". Remaining path: ").concat(rest)); + } + }, { + key: "getIn", + value: function getIn(_ref3, keepScalar) { + var _ref4 = _toArray(_ref3), + key = _ref4[0], + rest = _ref4.slice(1); + + var node = this.get(key, true); + if (rest.length === 0) return !keepScalar && node instanceof Scalar ? node.value : node;else return node instanceof Collection ? node.getIn(rest, keepScalar) : undefined; + } + }, { + key: "hasAllNullValues", + value: function hasAllNullValues() { + return this.items.every(function (node) { + if (!node || node.type !== 'PAIR') return false; + var n = node.value; + return n == null || n instanceof Scalar && n.value == null && !n.commentBefore && !n.comment && !n.tag; + }); + } + }, { + key: "hasIn", + value: function hasIn(_ref5) { + var _ref6 = _toArray(_ref5), + key = _ref6[0], + rest = _ref6.slice(1); + + if (rest.length === 0) return this.has(key); + var node = this.get(key, true); + return node instanceof Collection ? node.hasIn(rest) : false; + } + }, { + key: "setIn", + value: function setIn(_ref7, value) { + var _ref8 = _toArray(_ref7), + key = _ref8[0], + rest = _ref8.slice(1); + + if (rest.length === 0) { + this.set(key, value); + } else { + var node = this.get(key, true); + if (node instanceof Collection) node.setIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error("Expected YAML collection at ".concat(key, ". Remaining path: ").concat(rest)); + } + } // overridden in implementations + + /* istanbul ignore next */ + + }, { + key: "toJSON", + value: function toJSON() { + return null; + } + }, { + key: "toString", + value: function toString(ctx, _ref9, onComment, onChompKeep) { + var _this2 = this; + + var blockItem = _ref9.blockItem, + flowChars = _ref9.flowChars, + isMap = _ref9.isMap, + itemIndent = _ref9.itemIndent; + var _ctx = ctx, + indent = _ctx.indent, + indentStep = _ctx.indentStep, + stringify = _ctx.stringify; + var inFlow = this.type === Type.FLOW_MAP || this.type === Type.FLOW_SEQ || ctx.inFlow; + if (inFlow) itemIndent += indentStep; + var allNullValues = isMap && this.hasAllNullValues(); + ctx = Object.assign({}, ctx, { + allNullValues: allNullValues, + indent: itemIndent, + inFlow: inFlow, + type: null + }); + var chompKeep = false; + var hasItemWithNewLine = false; + var nodes = this.items.reduce(function (nodes, item, i) { + var comment; + + if (item) { + if (!chompKeep && item.spaceBefore) nodes.push({ + type: 'comment', + str: '' + }); + if (item.commentBefore) item.commentBefore.match(/^.*$/gm).forEach(function (line) { + nodes.push({ + type: 'comment', + str: "#".concat(line) + }); + }); + if (item.comment) comment = item.comment; + if (inFlow && (!chompKeep && item.spaceBefore || item.commentBefore || item.comment || item.key && (item.key.commentBefore || item.key.comment) || item.value && (item.value.commentBefore || item.value.comment))) hasItemWithNewLine = true; + } + + chompKeep = false; + var str = stringify(item, ctx, function () { + return comment = null; + }, function () { + return chompKeep = true; + }); + if (inFlow && !hasItemWithNewLine && str.includes('\n')) hasItemWithNewLine = true; + if (inFlow && i < _this2.items.length - 1) str += ','; + str = addComment(str, itemIndent, comment); + if (chompKeep && (comment || inFlow)) chompKeep = false; + nodes.push({ + type: 'item', + str: str + }); + return nodes; + }, []); + var str; + + if (nodes.length === 0) { + str = flowChars.start + flowChars.end; + } else if (inFlow) { + var start = flowChars.start, + end = flowChars.end; + var strings = nodes.map(function (n) { + return n.str; + }); + + if (hasItemWithNewLine || strings.reduce(function (sum, str) { + return sum + str.length + 2; + }, 2) > Collection.maxFlowStringSingleLineLength) { + str = start; + + var _iterator = _createForOfIteratorHelper(strings), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var s = _step.value; + str += s ? "\n".concat(indentStep).concat(indent).concat(s) : '\n'; + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + str += "\n".concat(indent).concat(end); + } else { + str = "".concat(start, " ").concat(strings.join(' '), " ").concat(end); + } + } else { + var _strings = nodes.map(blockItem); + + str = _strings.shift(); + + var _iterator2 = _createForOfIteratorHelper(_strings), + _step2; + + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var _s = _step2.value; + str += _s ? "\n".concat(indent).concat(_s) : '\n'; + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + } + + if (this.comment) { + str += '\n' + this.comment.replace(/^/gm, "".concat(indent, "#")); + if (onComment) onComment(); + } else if (chompKeep && onChompKeep) onChompKeep(); + + return str; + } + }]); + + return Collection; +}(Node); + +_defineProperty(Collection, "maxFlowStringSingleLineLength", 60); + +function asItemIndex(key) { + var idx = key instanceof Scalar ? key.value : key; + if (idx && typeof idx === 'string') idx = Number(idx); + return Number.isInteger(idx) && idx >= 0 ? idx : null; +} + +var YAMLSeq = /*#__PURE__*/function (_Collection) { + _inherits(YAMLSeq, _Collection); + + var _super = _createSuper(YAMLSeq); + + function YAMLSeq() { + _classCallCheck(this, YAMLSeq); + + return _super.apply(this, arguments); + } + + _createClass(YAMLSeq, [{ + key: "add", + value: function add(value) { + this.items.push(value); + } + }, { + key: "delete", + value: function _delete(key) { + var idx = asItemIndex(key); + if (typeof idx !== 'number') return false; + var del = this.items.splice(idx, 1); + return del.length > 0; + } + }, { + key: "get", + value: function get(key, keepScalar) { + var idx = asItemIndex(key); + if (typeof idx !== 'number') return undefined; + var it = this.items[idx]; + return !keepScalar && it instanceof Scalar ? it.value : it; + } + }, { + key: "has", + value: function has(key) { + var idx = asItemIndex(key); + return typeof idx === 'number' && idx < this.items.length; + } + }, { + key: "set", + value: function set(key, value) { + var idx = asItemIndex(key); + if (typeof idx !== 'number') throw new Error("Expected a valid index, not ".concat(key, ".")); + this.items[idx] = value; + } + }, { + key: "toJSON", + value: function toJSON$1(_, ctx) { + var seq = []; + if (ctx && ctx.onCreate) ctx.onCreate(seq); + var i = 0; + + var _iterator = _createForOfIteratorHelper(this.items), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var item = _step.value; + seq.push(toJSON(item, String(i++), ctx)); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return seq; + } + }, { + key: "toString", + value: function toString(ctx, onComment, onChompKeep) { + if (!ctx) return JSON.stringify(this); + return _get(_getPrototypeOf(YAMLSeq.prototype), "toString", this).call(this, ctx, { + blockItem: function blockItem(n) { + return n.type === 'comment' ? n.str : "- ".concat(n.str); + }, + flowChars: { + start: '[', + end: ']' + }, + isMap: false, + itemIndent: (ctx.indent || '') + ' ' + }, onComment, onChompKeep); + } + }]); + + return YAMLSeq; +}(Collection); + +var stringifyKey = function stringifyKey(key, jsKey, ctx) { + if (jsKey === null) return ''; + if (_typeof(jsKey) !== 'object') return String(jsKey); + if (key instanceof Node && ctx && ctx.doc) return key.toString({ + anchors: Object.create(null), + doc: ctx.doc, + indent: '', + indentStep: ctx.indentStep, + inFlow: true, + inStringifyKey: true, + stringify: ctx.stringify + }); + return JSON.stringify(jsKey); +}; + +var Pair = /*#__PURE__*/function (_Node) { + _inherits(Pair, _Node); + + var _super = _createSuper(Pair); + + function Pair(key) { + var _this; + + var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + _classCallCheck(this, Pair); + + _this = _super.call(this); + _this.key = key; + _this.value = value; + _this.type = Pair.Type.PAIR; + return _this; + } + + _createClass(Pair, [{ + key: "commentBefore", + get: function get() { + return this.key instanceof Node ? this.key.commentBefore : undefined; + }, + set: function set(cb) { + if (this.key == null) this.key = new Scalar(null); + if (this.key instanceof Node) this.key.commentBefore = cb;else { + var msg = 'Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.'; + throw new Error(msg); + } + } + }, { + key: "addToJSMap", + value: function addToJSMap(ctx, map) { + var key = toJSON(this.key, '', ctx); + + if (map instanceof Map) { + var value = toJSON(this.value, key, ctx); + map.set(key, value); + } else if (map instanceof Set) { + map.add(key); + } else { + var stringKey = stringifyKey(this.key, key, ctx); + + var _value = toJSON(this.value, stringKey, ctx); + + if (stringKey in map) Object.defineProperty(map, stringKey, { + value: _value, + writable: true, + enumerable: true, + configurable: true + });else map[stringKey] = _value; + } + + return map; + } + }, { + key: "toJSON", + value: function toJSON(_, ctx) { + var pair = ctx && ctx.mapAsMap ? new Map() : {}; + return this.addToJSMap(ctx, pair); + } + }, { + key: "toString", + value: function toString(ctx, onComment, onChompKeep) { + if (!ctx || !ctx.doc) return JSON.stringify(this); + var _ctx$doc$options = ctx.doc.options, + indentSize = _ctx$doc$options.indent, + indentSeq = _ctx$doc$options.indentSeq, + simpleKeys = _ctx$doc$options.simpleKeys; + var key = this.key, + value = this.value; + var keyComment = key instanceof Node && key.comment; + + if (simpleKeys) { + if (keyComment) { + throw new Error('With simple keys, key nodes cannot have comments'); + } + + if (key instanceof Collection) { + var msg = 'With simple keys, collection cannot be used as a key value'; + throw new Error(msg); + } + } + + var explicitKey = !simpleKeys && (!key || keyComment || (key instanceof Node ? key instanceof Collection || key.type === Type.BLOCK_FOLDED || key.type === Type.BLOCK_LITERAL : _typeof(key) === 'object')); + var _ctx = ctx, + doc = _ctx.doc, + indent = _ctx.indent, + indentStep = _ctx.indentStep, + stringify = _ctx.stringify; + ctx = Object.assign({}, ctx, { + implicitKey: !explicitKey, + indent: indent + indentStep + }); + var chompKeep = false; + var str = stringify(key, ctx, function () { + return keyComment = null; + }, function () { + return chompKeep = true; + }); + str = addComment(str, ctx.indent, keyComment); + + if (!explicitKey && str.length > 1024) { + if (simpleKeys) throw new Error('With simple keys, single line scalar must not span more than 1024 characters'); + explicitKey = true; + } + + if (ctx.allNullValues && !simpleKeys) { + if (this.comment) { + str = addComment(str, ctx.indent, this.comment); + if (onComment) onComment(); + } else if (chompKeep && !keyComment && onChompKeep) onChompKeep(); + + return ctx.inFlow && !explicitKey ? str : "? ".concat(str); + } + + str = explicitKey ? "? ".concat(str, "\n").concat(indent, ":") : "".concat(str, ":"); + + if (this.comment) { + // expected (but not strictly required) to be a single-line comment + str = addComment(str, ctx.indent, this.comment); + if (onComment) onComment(); + } + + var vcb = ''; + var valueComment = null; + + if (value instanceof Node) { + if (value.spaceBefore) vcb = '\n'; + + if (value.commentBefore) { + var cs = value.commentBefore.replace(/^/gm, "".concat(ctx.indent, "#")); + vcb += "\n".concat(cs); + } + + valueComment = value.comment; + } else if (value && _typeof(value) === 'object') { + value = doc.schema.createNode(value, true); + } + + ctx.implicitKey = false; + if (!explicitKey && !this.comment && value instanceof Scalar) ctx.indentAtStart = str.length + 1; + chompKeep = false; + + if (!indentSeq && indentSize >= 2 && !ctx.inFlow && !explicitKey && value instanceof YAMLSeq && value.type !== Type.FLOW_SEQ && !value.tag && !doc.anchors.getName(value)) { + // If indentSeq === false, consider '- ' as part of indentation where possible + ctx.indent = ctx.indent.substr(2); + } + + var valueStr = stringify(value, ctx, function () { + return valueComment = null; + }, function () { + return chompKeep = true; + }); + var ws = ' '; + + if (vcb || this.comment) { + ws = "".concat(vcb, "\n").concat(ctx.indent); + } else if (!explicitKey && value instanceof Collection) { + var flow = valueStr[0] === '[' || valueStr[0] === '{'; + if (!flow || valueStr.includes('\n')) ws = "\n".concat(ctx.indent); + } else if (valueStr[0] === '\n') ws = ''; + + if (chompKeep && !valueComment && onChompKeep) onChompKeep(); + return addComment(str + ws + valueStr, ctx.indent, valueComment); + } + }]); + + return Pair; +}(Node); + +_defineProperty(Pair, "Type", { + PAIR: 'PAIR', + MERGE_PAIR: 'MERGE_PAIR' +}); + +var getAliasCount = function getAliasCount(node, anchors) { + if (node instanceof Alias) { + var anchor = anchors.get(node.source); + return anchor.count * anchor.aliasCount; + } else if (node instanceof Collection) { + var count = 0; + + var _iterator = _createForOfIteratorHelper(node.items), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var item = _step.value; + var c = getAliasCount(item, anchors); + if (c > count) count = c; + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return count; + } else if (node instanceof Pair) { + var kc = getAliasCount(node.key, anchors); + var vc = getAliasCount(node.value, anchors); + return Math.max(kc, vc); + } + + return 1; +}; + +var Alias = /*#__PURE__*/function (_Node) { + _inherits(Alias, _Node); + + var _super = _createSuper(Alias); + + function Alias(source) { + var _this; + + _classCallCheck(this, Alias); + + _this = _super.call(this); + _this.source = source; + _this.type = Type.ALIAS; + return _this; + } + + _createClass(Alias, [{ + key: "tag", + set: function set(t) { + throw new Error('Alias nodes cannot have tags'); + } + }, { + key: "toJSON", + value: function toJSON$1(arg, ctx) { + if (!ctx) return toJSON(this.source, arg, ctx); + var anchors = ctx.anchors, + maxAliasCount = ctx.maxAliasCount; + var anchor = anchors.get(this.source); + /* istanbul ignore if */ + + if (!anchor || anchor.res === undefined) { + var msg = 'This should not happen: Alias anchor was not resolved?'; + if (this.cstNode) throw new YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg); + } + + if (maxAliasCount >= 0) { + anchor.count += 1; + if (anchor.aliasCount === 0) anchor.aliasCount = getAliasCount(this.source, anchors); + + if (anchor.count * anchor.aliasCount > maxAliasCount) { + var _msg = 'Excessive alias count indicates a resource exhaustion attack'; + if (this.cstNode) throw new YAMLReferenceError(this.cstNode, _msg);else throw new ReferenceError(_msg); + } + } + + return anchor.res; + } // Only called when stringifying an alias mapping key while constructing + // Object output. + + }, { + key: "toString", + value: function toString(ctx) { + return Alias.stringify(this, ctx); + } + }], [{ + key: "stringify", + value: function stringify(_ref, _ref2) { + var range = _ref.range, + source = _ref.source; + var anchors = _ref2.anchors, + doc = _ref2.doc, + implicitKey = _ref2.implicitKey, + inStringifyKey = _ref2.inStringifyKey; + var anchor = Object.keys(anchors).find(function (a) { + return anchors[a] === source; + }); + if (!anchor && inStringifyKey) anchor = doc.anchors.getName(source) || doc.anchors.newName(); + if (anchor) return "*".concat(anchor).concat(implicitKey ? ' ' : ''); + var msg = doc.anchors.getName(source) ? 'Alias node must be after source node' : 'Source node not found for alias node'; + throw new Error("".concat(msg, " [").concat(range, "]")); + } + }]); + + return Alias; +}(Node); + +_defineProperty(Alias, "default", true); + +function findPair(items, key) { + var k = key instanceof Scalar ? key.value : key; + + var _iterator = _createForOfIteratorHelper(items), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var it = _step.value; + + if (it instanceof Pair) { + if (it.key === key || it.key === k) return it; + if (it.key && it.key.value === k) return it; + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return undefined; +} +var YAMLMap = /*#__PURE__*/function (_Collection) { + _inherits(YAMLMap, _Collection); + + var _super = _createSuper(YAMLMap); + + function YAMLMap() { + _classCallCheck(this, YAMLMap); + + return _super.apply(this, arguments); + } + + _createClass(YAMLMap, [{ + key: "add", + value: function add(pair, overwrite) { + if (!pair) pair = new Pair(pair);else if (!(pair instanceof Pair)) pair = new Pair(pair.key || pair, pair.value); + var prev = findPair(this.items, pair.key); + var sortEntries = this.schema && this.schema.sortMapEntries; + + if (prev) { + if (overwrite) prev.value = pair.value;else throw new Error("Key ".concat(pair.key, " already set")); + } else if (sortEntries) { + var i = this.items.findIndex(function (item) { + return sortEntries(pair, item) < 0; + }); + if (i === -1) this.items.push(pair);else this.items.splice(i, 0, pair); + } else { + this.items.push(pair); + } + } + }, { + key: "delete", + value: function _delete(key) { + var it = findPair(this.items, key); + if (!it) return false; + var del = this.items.splice(this.items.indexOf(it), 1); + return del.length > 0; + } + }, { + key: "get", + value: function get(key, keepScalar) { + var it = findPair(this.items, key); + var node = it && it.value; + return !keepScalar && node instanceof Scalar ? node.value : node; + } + }, { + key: "has", + value: function has(key) { + return !!findPair(this.items, key); + } + }, { + key: "set", + value: function set(key, value) { + this.add(new Pair(key, value), true); + } + /** + * @param {*} arg ignored + * @param {*} ctx Conversion context, originally set in Document#toJSON() + * @param {Class} Type If set, forces the returned collection type + * @returns {*} Instance of Type, Map, or Object + */ + + }, { + key: "toJSON", + value: function toJSON(_, ctx, Type) { + var map = Type ? new Type() : ctx && ctx.mapAsMap ? new Map() : {}; + if (ctx && ctx.onCreate) ctx.onCreate(map); + + var _iterator2 = _createForOfIteratorHelper(this.items), + _step2; + + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var item = _step2.value; + item.addToJSMap(ctx, map); + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + + return map; + } + }, { + key: "toString", + value: function toString(ctx, onComment, onChompKeep) { + if (!ctx) return JSON.stringify(this); + + var _iterator3 = _createForOfIteratorHelper(this.items), + _step3; + + try { + for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { + var item = _step3.value; + if (!(item instanceof Pair)) throw new Error("Map items must all be pairs; found ".concat(JSON.stringify(item), " instead")); + } + } catch (err) { + _iterator3.e(err); + } finally { + _iterator3.f(); + } + + return _get(_getPrototypeOf(YAMLMap.prototype), "toString", this).call(this, ctx, { + blockItem: function blockItem(n) { + return n.str; + }, + flowChars: { + start: '{', + end: '}' + }, + isMap: true, + itemIndent: ctx.indent || '' + }, onComment, onChompKeep); + } + }]); + + return YAMLMap; +}(Collection); + +var MERGE_KEY = '<<'; +var Merge = /*#__PURE__*/function (_Pair) { + _inherits(Merge, _Pair); + + var _super = _createSuper(Merge); + + function Merge(pair) { + var _this; + + _classCallCheck(this, Merge); + + if (pair instanceof Pair) { + var seq = pair.value; + + if (!(seq instanceof YAMLSeq)) { + seq = new YAMLSeq(); + seq.items.push(pair.value); + seq.range = pair.value.range; + } + + _this = _super.call(this, pair.key, seq); + _this.range = pair.range; + } else { + _this = _super.call(this, new Scalar(MERGE_KEY), new YAMLSeq()); + } + + _this.type = Pair.Type.MERGE_PAIR; + return _possibleConstructorReturn(_this); + } // If the value associated with a merge key is a single mapping node, each of + // its key/value pairs is inserted into the current mapping, unless the key + // already exists in it. If the value associated with the merge key is a + // sequence, then this sequence is expected to contain mapping nodes and each + // of these nodes is merged in turn according to its order in the sequence. + // Keys in mapping nodes earlier in the sequence override keys specified in + // later mapping nodes. -- http://yaml.org/type/merge.html + + + _createClass(Merge, [{ + key: "addToJSMap", + value: function addToJSMap(ctx, map) { + var _iterator = _createForOfIteratorHelper(this.value.items), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var source = _step.value.source; + if (!(source instanceof YAMLMap)) throw new Error('Merge sources must be maps'); + var srcMap = source.toJSON(null, ctx, Map); + + var _iterator2 = _createForOfIteratorHelper(srcMap), + _step2; + + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var _step2$value = _slicedToArray(_step2.value, 2), + key = _step2$value[0], + value = _step2$value[1]; + + if (map instanceof Map) { + if (!map.has(key)) map.set(key, value); + } else if (map instanceof Set) { + map.add(key); + } else if (!Object.prototype.hasOwnProperty.call(map, key)) { + Object.defineProperty(map, key, { + value: value, + writable: true, + enumerable: true, + configurable: true + }); + } + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return map; + } + }, { + key: "toString", + value: function toString(ctx, onComment) { + var seq = this.value; + if (seq.items.length > 1) return _get(_getPrototypeOf(Merge.prototype), "toString", this).call(this, ctx, onComment); + this.value = seq.items[0]; + + var str = _get(_getPrototypeOf(Merge.prototype), "toString", this).call(this, ctx, onComment); + + this.value = seq; + return str; + } + }]); + + return Merge; +}(Pair); + +var binaryOptions = { + defaultType: Type.BLOCK_LITERAL, + lineWidth: 76 +}; +var boolOptions = { + trueStr: 'true', + falseStr: 'false' +}; +var intOptions = { + asBigInt: false +}; +var nullOptions = { + nullStr: 'null' +}; +var strOptions = { + defaultType: Type.PLAIN, + doubleQuoted: { + jsonEncoding: false, + minMultiLineLength: 40 + }, + fold: { + lineWidth: 80, + minContentWidth: 20 + } +}; + +function resolveScalar(str, tags, scalarFallback) { + var _iterator = _createForOfIteratorHelper(tags), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _step$value = _step.value, + format = _step$value.format, + test = _step$value.test, + resolve = _step$value.resolve; + + if (test) { + var match = str.match(test); + + if (match) { + var res = resolve.apply(null, match); + if (!(res instanceof Scalar)) res = new Scalar(res); + if (format) res.format = format; + return res; + } + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + if (scalarFallback) str = scalarFallback(str); + return new Scalar(str); +} + +var FOLD_FLOW = 'flow'; +var FOLD_BLOCK = 'block'; +var FOLD_QUOTED = 'quoted'; // presumes i+1 is at the start of a line +// returns index of last newline in more-indented block + +var consumeMoreIndentedLines = function consumeMoreIndentedLines(text, i) { + var ch = text[i + 1]; + + while (ch === ' ' || ch === '\t') { + do { + ch = text[i += 1]; + } while (ch && ch !== '\n'); + + ch = text[i + 1]; + } + + return i; +}; +/** + * Tries to keep input at up to `lineWidth` characters, splitting only on spaces + * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are + * terminated with `\n` and started with `indent`. + * + * @param {string} text + * @param {string} indent + * @param {string} [mode='flow'] `'block'` prevents more-indented lines + * from being folded; `'quoted'` allows for `\` escapes, including escaped + * newlines + * @param {Object} options + * @param {number} [options.indentAtStart] Accounts for leading contents on + * the first line, defaulting to `indent.length` + * @param {number} [options.lineWidth=80] + * @param {number} [options.minContentWidth=20] Allow highly indented lines to + * stretch the line width or indent content from the start + * @param {function} options.onFold Called once if the text is folded + * @param {function} options.onFold Called once if any line of text exceeds + * lineWidth characters + */ + + +function foldFlowLines(text, indent, mode, _ref) { + var indentAtStart = _ref.indentAtStart, + _ref$lineWidth = _ref.lineWidth, + lineWidth = _ref$lineWidth === void 0 ? 80 : _ref$lineWidth, + _ref$minContentWidth = _ref.minContentWidth, + minContentWidth = _ref$minContentWidth === void 0 ? 20 : _ref$minContentWidth, + onFold = _ref.onFold, + onOverflow = _ref.onOverflow; + if (!lineWidth || lineWidth < 0) return text; + var endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length); + if (text.length <= endStep) return text; + var folds = []; + var escapedFolds = {}; + var end = lineWidth - indent.length; + + if (typeof indentAtStart === 'number') { + if (indentAtStart > lineWidth - Math.max(2, minContentWidth)) folds.push(0);else end = lineWidth - indentAtStart; + } + + var split = undefined; + var prev = undefined; + var overflow = false; + var i = -1; + var escStart = -1; + var escEnd = -1; + + if (mode === FOLD_BLOCK) { + i = consumeMoreIndentedLines(text, i); + if (i !== -1) end = i + endStep; + } + + for (var ch; ch = text[i += 1];) { + if (mode === FOLD_QUOTED && ch === '\\') { + escStart = i; + + switch (text[i + 1]) { + case 'x': + i += 3; + break; + + case 'u': + i += 5; + break; + + case 'U': + i += 9; + break; + + default: + i += 1; + } + + escEnd = i; + } + + if (ch === '\n') { + if (mode === FOLD_BLOCK) i = consumeMoreIndentedLines(text, i); + end = i + endStep; + split = undefined; + } else { + if (ch === ' ' && prev && prev !== ' ' && prev !== '\n' && prev !== '\t') { + // space surrounded by non-space can be replaced with newline + indent + var next = text[i + 1]; + if (next && next !== ' ' && next !== '\n' && next !== '\t') split = i; + } + + if (i >= end) { + if (split) { + folds.push(split); + end = split + endStep; + split = undefined; + } else if (mode === FOLD_QUOTED) { + // white-space collected at end may stretch past lineWidth + while (prev === ' ' || prev === '\t') { + prev = ch; + ch = text[i += 1]; + overflow = true; + } // Account for newline escape, but don't break preceding escape + + + var j = i > escEnd + 1 ? i - 2 : escStart - 1; // Bail out if lineWidth & minContentWidth are shorter than an escape string + + if (escapedFolds[j]) return text; + folds.push(j); + escapedFolds[j] = true; + end = j + endStep; + split = undefined; + } else { + overflow = true; + } + } + } + + prev = ch; + } + + if (overflow && onOverflow) onOverflow(); + if (folds.length === 0) return text; + if (onFold) onFold(); + var res = text.slice(0, folds[0]); + + for (var _i = 0; _i < folds.length; ++_i) { + var fold = folds[_i]; + + var _end = folds[_i + 1] || text.length; + + if (fold === 0) res = "\n".concat(indent).concat(text.slice(0, _end));else { + if (mode === FOLD_QUOTED && escapedFolds[fold]) res += "".concat(text[fold], "\\"); + res += "\n".concat(indent).concat(text.slice(fold + 1, _end)); + } + } + + return res; +} + +var getFoldOptions = function getFoldOptions(_ref) { + var indentAtStart = _ref.indentAtStart; + return indentAtStart ? Object.assign({ + indentAtStart: indentAtStart + }, strOptions.fold) : strOptions.fold; +}; // Also checks for lines starting with %, as parsing the output as YAML 1.1 will +// presume that's starting a new document. + + +var containsDocumentMarker = function containsDocumentMarker(str) { + return /^(%|---|\.\.\.)/m.test(str); +}; + +function lineLengthOverLimit(str, lineWidth, indentLength) { + if (!lineWidth || lineWidth < 0) return false; + var limit = lineWidth - indentLength; + var strLen = str.length; + if (strLen <= limit) return false; + + for (var i = 0, start = 0; i < strLen; ++i) { + if (str[i] === '\n') { + if (i - start > limit) return true; + start = i + 1; + if (strLen - start <= limit) return false; + } + } + + return true; +} + +function doubleQuotedString(value, ctx) { + var implicitKey = ctx.implicitKey; + var _strOptions$doubleQuo = strOptions.doubleQuoted, + jsonEncoding = _strOptions$doubleQuo.jsonEncoding, + minMultiLineLength = _strOptions$doubleQuo.minMultiLineLength; + var json = JSON.stringify(value); + if (jsonEncoding) return json; + var indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : ''); + var str = ''; + var start = 0; + + for (var i = 0, ch = json[i]; ch; ch = json[++i]) { + if (ch === ' ' && json[i + 1] === '\\' && json[i + 2] === 'n') { + // space before newline needs to be escaped to not be folded + str += json.slice(start, i) + '\\ '; + i += 1; + start = i; + ch = '\\'; + } + + if (ch === '\\') switch (json[i + 1]) { + case 'u': + { + str += json.slice(start, i); + var code = json.substr(i + 2, 4); + + switch (code) { + case '0000': + str += '\\0'; + break; + + case '0007': + str += '\\a'; + break; + + case '000b': + str += '\\v'; + break; + + case '001b': + str += '\\e'; + break; + + case '0085': + str += '\\N'; + break; + + case '00a0': + str += '\\_'; + break; + + case '2028': + str += '\\L'; + break; + + case '2029': + str += '\\P'; + break; + + default: + if (code.substr(0, 2) === '00') str += '\\x' + code.substr(2);else str += json.substr(i, 6); + } + + i += 5; + start = i + 1; + } + break; + + case 'n': + if (implicitKey || json[i + 2] === '"' || json.length < minMultiLineLength) { + i += 1; + } else { + // folding will eat first newline + str += json.slice(start, i) + '\n\n'; + + while (json[i + 2] === '\\' && json[i + 3] === 'n' && json[i + 4] !== '"') { + str += '\n'; + i += 2; + } + + str += indent; // space after newline needs to be escaped to not be folded + + if (json[i + 2] === ' ') str += '\\'; + i += 1; + start = i + 1; + } + + break; + + default: + i += 1; + } + } + + str = start ? str + json.slice(start) : json; + return implicitKey ? str : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx)); +} + +function singleQuotedString(value, ctx) { + if (ctx.implicitKey) { + if (/\n/.test(value)) return doubleQuotedString(value, ctx); + } else { + // single quoted string can't have leading or trailing whitespace around newline + if (/[ \t]\n|\n[ \t]/.test(value)) return doubleQuotedString(value, ctx); + } + + var indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : ''); + var res = "'" + value.replace(/'/g, "''").replace(/\n+/g, "$&\n".concat(indent)) + "'"; + return ctx.implicitKey ? res : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx)); +} + +function blockString(_ref2, ctx, onComment, onChompKeep) { + var comment = _ref2.comment, + type = _ref2.type, + value = _ref2.value; + + // 1. Block can't end in whitespace unless the last line is non-empty. + // 2. Strings consisting of only whitespace are best rendered explicitly. + if (/\n[\t ]+$/.test(value) || /^\s*$/.test(value)) { + return doubleQuotedString(value, ctx); + } + + var indent = ctx.indent || (ctx.forceBlockIndent || containsDocumentMarker(value) ? ' ' : ''); + var indentSize = indent ? '2' : '1'; // root is at -1 + + var literal = type === Type.BLOCK_FOLDED ? false : type === Type.BLOCK_LITERAL ? true : !lineLengthOverLimit(value, strOptions.fold.lineWidth, indent.length); + var header = literal ? '|' : '>'; + if (!value) return header + '\n'; + var wsStart = ''; + var wsEnd = ''; + value = value.replace(/[\n\t ]*$/, function (ws) { + var n = ws.indexOf('\n'); + + if (n === -1) { + header += '-'; // strip + } else if (value === ws || n !== ws.length - 1) { + header += '+'; // keep + + if (onChompKeep) onChompKeep(); + } + + wsEnd = ws.replace(/\n$/, ''); + return ''; + }).replace(/^[\n ]*/, function (ws) { + if (ws.indexOf(' ') !== -1) header += indentSize; + var m = ws.match(/ +$/); + + if (m) { + wsStart = ws.slice(0, -m[0].length); + return m[0]; + } else { + wsStart = ws; + return ''; + } + }); + if (wsEnd) wsEnd = wsEnd.replace(/\n+(?!\n|$)/g, "$&".concat(indent)); + if (wsStart) wsStart = wsStart.replace(/\n+/g, "$&".concat(indent)); + + if (comment) { + header += ' #' + comment.replace(/ ?[\r\n]+/g, ' '); + if (onComment) onComment(); + } + + if (!value) return "".concat(header).concat(indentSize, "\n").concat(indent).concat(wsEnd); + + if (literal) { + value = value.replace(/\n+/g, "$&".concat(indent)); + return "".concat(header, "\n").concat(indent).concat(wsStart).concat(value).concat(wsEnd); + } + + value = value.replace(/\n+/g, '\n$&').replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, '$1$2') // more-indented lines aren't folded + // ^ ind.line ^ empty ^ capture next empty lines only at end of indent + .replace(/\n+/g, "$&".concat(indent)); + var body = foldFlowLines("".concat(wsStart).concat(value).concat(wsEnd), indent, FOLD_BLOCK, strOptions.fold); + return "".concat(header, "\n").concat(indent).concat(body); +} + +function plainString(item, ctx, onComment, onChompKeep) { + var comment = item.comment, + type = item.type, + value = item.value; + var actualString = ctx.actualString, + implicitKey = ctx.implicitKey, + indent = ctx.indent, + inFlow = ctx.inFlow; + + if (implicitKey && /[\n[\]{},]/.test(value) || inFlow && /[[\]{},]/.test(value)) { + return doubleQuotedString(value, ctx); + } + + if (!value || /^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(value)) { + // not allowed: + // - empty string, '-' or '?' + // - start with an indicator character (except [?:-]) or /[?-] / + // - '\n ', ': ' or ' \n' anywhere + // - '#' not preceded by a non-space char + // - end with ' ' or ':' + return implicitKey || inFlow || value.indexOf('\n') === -1 ? value.indexOf('"') !== -1 && value.indexOf("'") === -1 ? singleQuotedString(value, ctx) : doubleQuotedString(value, ctx) : blockString(item, ctx, onComment, onChompKeep); + } + + if (!implicitKey && !inFlow && type !== Type.PLAIN && value.indexOf('\n') !== -1) { + // Where allowed & type not set explicitly, prefer block style for multiline strings + return blockString(item, ctx, onComment, onChompKeep); + } + + if (indent === '' && containsDocumentMarker(value)) { + ctx.forceBlockIndent = true; + return blockString(item, ctx, onComment, onChompKeep); + } + + var str = value.replace(/\n+/g, "$&\n".concat(indent)); // Verify that output will be parsed as a string, as e.g. plain numbers and + // booleans get parsed with those types in v1.2 (e.g. '42', 'true' & '0.9e-3'), + // and others in v1.1. + + if (actualString) { + var tags = ctx.doc.schema.tags; + var resolved = resolveScalar(str, tags, tags.scalarFallback).value; + if (typeof resolved !== 'string') return doubleQuotedString(value, ctx); + } + + var body = implicitKey ? str : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx)); + + if (comment && !inFlow && (body.indexOf('\n') !== -1 || comment.indexOf('\n') !== -1)) { + if (onComment) onComment(); + return addCommentBefore(body, indent, comment); + } + + return body; +} + +function stringifyString(item, ctx, onComment, onChompKeep) { + var defaultType = strOptions.defaultType; + var implicitKey = ctx.implicitKey, + inFlow = ctx.inFlow; + var _item = item, + type = _item.type, + value = _item.value; + + if (typeof value !== 'string') { + value = String(value); + item = Object.assign({}, item, { + value: value + }); + } + + var _stringify = function _stringify(_type) { + switch (_type) { + case Type.BLOCK_FOLDED: + case Type.BLOCK_LITERAL: + return blockString(item, ctx, onComment, onChompKeep); + + case Type.QUOTE_DOUBLE: + return doubleQuotedString(value, ctx); + + case Type.QUOTE_SINGLE: + return singleQuotedString(value, ctx); + + case Type.PLAIN: + return plainString(item, ctx, onComment, onChompKeep); + + default: + return null; + } + }; + + if (type !== Type.QUOTE_DOUBLE && /[\x00-\x08\x0b-\x1f\x7f-\x9f]/.test(value)) { + // force double quotes on control characters + type = Type.QUOTE_DOUBLE; + } else if ((implicitKey || inFlow) && (type === Type.BLOCK_FOLDED || type === Type.BLOCK_LITERAL)) { + // should not happen; blocks are not valid inside flow containers + type = Type.QUOTE_DOUBLE; + } + + var res = _stringify(type); + + if (res === null) { + res = _stringify(defaultType); + if (res === null) throw new Error("Unsupported default string type ".concat(defaultType)); + } + + return res; +} + +function stringifyNumber(_ref) { + var format = _ref.format, + minFractionDigits = _ref.minFractionDigits, + tag = _ref.tag, + value = _ref.value; + if (typeof value === 'bigint') return String(value); + if (!isFinite(value)) return isNaN(value) ? '.nan' : value < 0 ? '-.inf' : '.inf'; + var n = JSON.stringify(value); + + if (!format && minFractionDigits && (!tag || tag === 'tag:yaml.org,2002:float') && /^\d/.test(n)) { + var i = n.indexOf('.'); + + if (i < 0) { + i = n.length; + n += '.'; + } + + var d = minFractionDigits - (n.length - i - 1); + + while (d-- > 0) { + n += '0'; + } + } + + return n; +} + +function checkFlowCollectionEnd(errors, cst) { + var char, name; + + switch (cst.type) { + case Type.FLOW_MAP: + char = '}'; + name = 'flow map'; + break; + + case Type.FLOW_SEQ: + char = ']'; + name = 'flow sequence'; + break; + + default: + errors.push(new YAMLSemanticError(cst, 'Not a flow collection!?')); + return; + } + + var lastItem; + + for (var i = cst.items.length - 1; i >= 0; --i) { + var item = cst.items[i]; + + if (!item || item.type !== Type.COMMENT) { + lastItem = item; + break; + } + } + + if (lastItem && lastItem.char !== char) { + var msg = "Expected ".concat(name, " to end with ").concat(char); + var err; + + if (typeof lastItem.offset === 'number') { + err = new YAMLSemanticError(cst, msg); + err.offset = lastItem.offset + 1; + } else { + err = new YAMLSemanticError(lastItem, msg); + if (lastItem.range && lastItem.range.end) err.offset = lastItem.range.end - lastItem.range.start; + } + + errors.push(err); + } +} +function checkFlowCommentSpace(errors, comment) { + var prev = comment.context.src[comment.range.start - 1]; + + if (prev !== '\n' && prev !== '\t' && prev !== ' ') { + var msg = 'Comments must be separated from other tokens by white space characters'; + errors.push(new YAMLSemanticError(comment, msg)); + } +} +function getLongKeyError(source, key) { + var sk = String(key); + var k = sk.substr(0, 8) + '...' + sk.substr(-8); + return new YAMLSemanticError(source, "The \"".concat(k, "\" key is too long")); +} +function resolveComments(collection, comments) { + var _iterator = _createForOfIteratorHelper(comments), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _step$value = _step.value, + afterKey = _step$value.afterKey, + before = _step$value.before, + comment = _step$value.comment; + var item = collection.items[before]; + + if (!item) { + if (comment !== undefined) { + if (collection.comment) collection.comment += '\n' + comment;else collection.comment = comment; + } + } else { + if (afterKey && item.value) item = item.value; + + if (comment === undefined) { + if (afterKey || !item.commentBefore) item.spaceBefore = true; + } else { + if (item.commentBefore) item.commentBefore += '\n' + comment;else item.commentBefore = comment; + } + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } +} + +// on error, will return { str: string, errors: Error[] } +function resolveString(doc, node) { + var res = node.strValue; + if (!res) return ''; + if (typeof res === 'string') return res; + res.errors.forEach(function (error) { + if (!error.source) error.source = node; + doc.errors.push(error); + }); + return res.str; +} + +function resolveTagHandle(doc, node) { + var _node$tag = node.tag, + handle = _node$tag.handle, + suffix = _node$tag.suffix; + var prefix = doc.tagPrefixes.find(function (p) { + return p.handle === handle; + }); + + if (!prefix) { + var dtp = doc.getDefaults().tagPrefixes; + if (dtp) prefix = dtp.find(function (p) { + return p.handle === handle; + }); + if (!prefix) throw new YAMLSemanticError(node, "The ".concat(handle, " tag handle is non-default and was not declared.")); + } + + if (!suffix) throw new YAMLSemanticError(node, "The ".concat(handle, " tag has no suffix.")); + + if (handle === '!' && (doc.version || doc.options.version) === '1.0') { + if (suffix[0] === '^') { + doc.warnings.push(new YAMLWarning(node, 'YAML 1.0 ^ tag expansion is not supported')); + return suffix; + } + + if (/[:/]/.test(suffix)) { + // word/foo -> tag:word.yaml.org,2002:foo + var vocab = suffix.match(/^([a-z0-9-]+)\/(.*)/i); + return vocab ? "tag:".concat(vocab[1], ".yaml.org,2002:").concat(vocab[2]) : "tag:".concat(suffix); + } + } + + return prefix.prefix + decodeURIComponent(suffix); +} + +function resolveTagName(doc, node) { + var tag = node.tag, + type = node.type; + var nonSpecific = false; + + if (tag) { + var handle = tag.handle, + suffix = tag.suffix, + verbatim = tag.verbatim; + + if (verbatim) { + if (verbatim !== '!' && verbatim !== '!!') return verbatim; + var msg = "Verbatim tags aren't resolved, so ".concat(verbatim, " is invalid."); + doc.errors.push(new YAMLSemanticError(node, msg)); + } else if (handle === '!' && !suffix) { + nonSpecific = true; + } else { + try { + return resolveTagHandle(doc, node); + } catch (error) { + doc.errors.push(error); + } + } + } + + switch (type) { + case Type.BLOCK_FOLDED: + case Type.BLOCK_LITERAL: + case Type.QUOTE_DOUBLE: + case Type.QUOTE_SINGLE: + return defaultTags.STR; + + case Type.FLOW_MAP: + case Type.MAP: + return defaultTags.MAP; + + case Type.FLOW_SEQ: + case Type.SEQ: + return defaultTags.SEQ; + + case Type.PLAIN: + return nonSpecific ? defaultTags.STR : null; + + default: + return null; + } +} + +function resolveByTagName(doc, node, tagName) { + var tags = doc.schema.tags; + var matchWithTest = []; + + var _iterator = _createForOfIteratorHelper(tags), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var tag = _step.value; + + if (tag.tag === tagName) { + if (tag.test) matchWithTest.push(tag);else { + var res = tag.resolve(doc, node); + return res instanceof Collection ? res : new Scalar(res); + } + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + var str = resolveString(doc, node); + if (typeof str === 'string' && matchWithTest.length > 0) return resolveScalar(str, matchWithTest, tags.scalarFallback); + return null; +} + +function getFallbackTagName(_ref) { + var type = _ref.type; + + switch (type) { + case Type.FLOW_MAP: + case Type.MAP: + return defaultTags.MAP; + + case Type.FLOW_SEQ: + case Type.SEQ: + return defaultTags.SEQ; + + default: + return defaultTags.STR; + } +} + +function resolveTag(doc, node, tagName) { + try { + var res = resolveByTagName(doc, node, tagName); + + if (res) { + if (tagName && node.tag) res.tag = tagName; + return res; + } + } catch (error) { + /* istanbul ignore if */ + if (!error.source) error.source = node; + doc.errors.push(error); + return null; + } + + try { + var fallback = getFallbackTagName(node); + if (!fallback) throw new Error("The tag ".concat(tagName, " is unavailable")); + var msg = "The tag ".concat(tagName, " is unavailable, falling back to ").concat(fallback); + doc.warnings.push(new YAMLWarning(node, msg)); + + var _res = resolveByTagName(doc, node, fallback); + + _res.tag = tagName; + return _res; + } catch (error) { + var refError = new YAMLReferenceError(node, error.message); + refError.stack = error.stack; + doc.errors.push(refError); + return null; + } +} + +var isCollectionItem = function isCollectionItem(node) { + if (!node) return false; + var type = node.type; + return type === Type.MAP_KEY || type === Type.MAP_VALUE || type === Type.SEQ_ITEM; +}; + +function resolveNodeProps(errors, node) { + var comments = { + before: [], + after: [] + }; + var hasAnchor = false; + var hasTag = false; + var props = isCollectionItem(node.context.parent) ? node.context.parent.props.concat(node.props) : node.props; + + var _iterator = _createForOfIteratorHelper(props), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _step$value = _step.value, + start = _step$value.start, + end = _step$value.end; + + switch (node.context.src[start]) { + case Char.COMMENT: + { + if (!node.commentHasRequiredWhitespace(start)) { + var msg = 'Comments must be separated from other tokens by white space characters'; + errors.push(new YAMLSemanticError(node, msg)); + } + + var header = node.header, + valueRange = node.valueRange; + var cc = valueRange && (start > valueRange.start || header && start > header.start) ? comments.after : comments.before; + cc.push(node.context.src.slice(start + 1, end)); + break; + } + // Actual anchor & tag resolution is handled by schema, here we just complain + + case Char.ANCHOR: + if (hasAnchor) { + var _msg = 'A node can have at most one anchor'; + errors.push(new YAMLSemanticError(node, _msg)); + } + + hasAnchor = true; + break; + + case Char.TAG: + if (hasTag) { + var _msg2 = 'A node can have at most one tag'; + errors.push(new YAMLSemanticError(node, _msg2)); + } + + hasTag = true; + break; + } + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return { + comments: comments, + hasAnchor: hasAnchor, + hasTag: hasTag + }; +} + +function resolveNodeValue(doc, node) { + var anchors = doc.anchors, + errors = doc.errors, + schema = doc.schema; + + if (node.type === Type.ALIAS) { + var name = node.rawValue; + var src = anchors.getNode(name); + + if (!src) { + var msg = "Aliased anchor not found: ".concat(name); + errors.push(new YAMLReferenceError(node, msg)); + return null; + } // Lazy resolution for circular references + + + var res = new Alias(src); + + anchors._cstAliases.push(res); + + return res; + } + + var tagName = resolveTagName(doc, node); + if (tagName) return resolveTag(doc, node, tagName); + + if (node.type !== Type.PLAIN) { + var _msg3 = "Failed to resolve ".concat(node.type, " node here"); + + errors.push(new YAMLSyntaxError(node, _msg3)); + return null; + } + + try { + var str = resolveString(doc, node); + return resolveScalar(str, schema.tags, schema.tags.scalarFallback); + } catch (error) { + if (!error.source) error.source = node; + errors.push(error); + return null; + } +} // sets node.resolved on success + + +function resolveNode(doc, node) { + if (!node) return null; + if (node.error) doc.errors.push(node.error); + + var _resolveNodeProps = resolveNodeProps(doc.errors, node), + comments = _resolveNodeProps.comments, + hasAnchor = _resolveNodeProps.hasAnchor, + hasTag = _resolveNodeProps.hasTag; + + if (hasAnchor) { + var anchors = doc.anchors; + var name = node.anchor; + var prev = anchors.getNode(name); // At this point, aliases for any preceding node with the same anchor + // name have already been resolved, so it may safely be renamed. + + if (prev) anchors.map[anchors.newName(name)] = prev; // During parsing, we need to store the CST node in anchors.map as + // anchors need to be available during resolution to allow for + // circular references. + + anchors.map[name] = node; + } + + if (node.type === Type.ALIAS && (hasAnchor || hasTag)) { + var msg = 'An alias node must not specify any properties'; + doc.errors.push(new YAMLSemanticError(node, msg)); + } + + var res = resolveNodeValue(doc, node); + + if (res) { + res.range = [node.range.start, node.range.end]; + if (doc.options.keepCstNodes) res.cstNode = node; + if (doc.options.keepNodeTypes) res.type = node.type; + var cb = comments.before.join('\n'); + + if (cb) { + res.commentBefore = res.commentBefore ? "".concat(res.commentBefore, "\n").concat(cb) : cb; + } + + var ca = comments.after.join('\n'); + if (ca) res.comment = res.comment ? "".concat(res.comment, "\n").concat(ca) : ca; + } + + return node.resolved = res; +} + +function resolveMap(doc, cst) { + if (cst.type !== Type.MAP && cst.type !== Type.FLOW_MAP) { + var msg = "A ".concat(cst.type, " node cannot be resolved as a mapping"); + doc.errors.push(new YAMLSyntaxError(cst, msg)); + return null; + } + + var _ref = cst.type === Type.FLOW_MAP ? resolveFlowMapItems(doc, cst) : resolveBlockMapItems(doc, cst), + comments = _ref.comments, + items = _ref.items; + + var map = new YAMLMap(); + map.items = items; + resolveComments(map, comments); + var hasCollectionKey = false; + + for (var i = 0; i < items.length; ++i) { + var iKey = items[i].key; + if (iKey instanceof Collection) hasCollectionKey = true; + + if (doc.schema.merge && iKey && iKey.value === MERGE_KEY) { + items[i] = new Merge(items[i]); + var sources = items[i].value.items; + var error = null; + sources.some(function (node) { + if (node instanceof Alias) { + // During parsing, alias sources are CST nodes; to account for + // circular references their resolved values can't be used here. + var type = node.source.type; + if (type === Type.MAP || type === Type.FLOW_MAP) return false; + return error = 'Merge nodes aliases can only point to maps'; + } + + return error = 'Merge nodes can only have Alias nodes as values'; + }); + if (error) doc.errors.push(new YAMLSemanticError(cst, error)); + } else { + for (var j = i + 1; j < items.length; ++j) { + var jKey = items[j].key; + + if (iKey === jKey || iKey && jKey && Object.prototype.hasOwnProperty.call(iKey, 'value') && iKey.value === jKey.value) { + var _msg = "Map keys must be unique; \"".concat(iKey, "\" is repeated"); + + doc.errors.push(new YAMLSemanticError(cst, _msg)); + break; + } + } + } + } + + if (hasCollectionKey && !doc.options.mapAsMap) { + var warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.'; + doc.warnings.push(new YAMLWarning(cst, warn)); + } + + cst.resolved = map; + return map; +} + +var valueHasPairComment = function valueHasPairComment(_ref2) { + var _ref2$context = _ref2.context, + lineStart = _ref2$context.lineStart, + node = _ref2$context.node, + src = _ref2$context.src, + props = _ref2.props; + if (props.length === 0) return false; + var start = props[0].start; + if (node && start > node.valueRange.start) return false; + if (src[start] !== Char.COMMENT) return false; + + for (var i = lineStart; i < start; ++i) { + if (src[i] === '\n') return false; + } + + return true; +}; + +function resolvePairComment(item, pair) { + if (!valueHasPairComment(item)) return; + var comment = item.getPropValue(0, Char.COMMENT, true); + var found = false; + var cb = pair.value.commentBefore; + + if (cb && cb.startsWith(comment)) { + pair.value.commentBefore = cb.substr(comment.length + 1); + found = true; + } else { + var cc = pair.value.comment; + + if (!item.node && cc && cc.startsWith(comment)) { + pair.value.comment = cc.substr(comment.length + 1); + found = true; + } + } + + if (found) pair.comment = comment; +} + +function resolveBlockMapItems(doc, cst) { + var comments = []; + var items = []; + var key = undefined; + var keyStart = null; + + for (var i = 0; i < cst.items.length; ++i) { + var item = cst.items[i]; + + switch (item.type) { + case Type.BLANK_LINE: + comments.push({ + afterKey: !!key, + before: items.length + }); + break; + + case Type.COMMENT: + comments.push({ + afterKey: !!key, + before: items.length, + comment: item.comment + }); + break; + + case Type.MAP_KEY: + if (key !== undefined) items.push(new Pair(key)); + if (item.error) doc.errors.push(item.error); + key = resolveNode(doc, item.node); + keyStart = null; + break; + + case Type.MAP_VALUE: + { + if (key === undefined) key = null; + if (item.error) doc.errors.push(item.error); + + if (!item.context.atLineStart && item.node && item.node.type === Type.MAP && !item.node.context.atLineStart) { + var msg = 'Nested mappings are not allowed in compact mappings'; + doc.errors.push(new YAMLSemanticError(item.node, msg)); + } + + var valueNode = item.node; + + if (!valueNode && item.props.length > 0) { + // Comments on an empty mapping value need to be preserved, so we + // need to construct a minimal empty node here to use instead of the + // missing `item.node`. -- eemeli/yaml#19 + valueNode = new PlainValue(Type.PLAIN, []); + valueNode.context = { + parent: item, + src: item.context.src + }; + var pos = item.range.start + 1; + valueNode.range = { + start: pos, + end: pos + }; + valueNode.valueRange = { + start: pos, + end: pos + }; + + if (typeof item.range.origStart === 'number') { + var origPos = item.range.origStart + 1; + valueNode.range.origStart = valueNode.range.origEnd = origPos; + valueNode.valueRange.origStart = valueNode.valueRange.origEnd = origPos; + } + } + + var pair = new Pair(key, resolveNode(doc, valueNode)); + resolvePairComment(item, pair); + items.push(pair); + + if (key && typeof keyStart === 'number') { + if (item.range.start > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key)); + } + + key = undefined; + keyStart = null; + } + break; + + default: + if (key !== undefined) items.push(new Pair(key)); + key = resolveNode(doc, item); + keyStart = item.range.start; + if (item.error) doc.errors.push(item.error); + + next: for (var j = i + 1;; ++j) { + var nextItem = cst.items[j]; + + switch (nextItem && nextItem.type) { + case Type.BLANK_LINE: + case Type.COMMENT: + continue next; + + case Type.MAP_VALUE: + break next; + + default: + { + var _msg2 = 'Implicit map keys need to be followed by map values'; + doc.errors.push(new YAMLSemanticError(item, _msg2)); + break next; + } + } + } + + if (item.valueRangeContainsNewline) { + var _msg3 = 'Implicit map keys need to be on a single line'; + doc.errors.push(new YAMLSemanticError(item, _msg3)); + } + + } + } + + if (key !== undefined) items.push(new Pair(key)); + return { + comments: comments, + items: items + }; +} + +function resolveFlowMapItems(doc, cst) { + var comments = []; + var items = []; + var key = undefined; + var explicitKey = false; + var next = '{'; + + for (var i = 0; i < cst.items.length; ++i) { + var item = cst.items[i]; + + if (typeof item.char === 'string') { + var char = item.char, + offset = item.offset; + + if (char === '?' && key === undefined && !explicitKey) { + explicitKey = true; + next = ':'; + continue; + } + + if (char === ':') { + if (key === undefined) key = null; + + if (next === ':') { + next = ','; + continue; + } + } else { + if (explicitKey) { + if (key === undefined && char !== ',') key = null; + explicitKey = false; + } + + if (key !== undefined) { + items.push(new Pair(key)); + key = undefined; + + if (char === ',') { + next = ':'; + continue; + } + } + } + + if (char === '}') { + if (i === cst.items.length - 1) continue; + } else if (char === next) { + next = ':'; + continue; + } + + var msg = "Flow map contains an unexpected ".concat(char); + var err = new YAMLSyntaxError(cst, msg); + err.offset = offset; + doc.errors.push(err); + } else if (item.type === Type.BLANK_LINE) { + comments.push({ + afterKey: !!key, + before: items.length + }); + } else if (item.type === Type.COMMENT) { + checkFlowCommentSpace(doc.errors, item); + comments.push({ + afterKey: !!key, + before: items.length, + comment: item.comment + }); + } else if (key === undefined) { + if (next === ',') doc.errors.push(new YAMLSemanticError(item, 'Separator , missing in flow map')); + key = resolveNode(doc, item); + } else { + if (next !== ',') doc.errors.push(new YAMLSemanticError(item, 'Indicator : missing in flow map entry')); + items.push(new Pair(key, resolveNode(doc, item))); + key = undefined; + explicitKey = false; + } + } + + checkFlowCollectionEnd(doc.errors, cst); + if (key !== undefined) items.push(new Pair(key)); + return { + comments: comments, + items: items + }; +} + +function resolveSeq(doc, cst) { + if (cst.type !== Type.SEQ && cst.type !== Type.FLOW_SEQ) { + var msg = "A ".concat(cst.type, " node cannot be resolved as a sequence"); + doc.errors.push(new YAMLSyntaxError(cst, msg)); + return null; + } + + var _ref = cst.type === Type.FLOW_SEQ ? resolveFlowSeqItems(doc, cst) : resolveBlockSeqItems(doc, cst), + comments = _ref.comments, + items = _ref.items; + + var seq = new YAMLSeq(); + seq.items = items; + resolveComments(seq, comments); + + if (!doc.options.mapAsMap && items.some(function (it) { + return it instanceof Pair && it.key instanceof Collection; + })) { + var warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.'; + doc.warnings.push(new YAMLWarning(cst, warn)); + } + + cst.resolved = seq; + return seq; +} + +function resolveBlockSeqItems(doc, cst) { + var comments = []; + var items = []; + + for (var i = 0; i < cst.items.length; ++i) { + var item = cst.items[i]; + + switch (item.type) { + case Type.BLANK_LINE: + comments.push({ + before: items.length + }); + break; + + case Type.COMMENT: + comments.push({ + comment: item.comment, + before: items.length + }); + break; + + case Type.SEQ_ITEM: + if (item.error) doc.errors.push(item.error); + items.push(resolveNode(doc, item.node)); + + if (item.hasProps) { + var msg = 'Sequence items cannot have tags or anchors before the - indicator'; + doc.errors.push(new YAMLSemanticError(item, msg)); + } + + break; + + default: + if (item.error) doc.errors.push(item.error); + doc.errors.push(new YAMLSyntaxError(item, "Unexpected ".concat(item.type, " node in sequence"))); + } + } + + return { + comments: comments, + items: items + }; +} + +function resolveFlowSeqItems(doc, cst) { + var comments = []; + var items = []; + var explicitKey = false; + var key = undefined; + var keyStart = null; + var next = '['; + var prevItem = null; + + for (var i = 0; i < cst.items.length; ++i) { + var item = cst.items[i]; + + if (typeof item.char === 'string') { + var char = item.char, + offset = item.offset; + + if (char !== ':' && (explicitKey || key !== undefined)) { + if (explicitKey && key === undefined) key = next ? items.pop() : null; + items.push(new Pair(key)); + explicitKey = false; + key = undefined; + keyStart = null; + } + + if (char === next) { + next = null; + } else if (!next && char === '?') { + explicitKey = true; + } else if (next !== '[' && char === ':' && key === undefined) { + if (next === ',') { + key = items.pop(); + + if (key instanceof Pair) { + var msg = 'Chaining flow sequence pairs is invalid'; + var err = new YAMLSemanticError(cst, msg); + err.offset = offset; + doc.errors.push(err); + } + + if (!explicitKey && typeof keyStart === 'number') { + var keyEnd = item.range ? item.range.start : item.offset; + if (keyEnd > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key)); + var src = prevItem.context.src; + + for (var _i = keyStart; _i < keyEnd; ++_i) { + if (src[_i] === '\n') { + var _msg = 'Implicit keys of flow sequence pairs need to be on a single line'; + doc.errors.push(new YAMLSemanticError(prevItem, _msg)); + break; + } + } + } + } else { + key = null; + } + + keyStart = null; + explicitKey = false; + next = null; + } else if (next === '[' || char !== ']' || i < cst.items.length - 1) { + var _msg2 = "Flow sequence contains an unexpected ".concat(char); + + var _err = new YAMLSyntaxError(cst, _msg2); + + _err.offset = offset; + doc.errors.push(_err); + } + } else if (item.type === Type.BLANK_LINE) { + comments.push({ + before: items.length + }); + } else if (item.type === Type.COMMENT) { + checkFlowCommentSpace(doc.errors, item); + comments.push({ + comment: item.comment, + before: items.length + }); + } else { + if (next) { + var _msg3 = "Expected a ".concat(next, " in flow sequence"); + + doc.errors.push(new YAMLSemanticError(item, _msg3)); + } + + var value = resolveNode(doc, item); + + if (key === undefined) { + items.push(value); + prevItem = item; + } else { + items.push(new Pair(key, value)); + key = undefined; + } + + keyStart = item.range.start; + next = ','; + } + } + + checkFlowCollectionEnd(doc.errors, cst); + if (key !== undefined) items.push(new Pair(key)); + return { + comments: comments, + items: items + }; +} + +export { Alias as A, Collection as C, Merge as M, Node as N, Pair as P, Scalar as S, YAMLSeq as Y, boolOptions as a, binaryOptions as b, stringifyString as c, YAMLMap as d, isEmptyPath as e, addComment as f, resolveMap as g, resolveSeq as h, intOptions as i, resolveString as j, stringifyNumber as k, findPair as l, nullOptions as n, resolveNode as r, strOptions as s, toJSON as t }; diff --git a/node_modules/yaml/browser/dist/types.js b/node_modules/yaml/browser/dist/types.js new file mode 100644 index 00000000..da2288bc --- /dev/null +++ b/node_modules/yaml/browser/dist/types.js @@ -0,0 +1,4 @@ +export { A as Alias, C as Collection, M as Merge, N as Node, P as Pair, S as Scalar, d as YAMLMap, Y as YAMLSeq, b as binaryOptions, a as boolOptions, i as intOptions, n as nullOptions, s as strOptions } from './resolveSeq-492ab440.js'; +export { S as Schema } from './Schema-e94716c8.js'; +import './PlainValue-b8036b75.js'; +import './warnings-df54cb69.js'; diff --git a/node_modules/yaml/browser/dist/util.js b/node_modules/yaml/browser/dist/util.js new file mode 100644 index 00000000..29f4663d --- /dev/null +++ b/node_modules/yaml/browser/dist/util.js @@ -0,0 +1,2 @@ +export { l as findPair, g as parseMap, h as parseSeq, k as stringifyNumber, c as stringifyString, t as toJSON } from './resolveSeq-492ab440.js'; +export { T as Type, i as YAMLError, o as YAMLReferenceError, g as YAMLSemanticError, Y as YAMLSyntaxError, f as YAMLWarning } from './PlainValue-b8036b75.js'; diff --git a/node_modules/yaml/browser/dist/warnings-df54cb69.js b/node_modules/yaml/browser/dist/warnings-df54cb69.js new file mode 100644 index 00000000..9532e832 --- /dev/null +++ b/node_modules/yaml/browser/dist/warnings-df54cb69.js @@ -0,0 +1,499 @@ +import { o as YAMLReferenceError, T as Type, g as YAMLSemanticError, _ as _createForOfIteratorHelper, e as _defineProperty, j as _inherits, k as _createSuper, c as _classCallCheck, p as _assertThisInitialized, b as _createClass, a as _typeof, l as _get, m as _getPrototypeOf } from './PlainValue-b8036b75.js'; +import { j as resolveString, b as binaryOptions, c as stringifyString, h as resolveSeq, P as Pair, d as YAMLMap, Y as YAMLSeq, t as toJSON, S as Scalar, l as findPair, g as resolveMap, k as stringifyNumber } from './resolveSeq-492ab440.js'; + +/* global atob, btoa, Buffer */ +var binary = { + identify: function identify(value) { + return value instanceof Uint8Array; + }, + // Buffer inherits from Uint8Array + default: false, + tag: 'tag:yaml.org,2002:binary', + + /** + * Returns a Buffer in node and an Uint8Array in browsers + * + * To use the resulting buffer as an image, you'll want to do something like: + * + * const blob = new Blob([buffer], { type: 'image/jpeg' }) + * document.querySelector('#photo').src = URL.createObjectURL(blob) + */ + resolve: function resolve(doc, node) { + var src = resolveString(doc, node); + + if (typeof Buffer === 'function') { + return Buffer.from(src, 'base64'); + } else if (typeof atob === 'function') { + // On IE 11, atob() can't handle newlines + var str = atob(src.replace(/[\n\r]/g, '')); + var buffer = new Uint8Array(str.length); + + for (var i = 0; i < str.length; ++i) { + buffer[i] = str.charCodeAt(i); + } + + return buffer; + } else { + var msg = 'This environment does not support reading binary tags; either Buffer or atob is required'; + doc.errors.push(new YAMLReferenceError(node, msg)); + return null; + } + }, + options: binaryOptions, + stringify: function stringify(_ref, ctx, onComment, onChompKeep) { + var comment = _ref.comment, + type = _ref.type, + value = _ref.value; + var src; + + if (typeof Buffer === 'function') { + src = value instanceof Buffer ? value.toString('base64') : Buffer.from(value.buffer).toString('base64'); + } else if (typeof btoa === 'function') { + var s = ''; + + for (var i = 0; i < value.length; ++i) { + s += String.fromCharCode(value[i]); + } + + src = btoa(s); + } else { + throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required'); + } + + if (!type) type = binaryOptions.defaultType; + + if (type === Type.QUOTE_DOUBLE) { + value = src; + } else { + var lineWidth = binaryOptions.lineWidth; + var n = Math.ceil(src.length / lineWidth); + var lines = new Array(n); + + for (var _i = 0, o = 0; _i < n; ++_i, o += lineWidth) { + lines[_i] = src.substr(o, lineWidth); + } + + value = lines.join(type === Type.BLOCK_LITERAL ? '\n' : ' '); + } + + return stringifyString({ + comment: comment, + type: type, + value: value + }, ctx, onComment, onChompKeep); + } +}; + +function parsePairs(doc, cst) { + var seq = resolveSeq(doc, cst); + + for (var i = 0; i < seq.items.length; ++i) { + var item = seq.items[i]; + if (item instanceof Pair) continue;else if (item instanceof YAMLMap) { + if (item.items.length > 1) { + var msg = 'Each pair must have its own sequence indicator'; + throw new YAMLSemanticError(cst, msg); + } + + var pair = item.items[0] || new Pair(); + if (item.commentBefore) pair.commentBefore = pair.commentBefore ? "".concat(item.commentBefore, "\n").concat(pair.commentBefore) : item.commentBefore; + if (item.comment) pair.comment = pair.comment ? "".concat(item.comment, "\n").concat(pair.comment) : item.comment; + item = pair; + } + seq.items[i] = item instanceof Pair ? item : new Pair(item); + } + + return seq; +} +function createPairs(schema, iterable, ctx) { + var pairs = new YAMLSeq(schema); + pairs.tag = 'tag:yaml.org,2002:pairs'; + + var _iterator = _createForOfIteratorHelper(iterable), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var it = _step.value; + var key = void 0, + value = void 0; + + if (Array.isArray(it)) { + if (it.length === 2) { + key = it[0]; + value = it[1]; + } else throw new TypeError("Expected [key, value] tuple: ".concat(it)); + } else if (it && it instanceof Object) { + var keys = Object.keys(it); + + if (keys.length === 1) { + key = keys[0]; + value = it[key]; + } else throw new TypeError("Expected { key: value } tuple: ".concat(it)); + } else { + key = it; + } + + var pair = schema.createPair(key, value, ctx); + pairs.items.push(pair); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return pairs; +} +var pairs = { + default: false, + tag: 'tag:yaml.org,2002:pairs', + resolve: parsePairs, + createNode: createPairs +}; + +var YAMLOMap = /*#__PURE__*/function (_YAMLSeq) { + _inherits(YAMLOMap, _YAMLSeq); + + var _super = _createSuper(YAMLOMap); + + function YAMLOMap() { + var _this; + + _classCallCheck(this, YAMLOMap); + + _this = _super.call(this); + + _defineProperty(_assertThisInitialized(_this), "add", YAMLMap.prototype.add.bind(_assertThisInitialized(_this))); + + _defineProperty(_assertThisInitialized(_this), "delete", YAMLMap.prototype.delete.bind(_assertThisInitialized(_this))); + + _defineProperty(_assertThisInitialized(_this), "get", YAMLMap.prototype.get.bind(_assertThisInitialized(_this))); + + _defineProperty(_assertThisInitialized(_this), "has", YAMLMap.prototype.has.bind(_assertThisInitialized(_this))); + + _defineProperty(_assertThisInitialized(_this), "set", YAMLMap.prototype.set.bind(_assertThisInitialized(_this))); + + _this.tag = YAMLOMap.tag; + return _this; + } + + _createClass(YAMLOMap, [{ + key: "toJSON", + value: function toJSON$1(_, ctx) { + var map = new Map(); + if (ctx && ctx.onCreate) ctx.onCreate(map); + + var _iterator = _createForOfIteratorHelper(this.items), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var pair = _step.value; + var key = void 0, + value = void 0; + + if (pair instanceof Pair) { + key = toJSON(pair.key, '', ctx); + value = toJSON(pair.value, key, ctx); + } else { + key = toJSON(pair, '', ctx); + } + + if (map.has(key)) throw new Error('Ordered maps must not include duplicate keys'); + map.set(key, value); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return map; + } + }]); + + return YAMLOMap; +}(YAMLSeq); + +_defineProperty(YAMLOMap, "tag", 'tag:yaml.org,2002:omap'); + +function parseOMap(doc, cst) { + var pairs = parsePairs(doc, cst); + var seenKeys = []; + + var _iterator2 = _createForOfIteratorHelper(pairs.items), + _step2; + + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var key = _step2.value.key; + + if (key instanceof Scalar) { + if (seenKeys.includes(key.value)) { + var msg = 'Ordered maps must not include duplicate keys'; + throw new YAMLSemanticError(cst, msg); + } else { + seenKeys.push(key.value); + } + } + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + + return Object.assign(new YAMLOMap(), pairs); +} + +function createOMap(schema, iterable, ctx) { + var pairs = createPairs(schema, iterable, ctx); + var omap = new YAMLOMap(); + omap.items = pairs.items; + return omap; +} + +var omap = { + identify: function identify(value) { + return value instanceof Map; + }, + nodeClass: YAMLOMap, + default: false, + tag: 'tag:yaml.org,2002:omap', + resolve: parseOMap, + createNode: createOMap +}; + +var YAMLSet = /*#__PURE__*/function (_YAMLMap) { + _inherits(YAMLSet, _YAMLMap); + + var _super = _createSuper(YAMLSet); + + function YAMLSet() { + var _this; + + _classCallCheck(this, YAMLSet); + + _this = _super.call(this); + _this.tag = YAMLSet.tag; + return _this; + } + + _createClass(YAMLSet, [{ + key: "add", + value: function add(key) { + var pair = key instanceof Pair ? key : new Pair(key); + var prev = findPair(this.items, pair.key); + if (!prev) this.items.push(pair); + } + }, { + key: "get", + value: function get(key, keepPair) { + var pair = findPair(this.items, key); + return !keepPair && pair instanceof Pair ? pair.key instanceof Scalar ? pair.key.value : pair.key : pair; + } + }, { + key: "set", + value: function set(key, value) { + if (typeof value !== 'boolean') throw new Error("Expected boolean value for set(key, value) in a YAML set, not ".concat(_typeof(value))); + var prev = findPair(this.items, key); + + if (prev && !value) { + this.items.splice(this.items.indexOf(prev), 1); + } else if (!prev && value) { + this.items.push(new Pair(key)); + } + } + }, { + key: "toJSON", + value: function toJSON(_, ctx) { + return _get(_getPrototypeOf(YAMLSet.prototype), "toJSON", this).call(this, _, ctx, Set); + } + }, { + key: "toString", + value: function toString(ctx, onComment, onChompKeep) { + if (!ctx) return JSON.stringify(this); + if (this.hasAllNullValues()) return _get(_getPrototypeOf(YAMLSet.prototype), "toString", this).call(this, ctx, onComment, onChompKeep);else throw new Error('Set items must all have null values'); + } + }]); + + return YAMLSet; +}(YAMLMap); + +_defineProperty(YAMLSet, "tag", 'tag:yaml.org,2002:set'); + +function parseSet(doc, cst) { + var map = resolveMap(doc, cst); + if (!map.hasAllNullValues()) throw new YAMLSemanticError(cst, 'Set items must all have null values'); + return Object.assign(new YAMLSet(), map); +} + +function createSet(schema, iterable, ctx) { + var set = new YAMLSet(); + + var _iterator = _createForOfIteratorHelper(iterable), + _step; + + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var value = _step.value; + set.items.push(schema.createPair(value, null, ctx)); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + + return set; +} + +var set = { + identify: function identify(value) { + return value instanceof Set; + }, + nodeClass: YAMLSet, + default: false, + tag: 'tag:yaml.org,2002:set', + resolve: parseSet, + createNode: createSet +}; + +var parseSexagesimal = function parseSexagesimal(sign, parts) { + var n = parts.split(':').reduce(function (n, p) { + return n * 60 + Number(p); + }, 0); + return sign === '-' ? -n : n; +}; // hhhh:mm:ss.sss + + +var stringifySexagesimal = function stringifySexagesimal(_ref) { + var value = _ref.value; + if (isNaN(value) || !isFinite(value)) return stringifyNumber(value); + var sign = ''; + + if (value < 0) { + sign = '-'; + value = Math.abs(value); + } + + var parts = [value % 60]; // seconds, including ms + + if (value < 60) { + parts.unshift(0); // at least one : is required + } else { + value = Math.round((value - parts[0]) / 60); + parts.unshift(value % 60); // minutes + + if (value >= 60) { + value = Math.round((value - parts[0]) / 60); + parts.unshift(value); // hours + } + } + + return sign + parts.map(function (n) { + return n < 10 ? '0' + String(n) : String(n); + }).join(':').replace(/000000\d*$/, '') // % 60 may introduce error + ; +}; + +var intTime = { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'TIME', + test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/, + resolve: function resolve(str, sign, parts) { + return parseSexagesimal(sign, parts.replace(/_/g, '')); + }, + stringify: stringifySexagesimal +}; +var floatTime = { + identify: function identify(value) { + return typeof value === 'number'; + }, + default: true, + tag: 'tag:yaml.org,2002:float', + format: 'TIME', + test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*)$/, + resolve: function resolve(str, sign, parts) { + return parseSexagesimal(sign, parts.replace(/_/g, '')); + }, + stringify: stringifySexagesimal +}; +var timestamp = { + identify: function identify(value) { + return value instanceof Date; + }, + default: true, + tag: 'tag:yaml.org,2002:timestamp', + // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part + // may be omitted altogether, resulting in a date format. In such a case, the time part is + // assumed to be 00:00:00Z (start of day, UTC). + test: RegExp('^(?:' + '([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd + '(?:(?:t|T|[ \\t]+)' + // t | T | whitespace + '([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)? + '(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30 + ')?' + ')$'), + resolve: function resolve(str, year, month, day, hour, minute, second, millisec, tz) { + if (millisec) millisec = (millisec + '00').substr(1, 3); + var date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec || 0); + + if (tz && tz !== 'Z') { + var d = parseSexagesimal(tz[0], tz.slice(1)); + if (Math.abs(d) < 30) d *= 60; + date -= 60000 * d; + } + + return new Date(date); + }, + stringify: function stringify(_ref2) { + var value = _ref2.value; + return value.toISOString().replace(/((T00:00)?:00)?\.000Z$/, ''); + } +}; + +/* global console, process, YAML_SILENCE_DEPRECATION_WARNINGS, YAML_SILENCE_WARNINGS */ +function shouldWarn(deprecation) { + var env = typeof process !== 'undefined' && process.env || {}; + + if (deprecation) { + if (typeof YAML_SILENCE_DEPRECATION_WARNINGS !== 'undefined') return !YAML_SILENCE_DEPRECATION_WARNINGS; + return !env.YAML_SILENCE_DEPRECATION_WARNINGS; + } + + if (typeof YAML_SILENCE_WARNINGS !== 'undefined') return !YAML_SILENCE_WARNINGS; + return !env.YAML_SILENCE_WARNINGS; +} + +function warn(warning, type) { + if (shouldWarn(false)) { + var emit = typeof process !== 'undefined' && process.emitWarning; // This will throw in Jest if `warning` is an Error instance due to + // https://github.com/facebook/jest/issues/2549 + + if (emit) emit(warning, type);else { + // eslint-disable-next-line no-console + console.warn(type ? "".concat(type, ": ").concat(warning) : warning); + } + } +} +function warnFileDeprecation(filename) { + if (shouldWarn(true)) { + var path = filename.replace(/.*yaml[/\\]/i, '').replace(/\.js$/, '').replace(/\\/g, '/'); + warn("The endpoint 'yaml/".concat(path, "' will be removed in a future release."), 'DeprecationWarning'); + } +} +var warned = {}; +function warnOptionDeprecation(name, alternative) { + if (!warned[name] && shouldWarn(true)) { + warned[name] = true; + var msg = "The option '".concat(name, "' will be removed in a future release"); + msg += alternative ? ", use '".concat(alternative, "' instead.") : '.'; + warn(msg, 'DeprecationWarning'); + } +} + +export { warnOptionDeprecation as a, binary as b, warnFileDeprecation as c, floatTime as f, intTime as i, omap as o, pairs as p, set as s, timestamp as t, warn as w }; diff --git a/node_modules/yaml/browser/index.js b/node_modules/yaml/browser/index.js new file mode 100644 index 00000000..b501ac4d --- /dev/null +++ b/node_modules/yaml/browser/index.js @@ -0,0 +1 @@ +module.exports = require('./dist').YAML diff --git a/node_modules/yaml/browser/map.js b/node_modules/yaml/browser/map.js new file mode 100644 index 00000000..78f2ebc7 --- /dev/null +++ b/node_modules/yaml/browser/map.js @@ -0,0 +1,2 @@ +module.exports = require('./dist/types').YAMLMap +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/pair.js b/node_modules/yaml/browser/pair.js new file mode 100644 index 00000000..b2880a25 --- /dev/null +++ b/node_modules/yaml/browser/pair.js @@ -0,0 +1,2 @@ +module.exports = require('./dist/types').Pair +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/parse-cst.js b/node_modules/yaml/browser/parse-cst.js new file mode 100644 index 00000000..80657565 --- /dev/null +++ b/node_modules/yaml/browser/parse-cst.js @@ -0,0 +1 @@ +module.exports = require('./dist/parse-cst').parse diff --git a/node_modules/yaml/browser/scalar.js b/node_modules/yaml/browser/scalar.js new file mode 100644 index 00000000..deee1b03 --- /dev/null +++ b/node_modules/yaml/browser/scalar.js @@ -0,0 +1,2 @@ +module.exports = require('./dist/types').Scalar +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/schema.js b/node_modules/yaml/browser/schema.js new file mode 100644 index 00000000..4139c4bf --- /dev/null +++ b/node_modules/yaml/browser/schema.js @@ -0,0 +1,9 @@ +const types = require('./dist/types') +const util = require('./dist/util') + +module.exports = types.Schema +module.exports.nullOptions = types.nullOptions +module.exports.strOptions = types.strOptions +module.exports.stringify = util.stringifyString + +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/seq.js b/node_modules/yaml/browser/seq.js new file mode 100644 index 00000000..66147df3 --- /dev/null +++ b/node_modules/yaml/browser/seq.js @@ -0,0 +1,2 @@ +module.exports = require('./dist/types').YAMLSeq +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/types.js b/node_modules/yaml/browser/types.js new file mode 100644 index 00000000..b1e46c47 --- /dev/null +++ b/node_modules/yaml/browser/types.js @@ -0,0 +1 @@ +module.exports = require('./dist/types') diff --git a/node_modules/yaml/browser/types/binary.js b/node_modules/yaml/browser/types/binary.js new file mode 100644 index 00000000..271b9de3 --- /dev/null +++ b/node_modules/yaml/browser/types/binary.js @@ -0,0 +1,8 @@ +'use strict' +Object.defineProperty(exports, '__esModule', { value: true }) + +const legacy = require('../dist/legacy-exports') +exports.binary = legacy.binary +exports.default = [exports.binary] + +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/types/omap.js b/node_modules/yaml/browser/types/omap.js new file mode 100644 index 00000000..37b638b7 --- /dev/null +++ b/node_modules/yaml/browser/types/omap.js @@ -0,0 +1,3 @@ +const legacy = require('../dist/legacy-exports') +module.exports = legacy.omap +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/types/pairs.js b/node_modules/yaml/browser/types/pairs.js new file mode 100644 index 00000000..f1df201c --- /dev/null +++ b/node_modules/yaml/browser/types/pairs.js @@ -0,0 +1,3 @@ +const legacy = require('../dist/legacy-exports') +module.exports = legacy.pairs +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/types/set.js b/node_modules/yaml/browser/types/set.js new file mode 100644 index 00000000..e7dc9d42 --- /dev/null +++ b/node_modules/yaml/browser/types/set.js @@ -0,0 +1,3 @@ +const legacy = require('../dist/legacy-exports') +module.exports = legacy.set +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/types/timestamp.js b/node_modules/yaml/browser/types/timestamp.js new file mode 100644 index 00000000..39c5b6dd --- /dev/null +++ b/node_modules/yaml/browser/types/timestamp.js @@ -0,0 +1,10 @@ +'use strict' +Object.defineProperty(exports, '__esModule', { value: true }) + +const legacy = require('../dist/legacy-exports') +exports.default = [legacy.intTime, legacy.floatTime, legacy.timestamp] +exports.floatTime = legacy.floatTime +exports.intTime = legacy.intTime +exports.timestamp = legacy.timestamp + +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/browser/util.js b/node_modules/yaml/browser/util.js new file mode 100644 index 00000000..bf384562 --- /dev/null +++ b/node_modules/yaml/browser/util.js @@ -0,0 +1 @@ +module.exports = require('./dist/util') diff --git a/node_modules/yaml/dist/Document-9b4560a1.js b/node_modules/yaml/dist/Document-9b4560a1.js new file mode 100644 index 00000000..a2613db2 --- /dev/null +++ b/node_modules/yaml/dist/Document-9b4560a1.js @@ -0,0 +1,757 @@ +'use strict'; + +var PlainValue = require('./PlainValue-ec8e588e.js'); +var resolveSeq = require('./resolveSeq-d03cb037.js'); +var Schema = require('./Schema-88e323a7.js'); + +const defaultOptions = { + anchorPrefix: 'a', + customTags: null, + indent: 2, + indentSeq: true, + keepCstNodes: false, + keepNodeTypes: true, + keepBlobsInJSON: true, + mapAsMap: false, + maxAliasCount: 100, + prettyErrors: false, + // TODO Set true in v2 + simpleKeys: false, + version: '1.2' +}; +const scalarOptions = { + get binary() { + return resolveSeq.binaryOptions; + }, + + set binary(opt) { + Object.assign(resolveSeq.binaryOptions, opt); + }, + + get bool() { + return resolveSeq.boolOptions; + }, + + set bool(opt) { + Object.assign(resolveSeq.boolOptions, opt); + }, + + get int() { + return resolveSeq.intOptions; + }, + + set int(opt) { + Object.assign(resolveSeq.intOptions, opt); + }, + + get null() { + return resolveSeq.nullOptions; + }, + + set null(opt) { + Object.assign(resolveSeq.nullOptions, opt); + }, + + get str() { + return resolveSeq.strOptions; + }, + + set str(opt) { + Object.assign(resolveSeq.strOptions, opt); + } + +}; +const documentOptions = { + '1.0': { + schema: 'yaml-1.1', + merge: true, + tagPrefixes: [{ + handle: '!', + prefix: PlainValue.defaultTagPrefix + }, { + handle: '!!', + prefix: 'tag:private.yaml.org,2002:' + }] + }, + 1.1: { + schema: 'yaml-1.1', + merge: true, + tagPrefixes: [{ + handle: '!', + prefix: '!' + }, { + handle: '!!', + prefix: PlainValue.defaultTagPrefix + }] + }, + 1.2: { + schema: 'core', + merge: false, + tagPrefixes: [{ + handle: '!', + prefix: '!' + }, { + handle: '!!', + prefix: PlainValue.defaultTagPrefix + }] + } +}; + +function stringifyTag(doc, tag) { + if ((doc.version || doc.options.version) === '1.0') { + const priv = tag.match(/^tag:private\.yaml\.org,2002:([^:/]+)$/); + if (priv) return '!' + priv[1]; + const vocab = tag.match(/^tag:([a-zA-Z0-9-]+)\.yaml\.org,2002:(.*)/); + return vocab ? `!${vocab[1]}/${vocab[2]}` : `!${tag.replace(/^tag:/, '')}`; + } + + let p = doc.tagPrefixes.find(p => tag.indexOf(p.prefix) === 0); + + if (!p) { + const dtp = doc.getDefaults().tagPrefixes; + p = dtp && dtp.find(p => tag.indexOf(p.prefix) === 0); + } + + if (!p) return tag[0] === '!' ? tag : `!<${tag}>`; + const suffix = tag.substr(p.prefix.length).replace(/[!,[\]{}]/g, ch => ({ + '!': '%21', + ',': '%2C', + '[': '%5B', + ']': '%5D', + '{': '%7B', + '}': '%7D' + })[ch]); + return p.handle + suffix; +} + +function getTagObject(tags, item) { + if (item instanceof resolveSeq.Alias) return resolveSeq.Alias; + + if (item.tag) { + const match = tags.filter(t => t.tag === item.tag); + if (match.length > 0) return match.find(t => t.format === item.format) || match[0]; + } + + let tagObj, obj; + + if (item instanceof resolveSeq.Scalar) { + obj = item.value; // TODO: deprecate/remove class check + + const match = tags.filter(t => t.identify && t.identify(obj) || t.class && obj instanceof t.class); + tagObj = match.find(t => t.format === item.format) || match.find(t => !t.format); + } else { + obj = item; + tagObj = tags.find(t => t.nodeClass && obj instanceof t.nodeClass); + } + + if (!tagObj) { + const name = obj && obj.constructor ? obj.constructor.name : typeof obj; + throw new Error(`Tag not resolved for ${name} value`); + } + + return tagObj; +} // needs to be called before value stringifier to allow for circular anchor refs + + +function stringifyProps(node, tagObj, { + anchors, + doc +}) { + const props = []; + const anchor = doc.anchors.getName(node); + + if (anchor) { + anchors[anchor] = node; + props.push(`&${anchor}`); + } + + if (node.tag) { + props.push(stringifyTag(doc, node.tag)); + } else if (!tagObj.default) { + props.push(stringifyTag(doc, tagObj.tag)); + } + + return props.join(' '); +} + +function stringify(item, ctx, onComment, onChompKeep) { + const { + anchors, + schema + } = ctx.doc; + let tagObj; + + if (!(item instanceof resolveSeq.Node)) { + const createCtx = { + aliasNodes: [], + onTagObj: o => tagObj = o, + prevObjects: new Map() + }; + item = schema.createNode(item, true, null, createCtx); + + for (const alias of createCtx.aliasNodes) { + alias.source = alias.source.node; + let name = anchors.getName(alias.source); + + if (!name) { + name = anchors.newName(); + anchors.map[name] = alias.source; + } + } + } + + if (item instanceof resolveSeq.Pair) return item.toString(ctx, onComment, onChompKeep); + if (!tagObj) tagObj = getTagObject(schema.tags, item); + const props = stringifyProps(item, tagObj, ctx); + if (props.length > 0) ctx.indentAtStart = (ctx.indentAtStart || 0) + props.length + 1; + const str = typeof tagObj.stringify === 'function' ? tagObj.stringify(item, ctx, onComment, onChompKeep) : item instanceof resolveSeq.Scalar ? resolveSeq.stringifyString(item, ctx, onComment, onChompKeep) : item.toString(ctx, onComment, onChompKeep); + if (!props) return str; + return item instanceof resolveSeq.Scalar || str[0] === '{' || str[0] === '[' ? `${props} ${str}` : `${props}\n${ctx.indent}${str}`; +} + +class Anchors { + static validAnchorNode(node) { + return node instanceof resolveSeq.Scalar || node instanceof resolveSeq.YAMLSeq || node instanceof resolveSeq.YAMLMap; + } + + constructor(prefix) { + PlainValue._defineProperty(this, "map", Object.create(null)); + + this.prefix = prefix; + } + + createAlias(node, name) { + this.setAnchor(node, name); + return new resolveSeq.Alias(node); + } + + createMergePair(...sources) { + const merge = new resolveSeq.Merge(); + merge.value.items = sources.map(s => { + if (s instanceof resolveSeq.Alias) { + if (s.source instanceof resolveSeq.YAMLMap) return s; + } else if (s instanceof resolveSeq.YAMLMap) { + return this.createAlias(s); + } + + throw new Error('Merge sources must be Map nodes or their Aliases'); + }); + return merge; + } + + getName(node) { + const { + map + } = this; + return Object.keys(map).find(a => map[a] === node); + } + + getNames() { + return Object.keys(this.map); + } + + getNode(name) { + return this.map[name]; + } + + newName(prefix) { + if (!prefix) prefix = this.prefix; + const names = Object.keys(this.map); + + for (let i = 1; true; ++i) { + const name = `${prefix}${i}`; + if (!names.includes(name)) return name; + } + } // During parsing, map & aliases contain CST nodes + + + resolveNodes() { + const { + map, + _cstAliases + } = this; + Object.keys(map).forEach(a => { + map[a] = map[a].resolved; + }); + + _cstAliases.forEach(a => { + a.source = a.source.resolved; + }); + + delete this._cstAliases; + } + + setAnchor(node, name) { + if (node != null && !Anchors.validAnchorNode(node)) { + throw new Error('Anchors may only be set for Scalar, Seq and Map nodes'); + } + + if (name && /[\x00-\x19\s,[\]{}]/.test(name)) { + throw new Error('Anchor names must not contain whitespace or control characters'); + } + + const { + map + } = this; + const prev = node && Object.keys(map).find(a => map[a] === node); + + if (prev) { + if (!name) { + return prev; + } else if (prev !== name) { + delete map[prev]; + map[name] = node; + } + } else { + if (!name) { + if (!node) return null; + name = this.newName(); + } + + map[name] = node; + } + + return name; + } + +} + +const visit = (node, tags) => { + if (node && typeof node === 'object') { + const { + tag + } = node; + + if (node instanceof resolveSeq.Collection) { + if (tag) tags[tag] = true; + node.items.forEach(n => visit(n, tags)); + } else if (node instanceof resolveSeq.Pair) { + visit(node.key, tags); + visit(node.value, tags); + } else if (node instanceof resolveSeq.Scalar) { + if (tag) tags[tag] = true; + } + } + + return tags; +}; + +const listTagNames = node => Object.keys(visit(node, {})); + +function parseContents(doc, contents) { + const comments = { + before: [], + after: [] + }; + let body = undefined; + let spaceBefore = false; + + for (const node of contents) { + if (node.valueRange) { + if (body !== undefined) { + const msg = 'Document contains trailing content not separated by a ... or --- line'; + doc.errors.push(new PlainValue.YAMLSyntaxError(node, msg)); + break; + } + + const res = resolveSeq.resolveNode(doc, node); + + if (spaceBefore) { + res.spaceBefore = true; + spaceBefore = false; + } + + body = res; + } else if (node.comment !== null) { + const cc = body === undefined ? comments.before : comments.after; + cc.push(node.comment); + } else if (node.type === PlainValue.Type.BLANK_LINE) { + spaceBefore = true; + + if (body === undefined && comments.before.length > 0 && !doc.commentBefore) { + // space-separated comments at start are parsed as document comments + doc.commentBefore = comments.before.join('\n'); + comments.before = []; + } + } + } + + doc.contents = body || null; + + if (!body) { + doc.comment = comments.before.concat(comments.after).join('\n') || null; + } else { + const cb = comments.before.join('\n'); + + if (cb) { + const cbNode = body instanceof resolveSeq.Collection && body.items[0] ? body.items[0] : body; + cbNode.commentBefore = cbNode.commentBefore ? `${cb}\n${cbNode.commentBefore}` : cb; + } + + doc.comment = comments.after.join('\n') || null; + } +} + +function resolveTagDirective({ + tagPrefixes +}, directive) { + const [handle, prefix] = directive.parameters; + + if (!handle || !prefix) { + const msg = 'Insufficient parameters given for %TAG directive'; + throw new PlainValue.YAMLSemanticError(directive, msg); + } + + if (tagPrefixes.some(p => p.handle === handle)) { + const msg = 'The %TAG directive must only be given at most once per handle in the same document.'; + throw new PlainValue.YAMLSemanticError(directive, msg); + } + + return { + handle, + prefix + }; +} + +function resolveYamlDirective(doc, directive) { + let [version] = directive.parameters; + if (directive.name === 'YAML:1.0') version = '1.0'; + + if (!version) { + const msg = 'Insufficient parameters given for %YAML directive'; + throw new PlainValue.YAMLSemanticError(directive, msg); + } + + if (!documentOptions[version]) { + const v0 = doc.version || doc.options.version; + const msg = `Document will be parsed as YAML ${v0} rather than YAML ${version}`; + doc.warnings.push(new PlainValue.YAMLWarning(directive, msg)); + } + + return version; +} + +function parseDirectives(doc, directives, prevDoc) { + const directiveComments = []; + let hasDirectives = false; + + for (const directive of directives) { + const { + comment, + name + } = directive; + + switch (name) { + case 'TAG': + try { + doc.tagPrefixes.push(resolveTagDirective(doc, directive)); + } catch (error) { + doc.errors.push(error); + } + + hasDirectives = true; + break; + + case 'YAML': + case 'YAML:1.0': + if (doc.version) { + const msg = 'The %YAML directive must only be given at most once per document.'; + doc.errors.push(new PlainValue.YAMLSemanticError(directive, msg)); + } + + try { + doc.version = resolveYamlDirective(doc, directive); + } catch (error) { + doc.errors.push(error); + } + + hasDirectives = true; + break; + + default: + if (name) { + const msg = `YAML only supports %TAG and %YAML directives, and not %${name}`; + doc.warnings.push(new PlainValue.YAMLWarning(directive, msg)); + } + + } + + if (comment) directiveComments.push(comment); + } + + if (prevDoc && !hasDirectives && '1.1' === (doc.version || prevDoc.version || doc.options.version)) { + const copyTagPrefix = ({ + handle, + prefix + }) => ({ + handle, + prefix + }); + + doc.tagPrefixes = prevDoc.tagPrefixes.map(copyTagPrefix); + doc.version = prevDoc.version; + } + + doc.commentBefore = directiveComments.join('\n') || null; +} + +function assertCollection(contents) { + if (contents instanceof resolveSeq.Collection) return true; + throw new Error('Expected a YAML collection as document contents'); +} + +class Document { + constructor(options) { + this.anchors = new Anchors(options.anchorPrefix); + this.commentBefore = null; + this.comment = null; + this.contents = null; + this.directivesEndMarker = null; + this.errors = []; + this.options = options; + this.schema = null; + this.tagPrefixes = []; + this.version = null; + this.warnings = []; + } + + add(value) { + assertCollection(this.contents); + return this.contents.add(value); + } + + addIn(path, value) { + assertCollection(this.contents); + this.contents.addIn(path, value); + } + + delete(key) { + assertCollection(this.contents); + return this.contents.delete(key); + } + + deleteIn(path) { + if (resolveSeq.isEmptyPath(path)) { + if (this.contents == null) return false; + this.contents = null; + return true; + } + + assertCollection(this.contents); + return this.contents.deleteIn(path); + } + + getDefaults() { + return Document.defaults[this.version] || Document.defaults[this.options.version] || {}; + } + + get(key, keepScalar) { + return this.contents instanceof resolveSeq.Collection ? this.contents.get(key, keepScalar) : undefined; + } + + getIn(path, keepScalar) { + if (resolveSeq.isEmptyPath(path)) return !keepScalar && this.contents instanceof resolveSeq.Scalar ? this.contents.value : this.contents; + return this.contents instanceof resolveSeq.Collection ? this.contents.getIn(path, keepScalar) : undefined; + } + + has(key) { + return this.contents instanceof resolveSeq.Collection ? this.contents.has(key) : false; + } + + hasIn(path) { + if (resolveSeq.isEmptyPath(path)) return this.contents !== undefined; + return this.contents instanceof resolveSeq.Collection ? this.contents.hasIn(path) : false; + } + + set(key, value) { + assertCollection(this.contents); + this.contents.set(key, value); + } + + setIn(path, value) { + if (resolveSeq.isEmptyPath(path)) this.contents = value;else { + assertCollection(this.contents); + this.contents.setIn(path, value); + } + } + + setSchema(id, customTags) { + if (!id && !customTags && this.schema) return; + if (typeof id === 'number') id = id.toFixed(1); + + if (id === '1.0' || id === '1.1' || id === '1.2') { + if (this.version) this.version = id;else this.options.version = id; + delete this.options.schema; + } else if (id && typeof id === 'string') { + this.options.schema = id; + } + + if (Array.isArray(customTags)) this.options.customTags = customTags; + const opt = Object.assign({}, this.getDefaults(), this.options); + this.schema = new Schema.Schema(opt); + } + + parse(node, prevDoc) { + if (this.options.keepCstNodes) this.cstNode = node; + if (this.options.keepNodeTypes) this.type = 'DOCUMENT'; + const { + directives = [], + contents = [], + directivesEndMarker, + error, + valueRange + } = node; + + if (error) { + if (!error.source) error.source = this; + this.errors.push(error); + } + + parseDirectives(this, directives, prevDoc); + if (directivesEndMarker) this.directivesEndMarker = true; + this.range = valueRange ? [valueRange.start, valueRange.end] : null; + this.setSchema(); + this.anchors._cstAliases = []; + parseContents(this, contents); + this.anchors.resolveNodes(); + + if (this.options.prettyErrors) { + for (const error of this.errors) if (error instanceof PlainValue.YAMLError) error.makePretty(); + + for (const warn of this.warnings) if (warn instanceof PlainValue.YAMLError) warn.makePretty(); + } + + return this; + } + + listNonDefaultTags() { + return listTagNames(this.contents).filter(t => t.indexOf(Schema.Schema.defaultPrefix) !== 0); + } + + setTagPrefix(handle, prefix) { + if (handle[0] !== '!' || handle[handle.length - 1] !== '!') throw new Error('Handle must start and end with !'); + + if (prefix) { + const prev = this.tagPrefixes.find(p => p.handle === handle); + if (prev) prev.prefix = prefix;else this.tagPrefixes.push({ + handle, + prefix + }); + } else { + this.tagPrefixes = this.tagPrefixes.filter(p => p.handle !== handle); + } + } + + toJSON(arg, onAnchor) { + const { + keepBlobsInJSON, + mapAsMap, + maxAliasCount + } = this.options; + const keep = keepBlobsInJSON && (typeof arg !== 'string' || !(this.contents instanceof resolveSeq.Scalar)); + const ctx = { + doc: this, + indentStep: ' ', + keep, + mapAsMap: keep && !!mapAsMap, + maxAliasCount, + stringify // Requiring directly in Pair would create circular dependencies + + }; + const anchorNames = Object.keys(this.anchors.map); + if (anchorNames.length > 0) ctx.anchors = new Map(anchorNames.map(name => [this.anchors.map[name], { + alias: [], + aliasCount: 0, + count: 1 + }])); + const res = resolveSeq.toJSON(this.contents, arg, ctx); + if (typeof onAnchor === 'function' && ctx.anchors) for (const { + count, + res + } of ctx.anchors.values()) onAnchor(res, count); + return res; + } + + toString() { + if (this.errors.length > 0) throw new Error('Document with errors cannot be stringified'); + const indentSize = this.options.indent; + + if (!Number.isInteger(indentSize) || indentSize <= 0) { + const s = JSON.stringify(indentSize); + throw new Error(`"indent" option must be a positive integer, not ${s}`); + } + + this.setSchema(); + const lines = []; + let hasDirectives = false; + + if (this.version) { + let vd = '%YAML 1.2'; + + if (this.schema.name === 'yaml-1.1') { + if (this.version === '1.0') vd = '%YAML:1.0';else if (this.version === '1.1') vd = '%YAML 1.1'; + } + + lines.push(vd); + hasDirectives = true; + } + + const tagNames = this.listNonDefaultTags(); + this.tagPrefixes.forEach(({ + handle, + prefix + }) => { + if (tagNames.some(t => t.indexOf(prefix) === 0)) { + lines.push(`%TAG ${handle} ${prefix}`); + hasDirectives = true; + } + }); + if (hasDirectives || this.directivesEndMarker) lines.push('---'); + + if (this.commentBefore) { + if (hasDirectives || !this.directivesEndMarker) lines.unshift(''); + lines.unshift(this.commentBefore.replace(/^/gm, '#')); + } + + const ctx = { + anchors: Object.create(null), + doc: this, + indent: '', + indentStep: ' '.repeat(indentSize), + stringify // Requiring directly in nodes would create circular dependencies + + }; + let chompKeep = false; + let contentComment = null; + + if (this.contents) { + if (this.contents instanceof resolveSeq.Node) { + if (this.contents.spaceBefore && (hasDirectives || this.directivesEndMarker)) lines.push(''); + if (this.contents.commentBefore) lines.push(this.contents.commentBefore.replace(/^/gm, '#')); // top-level block scalars need to be indented if followed by a comment + + ctx.forceBlockIndent = !!this.comment; + contentComment = this.contents.comment; + } + + const onChompKeep = contentComment ? null : () => chompKeep = true; + const body = stringify(this.contents, ctx, () => contentComment = null, onChompKeep); + lines.push(resolveSeq.addComment(body, '', contentComment)); + } else if (this.contents !== undefined) { + lines.push(stringify(this.contents, ctx)); + } + + if (this.comment) { + if ((!chompKeep || contentComment) && lines[lines.length - 1] !== '') lines.push(''); + lines.push(this.comment.replace(/^/gm, '#')); + } + + return lines.join('\n') + '\n'; + } + +} + +PlainValue._defineProperty(Document, "defaults", documentOptions); + +exports.Document = Document; +exports.defaultOptions = defaultOptions; +exports.scalarOptions = scalarOptions; diff --git a/node_modules/yaml/dist/PlainValue-ec8e588e.js b/node_modules/yaml/dist/PlainValue-ec8e588e.js new file mode 100644 index 00000000..db8a14e3 --- /dev/null +++ b/node_modules/yaml/dist/PlainValue-ec8e588e.js @@ -0,0 +1,876 @@ +'use strict'; + +const Char = { + ANCHOR: '&', + COMMENT: '#', + TAG: '!', + DIRECTIVES_END: '-', + DOCUMENT_END: '.' +}; +const Type = { + ALIAS: 'ALIAS', + BLANK_LINE: 'BLANK_LINE', + BLOCK_FOLDED: 'BLOCK_FOLDED', + BLOCK_LITERAL: 'BLOCK_LITERAL', + COMMENT: 'COMMENT', + DIRECTIVE: 'DIRECTIVE', + DOCUMENT: 'DOCUMENT', + FLOW_MAP: 'FLOW_MAP', + FLOW_SEQ: 'FLOW_SEQ', + MAP: 'MAP', + MAP_KEY: 'MAP_KEY', + MAP_VALUE: 'MAP_VALUE', + PLAIN: 'PLAIN', + QUOTE_DOUBLE: 'QUOTE_DOUBLE', + QUOTE_SINGLE: 'QUOTE_SINGLE', + SEQ: 'SEQ', + SEQ_ITEM: 'SEQ_ITEM' +}; +const defaultTagPrefix = 'tag:yaml.org,2002:'; +const defaultTags = { + MAP: 'tag:yaml.org,2002:map', + SEQ: 'tag:yaml.org,2002:seq', + STR: 'tag:yaml.org,2002:str' +}; + +function findLineStarts(src) { + const ls = [0]; + let offset = src.indexOf('\n'); + + while (offset !== -1) { + offset += 1; + ls.push(offset); + offset = src.indexOf('\n', offset); + } + + return ls; +} + +function getSrcInfo(cst) { + let lineStarts, src; + + if (typeof cst === 'string') { + lineStarts = findLineStarts(cst); + src = cst; + } else { + if (Array.isArray(cst)) cst = cst[0]; + + if (cst && cst.context) { + if (!cst.lineStarts) cst.lineStarts = findLineStarts(cst.context.src); + lineStarts = cst.lineStarts; + src = cst.context.src; + } + } + + return { + lineStarts, + src + }; +} +/** + * @typedef {Object} LinePos - One-indexed position in the source + * @property {number} line + * @property {number} col + */ + +/** + * Determine the line/col position matching a character offset. + * + * Accepts a source string or a CST document as the second parameter. With + * the latter, starting indices for lines are cached in the document as + * `lineStarts: number[]`. + * + * Returns a one-indexed `{ line, col }` location if found, or + * `undefined` otherwise. + * + * @param {number} offset + * @param {string|Document|Document[]} cst + * @returns {?LinePos} + */ + + +function getLinePos(offset, cst) { + if (typeof offset !== 'number' || offset < 0) return null; + const { + lineStarts, + src + } = getSrcInfo(cst); + if (!lineStarts || !src || offset > src.length) return null; + + for (let i = 0; i < lineStarts.length; ++i) { + const start = lineStarts[i]; + + if (offset < start) { + return { + line: i, + col: offset - lineStarts[i - 1] + 1 + }; + } + + if (offset === start) return { + line: i + 1, + col: 1 + }; + } + + const line = lineStarts.length; + return { + line, + col: offset - lineStarts[line - 1] + 1 + }; +} +/** + * Get a specified line from the source. + * + * Accepts a source string or a CST document as the second parameter. With + * the latter, starting indices for lines are cached in the document as + * `lineStarts: number[]`. + * + * Returns the line as a string if found, or `null` otherwise. + * + * @param {number} line One-indexed line number + * @param {string|Document|Document[]} cst + * @returns {?string} + */ + +function getLine(line, cst) { + const { + lineStarts, + src + } = getSrcInfo(cst); + if (!lineStarts || !(line >= 1) || line > lineStarts.length) return null; + const start = lineStarts[line - 1]; + let end = lineStarts[line]; // undefined for last line; that's ok for slice() + + while (end && end > start && src[end - 1] === '\n') --end; + + return src.slice(start, end); +} +/** + * Pretty-print the starting line from the source indicated by the range `pos` + * + * Trims output to `maxWidth` chars while keeping the starting column visible, + * using `…` at either end to indicate dropped characters. + * + * Returns a two-line string (or `null`) with `\n` as separator; the second line + * will hold appropriately indented `^` marks indicating the column range. + * + * @param {Object} pos + * @param {LinePos} pos.start + * @param {LinePos} [pos.end] + * @param {string|Document|Document[]*} cst + * @param {number} [maxWidth=80] + * @returns {?string} + */ + +function getPrettyContext({ + start, + end +}, cst, maxWidth = 80) { + let src = getLine(start.line, cst); + if (!src) return null; + let { + col + } = start; + + if (src.length > maxWidth) { + if (col <= maxWidth - 10) { + src = src.substr(0, maxWidth - 1) + '…'; + } else { + const halfWidth = Math.round(maxWidth / 2); + if (src.length > col + halfWidth) src = src.substr(0, col + halfWidth - 1) + '…'; + col -= src.length - maxWidth; + src = '…' + src.substr(1 - maxWidth); + } + } + + let errLen = 1; + let errEnd = ''; + + if (end) { + if (end.line === start.line && col + (end.col - start.col) <= maxWidth + 1) { + errLen = end.col - start.col; + } else { + errLen = Math.min(src.length + 1, maxWidth) - col; + errEnd = '…'; + } + } + + const offset = col > 1 ? ' '.repeat(col - 1) : ''; + const err = '^'.repeat(errLen); + return `${src}\n${offset}${err}${errEnd}`; +} + +class Range { + static copy(orig) { + return new Range(orig.start, orig.end); + } + + constructor(start, end) { + this.start = start; + this.end = end || start; + } + + isEmpty() { + return typeof this.start !== 'number' || !this.end || this.end <= this.start; + } + /** + * Set `origStart` and `origEnd` to point to the original source range for + * this node, which may differ due to dropped CR characters. + * + * @param {number[]} cr - Positions of dropped CR characters + * @param {number} offset - Starting index of `cr` from the last call + * @returns {number} - The next offset, matching the one found for `origStart` + */ + + + setOrigRange(cr, offset) { + const { + start, + end + } = this; + + if (cr.length === 0 || end <= cr[0]) { + this.origStart = start; + this.origEnd = end; + return offset; + } + + let i = offset; + + while (i < cr.length) { + if (cr[i] > start) break;else ++i; + } + + this.origStart = start + i; + const nextOffset = i; + + while (i < cr.length) { + // if end was at \n, it should now be at \r + if (cr[i] >= end) break;else ++i; + } + + this.origEnd = end + i; + return nextOffset; + } + +} + +/** Root class of all nodes */ + +class Node { + static addStringTerminator(src, offset, str) { + if (str[str.length - 1] === '\n') return str; + const next = Node.endOfWhiteSpace(src, offset); + return next >= src.length || src[next] === '\n' ? str + '\n' : str; + } // ^(---|...) + + + static atDocumentBoundary(src, offset, sep) { + const ch0 = src[offset]; + if (!ch0) return true; + const prev = src[offset - 1]; + if (prev && prev !== '\n') return false; + + if (sep) { + if (ch0 !== sep) return false; + } else { + if (ch0 !== Char.DIRECTIVES_END && ch0 !== Char.DOCUMENT_END) return false; + } + + const ch1 = src[offset + 1]; + const ch2 = src[offset + 2]; + if (ch1 !== ch0 || ch2 !== ch0) return false; + const ch3 = src[offset + 3]; + return !ch3 || ch3 === '\n' || ch3 === '\t' || ch3 === ' '; + } + + static endOfIdentifier(src, offset) { + let ch = src[offset]; + const isVerbatim = ch === '<'; + const notOk = isVerbatim ? ['\n', '\t', ' ', '>'] : ['\n', '\t', ' ', '[', ']', '{', '}', ',']; + + while (ch && notOk.indexOf(ch) === -1) ch = src[offset += 1]; + + if (isVerbatim && ch === '>') offset += 1; + return offset; + } + + static endOfIndent(src, offset) { + let ch = src[offset]; + + while (ch === ' ') ch = src[offset += 1]; + + return offset; + } + + static endOfLine(src, offset) { + let ch = src[offset]; + + while (ch && ch !== '\n') ch = src[offset += 1]; + + return offset; + } + + static endOfWhiteSpace(src, offset) { + let ch = src[offset]; + + while (ch === '\t' || ch === ' ') ch = src[offset += 1]; + + return offset; + } + + static startOfLine(src, offset) { + let ch = src[offset - 1]; + if (ch === '\n') return offset; + + while (ch && ch !== '\n') ch = src[offset -= 1]; + + return offset + 1; + } + /** + * End of indentation, or null if the line's indent level is not more + * than `indent` + * + * @param {string} src + * @param {number} indent + * @param {number} lineStart + * @returns {?number} + */ + + + static endOfBlockIndent(src, indent, lineStart) { + const inEnd = Node.endOfIndent(src, lineStart); + + if (inEnd > lineStart + indent) { + return inEnd; + } else { + const wsEnd = Node.endOfWhiteSpace(src, inEnd); + const ch = src[wsEnd]; + if (!ch || ch === '\n') return wsEnd; + } + + return null; + } + + static atBlank(src, offset, endAsBlank) { + const ch = src[offset]; + return ch === '\n' || ch === '\t' || ch === ' ' || endAsBlank && !ch; + } + + static nextNodeIsIndented(ch, indentDiff, indicatorAsIndent) { + if (!ch || indentDiff < 0) return false; + if (indentDiff > 0) return true; + return indicatorAsIndent && ch === '-'; + } // should be at line or string end, or at next non-whitespace char + + + static normalizeOffset(src, offset) { + const ch = src[offset]; + return !ch ? offset : ch !== '\n' && src[offset - 1] === '\n' ? offset - 1 : Node.endOfWhiteSpace(src, offset); + } // fold single newline into space, multiple newlines to N - 1 newlines + // presumes src[offset] === '\n' + + + static foldNewline(src, offset, indent) { + let inCount = 0; + let error = false; + let fold = ''; + let ch = src[offset + 1]; + + while (ch === ' ' || ch === '\t' || ch === '\n') { + switch (ch) { + case '\n': + inCount = 0; + offset += 1; + fold += '\n'; + break; + + case '\t': + if (inCount <= indent) error = true; + offset = Node.endOfWhiteSpace(src, offset + 2) - 1; + break; + + case ' ': + inCount += 1; + offset += 1; + break; + } + + ch = src[offset + 1]; + } + + if (!fold) fold = ' '; + if (ch && inCount <= indent) error = true; + return { + fold, + offset, + error + }; + } + + constructor(type, props, context) { + Object.defineProperty(this, 'context', { + value: context || null, + writable: true + }); + this.error = null; + this.range = null; + this.valueRange = null; + this.props = props || []; + this.type = type; + this.value = null; + } + + getPropValue(idx, key, skipKey) { + if (!this.context) return null; + const { + src + } = this.context; + const prop = this.props[idx]; + return prop && src[prop.start] === key ? src.slice(prop.start + (skipKey ? 1 : 0), prop.end) : null; + } + + get anchor() { + for (let i = 0; i < this.props.length; ++i) { + const anchor = this.getPropValue(i, Char.ANCHOR, true); + if (anchor != null) return anchor; + } + + return null; + } + + get comment() { + const comments = []; + + for (let i = 0; i < this.props.length; ++i) { + const comment = this.getPropValue(i, Char.COMMENT, true); + if (comment != null) comments.push(comment); + } + + return comments.length > 0 ? comments.join('\n') : null; + } + + commentHasRequiredWhitespace(start) { + const { + src + } = this.context; + if (this.header && start === this.header.end) return false; + if (!this.valueRange) return false; + const { + end + } = this.valueRange; + return start !== end || Node.atBlank(src, end - 1); + } + + get hasComment() { + if (this.context) { + const { + src + } = this.context; + + for (let i = 0; i < this.props.length; ++i) { + if (src[this.props[i].start] === Char.COMMENT) return true; + } + } + + return false; + } + + get hasProps() { + if (this.context) { + const { + src + } = this.context; + + for (let i = 0; i < this.props.length; ++i) { + if (src[this.props[i].start] !== Char.COMMENT) return true; + } + } + + return false; + } + + get includesTrailingLines() { + return false; + } + + get jsonLike() { + const jsonLikeTypes = [Type.FLOW_MAP, Type.FLOW_SEQ, Type.QUOTE_DOUBLE, Type.QUOTE_SINGLE]; + return jsonLikeTypes.indexOf(this.type) !== -1; + } + + get rangeAsLinePos() { + if (!this.range || !this.context) return undefined; + const start = getLinePos(this.range.start, this.context.root); + if (!start) return undefined; + const end = getLinePos(this.range.end, this.context.root); + return { + start, + end + }; + } + + get rawValue() { + if (!this.valueRange || !this.context) return null; + const { + start, + end + } = this.valueRange; + return this.context.src.slice(start, end); + } + + get tag() { + for (let i = 0; i < this.props.length; ++i) { + const tag = this.getPropValue(i, Char.TAG, false); + + if (tag != null) { + if (tag[1] === '<') { + return { + verbatim: tag.slice(2, -1) + }; + } else { + // eslint-disable-next-line no-unused-vars + const [_, handle, suffix] = tag.match(/^(.*!)([^!]*)$/); + return { + handle, + suffix + }; + } + } + } + + return null; + } + + get valueRangeContainsNewline() { + if (!this.valueRange || !this.context) return false; + const { + start, + end + } = this.valueRange; + const { + src + } = this.context; + + for (let i = start; i < end; ++i) { + if (src[i] === '\n') return true; + } + + return false; + } + + parseComment(start) { + const { + src + } = this.context; + + if (src[start] === Char.COMMENT) { + const end = Node.endOfLine(src, start + 1); + const commentRange = new Range(start, end); + this.props.push(commentRange); + return end; + } + + return start; + } + /** + * Populates the `origStart` and `origEnd` values of all ranges for this + * node. Extended by child classes to handle descendant nodes. + * + * @param {number[]} cr - Positions of dropped CR characters + * @param {number} offset - Starting index of `cr` from the last call + * @returns {number} - The next offset, matching the one found for `origStart` + */ + + + setOrigRanges(cr, offset) { + if (this.range) offset = this.range.setOrigRange(cr, offset); + if (this.valueRange) this.valueRange.setOrigRange(cr, offset); + this.props.forEach(prop => prop.setOrigRange(cr, offset)); + return offset; + } + + toString() { + const { + context: { + src + }, + range, + value + } = this; + if (value != null) return value; + const str = src.slice(range.start, range.end); + return Node.addStringTerminator(src, range.end, str); + } + +} + +class YAMLError extends Error { + constructor(name, source, message) { + if (!message || !(source instanceof Node)) throw new Error(`Invalid arguments for new ${name}`); + super(); + this.name = name; + this.message = message; + this.source = source; + } + + makePretty() { + if (!this.source) return; + this.nodeType = this.source.type; + const cst = this.source.context && this.source.context.root; + + if (typeof this.offset === 'number') { + this.range = new Range(this.offset, this.offset + 1); + const start = cst && getLinePos(this.offset, cst); + + if (start) { + const end = { + line: start.line, + col: start.col + 1 + }; + this.linePos = { + start, + end + }; + } + + delete this.offset; + } else { + this.range = this.source.range; + this.linePos = this.source.rangeAsLinePos; + } + + if (this.linePos) { + const { + line, + col + } = this.linePos.start; + this.message += ` at line ${line}, column ${col}`; + const ctx = cst && getPrettyContext(this.linePos, cst); + if (ctx) this.message += `:\n\n${ctx}\n`; + } + + delete this.source; + } + +} +class YAMLReferenceError extends YAMLError { + constructor(source, message) { + super('YAMLReferenceError', source, message); + } + +} +class YAMLSemanticError extends YAMLError { + constructor(source, message) { + super('YAMLSemanticError', source, message); + } + +} +class YAMLSyntaxError extends YAMLError { + constructor(source, message) { + super('YAMLSyntaxError', source, message); + } + +} +class YAMLWarning extends YAMLError { + constructor(source, message) { + super('YAMLWarning', source, message); + } + +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +class PlainValue extends Node { + static endOfLine(src, start, inFlow) { + let ch = src[start]; + let offset = start; + + while (ch && ch !== '\n') { + if (inFlow && (ch === '[' || ch === ']' || ch === '{' || ch === '}' || ch === ',')) break; + const next = src[offset + 1]; + if (ch === ':' && (!next || next === '\n' || next === '\t' || next === ' ' || inFlow && next === ',')) break; + if ((ch === ' ' || ch === '\t') && next === '#') break; + offset += 1; + ch = next; + } + + return offset; + } + + get strValue() { + if (!this.valueRange || !this.context) return null; + let { + start, + end + } = this.valueRange; + const { + src + } = this.context; + let ch = src[end - 1]; + + while (start < end && (ch === '\n' || ch === '\t' || ch === ' ')) ch = src[--end - 1]; + + let str = ''; + + for (let i = start; i < end; ++i) { + const ch = src[i]; + + if (ch === '\n') { + const { + fold, + offset + } = Node.foldNewline(src, i, -1); + str += fold; + i = offset; + } else if (ch === ' ' || ch === '\t') { + // trim trailing whitespace + const wsStart = i; + let next = src[i + 1]; + + while (i < end && (next === ' ' || next === '\t')) { + i += 1; + next = src[i + 1]; + } + + if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch; + } else { + str += ch; + } + } + + const ch0 = src[start]; + + switch (ch0) { + case '\t': + { + const msg = 'Plain value cannot start with a tab character'; + const errors = [new YAMLSemanticError(this, msg)]; + return { + errors, + str + }; + } + + case '@': + case '`': + { + const msg = `Plain value cannot start with reserved character ${ch0}`; + const errors = [new YAMLSemanticError(this, msg)]; + return { + errors, + str + }; + } + + default: + return str; + } + } + + parseBlockValue(start) { + const { + indent, + inFlow, + src + } = this.context; + let offset = start; + let valueEnd = start; + + for (let ch = src[offset]; ch === '\n'; ch = src[offset]) { + if (Node.atDocumentBoundary(src, offset + 1)) break; + const end = Node.endOfBlockIndent(src, indent, offset + 1); + if (end === null || src[end] === '#') break; + + if (src[end] === '\n') { + offset = end; + } else { + valueEnd = PlainValue.endOfLine(src, end, inFlow); + offset = valueEnd; + } + } + + if (this.valueRange.isEmpty()) this.valueRange.start = start; + this.valueRange.end = valueEnd; + return valueEnd; + } + /** + * Parses a plain value from the source + * + * Accepted forms are: + * ``` + * #comment + * + * first line + * + * first line #comment + * + * first line + * block + * lines + * + * #comment + * block + * lines + * ``` + * where block lines are empty or have an indent level greater than `indent`. + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar, may be `\n` + */ + + + parse(context, start) { + this.context = context; + const { + inFlow, + src + } = context; + let offset = start; + const ch = src[offset]; + + if (ch && ch !== '#' && ch !== '\n') { + offset = PlainValue.endOfLine(src, start, inFlow); + } + + this.valueRange = new Range(start, offset); + offset = Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + + if (!this.hasComment || this.valueRange.isEmpty()) { + offset = this.parseBlockValue(offset); + } + + return offset; + } + +} + +exports.Char = Char; +exports.Node = Node; +exports.PlainValue = PlainValue; +exports.Range = Range; +exports.Type = Type; +exports.YAMLError = YAMLError; +exports.YAMLReferenceError = YAMLReferenceError; +exports.YAMLSemanticError = YAMLSemanticError; +exports.YAMLSyntaxError = YAMLSyntaxError; +exports.YAMLWarning = YAMLWarning; +exports._defineProperty = _defineProperty; +exports.defaultTagPrefix = defaultTagPrefix; +exports.defaultTags = defaultTags; diff --git a/node_modules/yaml/dist/Schema-88e323a7.js b/node_modules/yaml/dist/Schema-88e323a7.js new file mode 100644 index 00000000..5de109f3 --- /dev/null +++ b/node_modules/yaml/dist/Schema-88e323a7.js @@ -0,0 +1,525 @@ +'use strict'; + +var PlainValue = require('./PlainValue-ec8e588e.js'); +var resolveSeq = require('./resolveSeq-d03cb037.js'); +var warnings = require('./warnings-1000a372.js'); + +function createMap(schema, obj, ctx) { + const map = new resolveSeq.YAMLMap(schema); + + if (obj instanceof Map) { + for (const [key, value] of obj) map.items.push(schema.createPair(key, value, ctx)); + } else if (obj && typeof obj === 'object') { + for (const key of Object.keys(obj)) map.items.push(schema.createPair(key, obj[key], ctx)); + } + + if (typeof schema.sortMapEntries === 'function') { + map.items.sort(schema.sortMapEntries); + } + + return map; +} + +const map = { + createNode: createMap, + default: true, + nodeClass: resolveSeq.YAMLMap, + tag: 'tag:yaml.org,2002:map', + resolve: resolveSeq.resolveMap +}; + +function createSeq(schema, obj, ctx) { + const seq = new resolveSeq.YAMLSeq(schema); + + if (obj && obj[Symbol.iterator]) { + for (const it of obj) { + const v = schema.createNode(it, ctx.wrapScalars, null, ctx); + seq.items.push(v); + } + } + + return seq; +} + +const seq = { + createNode: createSeq, + default: true, + nodeClass: resolveSeq.YAMLSeq, + tag: 'tag:yaml.org,2002:seq', + resolve: resolveSeq.resolveSeq +}; + +const string = { + identify: value => typeof value === 'string', + default: true, + tag: 'tag:yaml.org,2002:str', + resolve: resolveSeq.resolveString, + + stringify(item, ctx, onComment, onChompKeep) { + ctx = Object.assign({ + actualString: true + }, ctx); + return resolveSeq.stringifyString(item, ctx, onComment, onChompKeep); + }, + + options: resolveSeq.strOptions +}; + +const failsafe = [map, seq, string]; + +/* global BigInt */ + +const intIdentify$2 = value => typeof value === 'bigint' || Number.isInteger(value); + +const intResolve$1 = (src, part, radix) => resolveSeq.intOptions.asBigInt ? BigInt(src) : parseInt(part, radix); + +function intStringify$1(node, radix, prefix) { + const { + value + } = node; + if (intIdentify$2(value) && value >= 0) return prefix + value.toString(radix); + return resolveSeq.stringifyNumber(node); +} + +const nullObj = { + identify: value => value == null, + createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null, + default: true, + tag: 'tag:yaml.org,2002:null', + test: /^(?:~|[Nn]ull|NULL)?$/, + resolve: () => null, + options: resolveSeq.nullOptions, + stringify: () => resolveSeq.nullOptions.nullStr +}; +const boolObj = { + identify: value => typeof value === 'boolean', + default: true, + tag: 'tag:yaml.org,2002:bool', + test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/, + resolve: str => str[0] === 't' || str[0] === 'T', + options: resolveSeq.boolOptions, + stringify: ({ + value + }) => value ? resolveSeq.boolOptions.trueStr : resolveSeq.boolOptions.falseStr +}; +const octObj = { + identify: value => intIdentify$2(value) && value >= 0, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'OCT', + test: /^0o([0-7]+)$/, + resolve: (str, oct) => intResolve$1(str, oct, 8), + options: resolveSeq.intOptions, + stringify: node => intStringify$1(node, 8, '0o') +}; +const intObj = { + identify: intIdentify$2, + default: true, + tag: 'tag:yaml.org,2002:int', + test: /^[-+]?[0-9]+$/, + resolve: str => intResolve$1(str, str, 10), + options: resolveSeq.intOptions, + stringify: resolveSeq.stringifyNumber +}; +const hexObj = { + identify: value => intIdentify$2(value) && value >= 0, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'HEX', + test: /^0x([0-9a-fA-F]+)$/, + resolve: (str, hex) => intResolve$1(str, hex, 16), + options: resolveSeq.intOptions, + stringify: node => intStringify$1(node, 16, '0x') +}; +const nanObj = { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^(?:[-+]?\.inf|(\.nan))$/i, + resolve: (str, nan) => nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY, + stringify: resolveSeq.stringifyNumber +}; +const expObj = { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:float', + format: 'EXP', + test: /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/, + resolve: str => parseFloat(str), + stringify: ({ + value + }) => Number(value).toExponential() +}; +const floatObj = { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/, + + resolve(str, frac1, frac2) { + const frac = frac1 || frac2; + const node = new resolveSeq.Scalar(parseFloat(str)); + if (frac && frac[frac.length - 1] === '0') node.minFractionDigits = frac.length; + return node; + }, + + stringify: resolveSeq.stringifyNumber +}; +const core = failsafe.concat([nullObj, boolObj, octObj, intObj, hexObj, nanObj, expObj, floatObj]); + +/* global BigInt */ + +const intIdentify$1 = value => typeof value === 'bigint' || Number.isInteger(value); + +const stringifyJSON = ({ + value +}) => JSON.stringify(value); + +const json = [map, seq, { + identify: value => typeof value === 'string', + default: true, + tag: 'tag:yaml.org,2002:str', + resolve: resolveSeq.resolveString, + stringify: stringifyJSON +}, { + identify: value => value == null, + createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null, + default: true, + tag: 'tag:yaml.org,2002:null', + test: /^null$/, + resolve: () => null, + stringify: stringifyJSON +}, { + identify: value => typeof value === 'boolean', + default: true, + tag: 'tag:yaml.org,2002:bool', + test: /^true|false$/, + resolve: str => str === 'true', + stringify: stringifyJSON +}, { + identify: intIdentify$1, + default: true, + tag: 'tag:yaml.org,2002:int', + test: /^-?(?:0|[1-9][0-9]*)$/, + resolve: str => resolveSeq.intOptions.asBigInt ? BigInt(str) : parseInt(str, 10), + stringify: ({ + value + }) => intIdentify$1(value) ? value.toString() : JSON.stringify(value) +}, { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/, + resolve: str => parseFloat(str), + stringify: stringifyJSON +}]; + +json.scalarFallback = str => { + throw new SyntaxError(`Unresolved plain scalar ${JSON.stringify(str)}`); +}; + +/* global BigInt */ + +const boolStringify = ({ + value +}) => value ? resolveSeq.boolOptions.trueStr : resolveSeq.boolOptions.falseStr; + +const intIdentify = value => typeof value === 'bigint' || Number.isInteger(value); + +function intResolve(sign, src, radix) { + let str = src.replace(/_/g, ''); + + if (resolveSeq.intOptions.asBigInt) { + switch (radix) { + case 2: + str = `0b${str}`; + break; + + case 8: + str = `0o${str}`; + break; + + case 16: + str = `0x${str}`; + break; + } + + const n = BigInt(str); + return sign === '-' ? BigInt(-1) * n : n; + } + + const n = parseInt(str, radix); + return sign === '-' ? -1 * n : n; +} + +function intStringify(node, radix, prefix) { + const { + value + } = node; + + if (intIdentify(value)) { + const str = value.toString(radix); + return value < 0 ? '-' + prefix + str.substr(1) : prefix + str; + } + + return resolveSeq.stringifyNumber(node); +} + +const yaml11 = failsafe.concat([{ + identify: value => value == null, + createNode: (schema, value, ctx) => ctx.wrapScalars ? new resolveSeq.Scalar(null) : null, + default: true, + tag: 'tag:yaml.org,2002:null', + test: /^(?:~|[Nn]ull|NULL)?$/, + resolve: () => null, + options: resolveSeq.nullOptions, + stringify: () => resolveSeq.nullOptions.nullStr +}, { + identify: value => typeof value === 'boolean', + default: true, + tag: 'tag:yaml.org,2002:bool', + test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/, + resolve: () => true, + options: resolveSeq.boolOptions, + stringify: boolStringify +}, { + identify: value => typeof value === 'boolean', + default: true, + tag: 'tag:yaml.org,2002:bool', + test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i, + resolve: () => false, + options: resolveSeq.boolOptions, + stringify: boolStringify +}, { + identify: intIdentify, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'BIN', + test: /^([-+]?)0b([0-1_]+)$/, + resolve: (str, sign, bin) => intResolve(sign, bin, 2), + stringify: node => intStringify(node, 2, '0b') +}, { + identify: intIdentify, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'OCT', + test: /^([-+]?)0([0-7_]+)$/, + resolve: (str, sign, oct) => intResolve(sign, oct, 8), + stringify: node => intStringify(node, 8, '0') +}, { + identify: intIdentify, + default: true, + tag: 'tag:yaml.org,2002:int', + test: /^([-+]?)([0-9][0-9_]*)$/, + resolve: (str, sign, abs) => intResolve(sign, abs, 10), + stringify: resolveSeq.stringifyNumber +}, { + identify: intIdentify, + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'HEX', + test: /^([-+]?)0x([0-9a-fA-F_]+)$/, + resolve: (str, sign, hex) => intResolve(sign, hex, 16), + stringify: node => intStringify(node, 16, '0x') +}, { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^(?:[-+]?\.inf|(\.nan))$/i, + resolve: (str, nan) => nan ? NaN : str[0] === '-' ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY, + stringify: resolveSeq.stringifyNumber +}, { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:float', + format: 'EXP', + test: /^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/, + resolve: str => parseFloat(str.replace(/_/g, '')), + stringify: ({ + value + }) => Number(value).toExponential() +}, { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:float', + test: /^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/, + + resolve(str, frac) { + const node = new resolveSeq.Scalar(parseFloat(str.replace(/_/g, ''))); + + if (frac) { + const f = frac.replace(/_/g, ''); + if (f[f.length - 1] === '0') node.minFractionDigits = f.length; + } + + return node; + }, + + stringify: resolveSeq.stringifyNumber +}], warnings.binary, warnings.omap, warnings.pairs, warnings.set, warnings.intTime, warnings.floatTime, warnings.timestamp); + +const schemas = { + core, + failsafe, + json, + yaml11 +}; +const tags = { + binary: warnings.binary, + bool: boolObj, + float: floatObj, + floatExp: expObj, + floatNaN: nanObj, + floatTime: warnings.floatTime, + int: intObj, + intHex: hexObj, + intOct: octObj, + intTime: warnings.intTime, + map, + null: nullObj, + omap: warnings.omap, + pairs: warnings.pairs, + seq, + set: warnings.set, + timestamp: warnings.timestamp +}; + +function findTagObject(value, tagName, tags) { + if (tagName) { + const match = tags.filter(t => t.tag === tagName); + const tagObj = match.find(t => !t.format) || match[0]; + if (!tagObj) throw new Error(`Tag ${tagName} not found`); + return tagObj; + } // TODO: deprecate/remove class check + + + return tags.find(t => (t.identify && t.identify(value) || t.class && value instanceof t.class) && !t.format); +} + +function createNode(value, tagName, ctx) { + if (value instanceof resolveSeq.Node) return value; + const { + defaultPrefix, + onTagObj, + prevObjects, + schema, + wrapScalars + } = ctx; + if (tagName && tagName.startsWith('!!')) tagName = defaultPrefix + tagName.slice(2); + let tagObj = findTagObject(value, tagName, schema.tags); + + if (!tagObj) { + if (typeof value.toJSON === 'function') value = value.toJSON(); + if (!value || typeof value !== 'object') return wrapScalars ? new resolveSeq.Scalar(value) : value; + tagObj = value instanceof Map ? map : value[Symbol.iterator] ? seq : map; + } + + if (onTagObj) { + onTagObj(tagObj); + delete ctx.onTagObj; + } // Detect duplicate references to the same object & use Alias nodes for all + // after first. The `obj` wrapper allows for circular references to resolve. + + + const obj = { + value: undefined, + node: undefined + }; + + if (value && typeof value === 'object' && prevObjects) { + const prev = prevObjects.get(value); + + if (prev) { + const alias = new resolveSeq.Alias(prev); // leaves source dirty; must be cleaned by caller + + ctx.aliasNodes.push(alias); // defined along with prevObjects + + return alias; + } + + obj.value = value; + prevObjects.set(value, obj); + } + + obj.node = tagObj.createNode ? tagObj.createNode(ctx.schema, value, ctx) : wrapScalars ? new resolveSeq.Scalar(value) : value; + if (tagName && obj.node instanceof resolveSeq.Node) obj.node.tag = tagName; + return obj.node; +} + +function getSchemaTags(schemas, knownTags, customTags, schemaId) { + let tags = schemas[schemaId.replace(/\W/g, '')]; // 'yaml-1.1' -> 'yaml11' + + if (!tags) { + const keys = Object.keys(schemas).map(key => JSON.stringify(key)).join(', '); + throw new Error(`Unknown schema "${schemaId}"; use one of ${keys}`); + } + + if (Array.isArray(customTags)) { + for (const tag of customTags) tags = tags.concat(tag); + } else if (typeof customTags === 'function') { + tags = customTags(tags.slice()); + } + + for (let i = 0; i < tags.length; ++i) { + const tag = tags[i]; + + if (typeof tag === 'string') { + const tagObj = knownTags[tag]; + + if (!tagObj) { + const keys = Object.keys(knownTags).map(key => JSON.stringify(key)).join(', '); + throw new Error(`Unknown custom tag "${tag}"; use one of ${keys}`); + } + + tags[i] = tagObj; + } + } + + return tags; +} + +const sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0; + +class Schema { + // TODO: remove in v2 + // TODO: remove in v2 + constructor({ + customTags, + merge, + schema, + sortMapEntries, + tags: deprecatedCustomTags + }) { + this.merge = !!merge; + this.name = schema; + this.sortMapEntries = sortMapEntries === true ? sortMapEntriesByKey : sortMapEntries || null; + if (!customTags && deprecatedCustomTags) warnings.warnOptionDeprecation('tags', 'customTags'); + this.tags = getSchemaTags(schemas, tags, customTags || deprecatedCustomTags, schema); + } + + createNode(value, wrapScalars, tagName, ctx) { + const baseCtx = { + defaultPrefix: Schema.defaultPrefix, + schema: this, + wrapScalars + }; + const createCtx = ctx ? Object.assign(ctx, baseCtx) : baseCtx; + return createNode(value, tagName, createCtx); + } + + createPair(key, value, ctx) { + if (!ctx) ctx = { + wrapScalars: true + }; + const k = this.createNode(key, ctx.wrapScalars, null, ctx); + const v = this.createNode(value, ctx.wrapScalars, null, ctx); + return new resolveSeq.Pair(k, v); + } + +} + +PlainValue._defineProperty(Schema, "defaultPrefix", PlainValue.defaultTagPrefix); + +PlainValue._defineProperty(Schema, "defaultTags", PlainValue.defaultTags); + +exports.Schema = Schema; diff --git a/node_modules/yaml/dist/index.js b/node_modules/yaml/dist/index.js new file mode 100644 index 00000000..6df1c777 --- /dev/null +++ b/node_modules/yaml/dist/index.js @@ -0,0 +1,79 @@ +'use strict'; + +var parseCst = require('./parse-cst.js'); +var Document$1 = require('./Document-9b4560a1.js'); +var Schema = require('./Schema-88e323a7.js'); +var PlainValue = require('./PlainValue-ec8e588e.js'); +var warnings = require('./warnings-1000a372.js'); +require('./resolveSeq-d03cb037.js'); + +function createNode(value, wrapScalars = true, tag) { + if (tag === undefined && typeof wrapScalars === 'string') { + tag = wrapScalars; + wrapScalars = true; + } + + const options = Object.assign({}, Document$1.Document.defaults[Document$1.defaultOptions.version], Document$1.defaultOptions); + const schema = new Schema.Schema(options); + return schema.createNode(value, wrapScalars, tag); +} + +class Document extends Document$1.Document { + constructor(options) { + super(Object.assign({}, Document$1.defaultOptions, options)); + } + +} + +function parseAllDocuments(src, options) { + const stream = []; + let prev; + + for (const cstDoc of parseCst.parse(src)) { + const doc = new Document(options); + doc.parse(cstDoc, prev); + stream.push(doc); + prev = doc; + } + + return stream; +} + +function parseDocument(src, options) { + const cst = parseCst.parse(src); + const doc = new Document(options).parse(cst[0]); + + if (cst.length > 1) { + const errMsg = 'Source contains multiple documents; please use YAML.parseAllDocuments()'; + doc.errors.unshift(new PlainValue.YAMLSemanticError(cst[1], errMsg)); + } + + return doc; +} + +function parse(src, options) { + const doc = parseDocument(src, options); + doc.warnings.forEach(warning => warnings.warn(warning)); + if (doc.errors.length > 0) throw doc.errors[0]; + return doc.toJSON(); +} + +function stringify(value, options) { + const doc = new Document(options); + doc.contents = value; + return String(doc); +} + +const YAML = { + createNode, + defaultOptions: Document$1.defaultOptions, + Document, + parse, + parseAllDocuments, + parseCST: parseCst.parse, + parseDocument, + scalarOptions: Document$1.scalarOptions, + stringify +}; + +exports.YAML = YAML; diff --git a/node_modules/yaml/dist/legacy-exports.js b/node_modules/yaml/dist/legacy-exports.js new file mode 100644 index 00000000..9a5d037b --- /dev/null +++ b/node_modules/yaml/dist/legacy-exports.js @@ -0,0 +1,16 @@ +'use strict'; + +var warnings = require('./warnings-1000a372.js'); +require('./PlainValue-ec8e588e.js'); +require('./resolveSeq-d03cb037.js'); + + + +exports.binary = warnings.binary; +exports.floatTime = warnings.floatTime; +exports.intTime = warnings.intTime; +exports.omap = warnings.omap; +exports.pairs = warnings.pairs; +exports.set = warnings.set; +exports.timestamp = warnings.timestamp; +exports.warnFileDeprecation = warnings.warnFileDeprecation; diff --git a/node_modules/yaml/dist/parse-cst.js b/node_modules/yaml/dist/parse-cst.js new file mode 100644 index 00000000..d69bedc6 --- /dev/null +++ b/node_modules/yaml/dist/parse-cst.js @@ -0,0 +1,1753 @@ +'use strict'; + +var PlainValue = require('./PlainValue-ec8e588e.js'); + +class BlankLine extends PlainValue.Node { + constructor() { + super(PlainValue.Type.BLANK_LINE); + } + /* istanbul ignore next */ + + + get includesTrailingLines() { + // This is never called from anywhere, but if it were, + // this is the value it should return. + return true; + } + /** + * Parses a blank line from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first \n character + * @returns {number} - Index of the character after this + */ + + + parse(context, start) { + this.context = context; + this.range = new PlainValue.Range(start, start + 1); + return start + 1; + } + +} + +class CollectionItem extends PlainValue.Node { + constructor(type, props) { + super(type, props); + this.node = null; + } + + get includesTrailingLines() { + return !!this.node && this.node.includesTrailingLines; + } + /** + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this + */ + + + parse(context, start) { + this.context = context; + const { + parseNode, + src + } = context; + let { + atLineStart, + lineStart + } = context; + if (!atLineStart && this.type === PlainValue.Type.SEQ_ITEM) this.error = new PlainValue.YAMLSemanticError(this, 'Sequence items must not have preceding content on the same line'); + const indent = atLineStart ? start - lineStart : context.indent; + let offset = PlainValue.Node.endOfWhiteSpace(src, start + 1); + let ch = src[offset]; + const inlineComment = ch === '#'; + const comments = []; + let blankLine = null; + + while (ch === '\n' || ch === '#') { + if (ch === '#') { + const end = PlainValue.Node.endOfLine(src, offset + 1); + comments.push(new PlainValue.Range(offset, end)); + offset = end; + } else { + atLineStart = true; + lineStart = offset + 1; + const wsEnd = PlainValue.Node.endOfWhiteSpace(src, lineStart); + + if (src[wsEnd] === '\n' && comments.length === 0) { + blankLine = new BlankLine(); + lineStart = blankLine.parse({ + src + }, lineStart); + } + + offset = PlainValue.Node.endOfIndent(src, lineStart); + } + + ch = src[offset]; + } + + if (PlainValue.Node.nextNodeIsIndented(ch, offset - (lineStart + indent), this.type !== PlainValue.Type.SEQ_ITEM)) { + this.node = parseNode({ + atLineStart, + inCollection: false, + indent, + lineStart, + parent: this + }, offset); + } else if (ch && lineStart > start + 1) { + offset = lineStart - 1; + } + + if (this.node) { + if (blankLine) { + // Only blank lines preceding non-empty nodes are captured. Note that + // this means that collection item range start indices do not always + // increase monotonically. -- eemeli/yaml#126 + const items = context.parent.items || context.parent.contents; + if (items) items.push(blankLine); + } + + if (comments.length) Array.prototype.push.apply(this.props, comments); + offset = this.node.range.end; + } else { + if (inlineComment) { + const c = comments[0]; + this.props.push(c); + offset = c.end; + } else { + offset = PlainValue.Node.endOfLine(src, start + 1); + } + } + + const end = this.node ? this.node.valueRange.end : offset; + this.valueRange = new PlainValue.Range(start, end); + return offset; + } + + setOrigRanges(cr, offset) { + offset = super.setOrigRanges(cr, offset); + return this.node ? this.node.setOrigRanges(cr, offset) : offset; + } + + toString() { + const { + context: { + src + }, + node, + range, + value + } = this; + if (value != null) return value; + const str = node ? src.slice(range.start, node.range.start) + String(node) : src.slice(range.start, range.end); + return PlainValue.Node.addStringTerminator(src, range.end, str); + } + +} + +class Comment extends PlainValue.Node { + constructor() { + super(PlainValue.Type.COMMENT); + } + /** + * Parses a comment line from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar + */ + + + parse(context, start) { + this.context = context; + const offset = this.parseComment(start); + this.range = new PlainValue.Range(start, offset); + return offset; + } + +} + +function grabCollectionEndComments(node) { + let cnode = node; + + while (cnode instanceof CollectionItem) cnode = cnode.node; + + if (!(cnode instanceof Collection)) return null; + const len = cnode.items.length; + let ci = -1; + + for (let i = len - 1; i >= 0; --i) { + const n = cnode.items[i]; + + if (n.type === PlainValue.Type.COMMENT) { + // Keep sufficiently indented comments with preceding node + const { + indent, + lineStart + } = n.context; + if (indent > 0 && n.range.start >= lineStart + indent) break; + ci = i; + } else if (n.type === PlainValue.Type.BLANK_LINE) ci = i;else break; + } + + if (ci === -1) return null; + const ca = cnode.items.splice(ci, len - ci); + const prevEnd = ca[0].range.start; + + while (true) { + cnode.range.end = prevEnd; + if (cnode.valueRange && cnode.valueRange.end > prevEnd) cnode.valueRange.end = prevEnd; + if (cnode === node) break; + cnode = cnode.context.parent; + } + + return ca; +} +class Collection extends PlainValue.Node { + static nextContentHasIndent(src, offset, indent) { + const lineStart = PlainValue.Node.endOfLine(src, offset) + 1; + offset = PlainValue.Node.endOfWhiteSpace(src, lineStart); + const ch = src[offset]; + if (!ch) return false; + if (offset >= lineStart + indent) return true; + if (ch !== '#' && ch !== '\n') return false; + return Collection.nextContentHasIndent(src, offset, indent); + } + + constructor(firstItem) { + super(firstItem.type === PlainValue.Type.SEQ_ITEM ? PlainValue.Type.SEQ : PlainValue.Type.MAP); + + for (let i = firstItem.props.length - 1; i >= 0; --i) { + if (firstItem.props[i].start < firstItem.context.lineStart) { + // props on previous line are assumed by the collection + this.props = firstItem.props.slice(0, i + 1); + firstItem.props = firstItem.props.slice(i + 1); + const itemRange = firstItem.props[0] || firstItem.valueRange; + firstItem.range.start = itemRange.start; + break; + } + } + + this.items = [firstItem]; + const ec = grabCollectionEndComments(firstItem); + if (ec) Array.prototype.push.apply(this.items, ec); + } + + get includesTrailingLines() { + return this.items.length > 0; + } + /** + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this + */ + + + parse(context, start) { + this.context = context; + const { + parseNode, + src + } = context; // It's easier to recalculate lineStart here rather than tracking down the + // last context from which to read it -- eemeli/yaml#2 + + let lineStart = PlainValue.Node.startOfLine(src, start); + const firstItem = this.items[0]; // First-item context needs to be correct for later comment handling + // -- eemeli/yaml#17 + + firstItem.context.parent = this; + this.valueRange = PlainValue.Range.copy(firstItem.valueRange); + const indent = firstItem.range.start - firstItem.context.lineStart; + let offset = start; + offset = PlainValue.Node.normalizeOffset(src, offset); + let ch = src[offset]; + let atLineStart = PlainValue.Node.endOfWhiteSpace(src, lineStart) === offset; + let prevIncludesTrailingLines = false; + + while (ch) { + while (ch === '\n' || ch === '#') { + if (atLineStart && ch === '\n' && !prevIncludesTrailingLines) { + const blankLine = new BlankLine(); + offset = blankLine.parse({ + src + }, offset); + this.valueRange.end = offset; + + if (offset >= src.length) { + ch = null; + break; + } + + this.items.push(blankLine); + offset -= 1; // blankLine.parse() consumes terminal newline + } else if (ch === '#') { + if (offset < lineStart + indent && !Collection.nextContentHasIndent(src, offset, indent)) { + return offset; + } + + const comment = new Comment(); + offset = comment.parse({ + indent, + lineStart, + src + }, offset); + this.items.push(comment); + this.valueRange.end = offset; + + if (offset >= src.length) { + ch = null; + break; + } + } + + lineStart = offset + 1; + offset = PlainValue.Node.endOfIndent(src, lineStart); + + if (PlainValue.Node.atBlank(src, offset)) { + const wsEnd = PlainValue.Node.endOfWhiteSpace(src, offset); + const next = src[wsEnd]; + + if (!next || next === '\n' || next === '#') { + offset = wsEnd; + } + } + + ch = src[offset]; + atLineStart = true; + } + + if (!ch) { + break; + } + + if (offset !== lineStart + indent && (atLineStart || ch !== ':')) { + if (offset < lineStart + indent) { + if (lineStart > start) offset = lineStart; + break; + } else if (!this.error) { + const msg = 'All collection items must start at the same column'; + this.error = new PlainValue.YAMLSyntaxError(this, msg); + } + } + + if (firstItem.type === PlainValue.Type.SEQ_ITEM) { + if (ch !== '-') { + if (lineStart > start) offset = lineStart; + break; + } + } else if (ch === '-' && !this.error) { + // map key may start with -, as long as it's followed by a non-whitespace char + const next = src[offset + 1]; + + if (!next || next === '\n' || next === '\t' || next === ' ') { + const msg = 'A collection cannot be both a mapping and a sequence'; + this.error = new PlainValue.YAMLSyntaxError(this, msg); + } + } + + const node = parseNode({ + atLineStart, + inCollection: true, + indent, + lineStart, + parent: this + }, offset); + if (!node) return offset; // at next document start + + this.items.push(node); + this.valueRange.end = node.valueRange.end; + offset = PlainValue.Node.normalizeOffset(src, node.range.end); + ch = src[offset]; + atLineStart = false; + prevIncludesTrailingLines = node.includesTrailingLines; // Need to reset lineStart and atLineStart here if preceding node's range + // has advanced to check the current line's indentation level + // -- eemeli/yaml#10 & eemeli/yaml#38 + + if (ch) { + let ls = offset - 1; + let prev = src[ls]; + + while (prev === ' ' || prev === '\t') prev = src[--ls]; + + if (prev === '\n') { + lineStart = ls + 1; + atLineStart = true; + } + } + + const ec = grabCollectionEndComments(node); + if (ec) Array.prototype.push.apply(this.items, ec); + } + + return offset; + } + + setOrigRanges(cr, offset) { + offset = super.setOrigRanges(cr, offset); + this.items.forEach(node => { + offset = node.setOrigRanges(cr, offset); + }); + return offset; + } + + toString() { + const { + context: { + src + }, + items, + range, + value + } = this; + if (value != null) return value; + let str = src.slice(range.start, items[0].range.start) + String(items[0]); + + for (let i = 1; i < items.length; ++i) { + const item = items[i]; + const { + atLineStart, + indent + } = item.context; + if (atLineStart) for (let i = 0; i < indent; ++i) str += ' '; + str += String(item); + } + + return PlainValue.Node.addStringTerminator(src, range.end, str); + } + +} + +class Directive extends PlainValue.Node { + constructor() { + super(PlainValue.Type.DIRECTIVE); + this.name = null; + } + + get parameters() { + const raw = this.rawValue; + return raw ? raw.trim().split(/[ \t]+/) : []; + } + + parseName(start) { + const { + src + } = this.context; + let offset = start; + let ch = src[offset]; + + while (ch && ch !== '\n' && ch !== '\t' && ch !== ' ') ch = src[offset += 1]; + + this.name = src.slice(start, offset); + return offset; + } + + parseParameters(start) { + const { + src + } = this.context; + let offset = start; + let ch = src[offset]; + + while (ch && ch !== '\n' && ch !== '#') ch = src[offset += 1]; + + this.valueRange = new PlainValue.Range(start, offset); + return offset; + } + + parse(context, start) { + this.context = context; + let offset = this.parseName(start + 1); + offset = this.parseParameters(offset); + offset = this.parseComment(offset); + this.range = new PlainValue.Range(start, offset); + return offset; + } + +} + +class Document extends PlainValue.Node { + static startCommentOrEndBlankLine(src, start) { + const offset = PlainValue.Node.endOfWhiteSpace(src, start); + const ch = src[offset]; + return ch === '#' || ch === '\n' ? offset : start; + } + + constructor() { + super(PlainValue.Type.DOCUMENT); + this.directives = null; + this.contents = null; + this.directivesEndMarker = null; + this.documentEndMarker = null; + } + + parseDirectives(start) { + const { + src + } = this.context; + this.directives = []; + let atLineStart = true; + let hasDirectives = false; + let offset = start; + + while (!PlainValue.Node.atDocumentBoundary(src, offset, PlainValue.Char.DIRECTIVES_END)) { + offset = Document.startCommentOrEndBlankLine(src, offset); + + switch (src[offset]) { + case '\n': + if (atLineStart) { + const blankLine = new BlankLine(); + offset = blankLine.parse({ + src + }, offset); + + if (offset < src.length) { + this.directives.push(blankLine); + } + } else { + offset += 1; + atLineStart = true; + } + + break; + + case '#': + { + const comment = new Comment(); + offset = comment.parse({ + src + }, offset); + this.directives.push(comment); + atLineStart = false; + } + break; + + case '%': + { + const directive = new Directive(); + offset = directive.parse({ + parent: this, + src + }, offset); + this.directives.push(directive); + hasDirectives = true; + atLineStart = false; + } + break; + + default: + if (hasDirectives) { + this.error = new PlainValue.YAMLSemanticError(this, 'Missing directives-end indicator line'); + } else if (this.directives.length > 0) { + this.contents = this.directives; + this.directives = []; + } + + return offset; + } + } + + if (src[offset]) { + this.directivesEndMarker = new PlainValue.Range(offset, offset + 3); + return offset + 3; + } + + if (hasDirectives) { + this.error = new PlainValue.YAMLSemanticError(this, 'Missing directives-end indicator line'); + } else if (this.directives.length > 0) { + this.contents = this.directives; + this.directives = []; + } + + return offset; + } + + parseContents(start) { + const { + parseNode, + src + } = this.context; + if (!this.contents) this.contents = []; + let lineStart = start; + + while (src[lineStart - 1] === '-') lineStart -= 1; + + let offset = PlainValue.Node.endOfWhiteSpace(src, start); + let atLineStart = lineStart === start; + this.valueRange = new PlainValue.Range(offset); + + while (!PlainValue.Node.atDocumentBoundary(src, offset, PlainValue.Char.DOCUMENT_END)) { + switch (src[offset]) { + case '\n': + if (atLineStart) { + const blankLine = new BlankLine(); + offset = blankLine.parse({ + src + }, offset); + + if (offset < src.length) { + this.contents.push(blankLine); + } + } else { + offset += 1; + atLineStart = true; + } + + lineStart = offset; + break; + + case '#': + { + const comment = new Comment(); + offset = comment.parse({ + src + }, offset); + this.contents.push(comment); + atLineStart = false; + } + break; + + default: + { + const iEnd = PlainValue.Node.endOfIndent(src, offset); + const context = { + atLineStart, + indent: -1, + inFlow: false, + inCollection: false, + lineStart, + parent: this + }; + const node = parseNode(context, iEnd); + if (!node) return this.valueRange.end = iEnd; // at next document start + + this.contents.push(node); + offset = node.range.end; + atLineStart = false; + const ec = grabCollectionEndComments(node); + if (ec) Array.prototype.push.apply(this.contents, ec); + } + } + + offset = Document.startCommentOrEndBlankLine(src, offset); + } + + this.valueRange.end = offset; + + if (src[offset]) { + this.documentEndMarker = new PlainValue.Range(offset, offset + 3); + offset += 3; + + if (src[offset]) { + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + + if (src[offset] === '#') { + const comment = new Comment(); + offset = comment.parse({ + src + }, offset); + this.contents.push(comment); + } + + switch (src[offset]) { + case '\n': + offset += 1; + break; + + case undefined: + break; + + default: + this.error = new PlainValue.YAMLSyntaxError(this, 'Document end marker line cannot have a non-comment suffix'); + } + } + } + + return offset; + } + /** + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this + */ + + + parse(context, start) { + context.root = this; + this.context = context; + const { + src + } = context; + let offset = src.charCodeAt(start) === 0xfeff ? start + 1 : start; // skip BOM + + offset = this.parseDirectives(offset); + offset = this.parseContents(offset); + return offset; + } + + setOrigRanges(cr, offset) { + offset = super.setOrigRanges(cr, offset); + this.directives.forEach(node => { + offset = node.setOrigRanges(cr, offset); + }); + if (this.directivesEndMarker) offset = this.directivesEndMarker.setOrigRange(cr, offset); + this.contents.forEach(node => { + offset = node.setOrigRanges(cr, offset); + }); + if (this.documentEndMarker) offset = this.documentEndMarker.setOrigRange(cr, offset); + return offset; + } + + toString() { + const { + contents, + directives, + value + } = this; + if (value != null) return value; + let str = directives.join(''); + + if (contents.length > 0) { + if (directives.length > 0 || contents[0].type === PlainValue.Type.COMMENT) str += '---\n'; + str += contents.join(''); + } + + if (str[str.length - 1] !== '\n') str += '\n'; + return str; + } + +} + +class Alias extends PlainValue.Node { + /** + * Parses an *alias from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar + */ + parse(context, start) { + this.context = context; + const { + src + } = context; + let offset = PlainValue.Node.endOfIdentifier(src, start + 1); + this.valueRange = new PlainValue.Range(start + 1, offset); + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + return offset; + } + +} + +const Chomp = { + CLIP: 'CLIP', + KEEP: 'KEEP', + STRIP: 'STRIP' +}; +class BlockValue extends PlainValue.Node { + constructor(type, props) { + super(type, props); + this.blockIndent = null; + this.chomping = Chomp.CLIP; + this.header = null; + } + + get includesTrailingLines() { + return this.chomping === Chomp.KEEP; + } + + get strValue() { + if (!this.valueRange || !this.context) return null; + let { + start, + end + } = this.valueRange; + const { + indent, + src + } = this.context; + if (this.valueRange.isEmpty()) return ''; + let lastNewLine = null; + let ch = src[end - 1]; + + while (ch === '\n' || ch === '\t' || ch === ' ') { + end -= 1; + + if (end <= start) { + if (this.chomping === Chomp.KEEP) break;else return ''; // probably never happens + } + + if (ch === '\n') lastNewLine = end; + ch = src[end - 1]; + } + + let keepStart = end + 1; + + if (lastNewLine) { + if (this.chomping === Chomp.KEEP) { + keepStart = lastNewLine; + end = this.valueRange.end; + } else { + end = lastNewLine; + } + } + + const bi = indent + this.blockIndent; + const folded = this.type === PlainValue.Type.BLOCK_FOLDED; + let atStart = true; + let str = ''; + let sep = ''; + let prevMoreIndented = false; + + for (let i = start; i < end; ++i) { + for (let j = 0; j < bi; ++j) { + if (src[i] !== ' ') break; + i += 1; + } + + const ch = src[i]; + + if (ch === '\n') { + if (sep === '\n') str += '\n';else sep = '\n'; + } else { + const lineEnd = PlainValue.Node.endOfLine(src, i); + const line = src.slice(i, lineEnd); + i = lineEnd; + + if (folded && (ch === ' ' || ch === '\t') && i < keepStart) { + if (sep === ' ') sep = '\n';else if (!prevMoreIndented && !atStart && sep === '\n') sep = '\n\n'; + str += sep + line; //+ ((lineEnd < end && src[lineEnd]) || '') + + sep = lineEnd < end && src[lineEnd] || ''; + prevMoreIndented = true; + } else { + str += sep + line; + sep = folded && i < keepStart ? ' ' : '\n'; + prevMoreIndented = false; + } + + if (atStart && line !== '') atStart = false; + } + } + + return this.chomping === Chomp.STRIP ? str : str + '\n'; + } + + parseBlockHeader(start) { + const { + src + } = this.context; + let offset = start + 1; + let bi = ''; + + while (true) { + const ch = src[offset]; + + switch (ch) { + case '-': + this.chomping = Chomp.STRIP; + break; + + case '+': + this.chomping = Chomp.KEEP; + break; + + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + bi += ch; + break; + + default: + this.blockIndent = Number(bi) || null; + this.header = new PlainValue.Range(start, offset); + return offset; + } + + offset += 1; + } + } + + parseBlockValue(start) { + const { + indent, + src + } = this.context; + const explicit = !!this.blockIndent; + let offset = start; + let valueEnd = start; + let minBlockIndent = 1; + + for (let ch = src[offset]; ch === '\n'; ch = src[offset]) { + offset += 1; + if (PlainValue.Node.atDocumentBoundary(src, offset)) break; + const end = PlainValue.Node.endOfBlockIndent(src, indent, offset); // should not include tab? + + if (end === null) break; + const ch = src[end]; + const lineIndent = end - (offset + indent); + + if (!this.blockIndent) { + // no explicit block indent, none yet detected + if (src[end] !== '\n') { + // first line with non-whitespace content + if (lineIndent < minBlockIndent) { + const msg = 'Block scalars with more-indented leading empty lines must use an explicit indentation indicator'; + this.error = new PlainValue.YAMLSemanticError(this, msg); + } + + this.blockIndent = lineIndent; + } else if (lineIndent > minBlockIndent) { + // empty line with more whitespace + minBlockIndent = lineIndent; + } + } else if (ch && ch !== '\n' && lineIndent < this.blockIndent) { + if (src[end] === '#') break; + + if (!this.error) { + const src = explicit ? 'explicit indentation indicator' : 'first line'; + const msg = `Block scalars must not be less indented than their ${src}`; + this.error = new PlainValue.YAMLSemanticError(this, msg); + } + } + + if (src[end] === '\n') { + offset = end; + } else { + offset = valueEnd = PlainValue.Node.endOfLine(src, end); + } + } + + if (this.chomping !== Chomp.KEEP) { + offset = src[valueEnd] ? valueEnd + 1 : valueEnd; + } + + this.valueRange = new PlainValue.Range(start + 1, offset); + return offset; + } + /** + * Parses a block value from the source + * + * Accepted forms are: + * ``` + * BS + * block + * lines + * + * BS #comment + * block + * lines + * ``` + * where the block style BS matches the regexp `[|>][-+1-9]*` and block lines + * are empty or have an indent level greater than `indent`. + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this block + */ + + + parse(context, start) { + this.context = context; + const { + src + } = context; + let offset = this.parseBlockHeader(start); + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + offset = this.parseBlockValue(offset); + return offset; + } + + setOrigRanges(cr, offset) { + offset = super.setOrigRanges(cr, offset); + return this.header ? this.header.setOrigRange(cr, offset) : offset; + } + +} + +class FlowCollection extends PlainValue.Node { + constructor(type, props) { + super(type, props); + this.items = null; + } + + prevNodeIsJsonLike(idx = this.items.length) { + const node = this.items[idx - 1]; + return !!node && (node.jsonLike || node.type === PlainValue.Type.COMMENT && this.prevNodeIsJsonLike(idx - 1)); + } + /** + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this + */ + + + parse(context, start) { + this.context = context; + const { + parseNode, + src + } = context; + let { + indent, + lineStart + } = context; + let char = src[start]; // { or [ + + this.items = [{ + char, + offset: start + }]; + let offset = PlainValue.Node.endOfWhiteSpace(src, start + 1); + char = src[offset]; + + while (char && char !== ']' && char !== '}') { + switch (char) { + case '\n': + { + lineStart = offset + 1; + const wsEnd = PlainValue.Node.endOfWhiteSpace(src, lineStart); + + if (src[wsEnd] === '\n') { + const blankLine = new BlankLine(); + lineStart = blankLine.parse({ + src + }, lineStart); + this.items.push(blankLine); + } + + offset = PlainValue.Node.endOfIndent(src, lineStart); + + if (offset <= lineStart + indent) { + char = src[offset]; + + if (offset < lineStart + indent || char !== ']' && char !== '}') { + const msg = 'Insufficient indentation in flow collection'; + this.error = new PlainValue.YAMLSemanticError(this, msg); + } + } + } + break; + + case ',': + { + this.items.push({ + char, + offset + }); + offset += 1; + } + break; + + case '#': + { + const comment = new Comment(); + offset = comment.parse({ + src + }, offset); + this.items.push(comment); + } + break; + + case '?': + case ':': + { + const next = src[offset + 1]; + + if (next === '\n' || next === '\t' || next === ' ' || next === ',' || // in-flow : after JSON-like key does not need to be followed by whitespace + char === ':' && this.prevNodeIsJsonLike()) { + this.items.push({ + char, + offset + }); + offset += 1; + break; + } + } + // fallthrough + + default: + { + const node = parseNode({ + atLineStart: false, + inCollection: false, + inFlow: true, + indent: -1, + lineStart, + parent: this + }, offset); + + if (!node) { + // at next document start + this.valueRange = new PlainValue.Range(start, offset); + return offset; + } + + this.items.push(node); + offset = PlainValue.Node.normalizeOffset(src, node.range.end); + } + } + + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + char = src[offset]; + } + + this.valueRange = new PlainValue.Range(start, offset + 1); + + if (char) { + this.items.push({ + char, + offset + }); + offset = PlainValue.Node.endOfWhiteSpace(src, offset + 1); + offset = this.parseComment(offset); + } + + return offset; + } + + setOrigRanges(cr, offset) { + offset = super.setOrigRanges(cr, offset); + this.items.forEach(node => { + if (node instanceof PlainValue.Node) { + offset = node.setOrigRanges(cr, offset); + } else if (cr.length === 0) { + node.origOffset = node.offset; + } else { + let i = offset; + + while (i < cr.length) { + if (cr[i] > node.offset) break;else ++i; + } + + node.origOffset = node.offset + i; + offset = i; + } + }); + return offset; + } + + toString() { + const { + context: { + src + }, + items, + range, + value + } = this; + if (value != null) return value; + const nodes = items.filter(item => item instanceof PlainValue.Node); + let str = ''; + let prevEnd = range.start; + nodes.forEach(node => { + const prefix = src.slice(prevEnd, node.range.start); + prevEnd = node.range.end; + str += prefix + String(node); + + if (str[str.length - 1] === '\n' && src[prevEnd - 1] !== '\n' && src[prevEnd] === '\n') { + // Comment range does not include the terminal newline, but its + // stringified value does. Without this fix, newlines at comment ends + // get duplicated. + prevEnd += 1; + } + }); + str += src.slice(prevEnd, range.end); + return PlainValue.Node.addStringTerminator(src, range.end, str); + } + +} + +class QuoteDouble extends PlainValue.Node { + static endOfQuote(src, offset) { + let ch = src[offset]; + + while (ch && ch !== '"') { + offset += ch === '\\' ? 2 : 1; + ch = src[offset]; + } + + return offset + 1; + } + /** + * @returns {string | { str: string, errors: YAMLSyntaxError[] }} + */ + + + get strValue() { + if (!this.valueRange || !this.context) return null; + const errors = []; + const { + start, + end + } = this.valueRange; + const { + indent, + src + } = this.context; + if (src[end - 1] !== '"') errors.push(new PlainValue.YAMLSyntaxError(this, 'Missing closing "quote')); // Using String#replace is too painful with escaped newlines preceded by + // escaped backslashes; also, this should be faster. + + let str = ''; + + for (let i = start + 1; i < end - 1; ++i) { + const ch = src[i]; + + if (ch === '\n') { + if (PlainValue.Node.atDocumentBoundary(src, i + 1)) errors.push(new PlainValue.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values')); + const { + fold, + offset, + error + } = PlainValue.Node.foldNewline(src, i, indent); + str += fold; + i = offset; + if (error) errors.push(new PlainValue.YAMLSemanticError(this, 'Multi-line double-quoted string needs to be sufficiently indented')); + } else if (ch === '\\') { + i += 1; + + switch (src[i]) { + case '0': + str += '\0'; + break; + // null character + + case 'a': + str += '\x07'; + break; + // bell character + + case 'b': + str += '\b'; + break; + // backspace + + case 'e': + str += '\x1b'; + break; + // escape character + + case 'f': + str += '\f'; + break; + // form feed + + case 'n': + str += '\n'; + break; + // line feed + + case 'r': + str += '\r'; + break; + // carriage return + + case 't': + str += '\t'; + break; + // horizontal tab + + case 'v': + str += '\v'; + break; + // vertical tab + + case 'N': + str += '\u0085'; + break; + // Unicode next line + + case '_': + str += '\u00a0'; + break; + // Unicode non-breaking space + + case 'L': + str += '\u2028'; + break; + // Unicode line separator + + case 'P': + str += '\u2029'; + break; + // Unicode paragraph separator + + case ' ': + str += ' '; + break; + + case '"': + str += '"'; + break; + + case '/': + str += '/'; + break; + + case '\\': + str += '\\'; + break; + + case '\t': + str += '\t'; + break; + + case 'x': + str += this.parseCharCode(i + 1, 2, errors); + i += 2; + break; + + case 'u': + str += this.parseCharCode(i + 1, 4, errors); + i += 4; + break; + + case 'U': + str += this.parseCharCode(i + 1, 8, errors); + i += 8; + break; + + case '\n': + // skip escaped newlines, but still trim the following line + while (src[i + 1] === ' ' || src[i + 1] === '\t') i += 1; + + break; + + default: + errors.push(new PlainValue.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(i - 1, 2)}`)); + str += '\\' + src[i]; + } + } else if (ch === ' ' || ch === '\t') { + // trim trailing whitespace + const wsStart = i; + let next = src[i + 1]; + + while (next === ' ' || next === '\t') { + i += 1; + next = src[i + 1]; + } + + if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch; + } else { + str += ch; + } + } + + return errors.length > 0 ? { + errors, + str + } : str; + } + + parseCharCode(offset, length, errors) { + const { + src + } = this.context; + const cc = src.substr(offset, length); + const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc); + const code = ok ? parseInt(cc, 16) : NaN; + + if (isNaN(code)) { + errors.push(new PlainValue.YAMLSyntaxError(this, `Invalid escape sequence ${src.substr(offset - 2, length + 2)}`)); + return src.substr(offset - 2, length + 2); + } + + return String.fromCodePoint(code); + } + /** + * Parses a "double quoted" value from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar + */ + + + parse(context, start) { + this.context = context; + const { + src + } = context; + let offset = QuoteDouble.endOfQuote(src, start + 1); + this.valueRange = new PlainValue.Range(start, offset); + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + return offset; + } + +} + +class QuoteSingle extends PlainValue.Node { + static endOfQuote(src, offset) { + let ch = src[offset]; + + while (ch) { + if (ch === "'") { + if (src[offset + 1] !== "'") break; + ch = src[offset += 2]; + } else { + ch = src[offset += 1]; + } + } + + return offset + 1; + } + /** + * @returns {string | { str: string, errors: YAMLSyntaxError[] }} + */ + + + get strValue() { + if (!this.valueRange || !this.context) return null; + const errors = []; + const { + start, + end + } = this.valueRange; + const { + indent, + src + } = this.context; + if (src[end - 1] !== "'") errors.push(new PlainValue.YAMLSyntaxError(this, "Missing closing 'quote")); + let str = ''; + + for (let i = start + 1; i < end - 1; ++i) { + const ch = src[i]; + + if (ch === '\n') { + if (PlainValue.Node.atDocumentBoundary(src, i + 1)) errors.push(new PlainValue.YAMLSemanticError(this, 'Document boundary indicators are not allowed within string values')); + const { + fold, + offset, + error + } = PlainValue.Node.foldNewline(src, i, indent); + str += fold; + i = offset; + if (error) errors.push(new PlainValue.YAMLSemanticError(this, 'Multi-line single-quoted string needs to be sufficiently indented')); + } else if (ch === "'") { + str += ch; + i += 1; + if (src[i] !== "'") errors.push(new PlainValue.YAMLSyntaxError(this, 'Unescaped single quote? This should not happen.')); + } else if (ch === ' ' || ch === '\t') { + // trim trailing whitespace + const wsStart = i; + let next = src[i + 1]; + + while (next === ' ' || next === '\t') { + i += 1; + next = src[i + 1]; + } + + if (next !== '\n') str += i > wsStart ? src.slice(wsStart, i + 1) : ch; + } else { + str += ch; + } + } + + return errors.length > 0 ? { + errors, + str + } : str; + } + /** + * Parses a 'single quoted' value from the source + * + * @param {ParseContext} context + * @param {number} start - Index of first character + * @returns {number} - Index of the character after this scalar + */ + + + parse(context, start) { + this.context = context; + const { + src + } = context; + let offset = QuoteSingle.endOfQuote(src, start + 1); + this.valueRange = new PlainValue.Range(start, offset); + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + offset = this.parseComment(offset); + return offset; + } + +} + +function createNewNode(type, props) { + switch (type) { + case PlainValue.Type.ALIAS: + return new Alias(type, props); + + case PlainValue.Type.BLOCK_FOLDED: + case PlainValue.Type.BLOCK_LITERAL: + return new BlockValue(type, props); + + case PlainValue.Type.FLOW_MAP: + case PlainValue.Type.FLOW_SEQ: + return new FlowCollection(type, props); + + case PlainValue.Type.MAP_KEY: + case PlainValue.Type.MAP_VALUE: + case PlainValue.Type.SEQ_ITEM: + return new CollectionItem(type, props); + + case PlainValue.Type.COMMENT: + case PlainValue.Type.PLAIN: + return new PlainValue.PlainValue(type, props); + + case PlainValue.Type.QUOTE_DOUBLE: + return new QuoteDouble(type, props); + + case PlainValue.Type.QUOTE_SINGLE: + return new QuoteSingle(type, props); + + /* istanbul ignore next */ + + default: + return null; + // should never happen + } +} +/** + * @param {boolean} atLineStart - Node starts at beginning of line + * @param {boolean} inFlow - true if currently in a flow context + * @param {boolean} inCollection - true if currently in a collection context + * @param {number} indent - Current level of indentation + * @param {number} lineStart - Start of the current line + * @param {Node} parent - The parent of the node + * @param {string} src - Source of the YAML document + */ + + +class ParseContext { + static parseType(src, offset, inFlow) { + switch (src[offset]) { + case '*': + return PlainValue.Type.ALIAS; + + case '>': + return PlainValue.Type.BLOCK_FOLDED; + + case '|': + return PlainValue.Type.BLOCK_LITERAL; + + case '{': + return PlainValue.Type.FLOW_MAP; + + case '[': + return PlainValue.Type.FLOW_SEQ; + + case '?': + return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.MAP_KEY : PlainValue.Type.PLAIN; + + case ':': + return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.MAP_VALUE : PlainValue.Type.PLAIN; + + case '-': + return !inFlow && PlainValue.Node.atBlank(src, offset + 1, true) ? PlainValue.Type.SEQ_ITEM : PlainValue.Type.PLAIN; + + case '"': + return PlainValue.Type.QUOTE_DOUBLE; + + case "'": + return PlainValue.Type.QUOTE_SINGLE; + + default: + return PlainValue.Type.PLAIN; + } + } + + constructor(orig = {}, { + atLineStart, + inCollection, + inFlow, + indent, + lineStart, + parent + } = {}) { + PlainValue._defineProperty(this, "parseNode", (overlay, start) => { + if (PlainValue.Node.atDocumentBoundary(this.src, start)) return null; + const context = new ParseContext(this, overlay); + const { + props, + type, + valueStart + } = context.parseProps(start); + const node = createNewNode(type, props); + let offset = node.parse(context, valueStart); + node.range = new PlainValue.Range(start, offset); + /* istanbul ignore if */ + + if (offset <= start) { + // This should never happen, but if it does, let's make sure to at least + // step one character forward to avoid a busy loop. + node.error = new Error(`Node#parse consumed no characters`); + node.error.parseEnd = offset; + node.error.source = node; + node.range.end = start + 1; + } + + if (context.nodeStartsCollection(node)) { + if (!node.error && !context.atLineStart && context.parent.type === PlainValue.Type.DOCUMENT) { + node.error = new PlainValue.YAMLSyntaxError(node, 'Block collection must not have preceding content here (e.g. directives-end indicator)'); + } + + const collection = new Collection(node); + offset = collection.parse(new ParseContext(context), offset); + collection.range = new PlainValue.Range(start, offset); + return collection; + } + + return node; + }); + + this.atLineStart = atLineStart != null ? atLineStart : orig.atLineStart || false; + this.inCollection = inCollection != null ? inCollection : orig.inCollection || false; + this.inFlow = inFlow != null ? inFlow : orig.inFlow || false; + this.indent = indent != null ? indent : orig.indent; + this.lineStart = lineStart != null ? lineStart : orig.lineStart; + this.parent = parent != null ? parent : orig.parent || {}; + this.root = orig.root; + this.src = orig.src; + } + + nodeStartsCollection(node) { + const { + inCollection, + inFlow, + src + } = this; + if (inCollection || inFlow) return false; + if (node instanceof CollectionItem) return true; // check for implicit key + + let offset = node.range.end; + if (src[offset] === '\n' || src[offset - 1] === '\n') return false; + offset = PlainValue.Node.endOfWhiteSpace(src, offset); + return src[offset] === ':'; + } // Anchor and tag are before type, which determines the node implementation + // class; hence this intermediate step. + + + parseProps(offset) { + const { + inFlow, + parent, + src + } = this; + const props = []; + let lineHasProps = false; + offset = this.atLineStart ? PlainValue.Node.endOfIndent(src, offset) : PlainValue.Node.endOfWhiteSpace(src, offset); + let ch = src[offset]; + + while (ch === PlainValue.Char.ANCHOR || ch === PlainValue.Char.COMMENT || ch === PlainValue.Char.TAG || ch === '\n') { + if (ch === '\n') { + let inEnd = offset; + let lineStart; + + do { + lineStart = inEnd + 1; + inEnd = PlainValue.Node.endOfIndent(src, lineStart); + } while (src[inEnd] === '\n'); + + const indentDiff = inEnd - (lineStart + this.indent); + const noIndicatorAsIndent = parent.type === PlainValue.Type.SEQ_ITEM && parent.context.atLineStart; + if (src[inEnd] !== '#' && !PlainValue.Node.nextNodeIsIndented(src[inEnd], indentDiff, !noIndicatorAsIndent)) break; + this.atLineStart = true; + this.lineStart = lineStart; + lineHasProps = false; + offset = inEnd; + } else if (ch === PlainValue.Char.COMMENT) { + const end = PlainValue.Node.endOfLine(src, offset + 1); + props.push(new PlainValue.Range(offset, end)); + offset = end; + } else { + let end = PlainValue.Node.endOfIdentifier(src, offset + 1); + + if (ch === PlainValue.Char.TAG && src[end] === ',' && /^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(src.slice(offset + 1, end + 13))) { + // Let's presume we're dealing with a YAML 1.0 domain tag here, rather + // than an empty but 'foo.bar' private-tagged node in a flow collection + // followed without whitespace by a plain string starting with a year + // or date divided by something. + end = PlainValue.Node.endOfIdentifier(src, end + 5); + } + + props.push(new PlainValue.Range(offset, end)); + lineHasProps = true; + offset = PlainValue.Node.endOfWhiteSpace(src, end); + } + + ch = src[offset]; + } // '- &a : b' has an anchor on an empty node + + + if (lineHasProps && ch === ':' && PlainValue.Node.atBlank(src, offset + 1, true)) offset -= 1; + const type = ParseContext.parseType(src, offset, inFlow); + return { + props, + type, + valueStart: offset + }; + } + /** + * Parses a node from the source + * @param {ParseContext} overlay + * @param {number} start - Index of first non-whitespace character for the node + * @returns {?Node} - null if at a document boundary + */ + + +} + +// Published as 'yaml/parse-cst' +function parse(src) { + const cr = []; + + if (src.indexOf('\r') !== -1) { + src = src.replace(/\r\n?/g, (match, offset) => { + if (match.length > 1) cr.push(offset); + return '\n'; + }); + } + + const documents = []; + let offset = 0; + + do { + const doc = new Document(); + const context = new ParseContext({ + src + }); + offset = doc.parse(context, offset); + documents.push(doc); + } while (offset < src.length); + + documents.setOrigRanges = () => { + if (cr.length === 0) return false; + + for (let i = 1; i < cr.length; ++i) cr[i] -= i; + + let crOffset = 0; + + for (let i = 0; i < documents.length; ++i) { + crOffset = documents[i].setOrigRanges(cr, crOffset); + } + + cr.splice(0, cr.length); + return true; + }; + + documents.toString = () => documents.join('...\n'); + + return documents; +} + +exports.parse = parse; diff --git a/node_modules/yaml/dist/resolveSeq-d03cb037.js b/node_modules/yaml/dist/resolveSeq-d03cb037.js new file mode 100644 index 00000000..d7c7c8c3 --- /dev/null +++ b/node_modules/yaml/dist/resolveSeq-d03cb037.js @@ -0,0 +1,2161 @@ +'use strict'; + +var PlainValue = require('./PlainValue-ec8e588e.js'); + +function addCommentBefore(str, indent, comment) { + if (!comment) return str; + const cc = comment.replace(/[\s\S]^/gm, `$&${indent}#`); + return `#${cc}\n${indent}${str}`; +} +function addComment(str, indent, comment) { + return !comment ? str : comment.indexOf('\n') === -1 ? `${str} #${comment}` : `${str}\n` + comment.replace(/^/gm, `${indent || ''}#`); +} + +class Node {} + +function toJSON(value, arg, ctx) { + if (Array.isArray(value)) return value.map((v, i) => toJSON(v, String(i), ctx)); + + if (value && typeof value.toJSON === 'function') { + const anchor = ctx && ctx.anchors && ctx.anchors.get(value); + if (anchor) ctx.onCreate = res => { + anchor.res = res; + delete ctx.onCreate; + }; + const res = value.toJSON(arg, ctx); + if (anchor && ctx.onCreate) ctx.onCreate(res); + return res; + } + + if ((!ctx || !ctx.keep) && typeof value === 'bigint') return Number(value); + return value; +} + +class Scalar extends Node { + constructor(value) { + super(); + this.value = value; + } + + toJSON(arg, ctx) { + return ctx && ctx.keep ? this.value : toJSON(this.value, arg, ctx); + } + + toString() { + return String(this.value); + } + +} + +function collectionFromPath(schema, path, value) { + let v = value; + + for (let i = path.length - 1; i >= 0; --i) { + const k = path[i]; + + if (Number.isInteger(k) && k >= 0) { + const a = []; + a[k] = v; + v = a; + } else { + const o = {}; + Object.defineProperty(o, k, { + value: v, + writable: true, + enumerable: true, + configurable: true + }); + v = o; + } + } + + return schema.createNode(v, false); +} // null, undefined, or an empty non-string iterable (e.g. []) + + +const isEmptyPath = path => path == null || typeof path === 'object' && path[Symbol.iterator]().next().done; +class Collection extends Node { + constructor(schema) { + super(); + + PlainValue._defineProperty(this, "items", []); + + this.schema = schema; + } + + addIn(path, value) { + if (isEmptyPath(path)) this.add(value);else { + const [key, ...rest] = path; + const node = this.get(key, true); + if (node instanceof Collection) node.addIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`); + } + } + + deleteIn([key, ...rest]) { + if (rest.length === 0) return this.delete(key); + const node = this.get(key, true); + if (node instanceof Collection) return node.deleteIn(rest);else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`); + } + + getIn([key, ...rest], keepScalar) { + const node = this.get(key, true); + if (rest.length === 0) return !keepScalar && node instanceof Scalar ? node.value : node;else return node instanceof Collection ? node.getIn(rest, keepScalar) : undefined; + } + + hasAllNullValues() { + return this.items.every(node => { + if (!node || node.type !== 'PAIR') return false; + const n = node.value; + return n == null || n instanceof Scalar && n.value == null && !n.commentBefore && !n.comment && !n.tag; + }); + } + + hasIn([key, ...rest]) { + if (rest.length === 0) return this.has(key); + const node = this.get(key, true); + return node instanceof Collection ? node.hasIn(rest) : false; + } + + setIn([key, ...rest], value) { + if (rest.length === 0) { + this.set(key, value); + } else { + const node = this.get(key, true); + if (node instanceof Collection) node.setIn(rest, value);else if (node === undefined && this.schema) this.set(key, collectionFromPath(this.schema, rest, value));else throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`); + } + } // overridden in implementations + + /* istanbul ignore next */ + + + toJSON() { + return null; + } + + toString(ctx, { + blockItem, + flowChars, + isMap, + itemIndent + }, onComment, onChompKeep) { + const { + indent, + indentStep, + stringify + } = ctx; + const inFlow = this.type === PlainValue.Type.FLOW_MAP || this.type === PlainValue.Type.FLOW_SEQ || ctx.inFlow; + if (inFlow) itemIndent += indentStep; + const allNullValues = isMap && this.hasAllNullValues(); + ctx = Object.assign({}, ctx, { + allNullValues, + indent: itemIndent, + inFlow, + type: null + }); + let chompKeep = false; + let hasItemWithNewLine = false; + const nodes = this.items.reduce((nodes, item, i) => { + let comment; + + if (item) { + if (!chompKeep && item.spaceBefore) nodes.push({ + type: 'comment', + str: '' + }); + if (item.commentBefore) item.commentBefore.match(/^.*$/gm).forEach(line => { + nodes.push({ + type: 'comment', + str: `#${line}` + }); + }); + if (item.comment) comment = item.comment; + if (inFlow && (!chompKeep && item.spaceBefore || item.commentBefore || item.comment || item.key && (item.key.commentBefore || item.key.comment) || item.value && (item.value.commentBefore || item.value.comment))) hasItemWithNewLine = true; + } + + chompKeep = false; + let str = stringify(item, ctx, () => comment = null, () => chompKeep = true); + if (inFlow && !hasItemWithNewLine && str.includes('\n')) hasItemWithNewLine = true; + if (inFlow && i < this.items.length - 1) str += ','; + str = addComment(str, itemIndent, comment); + if (chompKeep && (comment || inFlow)) chompKeep = false; + nodes.push({ + type: 'item', + str + }); + return nodes; + }, []); + let str; + + if (nodes.length === 0) { + str = flowChars.start + flowChars.end; + } else if (inFlow) { + const { + start, + end + } = flowChars; + const strings = nodes.map(n => n.str); + + if (hasItemWithNewLine || strings.reduce((sum, str) => sum + str.length + 2, 2) > Collection.maxFlowStringSingleLineLength) { + str = start; + + for (const s of strings) { + str += s ? `\n${indentStep}${indent}${s}` : '\n'; + } + + str += `\n${indent}${end}`; + } else { + str = `${start} ${strings.join(' ')} ${end}`; + } + } else { + const strings = nodes.map(blockItem); + str = strings.shift(); + + for (const s of strings) str += s ? `\n${indent}${s}` : '\n'; + } + + if (this.comment) { + str += '\n' + this.comment.replace(/^/gm, `${indent}#`); + if (onComment) onComment(); + } else if (chompKeep && onChompKeep) onChompKeep(); + + return str; + } + +} + +PlainValue._defineProperty(Collection, "maxFlowStringSingleLineLength", 60); + +function asItemIndex(key) { + let idx = key instanceof Scalar ? key.value : key; + if (idx && typeof idx === 'string') idx = Number(idx); + return Number.isInteger(idx) && idx >= 0 ? idx : null; +} + +class YAMLSeq extends Collection { + add(value) { + this.items.push(value); + } + + delete(key) { + const idx = asItemIndex(key); + if (typeof idx !== 'number') return false; + const del = this.items.splice(idx, 1); + return del.length > 0; + } + + get(key, keepScalar) { + const idx = asItemIndex(key); + if (typeof idx !== 'number') return undefined; + const it = this.items[idx]; + return !keepScalar && it instanceof Scalar ? it.value : it; + } + + has(key) { + const idx = asItemIndex(key); + return typeof idx === 'number' && idx < this.items.length; + } + + set(key, value) { + const idx = asItemIndex(key); + if (typeof idx !== 'number') throw new Error(`Expected a valid index, not ${key}.`); + this.items[idx] = value; + } + + toJSON(_, ctx) { + const seq = []; + if (ctx && ctx.onCreate) ctx.onCreate(seq); + let i = 0; + + for (const item of this.items) seq.push(toJSON(item, String(i++), ctx)); + + return seq; + } + + toString(ctx, onComment, onChompKeep) { + if (!ctx) return JSON.stringify(this); + return super.toString(ctx, { + blockItem: n => n.type === 'comment' ? n.str : `- ${n.str}`, + flowChars: { + start: '[', + end: ']' + }, + isMap: false, + itemIndent: (ctx.indent || '') + ' ' + }, onComment, onChompKeep); + } + +} + +const stringifyKey = (key, jsKey, ctx) => { + if (jsKey === null) return ''; + if (typeof jsKey !== 'object') return String(jsKey); + if (key instanceof Node && ctx && ctx.doc) return key.toString({ + anchors: Object.create(null), + doc: ctx.doc, + indent: '', + indentStep: ctx.indentStep, + inFlow: true, + inStringifyKey: true, + stringify: ctx.stringify + }); + return JSON.stringify(jsKey); +}; + +class Pair extends Node { + constructor(key, value = null) { + super(); + this.key = key; + this.value = value; + this.type = Pair.Type.PAIR; + } + + get commentBefore() { + return this.key instanceof Node ? this.key.commentBefore : undefined; + } + + set commentBefore(cb) { + if (this.key == null) this.key = new Scalar(null); + if (this.key instanceof Node) this.key.commentBefore = cb;else { + const msg = 'Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.'; + throw new Error(msg); + } + } + + addToJSMap(ctx, map) { + const key = toJSON(this.key, '', ctx); + + if (map instanceof Map) { + const value = toJSON(this.value, key, ctx); + map.set(key, value); + } else if (map instanceof Set) { + map.add(key); + } else { + const stringKey = stringifyKey(this.key, key, ctx); + const value = toJSON(this.value, stringKey, ctx); + if (stringKey in map) Object.defineProperty(map, stringKey, { + value, + writable: true, + enumerable: true, + configurable: true + });else map[stringKey] = value; + } + + return map; + } + + toJSON(_, ctx) { + const pair = ctx && ctx.mapAsMap ? new Map() : {}; + return this.addToJSMap(ctx, pair); + } + + toString(ctx, onComment, onChompKeep) { + if (!ctx || !ctx.doc) return JSON.stringify(this); + const { + indent: indentSize, + indentSeq, + simpleKeys + } = ctx.doc.options; + let { + key, + value + } = this; + let keyComment = key instanceof Node && key.comment; + + if (simpleKeys) { + if (keyComment) { + throw new Error('With simple keys, key nodes cannot have comments'); + } + + if (key instanceof Collection) { + const msg = 'With simple keys, collection cannot be used as a key value'; + throw new Error(msg); + } + } + + let explicitKey = !simpleKeys && (!key || keyComment || (key instanceof Node ? key instanceof Collection || key.type === PlainValue.Type.BLOCK_FOLDED || key.type === PlainValue.Type.BLOCK_LITERAL : typeof key === 'object')); + const { + doc, + indent, + indentStep, + stringify + } = ctx; + ctx = Object.assign({}, ctx, { + implicitKey: !explicitKey, + indent: indent + indentStep + }); + let chompKeep = false; + let str = stringify(key, ctx, () => keyComment = null, () => chompKeep = true); + str = addComment(str, ctx.indent, keyComment); + + if (!explicitKey && str.length > 1024) { + if (simpleKeys) throw new Error('With simple keys, single line scalar must not span more than 1024 characters'); + explicitKey = true; + } + + if (ctx.allNullValues && !simpleKeys) { + if (this.comment) { + str = addComment(str, ctx.indent, this.comment); + if (onComment) onComment(); + } else if (chompKeep && !keyComment && onChompKeep) onChompKeep(); + + return ctx.inFlow && !explicitKey ? str : `? ${str}`; + } + + str = explicitKey ? `? ${str}\n${indent}:` : `${str}:`; + + if (this.comment) { + // expected (but not strictly required) to be a single-line comment + str = addComment(str, ctx.indent, this.comment); + if (onComment) onComment(); + } + + let vcb = ''; + let valueComment = null; + + if (value instanceof Node) { + if (value.spaceBefore) vcb = '\n'; + + if (value.commentBefore) { + const cs = value.commentBefore.replace(/^/gm, `${ctx.indent}#`); + vcb += `\n${cs}`; + } + + valueComment = value.comment; + } else if (value && typeof value === 'object') { + value = doc.schema.createNode(value, true); + } + + ctx.implicitKey = false; + if (!explicitKey && !this.comment && value instanceof Scalar) ctx.indentAtStart = str.length + 1; + chompKeep = false; + + if (!indentSeq && indentSize >= 2 && !ctx.inFlow && !explicitKey && value instanceof YAMLSeq && value.type !== PlainValue.Type.FLOW_SEQ && !value.tag && !doc.anchors.getName(value)) { + // If indentSeq === false, consider '- ' as part of indentation where possible + ctx.indent = ctx.indent.substr(2); + } + + const valueStr = stringify(value, ctx, () => valueComment = null, () => chompKeep = true); + let ws = ' '; + + if (vcb || this.comment) { + ws = `${vcb}\n${ctx.indent}`; + } else if (!explicitKey && value instanceof Collection) { + const flow = valueStr[0] === '[' || valueStr[0] === '{'; + if (!flow || valueStr.includes('\n')) ws = `\n${ctx.indent}`; + } else if (valueStr[0] === '\n') ws = ''; + + if (chompKeep && !valueComment && onChompKeep) onChompKeep(); + return addComment(str + ws + valueStr, ctx.indent, valueComment); + } + +} + +PlainValue._defineProperty(Pair, "Type", { + PAIR: 'PAIR', + MERGE_PAIR: 'MERGE_PAIR' +}); + +const getAliasCount = (node, anchors) => { + if (node instanceof Alias) { + const anchor = anchors.get(node.source); + return anchor.count * anchor.aliasCount; + } else if (node instanceof Collection) { + let count = 0; + + for (const item of node.items) { + const c = getAliasCount(item, anchors); + if (c > count) count = c; + } + + return count; + } else if (node instanceof Pair) { + const kc = getAliasCount(node.key, anchors); + const vc = getAliasCount(node.value, anchors); + return Math.max(kc, vc); + } + + return 1; +}; + +class Alias extends Node { + static stringify({ + range, + source + }, { + anchors, + doc, + implicitKey, + inStringifyKey + }) { + let anchor = Object.keys(anchors).find(a => anchors[a] === source); + if (!anchor && inStringifyKey) anchor = doc.anchors.getName(source) || doc.anchors.newName(); + if (anchor) return `*${anchor}${implicitKey ? ' ' : ''}`; + const msg = doc.anchors.getName(source) ? 'Alias node must be after source node' : 'Source node not found for alias node'; + throw new Error(`${msg} [${range}]`); + } + + constructor(source) { + super(); + this.source = source; + this.type = PlainValue.Type.ALIAS; + } + + set tag(t) { + throw new Error('Alias nodes cannot have tags'); + } + + toJSON(arg, ctx) { + if (!ctx) return toJSON(this.source, arg, ctx); + const { + anchors, + maxAliasCount + } = ctx; + const anchor = anchors.get(this.source); + /* istanbul ignore if */ + + if (!anchor || anchor.res === undefined) { + const msg = 'This should not happen: Alias anchor was not resolved?'; + if (this.cstNode) throw new PlainValue.YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg); + } + + if (maxAliasCount >= 0) { + anchor.count += 1; + if (anchor.aliasCount === 0) anchor.aliasCount = getAliasCount(this.source, anchors); + + if (anchor.count * anchor.aliasCount > maxAliasCount) { + const msg = 'Excessive alias count indicates a resource exhaustion attack'; + if (this.cstNode) throw new PlainValue.YAMLReferenceError(this.cstNode, msg);else throw new ReferenceError(msg); + } + } + + return anchor.res; + } // Only called when stringifying an alias mapping key while constructing + // Object output. + + + toString(ctx) { + return Alias.stringify(this, ctx); + } + +} + +PlainValue._defineProperty(Alias, "default", true); + +function findPair(items, key) { + const k = key instanceof Scalar ? key.value : key; + + for (const it of items) { + if (it instanceof Pair) { + if (it.key === key || it.key === k) return it; + if (it.key && it.key.value === k) return it; + } + } + + return undefined; +} +class YAMLMap extends Collection { + add(pair, overwrite) { + if (!pair) pair = new Pair(pair);else if (!(pair instanceof Pair)) pair = new Pair(pair.key || pair, pair.value); + const prev = findPair(this.items, pair.key); + const sortEntries = this.schema && this.schema.sortMapEntries; + + if (prev) { + if (overwrite) prev.value = pair.value;else throw new Error(`Key ${pair.key} already set`); + } else if (sortEntries) { + const i = this.items.findIndex(item => sortEntries(pair, item) < 0); + if (i === -1) this.items.push(pair);else this.items.splice(i, 0, pair); + } else { + this.items.push(pair); + } + } + + delete(key) { + const it = findPair(this.items, key); + if (!it) return false; + const del = this.items.splice(this.items.indexOf(it), 1); + return del.length > 0; + } + + get(key, keepScalar) { + const it = findPair(this.items, key); + const node = it && it.value; + return !keepScalar && node instanceof Scalar ? node.value : node; + } + + has(key) { + return !!findPair(this.items, key); + } + + set(key, value) { + this.add(new Pair(key, value), true); + } + /** + * @param {*} arg ignored + * @param {*} ctx Conversion context, originally set in Document#toJSON() + * @param {Class} Type If set, forces the returned collection type + * @returns {*} Instance of Type, Map, or Object + */ + + + toJSON(_, ctx, Type) { + const map = Type ? new Type() : ctx && ctx.mapAsMap ? new Map() : {}; + if (ctx && ctx.onCreate) ctx.onCreate(map); + + for (const item of this.items) item.addToJSMap(ctx, map); + + return map; + } + + toString(ctx, onComment, onChompKeep) { + if (!ctx) return JSON.stringify(this); + + for (const item of this.items) { + if (!(item instanceof Pair)) throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`); + } + + return super.toString(ctx, { + blockItem: n => n.str, + flowChars: { + start: '{', + end: '}' + }, + isMap: true, + itemIndent: ctx.indent || '' + }, onComment, onChompKeep); + } + +} + +const MERGE_KEY = '<<'; +class Merge extends Pair { + constructor(pair) { + if (pair instanceof Pair) { + let seq = pair.value; + + if (!(seq instanceof YAMLSeq)) { + seq = new YAMLSeq(); + seq.items.push(pair.value); + seq.range = pair.value.range; + } + + super(pair.key, seq); + this.range = pair.range; + } else { + super(new Scalar(MERGE_KEY), new YAMLSeq()); + } + + this.type = Pair.Type.MERGE_PAIR; + } // If the value associated with a merge key is a single mapping node, each of + // its key/value pairs is inserted into the current mapping, unless the key + // already exists in it. If the value associated with the merge key is a + // sequence, then this sequence is expected to contain mapping nodes and each + // of these nodes is merged in turn according to its order in the sequence. + // Keys in mapping nodes earlier in the sequence override keys specified in + // later mapping nodes. -- http://yaml.org/type/merge.html + + + addToJSMap(ctx, map) { + for (const { + source + } of this.value.items) { + if (!(source instanceof YAMLMap)) throw new Error('Merge sources must be maps'); + const srcMap = source.toJSON(null, ctx, Map); + + for (const [key, value] of srcMap) { + if (map instanceof Map) { + if (!map.has(key)) map.set(key, value); + } else if (map instanceof Set) { + map.add(key); + } else if (!Object.prototype.hasOwnProperty.call(map, key)) { + Object.defineProperty(map, key, { + value, + writable: true, + enumerable: true, + configurable: true + }); + } + } + } + + return map; + } + + toString(ctx, onComment) { + const seq = this.value; + if (seq.items.length > 1) return super.toString(ctx, onComment); + this.value = seq.items[0]; + const str = super.toString(ctx, onComment); + this.value = seq; + return str; + } + +} + +const binaryOptions = { + defaultType: PlainValue.Type.BLOCK_LITERAL, + lineWidth: 76 +}; +const boolOptions = { + trueStr: 'true', + falseStr: 'false' +}; +const intOptions = { + asBigInt: false +}; +const nullOptions = { + nullStr: 'null' +}; +const strOptions = { + defaultType: PlainValue.Type.PLAIN, + doubleQuoted: { + jsonEncoding: false, + minMultiLineLength: 40 + }, + fold: { + lineWidth: 80, + minContentWidth: 20 + } +}; + +function resolveScalar(str, tags, scalarFallback) { + for (const { + format, + test, + resolve + } of tags) { + if (test) { + const match = str.match(test); + + if (match) { + let res = resolve.apply(null, match); + if (!(res instanceof Scalar)) res = new Scalar(res); + if (format) res.format = format; + return res; + } + } + } + + if (scalarFallback) str = scalarFallback(str); + return new Scalar(str); +} + +const FOLD_FLOW = 'flow'; +const FOLD_BLOCK = 'block'; +const FOLD_QUOTED = 'quoted'; // presumes i+1 is at the start of a line +// returns index of last newline in more-indented block + +const consumeMoreIndentedLines = (text, i) => { + let ch = text[i + 1]; + + while (ch === ' ' || ch === '\t') { + do { + ch = text[i += 1]; + } while (ch && ch !== '\n'); + + ch = text[i + 1]; + } + + return i; +}; +/** + * Tries to keep input at up to `lineWidth` characters, splitting only on spaces + * not followed by newlines or spaces unless `mode` is `'quoted'`. Lines are + * terminated with `\n` and started with `indent`. + * + * @param {string} text + * @param {string} indent + * @param {string} [mode='flow'] `'block'` prevents more-indented lines + * from being folded; `'quoted'` allows for `\` escapes, including escaped + * newlines + * @param {Object} options + * @param {number} [options.indentAtStart] Accounts for leading contents on + * the first line, defaulting to `indent.length` + * @param {number} [options.lineWidth=80] + * @param {number} [options.minContentWidth=20] Allow highly indented lines to + * stretch the line width or indent content from the start + * @param {function} options.onFold Called once if the text is folded + * @param {function} options.onFold Called once if any line of text exceeds + * lineWidth characters + */ + + +function foldFlowLines(text, indent, mode, { + indentAtStart, + lineWidth = 80, + minContentWidth = 20, + onFold, + onOverflow +}) { + if (!lineWidth || lineWidth < 0) return text; + const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length); + if (text.length <= endStep) return text; + const folds = []; + const escapedFolds = {}; + let end = lineWidth - indent.length; + + if (typeof indentAtStart === 'number') { + if (indentAtStart > lineWidth - Math.max(2, minContentWidth)) folds.push(0);else end = lineWidth - indentAtStart; + } + + let split = undefined; + let prev = undefined; + let overflow = false; + let i = -1; + let escStart = -1; + let escEnd = -1; + + if (mode === FOLD_BLOCK) { + i = consumeMoreIndentedLines(text, i); + if (i !== -1) end = i + endStep; + } + + for (let ch; ch = text[i += 1];) { + if (mode === FOLD_QUOTED && ch === '\\') { + escStart = i; + + switch (text[i + 1]) { + case 'x': + i += 3; + break; + + case 'u': + i += 5; + break; + + case 'U': + i += 9; + break; + + default: + i += 1; + } + + escEnd = i; + } + + if (ch === '\n') { + if (mode === FOLD_BLOCK) i = consumeMoreIndentedLines(text, i); + end = i + endStep; + split = undefined; + } else { + if (ch === ' ' && prev && prev !== ' ' && prev !== '\n' && prev !== '\t') { + // space surrounded by non-space can be replaced with newline + indent + const next = text[i + 1]; + if (next && next !== ' ' && next !== '\n' && next !== '\t') split = i; + } + + if (i >= end) { + if (split) { + folds.push(split); + end = split + endStep; + split = undefined; + } else if (mode === FOLD_QUOTED) { + // white-space collected at end may stretch past lineWidth + while (prev === ' ' || prev === '\t') { + prev = ch; + ch = text[i += 1]; + overflow = true; + } // Account for newline escape, but don't break preceding escape + + + const j = i > escEnd + 1 ? i - 2 : escStart - 1; // Bail out if lineWidth & minContentWidth are shorter than an escape string + + if (escapedFolds[j]) return text; + folds.push(j); + escapedFolds[j] = true; + end = j + endStep; + split = undefined; + } else { + overflow = true; + } + } + } + + prev = ch; + } + + if (overflow && onOverflow) onOverflow(); + if (folds.length === 0) return text; + if (onFold) onFold(); + let res = text.slice(0, folds[0]); + + for (let i = 0; i < folds.length; ++i) { + const fold = folds[i]; + const end = folds[i + 1] || text.length; + if (fold === 0) res = `\n${indent}${text.slice(0, end)}`;else { + if (mode === FOLD_QUOTED && escapedFolds[fold]) res += `${text[fold]}\\`; + res += `\n${indent}${text.slice(fold + 1, end)}`; + } + } + + return res; +} + +const getFoldOptions = ({ + indentAtStart +}) => indentAtStart ? Object.assign({ + indentAtStart +}, strOptions.fold) : strOptions.fold; // Also checks for lines starting with %, as parsing the output as YAML 1.1 will +// presume that's starting a new document. + + +const containsDocumentMarker = str => /^(%|---|\.\.\.)/m.test(str); + +function lineLengthOverLimit(str, lineWidth, indentLength) { + if (!lineWidth || lineWidth < 0) return false; + const limit = lineWidth - indentLength; + const strLen = str.length; + if (strLen <= limit) return false; + + for (let i = 0, start = 0; i < strLen; ++i) { + if (str[i] === '\n') { + if (i - start > limit) return true; + start = i + 1; + if (strLen - start <= limit) return false; + } + } + + return true; +} + +function doubleQuotedString(value, ctx) { + const { + implicitKey + } = ctx; + const { + jsonEncoding, + minMultiLineLength + } = strOptions.doubleQuoted; + const json = JSON.stringify(value); + if (jsonEncoding) return json; + const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : ''); + let str = ''; + let start = 0; + + for (let i = 0, ch = json[i]; ch; ch = json[++i]) { + if (ch === ' ' && json[i + 1] === '\\' && json[i + 2] === 'n') { + // space before newline needs to be escaped to not be folded + str += json.slice(start, i) + '\\ '; + i += 1; + start = i; + ch = '\\'; + } + + if (ch === '\\') switch (json[i + 1]) { + case 'u': + { + str += json.slice(start, i); + const code = json.substr(i + 2, 4); + + switch (code) { + case '0000': + str += '\\0'; + break; + + case '0007': + str += '\\a'; + break; + + case '000b': + str += '\\v'; + break; + + case '001b': + str += '\\e'; + break; + + case '0085': + str += '\\N'; + break; + + case '00a0': + str += '\\_'; + break; + + case '2028': + str += '\\L'; + break; + + case '2029': + str += '\\P'; + break; + + default: + if (code.substr(0, 2) === '00') str += '\\x' + code.substr(2);else str += json.substr(i, 6); + } + + i += 5; + start = i + 1; + } + break; + + case 'n': + if (implicitKey || json[i + 2] === '"' || json.length < minMultiLineLength) { + i += 1; + } else { + // folding will eat first newline + str += json.slice(start, i) + '\n\n'; + + while (json[i + 2] === '\\' && json[i + 3] === 'n' && json[i + 4] !== '"') { + str += '\n'; + i += 2; + } + + str += indent; // space after newline needs to be escaped to not be folded + + if (json[i + 2] === ' ') str += '\\'; + i += 1; + start = i + 1; + } + + break; + + default: + i += 1; + } + } + + str = start ? str + json.slice(start) : json; + return implicitKey ? str : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx)); +} + +function singleQuotedString(value, ctx) { + if (ctx.implicitKey) { + if (/\n/.test(value)) return doubleQuotedString(value, ctx); + } else { + // single quoted string can't have leading or trailing whitespace around newline + if (/[ \t]\n|\n[ \t]/.test(value)) return doubleQuotedString(value, ctx); + } + + const indent = ctx.indent || (containsDocumentMarker(value) ? ' ' : ''); + const res = "'" + value.replace(/'/g, "''").replace(/\n+/g, `$&\n${indent}`) + "'"; + return ctx.implicitKey ? res : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx)); +} + +function blockString({ + comment, + type, + value +}, ctx, onComment, onChompKeep) { + // 1. Block can't end in whitespace unless the last line is non-empty. + // 2. Strings consisting of only whitespace are best rendered explicitly. + if (/\n[\t ]+$/.test(value) || /^\s*$/.test(value)) { + return doubleQuotedString(value, ctx); + } + + const indent = ctx.indent || (ctx.forceBlockIndent || containsDocumentMarker(value) ? ' ' : ''); + const indentSize = indent ? '2' : '1'; // root is at -1 + + const literal = type === PlainValue.Type.BLOCK_FOLDED ? false : type === PlainValue.Type.BLOCK_LITERAL ? true : !lineLengthOverLimit(value, strOptions.fold.lineWidth, indent.length); + let header = literal ? '|' : '>'; + if (!value) return header + '\n'; + let wsStart = ''; + let wsEnd = ''; + value = value.replace(/[\n\t ]*$/, ws => { + const n = ws.indexOf('\n'); + + if (n === -1) { + header += '-'; // strip + } else if (value === ws || n !== ws.length - 1) { + header += '+'; // keep + + if (onChompKeep) onChompKeep(); + } + + wsEnd = ws.replace(/\n$/, ''); + return ''; + }).replace(/^[\n ]*/, ws => { + if (ws.indexOf(' ') !== -1) header += indentSize; + const m = ws.match(/ +$/); + + if (m) { + wsStart = ws.slice(0, -m[0].length); + return m[0]; + } else { + wsStart = ws; + return ''; + } + }); + if (wsEnd) wsEnd = wsEnd.replace(/\n+(?!\n|$)/g, `$&${indent}`); + if (wsStart) wsStart = wsStart.replace(/\n+/g, `$&${indent}`); + + if (comment) { + header += ' #' + comment.replace(/ ?[\r\n]+/g, ' '); + if (onComment) onComment(); + } + + if (!value) return `${header}${indentSize}\n${indent}${wsEnd}`; + + if (literal) { + value = value.replace(/\n+/g, `$&${indent}`); + return `${header}\n${indent}${wsStart}${value}${wsEnd}`; + } + + value = value.replace(/\n+/g, '\n$&').replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, '$1$2') // more-indented lines aren't folded + // ^ ind.line ^ empty ^ capture next empty lines only at end of indent + .replace(/\n+/g, `$&${indent}`); + const body = foldFlowLines(`${wsStart}${value}${wsEnd}`, indent, FOLD_BLOCK, strOptions.fold); + return `${header}\n${indent}${body}`; +} + +function plainString(item, ctx, onComment, onChompKeep) { + const { + comment, + type, + value + } = item; + const { + actualString, + implicitKey, + indent, + inFlow + } = ctx; + + if (implicitKey && /[\n[\]{},]/.test(value) || inFlow && /[[\]{},]/.test(value)) { + return doubleQuotedString(value, ctx); + } + + if (!value || /^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(value)) { + // not allowed: + // - empty string, '-' or '?' + // - start with an indicator character (except [?:-]) or /[?-] / + // - '\n ', ': ' or ' \n' anywhere + // - '#' not preceded by a non-space char + // - end with ' ' or ':' + return implicitKey || inFlow || value.indexOf('\n') === -1 ? value.indexOf('"') !== -1 && value.indexOf("'") === -1 ? singleQuotedString(value, ctx) : doubleQuotedString(value, ctx) : blockString(item, ctx, onComment, onChompKeep); + } + + if (!implicitKey && !inFlow && type !== PlainValue.Type.PLAIN && value.indexOf('\n') !== -1) { + // Where allowed & type not set explicitly, prefer block style for multiline strings + return blockString(item, ctx, onComment, onChompKeep); + } + + if (indent === '' && containsDocumentMarker(value)) { + ctx.forceBlockIndent = true; + return blockString(item, ctx, onComment, onChompKeep); + } + + const str = value.replace(/\n+/g, `$&\n${indent}`); // Verify that output will be parsed as a string, as e.g. plain numbers and + // booleans get parsed with those types in v1.2 (e.g. '42', 'true' & '0.9e-3'), + // and others in v1.1. + + if (actualString) { + const { + tags + } = ctx.doc.schema; + const resolved = resolveScalar(str, tags, tags.scalarFallback).value; + if (typeof resolved !== 'string') return doubleQuotedString(value, ctx); + } + + const body = implicitKey ? str : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx)); + + if (comment && !inFlow && (body.indexOf('\n') !== -1 || comment.indexOf('\n') !== -1)) { + if (onComment) onComment(); + return addCommentBefore(body, indent, comment); + } + + return body; +} + +function stringifyString(item, ctx, onComment, onChompKeep) { + const { + defaultType + } = strOptions; + const { + implicitKey, + inFlow + } = ctx; + let { + type, + value + } = item; + + if (typeof value !== 'string') { + value = String(value); + item = Object.assign({}, item, { + value + }); + } + + const _stringify = _type => { + switch (_type) { + case PlainValue.Type.BLOCK_FOLDED: + case PlainValue.Type.BLOCK_LITERAL: + return blockString(item, ctx, onComment, onChompKeep); + + case PlainValue.Type.QUOTE_DOUBLE: + return doubleQuotedString(value, ctx); + + case PlainValue.Type.QUOTE_SINGLE: + return singleQuotedString(value, ctx); + + case PlainValue.Type.PLAIN: + return plainString(item, ctx, onComment, onChompKeep); + + default: + return null; + } + }; + + if (type !== PlainValue.Type.QUOTE_DOUBLE && /[\x00-\x08\x0b-\x1f\x7f-\x9f]/.test(value)) { + // force double quotes on control characters + type = PlainValue.Type.QUOTE_DOUBLE; + } else if ((implicitKey || inFlow) && (type === PlainValue.Type.BLOCK_FOLDED || type === PlainValue.Type.BLOCK_LITERAL)) { + // should not happen; blocks are not valid inside flow containers + type = PlainValue.Type.QUOTE_DOUBLE; + } + + let res = _stringify(type); + + if (res === null) { + res = _stringify(defaultType); + if (res === null) throw new Error(`Unsupported default string type ${defaultType}`); + } + + return res; +} + +function stringifyNumber({ + format, + minFractionDigits, + tag, + value +}) { + if (typeof value === 'bigint') return String(value); + if (!isFinite(value)) return isNaN(value) ? '.nan' : value < 0 ? '-.inf' : '.inf'; + let n = JSON.stringify(value); + + if (!format && minFractionDigits && (!tag || tag === 'tag:yaml.org,2002:float') && /^\d/.test(n)) { + let i = n.indexOf('.'); + + if (i < 0) { + i = n.length; + n += '.'; + } + + let d = minFractionDigits - (n.length - i - 1); + + while (d-- > 0) n += '0'; + } + + return n; +} + +function checkFlowCollectionEnd(errors, cst) { + let char, name; + + switch (cst.type) { + case PlainValue.Type.FLOW_MAP: + char = '}'; + name = 'flow map'; + break; + + case PlainValue.Type.FLOW_SEQ: + char = ']'; + name = 'flow sequence'; + break; + + default: + errors.push(new PlainValue.YAMLSemanticError(cst, 'Not a flow collection!?')); + return; + } + + let lastItem; + + for (let i = cst.items.length - 1; i >= 0; --i) { + const item = cst.items[i]; + + if (!item || item.type !== PlainValue.Type.COMMENT) { + lastItem = item; + break; + } + } + + if (lastItem && lastItem.char !== char) { + const msg = `Expected ${name} to end with ${char}`; + let err; + + if (typeof lastItem.offset === 'number') { + err = new PlainValue.YAMLSemanticError(cst, msg); + err.offset = lastItem.offset + 1; + } else { + err = new PlainValue.YAMLSemanticError(lastItem, msg); + if (lastItem.range && lastItem.range.end) err.offset = lastItem.range.end - lastItem.range.start; + } + + errors.push(err); + } +} +function checkFlowCommentSpace(errors, comment) { + const prev = comment.context.src[comment.range.start - 1]; + + if (prev !== '\n' && prev !== '\t' && prev !== ' ') { + const msg = 'Comments must be separated from other tokens by white space characters'; + errors.push(new PlainValue.YAMLSemanticError(comment, msg)); + } +} +function getLongKeyError(source, key) { + const sk = String(key); + const k = sk.substr(0, 8) + '...' + sk.substr(-8); + return new PlainValue.YAMLSemanticError(source, `The "${k}" key is too long`); +} +function resolveComments(collection, comments) { + for (const { + afterKey, + before, + comment + } of comments) { + let item = collection.items[before]; + + if (!item) { + if (comment !== undefined) { + if (collection.comment) collection.comment += '\n' + comment;else collection.comment = comment; + } + } else { + if (afterKey && item.value) item = item.value; + + if (comment === undefined) { + if (afterKey || !item.commentBefore) item.spaceBefore = true; + } else { + if (item.commentBefore) item.commentBefore += '\n' + comment;else item.commentBefore = comment; + } + } + } +} + +// on error, will return { str: string, errors: Error[] } +function resolveString(doc, node) { + const res = node.strValue; + if (!res) return ''; + if (typeof res === 'string') return res; + res.errors.forEach(error => { + if (!error.source) error.source = node; + doc.errors.push(error); + }); + return res.str; +} + +function resolveTagHandle(doc, node) { + const { + handle, + suffix + } = node.tag; + let prefix = doc.tagPrefixes.find(p => p.handle === handle); + + if (!prefix) { + const dtp = doc.getDefaults().tagPrefixes; + if (dtp) prefix = dtp.find(p => p.handle === handle); + if (!prefix) throw new PlainValue.YAMLSemanticError(node, `The ${handle} tag handle is non-default and was not declared.`); + } + + if (!suffix) throw new PlainValue.YAMLSemanticError(node, `The ${handle} tag has no suffix.`); + + if (handle === '!' && (doc.version || doc.options.version) === '1.0') { + if (suffix[0] === '^') { + doc.warnings.push(new PlainValue.YAMLWarning(node, 'YAML 1.0 ^ tag expansion is not supported')); + return suffix; + } + + if (/[:/]/.test(suffix)) { + // word/foo -> tag:word.yaml.org,2002:foo + const vocab = suffix.match(/^([a-z0-9-]+)\/(.*)/i); + return vocab ? `tag:${vocab[1]}.yaml.org,2002:${vocab[2]}` : `tag:${suffix}`; + } + } + + return prefix.prefix + decodeURIComponent(suffix); +} + +function resolveTagName(doc, node) { + const { + tag, + type + } = node; + let nonSpecific = false; + + if (tag) { + const { + handle, + suffix, + verbatim + } = tag; + + if (verbatim) { + if (verbatim !== '!' && verbatim !== '!!') return verbatim; + const msg = `Verbatim tags aren't resolved, so ${verbatim} is invalid.`; + doc.errors.push(new PlainValue.YAMLSemanticError(node, msg)); + } else if (handle === '!' && !suffix) { + nonSpecific = true; + } else { + try { + return resolveTagHandle(doc, node); + } catch (error) { + doc.errors.push(error); + } + } + } + + switch (type) { + case PlainValue.Type.BLOCK_FOLDED: + case PlainValue.Type.BLOCK_LITERAL: + case PlainValue.Type.QUOTE_DOUBLE: + case PlainValue.Type.QUOTE_SINGLE: + return PlainValue.defaultTags.STR; + + case PlainValue.Type.FLOW_MAP: + case PlainValue.Type.MAP: + return PlainValue.defaultTags.MAP; + + case PlainValue.Type.FLOW_SEQ: + case PlainValue.Type.SEQ: + return PlainValue.defaultTags.SEQ; + + case PlainValue.Type.PLAIN: + return nonSpecific ? PlainValue.defaultTags.STR : null; + + default: + return null; + } +} + +function resolveByTagName(doc, node, tagName) { + const { + tags + } = doc.schema; + const matchWithTest = []; + + for (const tag of tags) { + if (tag.tag === tagName) { + if (tag.test) matchWithTest.push(tag);else { + const res = tag.resolve(doc, node); + return res instanceof Collection ? res : new Scalar(res); + } + } + } + + const str = resolveString(doc, node); + if (typeof str === 'string' && matchWithTest.length > 0) return resolveScalar(str, matchWithTest, tags.scalarFallback); + return null; +} + +function getFallbackTagName({ + type +}) { + switch (type) { + case PlainValue.Type.FLOW_MAP: + case PlainValue.Type.MAP: + return PlainValue.defaultTags.MAP; + + case PlainValue.Type.FLOW_SEQ: + case PlainValue.Type.SEQ: + return PlainValue.defaultTags.SEQ; + + default: + return PlainValue.defaultTags.STR; + } +} + +function resolveTag(doc, node, tagName) { + try { + const res = resolveByTagName(doc, node, tagName); + + if (res) { + if (tagName && node.tag) res.tag = tagName; + return res; + } + } catch (error) { + /* istanbul ignore if */ + if (!error.source) error.source = node; + doc.errors.push(error); + return null; + } + + try { + const fallback = getFallbackTagName(node); + if (!fallback) throw new Error(`The tag ${tagName} is unavailable`); + const msg = `The tag ${tagName} is unavailable, falling back to ${fallback}`; + doc.warnings.push(new PlainValue.YAMLWarning(node, msg)); + const res = resolveByTagName(doc, node, fallback); + res.tag = tagName; + return res; + } catch (error) { + const refError = new PlainValue.YAMLReferenceError(node, error.message); + refError.stack = error.stack; + doc.errors.push(refError); + return null; + } +} + +const isCollectionItem = node => { + if (!node) return false; + const { + type + } = node; + return type === PlainValue.Type.MAP_KEY || type === PlainValue.Type.MAP_VALUE || type === PlainValue.Type.SEQ_ITEM; +}; + +function resolveNodeProps(errors, node) { + const comments = { + before: [], + after: [] + }; + let hasAnchor = false; + let hasTag = false; + const props = isCollectionItem(node.context.parent) ? node.context.parent.props.concat(node.props) : node.props; + + for (const { + start, + end + } of props) { + switch (node.context.src[start]) { + case PlainValue.Char.COMMENT: + { + if (!node.commentHasRequiredWhitespace(start)) { + const msg = 'Comments must be separated from other tokens by white space characters'; + errors.push(new PlainValue.YAMLSemanticError(node, msg)); + } + + const { + header, + valueRange + } = node; + const cc = valueRange && (start > valueRange.start || header && start > header.start) ? comments.after : comments.before; + cc.push(node.context.src.slice(start + 1, end)); + break; + } + // Actual anchor & tag resolution is handled by schema, here we just complain + + case PlainValue.Char.ANCHOR: + if (hasAnchor) { + const msg = 'A node can have at most one anchor'; + errors.push(new PlainValue.YAMLSemanticError(node, msg)); + } + + hasAnchor = true; + break; + + case PlainValue.Char.TAG: + if (hasTag) { + const msg = 'A node can have at most one tag'; + errors.push(new PlainValue.YAMLSemanticError(node, msg)); + } + + hasTag = true; + break; + } + } + + return { + comments, + hasAnchor, + hasTag + }; +} + +function resolveNodeValue(doc, node) { + const { + anchors, + errors, + schema + } = doc; + + if (node.type === PlainValue.Type.ALIAS) { + const name = node.rawValue; + const src = anchors.getNode(name); + + if (!src) { + const msg = `Aliased anchor not found: ${name}`; + errors.push(new PlainValue.YAMLReferenceError(node, msg)); + return null; + } // Lazy resolution for circular references + + + const res = new Alias(src); + + anchors._cstAliases.push(res); + + return res; + } + + const tagName = resolveTagName(doc, node); + if (tagName) return resolveTag(doc, node, tagName); + + if (node.type !== PlainValue.Type.PLAIN) { + const msg = `Failed to resolve ${node.type} node here`; + errors.push(new PlainValue.YAMLSyntaxError(node, msg)); + return null; + } + + try { + const str = resolveString(doc, node); + return resolveScalar(str, schema.tags, schema.tags.scalarFallback); + } catch (error) { + if (!error.source) error.source = node; + errors.push(error); + return null; + } +} // sets node.resolved on success + + +function resolveNode(doc, node) { + if (!node) return null; + if (node.error) doc.errors.push(node.error); + const { + comments, + hasAnchor, + hasTag + } = resolveNodeProps(doc.errors, node); + + if (hasAnchor) { + const { + anchors + } = doc; + const name = node.anchor; + const prev = anchors.getNode(name); // At this point, aliases for any preceding node with the same anchor + // name have already been resolved, so it may safely be renamed. + + if (prev) anchors.map[anchors.newName(name)] = prev; // During parsing, we need to store the CST node in anchors.map as + // anchors need to be available during resolution to allow for + // circular references. + + anchors.map[name] = node; + } + + if (node.type === PlainValue.Type.ALIAS && (hasAnchor || hasTag)) { + const msg = 'An alias node must not specify any properties'; + doc.errors.push(new PlainValue.YAMLSemanticError(node, msg)); + } + + const res = resolveNodeValue(doc, node); + + if (res) { + res.range = [node.range.start, node.range.end]; + if (doc.options.keepCstNodes) res.cstNode = node; + if (doc.options.keepNodeTypes) res.type = node.type; + const cb = comments.before.join('\n'); + + if (cb) { + res.commentBefore = res.commentBefore ? `${res.commentBefore}\n${cb}` : cb; + } + + const ca = comments.after.join('\n'); + if (ca) res.comment = res.comment ? `${res.comment}\n${ca}` : ca; + } + + return node.resolved = res; +} + +function resolveMap(doc, cst) { + if (cst.type !== PlainValue.Type.MAP && cst.type !== PlainValue.Type.FLOW_MAP) { + const msg = `A ${cst.type} node cannot be resolved as a mapping`; + doc.errors.push(new PlainValue.YAMLSyntaxError(cst, msg)); + return null; + } + + const { + comments, + items + } = cst.type === PlainValue.Type.FLOW_MAP ? resolveFlowMapItems(doc, cst) : resolveBlockMapItems(doc, cst); + const map = new YAMLMap(); + map.items = items; + resolveComments(map, comments); + let hasCollectionKey = false; + + for (let i = 0; i < items.length; ++i) { + const { + key: iKey + } = items[i]; + if (iKey instanceof Collection) hasCollectionKey = true; + + if (doc.schema.merge && iKey && iKey.value === MERGE_KEY) { + items[i] = new Merge(items[i]); + const sources = items[i].value.items; + let error = null; + sources.some(node => { + if (node instanceof Alias) { + // During parsing, alias sources are CST nodes; to account for + // circular references their resolved values can't be used here. + const { + type + } = node.source; + if (type === PlainValue.Type.MAP || type === PlainValue.Type.FLOW_MAP) return false; + return error = 'Merge nodes aliases can only point to maps'; + } + + return error = 'Merge nodes can only have Alias nodes as values'; + }); + if (error) doc.errors.push(new PlainValue.YAMLSemanticError(cst, error)); + } else { + for (let j = i + 1; j < items.length; ++j) { + const { + key: jKey + } = items[j]; + + if (iKey === jKey || iKey && jKey && Object.prototype.hasOwnProperty.call(iKey, 'value') && iKey.value === jKey.value) { + const msg = `Map keys must be unique; "${iKey}" is repeated`; + doc.errors.push(new PlainValue.YAMLSemanticError(cst, msg)); + break; + } + } + } + } + + if (hasCollectionKey && !doc.options.mapAsMap) { + const warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.'; + doc.warnings.push(new PlainValue.YAMLWarning(cst, warn)); + } + + cst.resolved = map; + return map; +} + +const valueHasPairComment = ({ + context: { + lineStart, + node, + src + }, + props +}) => { + if (props.length === 0) return false; + const { + start + } = props[0]; + if (node && start > node.valueRange.start) return false; + if (src[start] !== PlainValue.Char.COMMENT) return false; + + for (let i = lineStart; i < start; ++i) if (src[i] === '\n') return false; + + return true; +}; + +function resolvePairComment(item, pair) { + if (!valueHasPairComment(item)) return; + const comment = item.getPropValue(0, PlainValue.Char.COMMENT, true); + let found = false; + const cb = pair.value.commentBefore; + + if (cb && cb.startsWith(comment)) { + pair.value.commentBefore = cb.substr(comment.length + 1); + found = true; + } else { + const cc = pair.value.comment; + + if (!item.node && cc && cc.startsWith(comment)) { + pair.value.comment = cc.substr(comment.length + 1); + found = true; + } + } + + if (found) pair.comment = comment; +} + +function resolveBlockMapItems(doc, cst) { + const comments = []; + const items = []; + let key = undefined; + let keyStart = null; + + for (let i = 0; i < cst.items.length; ++i) { + const item = cst.items[i]; + + switch (item.type) { + case PlainValue.Type.BLANK_LINE: + comments.push({ + afterKey: !!key, + before: items.length + }); + break; + + case PlainValue.Type.COMMENT: + comments.push({ + afterKey: !!key, + before: items.length, + comment: item.comment + }); + break; + + case PlainValue.Type.MAP_KEY: + if (key !== undefined) items.push(new Pair(key)); + if (item.error) doc.errors.push(item.error); + key = resolveNode(doc, item.node); + keyStart = null; + break; + + case PlainValue.Type.MAP_VALUE: + { + if (key === undefined) key = null; + if (item.error) doc.errors.push(item.error); + + if (!item.context.atLineStart && item.node && item.node.type === PlainValue.Type.MAP && !item.node.context.atLineStart) { + const msg = 'Nested mappings are not allowed in compact mappings'; + doc.errors.push(new PlainValue.YAMLSemanticError(item.node, msg)); + } + + let valueNode = item.node; + + if (!valueNode && item.props.length > 0) { + // Comments on an empty mapping value need to be preserved, so we + // need to construct a minimal empty node here to use instead of the + // missing `item.node`. -- eemeli/yaml#19 + valueNode = new PlainValue.PlainValue(PlainValue.Type.PLAIN, []); + valueNode.context = { + parent: item, + src: item.context.src + }; + const pos = item.range.start + 1; + valueNode.range = { + start: pos, + end: pos + }; + valueNode.valueRange = { + start: pos, + end: pos + }; + + if (typeof item.range.origStart === 'number') { + const origPos = item.range.origStart + 1; + valueNode.range.origStart = valueNode.range.origEnd = origPos; + valueNode.valueRange.origStart = valueNode.valueRange.origEnd = origPos; + } + } + + const pair = new Pair(key, resolveNode(doc, valueNode)); + resolvePairComment(item, pair); + items.push(pair); + + if (key && typeof keyStart === 'number') { + if (item.range.start > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key)); + } + + key = undefined; + keyStart = null; + } + break; + + default: + if (key !== undefined) items.push(new Pair(key)); + key = resolveNode(doc, item); + keyStart = item.range.start; + if (item.error) doc.errors.push(item.error); + + next: for (let j = i + 1;; ++j) { + const nextItem = cst.items[j]; + + switch (nextItem && nextItem.type) { + case PlainValue.Type.BLANK_LINE: + case PlainValue.Type.COMMENT: + continue next; + + case PlainValue.Type.MAP_VALUE: + break next; + + default: + { + const msg = 'Implicit map keys need to be followed by map values'; + doc.errors.push(new PlainValue.YAMLSemanticError(item, msg)); + break next; + } + } + } + + if (item.valueRangeContainsNewline) { + const msg = 'Implicit map keys need to be on a single line'; + doc.errors.push(new PlainValue.YAMLSemanticError(item, msg)); + } + + } + } + + if (key !== undefined) items.push(new Pair(key)); + return { + comments, + items + }; +} + +function resolveFlowMapItems(doc, cst) { + const comments = []; + const items = []; + let key = undefined; + let explicitKey = false; + let next = '{'; + + for (let i = 0; i < cst.items.length; ++i) { + const item = cst.items[i]; + + if (typeof item.char === 'string') { + const { + char, + offset + } = item; + + if (char === '?' && key === undefined && !explicitKey) { + explicitKey = true; + next = ':'; + continue; + } + + if (char === ':') { + if (key === undefined) key = null; + + if (next === ':') { + next = ','; + continue; + } + } else { + if (explicitKey) { + if (key === undefined && char !== ',') key = null; + explicitKey = false; + } + + if (key !== undefined) { + items.push(new Pair(key)); + key = undefined; + + if (char === ',') { + next = ':'; + continue; + } + } + } + + if (char === '}') { + if (i === cst.items.length - 1) continue; + } else if (char === next) { + next = ':'; + continue; + } + + const msg = `Flow map contains an unexpected ${char}`; + const err = new PlainValue.YAMLSyntaxError(cst, msg); + err.offset = offset; + doc.errors.push(err); + } else if (item.type === PlainValue.Type.BLANK_LINE) { + comments.push({ + afterKey: !!key, + before: items.length + }); + } else if (item.type === PlainValue.Type.COMMENT) { + checkFlowCommentSpace(doc.errors, item); + comments.push({ + afterKey: !!key, + before: items.length, + comment: item.comment + }); + } else if (key === undefined) { + if (next === ',') doc.errors.push(new PlainValue.YAMLSemanticError(item, 'Separator , missing in flow map')); + key = resolveNode(doc, item); + } else { + if (next !== ',') doc.errors.push(new PlainValue.YAMLSemanticError(item, 'Indicator : missing in flow map entry')); + items.push(new Pair(key, resolveNode(doc, item))); + key = undefined; + explicitKey = false; + } + } + + checkFlowCollectionEnd(doc.errors, cst); + if (key !== undefined) items.push(new Pair(key)); + return { + comments, + items + }; +} + +function resolveSeq(doc, cst) { + if (cst.type !== PlainValue.Type.SEQ && cst.type !== PlainValue.Type.FLOW_SEQ) { + const msg = `A ${cst.type} node cannot be resolved as a sequence`; + doc.errors.push(new PlainValue.YAMLSyntaxError(cst, msg)); + return null; + } + + const { + comments, + items + } = cst.type === PlainValue.Type.FLOW_SEQ ? resolveFlowSeqItems(doc, cst) : resolveBlockSeqItems(doc, cst); + const seq = new YAMLSeq(); + seq.items = items; + resolveComments(seq, comments); + + if (!doc.options.mapAsMap && items.some(it => it instanceof Pair && it.key instanceof Collection)) { + const warn = 'Keys with collection values will be stringified as YAML due to JS Object restrictions. Use mapAsMap: true to avoid this.'; + doc.warnings.push(new PlainValue.YAMLWarning(cst, warn)); + } + + cst.resolved = seq; + return seq; +} + +function resolveBlockSeqItems(doc, cst) { + const comments = []; + const items = []; + + for (let i = 0; i < cst.items.length; ++i) { + const item = cst.items[i]; + + switch (item.type) { + case PlainValue.Type.BLANK_LINE: + comments.push({ + before: items.length + }); + break; + + case PlainValue.Type.COMMENT: + comments.push({ + comment: item.comment, + before: items.length + }); + break; + + case PlainValue.Type.SEQ_ITEM: + if (item.error) doc.errors.push(item.error); + items.push(resolveNode(doc, item.node)); + + if (item.hasProps) { + const msg = 'Sequence items cannot have tags or anchors before the - indicator'; + doc.errors.push(new PlainValue.YAMLSemanticError(item, msg)); + } + + break; + + default: + if (item.error) doc.errors.push(item.error); + doc.errors.push(new PlainValue.YAMLSyntaxError(item, `Unexpected ${item.type} node in sequence`)); + } + } + + return { + comments, + items + }; +} + +function resolveFlowSeqItems(doc, cst) { + const comments = []; + const items = []; + let explicitKey = false; + let key = undefined; + let keyStart = null; + let next = '['; + let prevItem = null; + + for (let i = 0; i < cst.items.length; ++i) { + const item = cst.items[i]; + + if (typeof item.char === 'string') { + const { + char, + offset + } = item; + + if (char !== ':' && (explicitKey || key !== undefined)) { + if (explicitKey && key === undefined) key = next ? items.pop() : null; + items.push(new Pair(key)); + explicitKey = false; + key = undefined; + keyStart = null; + } + + if (char === next) { + next = null; + } else if (!next && char === '?') { + explicitKey = true; + } else if (next !== '[' && char === ':' && key === undefined) { + if (next === ',') { + key = items.pop(); + + if (key instanceof Pair) { + const msg = 'Chaining flow sequence pairs is invalid'; + const err = new PlainValue.YAMLSemanticError(cst, msg); + err.offset = offset; + doc.errors.push(err); + } + + if (!explicitKey && typeof keyStart === 'number') { + const keyEnd = item.range ? item.range.start : item.offset; + if (keyEnd > keyStart + 1024) doc.errors.push(getLongKeyError(cst, key)); + const { + src + } = prevItem.context; + + for (let i = keyStart; i < keyEnd; ++i) if (src[i] === '\n') { + const msg = 'Implicit keys of flow sequence pairs need to be on a single line'; + doc.errors.push(new PlainValue.YAMLSemanticError(prevItem, msg)); + break; + } + } + } else { + key = null; + } + + keyStart = null; + explicitKey = false; + next = null; + } else if (next === '[' || char !== ']' || i < cst.items.length - 1) { + const msg = `Flow sequence contains an unexpected ${char}`; + const err = new PlainValue.YAMLSyntaxError(cst, msg); + err.offset = offset; + doc.errors.push(err); + } + } else if (item.type === PlainValue.Type.BLANK_LINE) { + comments.push({ + before: items.length + }); + } else if (item.type === PlainValue.Type.COMMENT) { + checkFlowCommentSpace(doc.errors, item); + comments.push({ + comment: item.comment, + before: items.length + }); + } else { + if (next) { + const msg = `Expected a ${next} in flow sequence`; + doc.errors.push(new PlainValue.YAMLSemanticError(item, msg)); + } + + const value = resolveNode(doc, item); + + if (key === undefined) { + items.push(value); + prevItem = item; + } else { + items.push(new Pair(key, value)); + key = undefined; + } + + keyStart = item.range.start; + next = ','; + } + } + + checkFlowCollectionEnd(doc.errors, cst); + if (key !== undefined) items.push(new Pair(key)); + return { + comments, + items + }; +} + +exports.Alias = Alias; +exports.Collection = Collection; +exports.Merge = Merge; +exports.Node = Node; +exports.Pair = Pair; +exports.Scalar = Scalar; +exports.YAMLMap = YAMLMap; +exports.YAMLSeq = YAMLSeq; +exports.addComment = addComment; +exports.binaryOptions = binaryOptions; +exports.boolOptions = boolOptions; +exports.findPair = findPair; +exports.intOptions = intOptions; +exports.isEmptyPath = isEmptyPath; +exports.nullOptions = nullOptions; +exports.resolveMap = resolveMap; +exports.resolveNode = resolveNode; +exports.resolveSeq = resolveSeq; +exports.resolveString = resolveString; +exports.strOptions = strOptions; +exports.stringifyNumber = stringifyNumber; +exports.stringifyString = stringifyString; +exports.toJSON = toJSON; diff --git a/node_modules/yaml/dist/test-events.js b/node_modules/yaml/dist/test-events.js new file mode 100644 index 00000000..2b856e18 --- /dev/null +++ b/node_modules/yaml/dist/test-events.js @@ -0,0 +1,162 @@ +'use strict'; + +var parseCst = require('./parse-cst.js'); +var Document = require('./Document-9b4560a1.js'); +require('./PlainValue-ec8e588e.js'); +require('./resolveSeq-d03cb037.js'); +require('./Schema-88e323a7.js'); +require('./warnings-1000a372.js'); + +function testEvents(src, options) { + const opt = Object.assign({ + keepCstNodes: true, + keepNodeTypes: true, + version: '1.2' + }, options); + const docs = parseCst.parse(src).map(cstDoc => new Document.Document(opt).parse(cstDoc)); + const errDoc = docs.find(doc => doc.errors.length > 0); + const error = errDoc ? errDoc.errors[0].message : null; + const events = ['+STR']; + + try { + for (let i = 0; i < docs.length; ++i) { + const doc = docs[i]; + let root = doc.contents; + if (Array.isArray(root)) root = root[0]; + const [rootStart, rootEnd] = doc.range || [0, 0]; + let e = doc.errors[0] && doc.errors[0].source; + if (e && e.type === 'SEQ_ITEM') e = e.node; + if (e && (e.type === 'DOCUMENT' || e.range.start < rootStart)) throw new Error(); + let docStart = '+DOC'; + const pre = src.slice(0, rootStart); + const explicitDoc = /---\s*$/.test(pre); + if (explicitDoc) docStart += ' ---';else if (!doc.contents) continue; + events.push(docStart); + addEvents(events, doc, e, root); + if (doc.contents && doc.contents.length > 1) throw new Error(); + let docEnd = '-DOC'; + + if (rootEnd) { + const post = src.slice(rootEnd); + if (/^\.\.\./.test(post)) docEnd += ' ...'; + } + + events.push(docEnd); + } + } catch (e) { + return { + events, + error: error || e + }; + } + + events.push('-STR'); + return { + events, + error + }; +} + +function addEvents(events, doc, e, node) { + if (!node) { + events.push('=VAL :'); + return; + } + + if (e && node.cstNode === e) throw new Error(); + let props = ''; + let anchor = doc.anchors.getName(node); + + if (anchor) { + if (/\d$/.test(anchor)) { + const alt = anchor.replace(/\d$/, ''); + if (doc.anchors.getNode(alt)) anchor = alt; + } + + props = ` &${anchor}`; + } + + if (node.cstNode && node.cstNode.tag) { + const { + handle, + suffix + } = node.cstNode.tag; + props += handle === '!' && !suffix ? ' ' : ` <${node.tag}>`; + } + + let scalar = null; + + switch (node.type) { + case 'ALIAS': + { + let alias = doc.anchors.getName(node.source); + + if (/\d$/.test(alias)) { + const alt = alias.replace(/\d$/, ''); + if (doc.anchors.getNode(alt)) alias = alt; + } + + events.push(`=ALI${props} *${alias}`); + } + break; + + case 'BLOCK_FOLDED': + scalar = '>'; + break; + + case 'BLOCK_LITERAL': + scalar = '|'; + break; + + case 'PLAIN': + scalar = ':'; + break; + + case 'QUOTE_DOUBLE': + scalar = '"'; + break; + + case 'QUOTE_SINGLE': + scalar = "'"; + break; + + case 'PAIR': + events.push(`+MAP${props}`); + addEvents(events, doc, e, node.key); + addEvents(events, doc, e, node.value); + events.push('-MAP'); + break; + + case 'FLOW_SEQ': + case 'SEQ': + events.push(`+SEQ${props}`); + node.items.forEach(item => { + addEvents(events, doc, e, item); + }); + events.push('-SEQ'); + break; + + case 'FLOW_MAP': + case 'MAP': + events.push(`+MAP${props}`); + node.items.forEach(({ + key, + value + }) => { + addEvents(events, doc, e, key); + addEvents(events, doc, e, value); + }); + events.push('-MAP'); + break; + + default: + throw new Error(`Unexpected node type ${node.type}`); + } + + if (scalar) { + const value = node.cstNode.strValue.replace(/\\/g, '\\\\').replace(/\0/g, '\\0').replace(/\x07/g, '\\a').replace(/\x08/g, '\\b').replace(/\t/g, '\\t').replace(/\n/g, '\\n').replace(/\v/g, '\\v').replace(/\f/g, '\\f').replace(/\r/g, '\\r').replace(/\x1b/g, '\\e'); + events.push(`=VAL${props} ${scalar}${value}`); + } +} + +exports.testEvents = testEvents; diff --git a/node_modules/yaml/dist/types.js b/node_modules/yaml/dist/types.js new file mode 100644 index 00000000..967c04e0 --- /dev/null +++ b/node_modules/yaml/dist/types.js @@ -0,0 +1,23 @@ +'use strict'; + +var resolveSeq = require('./resolveSeq-d03cb037.js'); +var Schema = require('./Schema-88e323a7.js'); +require('./PlainValue-ec8e588e.js'); +require('./warnings-1000a372.js'); + + + +exports.Alias = resolveSeq.Alias; +exports.Collection = resolveSeq.Collection; +exports.Merge = resolveSeq.Merge; +exports.Node = resolveSeq.Node; +exports.Pair = resolveSeq.Pair; +exports.Scalar = resolveSeq.Scalar; +exports.YAMLMap = resolveSeq.YAMLMap; +exports.YAMLSeq = resolveSeq.YAMLSeq; +exports.binaryOptions = resolveSeq.binaryOptions; +exports.boolOptions = resolveSeq.boolOptions; +exports.intOptions = resolveSeq.intOptions; +exports.nullOptions = resolveSeq.nullOptions; +exports.strOptions = resolveSeq.strOptions; +exports.Schema = Schema.Schema; diff --git a/node_modules/yaml/dist/util.js b/node_modules/yaml/dist/util.js new file mode 100644 index 00000000..bc1e079a --- /dev/null +++ b/node_modules/yaml/dist/util.js @@ -0,0 +1,19 @@ +'use strict'; + +var resolveSeq = require('./resolveSeq-d03cb037.js'); +var PlainValue = require('./PlainValue-ec8e588e.js'); + + + +exports.findPair = resolveSeq.findPair; +exports.parseMap = resolveSeq.resolveMap; +exports.parseSeq = resolveSeq.resolveSeq; +exports.stringifyNumber = resolveSeq.stringifyNumber; +exports.stringifyString = resolveSeq.stringifyString; +exports.toJSON = resolveSeq.toJSON; +exports.Type = PlainValue.Type; +exports.YAMLError = PlainValue.YAMLError; +exports.YAMLReferenceError = PlainValue.YAMLReferenceError; +exports.YAMLSemanticError = PlainValue.YAMLSemanticError; +exports.YAMLSyntaxError = PlainValue.YAMLSyntaxError; +exports.YAMLWarning = PlainValue.YAMLWarning; diff --git a/node_modules/yaml/dist/warnings-1000a372.js b/node_modules/yaml/dist/warnings-1000a372.js new file mode 100644 index 00000000..7776d9fc --- /dev/null +++ b/node_modules/yaml/dist/warnings-1000a372.js @@ -0,0 +1,416 @@ +'use strict'; + +var PlainValue = require('./PlainValue-ec8e588e.js'); +var resolveSeq = require('./resolveSeq-d03cb037.js'); + +/* global atob, btoa, Buffer */ +const binary = { + identify: value => value instanceof Uint8Array, + // Buffer inherits from Uint8Array + default: false, + tag: 'tag:yaml.org,2002:binary', + + /** + * Returns a Buffer in node and an Uint8Array in browsers + * + * To use the resulting buffer as an image, you'll want to do something like: + * + * const blob = new Blob([buffer], { type: 'image/jpeg' }) + * document.querySelector('#photo').src = URL.createObjectURL(blob) + */ + resolve: (doc, node) => { + const src = resolveSeq.resolveString(doc, node); + + if (typeof Buffer === 'function') { + return Buffer.from(src, 'base64'); + } else if (typeof atob === 'function') { + // On IE 11, atob() can't handle newlines + const str = atob(src.replace(/[\n\r]/g, '')); + const buffer = new Uint8Array(str.length); + + for (let i = 0; i < str.length; ++i) buffer[i] = str.charCodeAt(i); + + return buffer; + } else { + const msg = 'This environment does not support reading binary tags; either Buffer or atob is required'; + doc.errors.push(new PlainValue.YAMLReferenceError(node, msg)); + return null; + } + }, + options: resolveSeq.binaryOptions, + stringify: ({ + comment, + type, + value + }, ctx, onComment, onChompKeep) => { + let src; + + if (typeof Buffer === 'function') { + src = value instanceof Buffer ? value.toString('base64') : Buffer.from(value.buffer).toString('base64'); + } else if (typeof btoa === 'function') { + let s = ''; + + for (let i = 0; i < value.length; ++i) s += String.fromCharCode(value[i]); + + src = btoa(s); + } else { + throw new Error('This environment does not support writing binary tags; either Buffer or btoa is required'); + } + + if (!type) type = resolveSeq.binaryOptions.defaultType; + + if (type === PlainValue.Type.QUOTE_DOUBLE) { + value = src; + } else { + const { + lineWidth + } = resolveSeq.binaryOptions; + const n = Math.ceil(src.length / lineWidth); + const lines = new Array(n); + + for (let i = 0, o = 0; i < n; ++i, o += lineWidth) { + lines[i] = src.substr(o, lineWidth); + } + + value = lines.join(type === PlainValue.Type.BLOCK_LITERAL ? '\n' : ' '); + } + + return resolveSeq.stringifyString({ + comment, + type, + value + }, ctx, onComment, onChompKeep); + } +}; + +function parsePairs(doc, cst) { + const seq = resolveSeq.resolveSeq(doc, cst); + + for (let i = 0; i < seq.items.length; ++i) { + let item = seq.items[i]; + if (item instanceof resolveSeq.Pair) continue;else if (item instanceof resolveSeq.YAMLMap) { + if (item.items.length > 1) { + const msg = 'Each pair must have its own sequence indicator'; + throw new PlainValue.YAMLSemanticError(cst, msg); + } + + const pair = item.items[0] || new resolveSeq.Pair(); + if (item.commentBefore) pair.commentBefore = pair.commentBefore ? `${item.commentBefore}\n${pair.commentBefore}` : item.commentBefore; + if (item.comment) pair.comment = pair.comment ? `${item.comment}\n${pair.comment}` : item.comment; + item = pair; + } + seq.items[i] = item instanceof resolveSeq.Pair ? item : new resolveSeq.Pair(item); + } + + return seq; +} +function createPairs(schema, iterable, ctx) { + const pairs = new resolveSeq.YAMLSeq(schema); + pairs.tag = 'tag:yaml.org,2002:pairs'; + + for (const it of iterable) { + let key, value; + + if (Array.isArray(it)) { + if (it.length === 2) { + key = it[0]; + value = it[1]; + } else throw new TypeError(`Expected [key, value] tuple: ${it}`); + } else if (it && it instanceof Object) { + const keys = Object.keys(it); + + if (keys.length === 1) { + key = keys[0]; + value = it[key]; + } else throw new TypeError(`Expected { key: value } tuple: ${it}`); + } else { + key = it; + } + + const pair = schema.createPair(key, value, ctx); + pairs.items.push(pair); + } + + return pairs; +} +const pairs = { + default: false, + tag: 'tag:yaml.org,2002:pairs', + resolve: parsePairs, + createNode: createPairs +}; + +class YAMLOMap extends resolveSeq.YAMLSeq { + constructor() { + super(); + + PlainValue._defineProperty(this, "add", resolveSeq.YAMLMap.prototype.add.bind(this)); + + PlainValue._defineProperty(this, "delete", resolveSeq.YAMLMap.prototype.delete.bind(this)); + + PlainValue._defineProperty(this, "get", resolveSeq.YAMLMap.prototype.get.bind(this)); + + PlainValue._defineProperty(this, "has", resolveSeq.YAMLMap.prototype.has.bind(this)); + + PlainValue._defineProperty(this, "set", resolveSeq.YAMLMap.prototype.set.bind(this)); + + this.tag = YAMLOMap.tag; + } + + toJSON(_, ctx) { + const map = new Map(); + if (ctx && ctx.onCreate) ctx.onCreate(map); + + for (const pair of this.items) { + let key, value; + + if (pair instanceof resolveSeq.Pair) { + key = resolveSeq.toJSON(pair.key, '', ctx); + value = resolveSeq.toJSON(pair.value, key, ctx); + } else { + key = resolveSeq.toJSON(pair, '', ctx); + } + + if (map.has(key)) throw new Error('Ordered maps must not include duplicate keys'); + map.set(key, value); + } + + return map; + } + +} + +PlainValue._defineProperty(YAMLOMap, "tag", 'tag:yaml.org,2002:omap'); + +function parseOMap(doc, cst) { + const pairs = parsePairs(doc, cst); + const seenKeys = []; + + for (const { + key + } of pairs.items) { + if (key instanceof resolveSeq.Scalar) { + if (seenKeys.includes(key.value)) { + const msg = 'Ordered maps must not include duplicate keys'; + throw new PlainValue.YAMLSemanticError(cst, msg); + } else { + seenKeys.push(key.value); + } + } + } + + return Object.assign(new YAMLOMap(), pairs); +} + +function createOMap(schema, iterable, ctx) { + const pairs = createPairs(schema, iterable, ctx); + const omap = new YAMLOMap(); + omap.items = pairs.items; + return omap; +} + +const omap = { + identify: value => value instanceof Map, + nodeClass: YAMLOMap, + default: false, + tag: 'tag:yaml.org,2002:omap', + resolve: parseOMap, + createNode: createOMap +}; + +class YAMLSet extends resolveSeq.YAMLMap { + constructor() { + super(); + this.tag = YAMLSet.tag; + } + + add(key) { + const pair = key instanceof resolveSeq.Pair ? key : new resolveSeq.Pair(key); + const prev = resolveSeq.findPair(this.items, pair.key); + if (!prev) this.items.push(pair); + } + + get(key, keepPair) { + const pair = resolveSeq.findPair(this.items, key); + return !keepPair && pair instanceof resolveSeq.Pair ? pair.key instanceof resolveSeq.Scalar ? pair.key.value : pair.key : pair; + } + + set(key, value) { + if (typeof value !== 'boolean') throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value}`); + const prev = resolveSeq.findPair(this.items, key); + + if (prev && !value) { + this.items.splice(this.items.indexOf(prev), 1); + } else if (!prev && value) { + this.items.push(new resolveSeq.Pair(key)); + } + } + + toJSON(_, ctx) { + return super.toJSON(_, ctx, Set); + } + + toString(ctx, onComment, onChompKeep) { + if (!ctx) return JSON.stringify(this); + if (this.hasAllNullValues()) return super.toString(ctx, onComment, onChompKeep);else throw new Error('Set items must all have null values'); + } + +} + +PlainValue._defineProperty(YAMLSet, "tag", 'tag:yaml.org,2002:set'); + +function parseSet(doc, cst) { + const map = resolveSeq.resolveMap(doc, cst); + if (!map.hasAllNullValues()) throw new PlainValue.YAMLSemanticError(cst, 'Set items must all have null values'); + return Object.assign(new YAMLSet(), map); +} + +function createSet(schema, iterable, ctx) { + const set = new YAMLSet(); + + for (const value of iterable) set.items.push(schema.createPair(value, null, ctx)); + + return set; +} + +const set = { + identify: value => value instanceof Set, + nodeClass: YAMLSet, + default: false, + tag: 'tag:yaml.org,2002:set', + resolve: parseSet, + createNode: createSet +}; + +const parseSexagesimal = (sign, parts) => { + const n = parts.split(':').reduce((n, p) => n * 60 + Number(p), 0); + return sign === '-' ? -n : n; +}; // hhhh:mm:ss.sss + + +const stringifySexagesimal = ({ + value +}) => { + if (isNaN(value) || !isFinite(value)) return resolveSeq.stringifyNumber(value); + let sign = ''; + + if (value < 0) { + sign = '-'; + value = Math.abs(value); + } + + const parts = [value % 60]; // seconds, including ms + + if (value < 60) { + parts.unshift(0); // at least one : is required + } else { + value = Math.round((value - parts[0]) / 60); + parts.unshift(value % 60); // minutes + + if (value >= 60) { + value = Math.round((value - parts[0]) / 60); + parts.unshift(value); // hours + } + } + + return sign + parts.map(n => n < 10 ? '0' + String(n) : String(n)).join(':').replace(/000000\d*$/, '') // % 60 may introduce error + ; +}; + +const intTime = { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:int', + format: 'TIME', + test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/, + resolve: (str, sign, parts) => parseSexagesimal(sign, parts.replace(/_/g, '')), + stringify: stringifySexagesimal +}; +const floatTime = { + identify: value => typeof value === 'number', + default: true, + tag: 'tag:yaml.org,2002:float', + format: 'TIME', + test: /^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*)$/, + resolve: (str, sign, parts) => parseSexagesimal(sign, parts.replace(/_/g, '')), + stringify: stringifySexagesimal +}; +const timestamp = { + identify: value => value instanceof Date, + default: true, + tag: 'tag:yaml.org,2002:timestamp', + // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part + // may be omitted altogether, resulting in a date format. In such a case, the time part is + // assumed to be 00:00:00Z (start of day, UTC). + test: RegExp('^(?:' + '([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})' + // YYYY-Mm-Dd + '(?:(?:t|T|[ \\t]+)' + // t | T | whitespace + '([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)' + // Hh:Mm:Ss(.ss)? + '(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?' + // Z | +5 | -03:30 + ')?' + ')$'), + resolve: (str, year, month, day, hour, minute, second, millisec, tz) => { + if (millisec) millisec = (millisec + '00').substr(1, 3); + let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec || 0); + + if (tz && tz !== 'Z') { + let d = parseSexagesimal(tz[0], tz.slice(1)); + if (Math.abs(d) < 30) d *= 60; + date -= 60000 * d; + } + + return new Date(date); + }, + stringify: ({ + value + }) => value.toISOString().replace(/((T00:00)?:00)?\.000Z$/, '') +}; + +/* global console, process, YAML_SILENCE_DEPRECATION_WARNINGS, YAML_SILENCE_WARNINGS */ +function shouldWarn(deprecation) { + const env = typeof process !== 'undefined' && process.env || {}; + + if (deprecation) { + if (typeof YAML_SILENCE_DEPRECATION_WARNINGS !== 'undefined') return !YAML_SILENCE_DEPRECATION_WARNINGS; + return !env.YAML_SILENCE_DEPRECATION_WARNINGS; + } + + if (typeof YAML_SILENCE_WARNINGS !== 'undefined') return !YAML_SILENCE_WARNINGS; + return !env.YAML_SILENCE_WARNINGS; +} + +function warn(warning, type) { + if (shouldWarn(false)) { + const emit = typeof process !== 'undefined' && process.emitWarning; // This will throw in Jest if `warning` is an Error instance due to + // https://github.com/facebook/jest/issues/2549 + + if (emit) emit(warning, type);else { + // eslint-disable-next-line no-console + console.warn(type ? `${type}: ${warning}` : warning); + } + } +} +function warnFileDeprecation(filename) { + if (shouldWarn(true)) { + const path = filename.replace(/.*yaml[/\\]/i, '').replace(/\.js$/, '').replace(/\\/g, '/'); + warn(`The endpoint 'yaml/${path}' will be removed in a future release.`, 'DeprecationWarning'); + } +} +const warned = {}; +function warnOptionDeprecation(name, alternative) { + if (!warned[name] && shouldWarn(true)) { + warned[name] = true; + let msg = `The option '${name}' will be removed in a future release`; + msg += alternative ? `, use '${alternative}' instead.` : '.'; + warn(msg, 'DeprecationWarning'); + } +} + +exports.binary = binary; +exports.floatTime = floatTime; +exports.intTime = intTime; +exports.omap = omap; +exports.pairs = pairs; +exports.set = set; +exports.timestamp = timestamp; +exports.warn = warn; +exports.warnFileDeprecation = warnFileDeprecation; +exports.warnOptionDeprecation = warnOptionDeprecation; diff --git a/node_modules/yaml/index.d.ts b/node_modules/yaml/index.d.ts new file mode 100644 index 00000000..53eb011b --- /dev/null +++ b/node_modules/yaml/index.d.ts @@ -0,0 +1,372 @@ +import { CST } from './parse-cst' +import { + AST, + Alias, + Collection, + Merge, + Node, + Scalar, + Schema, + YAMLMap, + YAMLSeq +} from './types' +import { Type, YAMLError, YAMLWarning } from './util' + +export { AST, CST } +export { default as parseCST } from './parse-cst' + +/** + * `yaml` defines document-specific options in three places: as an argument of + * parse, create and stringify calls, in the values of `YAML.defaultOptions`, + * and in the version-dependent `YAML.Document.defaults` object. Values set in + * `YAML.defaultOptions` override version-dependent defaults, and argument + * options override both. + */ +export const defaultOptions: Options + +export interface Options extends Schema.Options { + /** + * Default prefix for anchors. + * + * Default: `'a'`, resulting in anchors `a1`, `a2`, etc. + */ + anchorPrefix?: string + /** + * The number of spaces to use when indenting code. + * + * Default: `2` + */ + indent?: number + /** + * Whether block sequences should be indented. + * + * Default: `true` + */ + indentSeq?: boolean + /** + * Allow non-JSON JavaScript objects to remain in the `toJSON` output. + * Relevant with the YAML 1.1 `!!timestamp` and `!!binary` tags as well as BigInts. + * + * Default: `true` + */ + keepBlobsInJSON?: boolean + /** + * Include references in the AST to each node's corresponding CST node. + * + * Default: `false` + */ + keepCstNodes?: boolean + /** + * Store the original node type when parsing documents. + * + * Default: `true` + */ + keepNodeTypes?: boolean + /** + * When outputting JS, use Map rather than Object to represent mappings. + * + * Default: `false` + */ + mapAsMap?: boolean + /** + * Prevent exponential entity expansion attacks by limiting data aliasing count; + * set to `-1` to disable checks; `0` disallows all alias nodes. + * + * Default: `100` + */ + maxAliasCount?: number + /** + * Include line position & node type directly in errors; drop their verbose source and context. + * + * Default: `false` + */ + prettyErrors?: boolean + /** + * When stringifying, require keys to be scalars and to use implicit rather than explicit notation. + * + * Default: `false` + */ + simpleKeys?: boolean + /** + * The YAML version used by documents without a `%YAML` directive. + * + * Default: `"1.2"` + */ + version?: '1.0' | '1.1' | '1.2' +} + +/** + * Some customization options are availabe to control the parsing and + * stringification of scalars. Note that these values are used by all documents. + */ +export const scalarOptions: { + binary: scalarOptions.Binary + bool: scalarOptions.Bool + int: scalarOptions.Int + null: scalarOptions.Null + str: scalarOptions.Str +} +export namespace scalarOptions { + interface Binary { + /** + * The type of string literal used to stringify `!!binary` values. + * + * Default: `'BLOCK_LITERAL'` + */ + defaultType: Scalar.Type + /** + * Maximum line width for `!!binary`. + * + * Default: `76` + */ + lineWidth: number + } + + interface Bool { + /** + * String representation for `true`. With the core schema, use `'true' | 'True' | 'TRUE'`. + * + * Default: `'true'` + */ + trueStr: string + /** + * String representation for `false`. With the core schema, use `'false' | 'False' | 'FALSE'`. + * + * Default: `'false'` + */ + falseStr: string + } + + interface Int { + /** + * Whether integers should be parsed into BigInt values. + * + * Default: `false` + */ + asBigInt: boolean + } + + interface Null { + /** + * String representation for `null`. With the core schema, use `'null' | 'Null' | 'NULL' | '~' | ''`. + * + * Default: `'null'` + */ + nullStr: string + } + + interface Str { + /** + * The default type of string literal used to stringify values + * + * Default: `'PLAIN'` + */ + defaultType: Scalar.Type + doubleQuoted: { + /** + * Whether to restrict double-quoted strings to use JSON-compatible syntax. + * + * Default: `false` + */ + jsonEncoding: boolean + /** + * Minimum length to use multiple lines to represent the value. + * + * Default: `40` + */ + minMultiLineLength: number + } + fold: { + /** + * Maximum line width (set to `0` to disable folding). + * + * Default: `80` + */ + lineWidth: number + /** + * Minimum width for highly-indented content. + * + * Default: `20` + */ + minContentWidth: number + } + } +} + +export class Document extends Collection { + cstNode?: CST.Document + constructor(options?: Options) + tag: never + directivesEndMarker?: boolean + type: Type.DOCUMENT + /** + * Anchors associated with the document's nodes; + * also provides alias & merge node creators. + */ + anchors: Document.Anchors + /** The document contents. */ + contents: any + /** Errors encountered during parsing. */ + errors: YAMLError[] + /** + * The schema used with the document. Use `setSchema()` to change or + * initialise. + */ + schema?: Schema + /** + * Array of prefixes; each will have a string `handle` that + * starts and ends with `!` and a string `prefix` that the handle will be replaced by. + */ + tagPrefixes: Document.TagPrefix[] + /** + * The parsed version of the source document; + * if true-ish, stringified output will include a `%YAML` directive. + */ + version?: string + /** Warnings encountered during parsing. */ + warnings: YAMLWarning[] + /** + * List the tags used in the document that are not in the default + * `tag:yaml.org,2002:` namespace. + */ + listNonDefaultTags(): string[] + /** Parse a CST into this document */ + parse(cst: CST.Document): this + /** + * When a document is created with `new YAML.Document()`, the schema object is + * not set as it may be influenced by parsed directives; call this with no + * arguments to set it manually, or with arguments to change the schema used + * by the document. + **/ + setSchema( + id?: Options['version'] | Schema.Name, + customTags?: (Schema.TagId | Schema.Tag)[] + ): void + /** Set `handle` as a shorthand string for the `prefix` tag namespace. */ + setTagPrefix(handle: string, prefix: string): void + /** + * A plain JavaScript representation of the document `contents`. + * + * @param arg Used by `JSON.stringify` to indicate the array index or property + * name. If its value is a `string` and the document `contents` has a scalar + * value, the `keepBlobsInJSON` option has no effect. + * @param onAnchor If defined, called with the resolved `value` and reference + * `count` for each anchor in the document. + * */ + toJSON(arg?: string, onAnchor?: (value: any, count: number) => void): any + /** A YAML representation of the document. */ + toString(): string +} + +export namespace Document { + interface Parsed extends Document { + contents: Scalar | YAMLMap | YAMLSeq | null + /** The schema used with the document. */ + schema: Schema + } + + interface Anchors { + /** + * Create a new `Alias` node, adding the required anchor for `node`. + * If `name` is empty, a new anchor name will be generated. + */ + createAlias(node: Node, name?: string): Alias + /** + * Create a new `Merge` node with the given source nodes. + * Non-`Alias` sources will be automatically wrapped. + */ + createMergePair(...nodes: Node[]): Merge + /** The anchor name associated with `node`, if set. */ + getName(node: Node): undefined | string + /** List of all defined anchor names. */ + getNames(): string[] + /** The node associated with the anchor `name`, if set. */ + getNode(name: string): undefined | Node + /** + * Find an available anchor name with the given `prefix` and a + * numerical suffix. + */ + newName(prefix: string): string + /** + * Associate an anchor with `node`. If `name` is empty, a new name will be generated. + * To remove an anchor, use `setAnchor(null, name)`. + */ + setAnchor(node: Node | null, name?: string): void | string + } + + interface TagPrefix { + handle: string + prefix: string + } +} + +/** + * Recursively turns objects into collections. Generic objects as well as `Map` + * and its descendants become mappings, while arrays and other iterable objects + * result in sequences. + * + * The primary purpose of this function is to enable attaching comments or other + * metadata to a value, or to otherwise exert more fine-grained control over the + * stringified output. To that end, you'll need to assign its return value to + * the `contents` of a Document (or somewhere within said contents), as the + * document's schema is required for YAML string output. + * + * @param wrapScalars If undefined or `true`, also wraps plain values in + * `Scalar` objects; if `false` and `value` is not an object, it will be + * returned directly. + * @param tag Use to specify the collection type, e.g. `"!!omap"`. Note that + * this requires the corresponding tag to be available based on the default + * options. To use a specific document's schema, use `doc.schema.createNode`. + */ +export function createNode( + value: any, + wrapScalars?: true, + tag?: string +): YAMLMap | YAMLSeq | Scalar + +/** + * YAML.createNode recursively turns objects into Map and arrays to Seq collections. + * Its primary use is to enable attaching comments or other metadata to a value, + * or to otherwise exert more fine-grained control over the stringified output. + * + * Doesn't wrap plain values in Scalar objects. + */ +export function createNode( + value: any, + wrapScalars: false, + tag?: string +): YAMLMap | YAMLSeq | string | number | boolean | null + +/** + * Parse an input string into a single YAML.Document. + */ +export function parseDocument(str: string, options?: Options): Document.Parsed + +/** + * Parse the input as a stream of YAML documents. + * + * Documents should be separated from each other by `...` or `---` marker lines. + */ +export function parseAllDocuments( + str: string, + options?: Options +): Document.Parsed[] + +/** + * Parse an input string into JavaScript. + * + * Only supports input consisting of a single YAML document; for multi-document + * support you should use `YAML.parseAllDocuments`. May throw on error, and may + * log warnings using `console.warn`. + * + * @param str A string with YAML formatting. + * @returns The value will match the type of the root value of the parsed YAML + * document, so Maps become objects, Sequences arrays, and scalars result in + * nulls, booleans, numbers and strings. + */ +export function parse(str: string, options?: Options): any + +/** + * @returns Will always include \n as the last character, as is expected of YAML documents. + */ +export function stringify(value: any, options?: Options): string diff --git a/node_modules/yaml/index.js b/node_modules/yaml/index.js new file mode 100644 index 00000000..b501ac4d --- /dev/null +++ b/node_modules/yaml/index.js @@ -0,0 +1 @@ +module.exports = require('./dist').YAML diff --git a/node_modules/yaml/map.js b/node_modules/yaml/map.js new file mode 100644 index 00000000..78f2ebc7 --- /dev/null +++ b/node_modules/yaml/map.js @@ -0,0 +1,2 @@ +module.exports = require('./dist/types').YAMLMap +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/package.json b/node_modules/yaml/package.json new file mode 100644 index 00000000..d91b0dd1 --- /dev/null +++ b/node_modules/yaml/package.json @@ -0,0 +1,106 @@ +{ + "name": "yaml", + "version": "1.10.2", + "license": "ISC", + "author": "Eemeli Aro ", + "repository": "github:eemeli/yaml", + "description": "JavaScript parser and stringifier for YAML", + "keywords": [ + "YAML", + "parser", + "stringifier" + ], + "homepage": "https://eemeli.org/yaml/v1/", + "files": [ + "browser/", + "dist/", + "types/", + "*.d.ts", + "*.js", + "*.mjs", + "!*config.js" + ], + "type": "commonjs", + "main": "./index.js", + "browser": { + "./index.js": "./browser/index.js", + "./map.js": "./browser/map.js", + "./pair.js": "./browser/pair.js", + "./parse-cst.js": "./browser/parse-cst.js", + "./scalar.js": "./browser/scalar.js", + "./schema.js": "./browser/schema.js", + "./seq.js": "./browser/seq.js", + "./types.js": "./browser/types.js", + "./types.mjs": "./browser/types.js", + "./types/binary.js": "./browser/types/binary.js", + "./types/omap.js": "./browser/types/omap.js", + "./types/pairs.js": "./browser/types/pairs.js", + "./types/set.js": "./browser/types/set.js", + "./types/timestamp.js": "./browser/types/timestamp.js", + "./util.js": "./browser/util.js", + "./util.mjs": "./browser/util.js" + }, + "exports": { + ".": "./index.js", + "./parse-cst": "./parse-cst.js", + "./types": [ + { + "import": "./types.mjs" + }, + "./types.js" + ], + "./util": [ + { + "import": "./util.mjs" + }, + "./util.js" + ], + "./": "./" + }, + "scripts": { + "build": "npm run build:node && npm run build:browser", + "build:browser": "rollup -c rollup.browser-config.js", + "build:node": "rollup -c rollup.node-config.js", + "clean": "git clean -fdxe node_modules", + "lint": "eslint src/", + "prettier": "prettier --write .", + "start": "cross-env TRACE_LEVEL=log npm run build:node && node -i -e 'YAML=require(\".\")'", + "test": "jest", + "test:browsers": "cd playground && npm test", + "test:dist": "npm run build:node && jest", + "test:types": "tsc --lib ES2017 --noEmit tests/typings.ts", + "docs:install": "cd docs-slate && bundle install", + "docs:deploy": "cd docs-slate && ./deploy.sh", + "docs": "cd docs-slate && bundle exec middleman server", + "preversion": "npm test && npm run build", + "prepublishOnly": "npm run clean && npm test && npm run build" + }, + "browserslist": "> 0.5%, not dead", + "prettier": { + "arrowParens": "avoid", + "semi": false, + "singleQuote": true, + "trailingComma": "none" + }, + "devDependencies": { + "@babel/core": "^7.12.10", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/preset-env": "^7.12.11", + "@rollup/plugin-babel": "^5.2.3", + "babel-eslint": "^10.1.0", + "babel-jest": "^26.6.3", + "babel-plugin-trace": "^1.1.0", + "common-tags": "^1.8.0", + "cross-env": "^7.0.3", + "eslint": "^7.19.0", + "eslint-config-prettier": "^7.2.0", + "fast-check": "^2.12.0", + "jest": "^26.6.3", + "prettier": "^2.2.1", + "rollup": "^2.38.2", + "typescript": "^4.1.3" + }, + "engines": { + "node": ">= 6" + } +} diff --git a/node_modules/yaml/pair.js b/node_modules/yaml/pair.js new file mode 100644 index 00000000..b2880a25 --- /dev/null +++ b/node_modules/yaml/pair.js @@ -0,0 +1,2 @@ +module.exports = require('./dist/types').Pair +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/parse-cst.d.ts b/node_modules/yaml/parse-cst.d.ts new file mode 100644 index 00000000..9fd2ebf8 --- /dev/null +++ b/node_modules/yaml/parse-cst.d.ts @@ -0,0 +1,191 @@ +import { Type, YAMLSyntaxError } from './util' + +export default function parseCST(str: string): ParsedCST + +export interface ParsedCST extends Array { + setOrigRanges(): boolean +} + +export namespace CST { + interface Range { + start: number + end: number + origStart?: number + origEnd?: number + isEmpty(): boolean + } + + interface ParseContext { + /** Node starts at beginning of line */ + atLineStart: boolean + /** true if currently in a collection context */ + inCollection: boolean + /** true if currently in a flow context */ + inFlow: boolean + /** Current level of indentation */ + indent: number + /** Start of the current line */ + lineStart: number + /** The parent of the node */ + parent: Node + /** Source of the YAML document */ + src: string + } + + interface Node { + context: ParseContext | null + /** if not null, indicates a parser failure */ + error: YAMLSyntaxError | null + /** span of context.src parsed into this node */ + range: Range | null + valueRange: Range | null + /** anchors, tags and comments */ + props: Range[] + /** specific node type */ + type: Type + /** if non-null, overrides source value */ + value: string | null + + readonly anchor: string | null + readonly comment: string | null + readonly hasComment: boolean + readonly hasProps: boolean + readonly jsonLike: boolean + readonly rangeAsLinePos: null | { + start: { line: number; col: number } + end?: { line: number; col: number } + } + readonly rawValue: string | null + readonly tag: + | null + | { verbatim: string } + | { handle: string; suffix: string } + readonly valueRangeContainsNewline: boolean + } + + interface Alias extends Node { + type: Type.ALIAS + /** contain the anchor without the * prefix */ + readonly rawValue: string + } + + type Scalar = BlockValue | PlainValue | QuoteValue + + interface BlockValue extends Node { + type: Type.BLOCK_FOLDED | Type.BLOCK_LITERAL + chomping: 'CLIP' | 'KEEP' | 'STRIP' + blockIndent: number | null + header: Range + readonly strValue: string | null + } + + interface BlockFolded extends BlockValue { + type: Type.BLOCK_FOLDED + } + + interface BlockLiteral extends BlockValue { + type: Type.BLOCK_LITERAL + } + + interface PlainValue extends Node { + type: Type.PLAIN + readonly strValue: string | null + } + + interface QuoteValue extends Node { + type: Type.QUOTE_DOUBLE | Type.QUOTE_SINGLE + readonly strValue: + | null + | string + | { str: string; errors: YAMLSyntaxError[] } + } + + interface QuoteDouble extends QuoteValue { + type: Type.QUOTE_DOUBLE + } + + interface QuoteSingle extends QuoteValue { + type: Type.QUOTE_SINGLE + } + + interface Comment extends Node { + type: Type.COMMENT + readonly anchor: null + readonly comment: string + readonly rawValue: null + readonly tag: null + } + + interface BlankLine extends Node { + type: Type.BLANK_LINE + } + + interface MapItem extends Node { + type: Type.MAP_KEY | Type.MAP_VALUE + node: ContentNode | null + } + + interface MapKey extends MapItem { + type: Type.MAP_KEY + } + + interface MapValue extends MapItem { + type: Type.MAP_VALUE + } + + interface Map extends Node { + type: Type.MAP + /** implicit keys are not wrapped */ + items: Array + } + + interface SeqItem extends Node { + type: Type.SEQ_ITEM + node: ContentNode | null + } + + interface Seq extends Node { + type: Type.SEQ + items: Array + } + + interface FlowChar { + char: '{' | '}' | '[' | ']' | ',' | '?' | ':' + offset: number + origOffset?: number + } + + interface FlowCollection extends Node { + type: Type.FLOW_MAP | Type.FLOW_SEQ + items: Array< + FlowChar | BlankLine | Comment | Alias | Scalar | FlowCollection + > + } + + interface FlowMap extends FlowCollection { + type: Type.FLOW_MAP + } + + interface FlowSeq extends FlowCollection { + type: Type.FLOW_SEQ + } + + type ContentNode = Alias | Scalar | Map | Seq | FlowCollection + + interface Directive extends Node { + type: Type.DIRECTIVE + name: string + readonly anchor: null + readonly parameters: string[] + readonly tag: null + } + + interface Document extends Node { + type: Type.DOCUMENT + directives: Array + contents: Array + readonly anchor: null + readonly comment: null + readonly tag: null + } +} diff --git a/node_modules/yaml/parse-cst.js b/node_modules/yaml/parse-cst.js new file mode 100644 index 00000000..80657565 --- /dev/null +++ b/node_modules/yaml/parse-cst.js @@ -0,0 +1 @@ +module.exports = require('./dist/parse-cst').parse diff --git a/node_modules/yaml/scalar.js b/node_modules/yaml/scalar.js new file mode 100644 index 00000000..deee1b03 --- /dev/null +++ b/node_modules/yaml/scalar.js @@ -0,0 +1,2 @@ +module.exports = require('./dist/types').Scalar +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/schema.js b/node_modules/yaml/schema.js new file mode 100644 index 00000000..4139c4bf --- /dev/null +++ b/node_modules/yaml/schema.js @@ -0,0 +1,9 @@ +const types = require('./dist/types') +const util = require('./dist/util') + +module.exports = types.Schema +module.exports.nullOptions = types.nullOptions +module.exports.strOptions = types.strOptions +module.exports.stringify = util.stringifyString + +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/seq.js b/node_modules/yaml/seq.js new file mode 100644 index 00000000..66147df3 --- /dev/null +++ b/node_modules/yaml/seq.js @@ -0,0 +1,2 @@ +module.exports = require('./dist/types').YAMLSeq +require('./dist/legacy-exports').warnFileDeprecation(__filename) diff --git a/node_modules/yaml/types.d.ts b/node_modules/yaml/types.d.ts new file mode 100644 index 00000000..411e74e8 --- /dev/null +++ b/node_modules/yaml/types.d.ts @@ -0,0 +1,407 @@ +import { Document, scalarOptions } from './index' +import { CST } from './parse-cst' +import { Type } from './util' + +export const binaryOptions: scalarOptions.Binary +export const boolOptions: scalarOptions.Bool +export const intOptions: scalarOptions.Int +export const nullOptions: scalarOptions.Null +export const strOptions: scalarOptions.Str + +export class Schema { + /** Default: `'tag:yaml.org,2002:'` */ + static defaultPrefix: string + static defaultTags: { + /** Default: `'tag:yaml.org,2002:map'` */ + MAP: string + /** Default: `'tag:yaml.org,2002:seq'` */ + SEQ: string + /** Default: `'tag:yaml.org,2002:str'` */ + STR: string + } + constructor(options: Schema.Options) + /** + * Convert any value into a `Node` using this schema, recursively turning + * objects into collections. + * + * @param wrapScalars If `true`, also wraps plain values in `Scalar` objects; + * if undefined or `false` and `value` is not an object, it will be returned + * directly. + * @param tag Use to specify the collection type, e.g. `"!!omap"`. Note that + * this requires the corresponding tag to be available in this schema. + */ + createNode( + value: any, + wrapScalars?: boolean, + tag?: string, + ctx?: Schema.CreateNodeContext + ): Node + /** + * Convert a key and a value into a `Pair` using this schema, recursively + * wrapping all values as `Scalar` or `Collection` nodes. + * + * @param ctx To not wrap scalars, use a context `{ wrapScalars: false }` + */ + createPair(key: any, value: any, ctx?: Schema.CreateNodeContext): Pair + merge: boolean + name: Schema.Name + sortMapEntries: ((a: Pair, b: Pair) => number) | null + tags: Schema.Tag[] +} + +export namespace Schema { + type Name = 'core' | 'failsafe' | 'json' | 'yaml-1.1' + + interface Options { + /** + * Array of additional tags to include in the schema, or a function that may + * modify the schema's base tag array. + */ + customTags?: (TagId | Tag)[] | ((tags: Tag[]) => Tag[]) + /** + * Enable support for `<<` merge keys. + * + * Default: `false` for YAML 1.2, `true` for earlier versions + */ + merge?: boolean + /** + * The base schema to use. + * + * Default: `"core"` for YAML 1.2, `"yaml-1.1"` for earlier versions + */ + schema?: Name + /** + * When stringifying, sort map entries. If `true`, sort by comparing key values with `<`. + * + * Default: `false` + */ + sortMapEntries?: boolean | ((a: Pair, b: Pair) => number) + /** + * @deprecated Use `customTags` instead. + */ + tags?: Options['customTags'] + } + + interface CreateNodeContext { + wrapScalars?: boolean + [key: string]: any + } + + interface StringifyContext { + forceBlockIndent?: boolean + implicitKey?: boolean + indent?: string + indentAtStart?: number + inFlow?: boolean + [key: string]: any + } + + type TagId = + | 'binary' + | 'bool' + | 'float' + | 'floatExp' + | 'floatNaN' + | 'floatTime' + | 'int' + | 'intHex' + | 'intOct' + | 'intTime' + | 'null' + | 'omap' + | 'pairs' + | 'set' + | 'timestamp' + + type Tag = CustomTag | DefaultTag + + interface BaseTag { + /** + * An optional factory function, used e.g. by collections when wrapping JS objects as AST nodes. + */ + createNode?: ( + schema: Schema, + value: any, + ctx: Schema.CreateNodeContext + ) => YAMLMap | YAMLSeq | Scalar + /** + * If a tag has multiple forms that should be parsed and/or stringified differently, use `format` to identify them. + */ + format?: string + /** + * Used by `YAML.createNode` to detect your data type, e.g. using `typeof` or + * `instanceof`. + */ + identify(value: any): boolean + /** + * The `Node` child class that implements this tag. Required for collections and tags that have overlapping JS representations. + */ + nodeClass?: new () => any + /** + * Used by some tags to configure their stringification, where applicable. + */ + options?: object + /** + * Optional function stringifying the AST node in the current context. If your + * data includes a suitable `.toString()` method, you can probably leave this + * undefined and use the default stringifier. + * + * @param item The node being stringified. + * @param ctx Contains the stringifying context variables. + * @param onComment Callback to signal that the stringifier includes the + * item's comment in its output. + * @param onChompKeep Callback to signal that the output uses a block scalar + * type with the `+` chomping indicator. + */ + stringify?: ( + item: Node, + ctx: Schema.StringifyContext, + onComment?: () => void, + onChompKeep?: () => void + ) => string + /** + * The identifier for your data type, with which its stringified form will be + * prefixed. Should either be a !-prefixed local `!tag`, or a fully qualified + * `tag:domain,date:foo`. + */ + tag: string + } + + interface CustomTag extends BaseTag { + /** + * A JavaScript class that should be matched to this tag, e.g. `Date` for `!!timestamp`. + * @deprecated Use `Tag.identify` instead + */ + class?: new () => any + /** + * Turns a CST node into an AST node. If returning a non-`Node` value, the + * output will be wrapped as a `Scalar`. + */ + resolve(doc: Document, cstNode: CST.Node): Node | any + } + + interface DefaultTag extends BaseTag { + /** + * If `true`, together with `test` allows for values to be stringified without + * an explicit tag. For most cases, it's unlikely that you'll actually want to + * use this, even if you first think you do. + */ + default: true + /** + * Alternative form used by default tags; called with `test` match results. + */ + resolve(...match: string[]): Node | any + /** + * Together with `default` allows for values to be stringified without an + * explicit tag and detected using a regular expression. For most cases, it's + * unlikely that you'll actually want to use these, even if you first think + * you do. + */ + test: RegExp + } +} + +export class Node { + /** A comment on or immediately after this */ + comment?: string | null + /** A comment before this */ + commentBefore?: string | null + /** Only available when `keepCstNodes` is set to `true` */ + cstNode?: CST.Node + /** + * The [start, end] range of characters of the source parsed + * into this node (undefined for pairs or if not parsed) + */ + range?: [number, number] | null + /** A blank line before this node and its commentBefore */ + spaceBefore?: boolean + /** A fully qualified tag, if required */ + tag?: string + /** A plain JS representation of this node */ + toJSON(arg?: any): any + /** The type of this node */ + type?: Type | Pair.Type +} + +export class Scalar extends Node { + constructor(value: any) + type?: Scalar.Type + /** + * By default (undefined), numbers use decimal notation. + * The YAML 1.2 core schema only supports 'HEX' and 'OCT'. + */ + format?: 'BIN' | 'HEX' | 'OCT' | 'TIME' + value: any + toJSON(arg?: any, ctx?: AST.NodeToJsonContext): any + toString(): string +} +export namespace Scalar { + type Type = + | Type.BLOCK_FOLDED + | Type.BLOCK_LITERAL + | Type.PLAIN + | Type.QUOTE_DOUBLE + | Type.QUOTE_SINGLE +} + +export class Alias extends Node { + type: Type.ALIAS + source: Node + cstNode?: CST.Alias + toString(ctx: Schema.StringifyContext): string +} + +export class Pair extends Node { + constructor(key: any, value?: any) + type: Pair.Type.PAIR | Pair.Type.MERGE_PAIR + /** Always Node or null when parsed, but can be set to anything. */ + key: any + /** Always Node or null when parsed, but can be set to anything. */ + value: any + cstNode?: never // no corresponding cstNode + toJSON(arg?: any, ctx?: AST.NodeToJsonContext): object | Map + toString( + ctx?: Schema.StringifyContext, + onComment?: () => void, + onChompKeep?: () => void + ): string +} +export namespace Pair { + enum Type { + PAIR = 'PAIR', + MERGE_PAIR = 'MERGE_PAIR' + } +} + +export class Merge extends Pair { + type: Pair.Type.MERGE_PAIR + /** Always Scalar('<<'), defined by the type specification */ + key: AST.PlainValue + /** Always YAMLSeq, stringified as *A if length = 1 */ + value: YAMLSeq + toString(ctx?: Schema.StringifyContext, onComment?: () => void): string +} + +export class Collection extends Node { + type?: Type.MAP | Type.FLOW_MAP | Type.SEQ | Type.FLOW_SEQ | Type.DOCUMENT + items: any[] + schema?: Schema + + /** + * Adds a value to the collection. For `!!map` and `!!omap` the value must + * be a Pair instance or a `{ key, value }` object, which may not have a key + * that already exists in the map. + */ + add(value: any): void + addIn(path: Iterable, value: any): void + /** + * Removes a value from the collection. + * @returns `true` if the item was found and removed. + */ + delete(key: any): boolean + deleteIn(path: Iterable): boolean + /** + * Returns item at `key`, or `undefined` if not found. By default unwraps + * scalar values from their surrounding node; to disable set `keepScalar` to + * `true` (collections are always returned intact). + */ + get(key: any, keepScalar?: boolean): any + getIn(path: Iterable, keepScalar?: boolean): any + /** + * Checks if the collection includes a value with the key `key`. + */ + has(key: any): boolean + hasIn(path: Iterable): boolean + /** + * Sets a value in this collection. For `!!set`, `value` needs to be a + * boolean to add/remove the item from the set. + */ + set(key: any, value: any): void + setIn(path: Iterable, value: any): void +} + +export class YAMLMap extends Collection { + type?: Type.FLOW_MAP | Type.MAP + items: Array + hasAllNullValues(): boolean + toJSON(arg?: any, ctx?: AST.NodeToJsonContext): object | Map + toString( + ctx?: Schema.StringifyContext, + onComment?: () => void, + onChompKeep?: () => void + ): string +} + +export class YAMLSeq extends Collection { + type?: Type.FLOW_SEQ | Type.SEQ + delete(key: number | string | Scalar): boolean + get(key: number | string | Scalar, keepScalar?: boolean): any + has(key: number | string | Scalar): boolean + set(key: number | string | Scalar, value: any): void + hasAllNullValues(): boolean + toJSON(arg?: any, ctx?: AST.NodeToJsonContext): any[] + toString( + ctx?: Schema.StringifyContext, + onComment?: () => void, + onChompKeep?: () => void + ): string +} + +export namespace AST { + interface NodeToJsonContext { + anchors?: any[] + doc: Document + keep?: boolean + mapAsMap?: boolean + maxAliasCount?: number + onCreate?: (node: Node) => void + [key: string]: any + } + + interface BlockFolded extends Scalar { + type: Type.BLOCK_FOLDED + cstNode?: CST.BlockFolded + } + + interface BlockLiteral extends Scalar { + type: Type.BLOCK_LITERAL + cstNode?: CST.BlockLiteral + } + + interface PlainValue extends Scalar { + type: Type.PLAIN + cstNode?: CST.PlainValue + } + + interface QuoteDouble extends Scalar { + type: Type.QUOTE_DOUBLE + cstNode?: CST.QuoteDouble + } + + interface QuoteSingle extends Scalar { + type: Type.QUOTE_SINGLE + cstNode?: CST.QuoteSingle + } + + interface FlowMap extends YAMLMap { + type: Type.FLOW_MAP + cstNode?: CST.FlowMap + } + + interface BlockMap extends YAMLMap { + type: Type.MAP + cstNode?: CST.Map + } + + interface FlowSeq extends YAMLSeq { + type: Type.FLOW_SEQ + items: Array + cstNode?: CST.FlowSeq + } + + interface BlockSeq extends YAMLSeq { + type: Type.SEQ + items: Array + cstNode?: CST.Seq + } +} diff --git a/node_modules/yaml/types.js b/node_modules/yaml/types.js new file mode 100644 index 00000000..88747498 --- /dev/null +++ b/node_modules/yaml/types.js @@ -0,0 +1,17 @@ +const types = require('./dist/types') + +exports.binaryOptions = types.binaryOptions +exports.boolOptions = types.boolOptions +exports.intOptions = types.intOptions +exports.nullOptions = types.nullOptions +exports.strOptions = types.strOptions + +exports.Schema = types.Schema +exports.Alias = types.Alias +exports.Collection = types.Collection +exports.Merge = types.Merge +exports.Node = types.Node +exports.Pair = types.Pair +exports.Scalar = types.Scalar +exports.YAMLMap = types.YAMLMap +exports.YAMLSeq = types.YAMLSeq diff --git a/node_modules/yaml/types.mjs b/node_modules/yaml/types.mjs new file mode 100644 index 00000000..71322884 --- /dev/null +++ b/node_modules/yaml/types.mjs @@ -0,0 +1,17 @@ +import types from './dist/types.js' + +export const binaryOptions = types.binaryOptions +export const boolOptions = types.boolOptions +export const intOptions = types.intOptions +export const nullOptions = types.nullOptions +export const strOptions = types.strOptions + +export const Schema = types.Schema +export const Alias = types.Alias +export const Collection = types.Collection +export const Merge = types.Merge +export const Node = types.Node +export const Pair = types.Pair +export const Scalar = types.Scalar +export const YAMLMap = types.YAMLMap +export const YAMLSeq = types.YAMLSeq diff --git a/node_modules/yaml/types/binary.js b/node_modules/yaml/types/binary.js new file mode 100644 index 00000000..271b9de3 --- /dev/null +++ b/node_modules/yaml/types/binary.js @@ -0,0 +1,8 @@ +'use strict' +Object.defineProperty(exports, '__esModule', { value: true }) + +const legacy = require('../dist/legacy-exports') +exports.binary = legacy.binary +exports.default = [exports.binary] + +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/types/omap.js b/node_modules/yaml/types/omap.js new file mode 100644 index 00000000..37b638b7 --- /dev/null +++ b/node_modules/yaml/types/omap.js @@ -0,0 +1,3 @@ +const legacy = require('../dist/legacy-exports') +module.exports = legacy.omap +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/types/pairs.js b/node_modules/yaml/types/pairs.js new file mode 100644 index 00000000..f1df201c --- /dev/null +++ b/node_modules/yaml/types/pairs.js @@ -0,0 +1,3 @@ +const legacy = require('../dist/legacy-exports') +module.exports = legacy.pairs +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/types/set.js b/node_modules/yaml/types/set.js new file mode 100644 index 00000000..e7dc9d42 --- /dev/null +++ b/node_modules/yaml/types/set.js @@ -0,0 +1,3 @@ +const legacy = require('../dist/legacy-exports') +module.exports = legacy.set +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/types/timestamp.js b/node_modules/yaml/types/timestamp.js new file mode 100644 index 00000000..39c5b6dd --- /dev/null +++ b/node_modules/yaml/types/timestamp.js @@ -0,0 +1,10 @@ +'use strict' +Object.defineProperty(exports, '__esModule', { value: true }) + +const legacy = require('../dist/legacy-exports') +exports.default = [legacy.intTime, legacy.floatTime, legacy.timestamp] +exports.floatTime = legacy.floatTime +exports.intTime = legacy.intTime +exports.timestamp = legacy.timestamp + +legacy.warnFileDeprecation(__filename) diff --git a/node_modules/yaml/util.d.ts b/node_modules/yaml/util.d.ts new file mode 100644 index 00000000..b1355410 --- /dev/null +++ b/node_modules/yaml/util.d.ts @@ -0,0 +1,86 @@ +import { Document } from './index' +import { CST } from './parse-cst' +import { AST, Pair, Scalar, Schema } from './types' + +export function findPair(items: any[], key: Scalar | any): Pair | undefined + +export function parseMap(doc: Document, cst: CST.Map): AST.BlockMap +export function parseMap(doc: Document, cst: CST.FlowMap): AST.FlowMap +export function parseSeq(doc: Document, cst: CST.Seq): AST.BlockSeq +export function parseSeq(doc: Document, cst: CST.FlowSeq): AST.FlowSeq + +export function stringifyNumber(item: Scalar): string +export function stringifyString( + item: Scalar, + ctx: Schema.StringifyContext, + onComment?: () => void, + onChompKeep?: () => void +): string + +export function toJSON( + value: any, + arg?: any, + ctx?: Schema.CreateNodeContext +): any + +export enum Type { + ALIAS = 'ALIAS', + BLANK_LINE = 'BLANK_LINE', + BLOCK_FOLDED = 'BLOCK_FOLDED', + BLOCK_LITERAL = 'BLOCK_LITERAL', + COMMENT = 'COMMENT', + DIRECTIVE = 'DIRECTIVE', + DOCUMENT = 'DOCUMENT', + FLOW_MAP = 'FLOW_MAP', + FLOW_SEQ = 'FLOW_SEQ', + MAP = 'MAP', + MAP_KEY = 'MAP_KEY', + MAP_VALUE = 'MAP_VALUE', + PLAIN = 'PLAIN', + QUOTE_DOUBLE = 'QUOTE_DOUBLE', + QUOTE_SINGLE = 'QUOTE_SINGLE', + SEQ = 'SEQ', + SEQ_ITEM = 'SEQ_ITEM' +} + +interface LinePos { + line: number + col: number +} + +export class YAMLError extends Error { + name: + | 'YAMLReferenceError' + | 'YAMLSemanticError' + | 'YAMLSyntaxError' + | 'YAMLWarning' + message: string + source?: CST.Node + + nodeType?: Type + range?: CST.Range + linePos?: { start: LinePos; end: LinePos } + + /** + * Drops `source` and adds `nodeType`, `range` and `linePos`, as well as + * adding details to `message`. Run automatically for document errors if + * the `prettyErrors` option is set. + */ + makePretty(): void +} + +export class YAMLReferenceError extends YAMLError { + name: 'YAMLReferenceError' +} + +export class YAMLSemanticError extends YAMLError { + name: 'YAMLSemanticError' +} + +export class YAMLSyntaxError extends YAMLError { + name: 'YAMLSyntaxError' +} + +export class YAMLWarning extends YAMLError { + name: 'YAMLWarning' +} diff --git a/node_modules/yaml/util.js b/node_modules/yaml/util.js new file mode 100644 index 00000000..06dd2c99 --- /dev/null +++ b/node_modules/yaml/util.js @@ -0,0 +1,16 @@ +const util = require('./dist/util') + +exports.findPair = util.findPair +exports.toJSON = util.toJSON +exports.parseMap = util.parseMap +exports.parseSeq = util.parseSeq + +exports.stringifyNumber = util.stringifyNumber +exports.stringifyString = util.stringifyString +exports.Type = util.Type + +exports.YAMLError = util.YAMLError +exports.YAMLReferenceError = util.YAMLReferenceError +exports.YAMLSemanticError = util.YAMLSemanticError +exports.YAMLSyntaxError = util.YAMLSyntaxError +exports.YAMLWarning = util.YAMLWarning diff --git a/node_modules/yaml/util.mjs b/node_modules/yaml/util.mjs new file mode 100644 index 00000000..89e654ab --- /dev/null +++ b/node_modules/yaml/util.mjs @@ -0,0 +1,18 @@ +import util from './dist/util.js' + +export const findPair = util.findPair +export const toJSON = util.toJSON + +export const parseMap = util.parseMap +export const parseSeq = util.parseSeq + +export const stringifyNumber = util.stringifyNumber +export const stringifyString = util.stringifyString + +export const Type = util.Type + +export const YAMLError = util.YAMLError +export const YAMLReferenceError = util.YAMLReferenceError +export const YAMLSemanticError = util.YAMLSemanticError +export const YAMLSyntaxError = util.YAMLSyntaxError +export const YAMLWarning = util.YAMLWarning diff --git a/node_modules/yargs-parser/CHANGELOG.md b/node_modules/yargs-parser/CHANGELOG.md new file mode 100644 index 00000000..f34e4dfd --- /dev/null +++ b/node_modules/yargs-parser/CHANGELOG.md @@ -0,0 +1,280 @@ +# Changelog + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +## [21.0.0](https://www.github.com/yargs/yargs-parser/compare/yargs-parser-v20.2.9...yargs-parser-v21.0.0) (2021-11-15) + + +### ⚠ BREAKING CHANGES + +* drops support for 10 (#421) + +### Bug Fixes + +* esm json import ([#416](https://www.github.com/yargs/yargs-parser/issues/416)) ([90f970a](https://www.github.com/yargs/yargs-parser/commit/90f970a6482dd4f5b5eb18d38596dd6f02d73edf)) +* parser should preserve inner quotes ([#407](https://www.github.com/yargs/yargs-parser/issues/407)) ([ae11f49](https://www.github.com/yargs/yargs-parser/commit/ae11f496a8318ea8885aa25015d429b33713c314)) + + +### Code Refactoring + +* drops support for 10 ([#421](https://www.github.com/yargs/yargs-parser/issues/421)) ([3aaf878](https://www.github.com/yargs/yargs-parser/commit/3aaf8784f5c7f2aec6108c1c6a55537fa7e3b5c1)) + +### [20.2.9](https://www.github.com/yargs/yargs-parser/compare/yargs-parser-v20.2.8...yargs-parser-v20.2.9) (2021-06-20) + + +### Bug Fixes + +* **build:** fixed automated release pipeline ([1fe9135](https://www.github.com/yargs/yargs-parser/commit/1fe9135884790a083615419b2861683e2597dac3)) + +### [20.2.8](https://www.github.com/yargs/yargs-parser/compare/yargs-parser-v20.2.7...yargs-parser-v20.2.8) (2021-06-20) + + +### Bug Fixes + +* **locale:** Turkish camelize and decamelize issues with toLocaleLowerCase/toLocaleUpperCase ([2617303](https://www.github.com/yargs/yargs-parser/commit/261730383e02448562f737b94bbd1f164aed5143)) +* **perf:** address slow parse when using unknown-options-as-args ([#394](https://www.github.com/yargs/yargs-parser/issues/394)) ([441f059](https://www.github.com/yargs/yargs-parser/commit/441f059d585d446551068ad213db79ac91daf83a)) +* **string-utils:** detect [0,1] ranged values as numbers ([#388](https://www.github.com/yargs/yargs-parser/issues/388)) ([efcc32c](https://www.github.com/yargs/yargs-parser/commit/efcc32c2d6b09aba31abfa2db9bd947befe5586b)) + +### [20.2.7](https://www.github.com/yargs/yargs-parser/compare/v20.2.6...v20.2.7) (2021-03-10) + + +### Bug Fixes + +* **deno:** force release for Deno ([6687c97](https://www.github.com/yargs/yargs-parser/commit/6687c972d0f3ca7865a97908dde3080b05f8b026)) + +### [20.2.6](https://www.github.com/yargs/yargs-parser/compare/v20.2.5...v20.2.6) (2021-02-22) + + +### Bug Fixes + +* **populate--:** -- should always be array ([#354](https://www.github.com/yargs/yargs-parser/issues/354)) ([585ae8f](https://www.github.com/yargs/yargs-parser/commit/585ae8ffad74cc02974f92d788e750137fd65146)) + +### [20.2.5](https://www.github.com/yargs/yargs-parser/compare/v20.2.4...v20.2.5) (2021-02-13) + + +### Bug Fixes + +* do not lowercase camel cased string ([#348](https://www.github.com/yargs/yargs-parser/issues/348)) ([5f4da1f](https://www.github.com/yargs/yargs-parser/commit/5f4da1f17d9d50542d2aaa206c9806ce3e320335)) + +### [20.2.4](https://www.github.com/yargs/yargs-parser/compare/v20.2.3...v20.2.4) (2020-11-09) + + +### Bug Fixes + +* **deno:** address import issues in Deno ([#339](https://www.github.com/yargs/yargs-parser/issues/339)) ([3b54e5e](https://www.github.com/yargs/yargs-parser/commit/3b54e5eef6e9a7b7c6eec7c12bab3ba3b8ba8306)) + +### [20.2.3](https://www.github.com/yargs/yargs-parser/compare/v20.2.2...v20.2.3) (2020-10-16) + + +### Bug Fixes + +* **exports:** node 13.0 and 13.1 require the dotted object form _with_ a string fallback ([#336](https://www.github.com/yargs/yargs-parser/issues/336)) ([3ae7242](https://www.github.com/yargs/yargs-parser/commit/3ae7242040ff876d28dabded60ac226e00150c88)) + +### [20.2.2](https://www.github.com/yargs/yargs-parser/compare/v20.2.1...v20.2.2) (2020-10-14) + + +### Bug Fixes + +* **exports:** node 13.0-13.6 require a string fallback ([#333](https://www.github.com/yargs/yargs-parser/issues/333)) ([291aeda](https://www.github.com/yargs/yargs-parser/commit/291aeda06b685b7a015d83bdf2558e180b37388d)) + +### [20.2.1](https://www.github.com/yargs/yargs-parser/compare/v20.2.0...v20.2.1) (2020-10-01) + + +### Bug Fixes + +* **deno:** update types for deno ^1.4.0 ([#330](https://www.github.com/yargs/yargs-parser/issues/330)) ([0ab92e5](https://www.github.com/yargs/yargs-parser/commit/0ab92e50b090f11196334c048c9c92cecaddaf56)) + +## [20.2.0](https://www.github.com/yargs/yargs-parser/compare/v20.1.0...v20.2.0) (2020-09-21) + + +### Features + +* **string-utils:** export looksLikeNumber helper ([#324](https://www.github.com/yargs/yargs-parser/issues/324)) ([c8580a2](https://www.github.com/yargs/yargs-parser/commit/c8580a2327b55f6342acecb6e72b62963d506750)) + + +### Bug Fixes + +* **unknown-options-as-args:** convert positionals that look like numbers ([#326](https://www.github.com/yargs/yargs-parser/issues/326)) ([f85ebb4](https://www.github.com/yargs/yargs-parser/commit/f85ebb4face9d4b0f56147659404cbe0002f3dad)) + +## [20.1.0](https://www.github.com/yargs/yargs-parser/compare/v20.0.0...v20.1.0) (2020-09-20) + + +### Features + +* adds parse-positional-numbers configuration ([#321](https://www.github.com/yargs/yargs-parser/issues/321)) ([9cec00a](https://www.github.com/yargs/yargs-parser/commit/9cec00a622251292ffb7dce6f78f5353afaa0d4c)) + + +### Bug Fixes + +* **build:** update release-please; make labels kick off builds ([#323](https://www.github.com/yargs/yargs-parser/issues/323)) ([09f448b](https://www.github.com/yargs/yargs-parser/commit/09f448b4cd66e25d2872544718df46dab8af062a)) + +## [20.0.0](https://www.github.com/yargs/yargs-parser/compare/v19.0.4...v20.0.0) (2020-09-09) + + +### ⚠ BREAKING CHANGES + +* do not ship type definitions (#318) + +### Bug Fixes + +* only strip camel case if hyphenated ([#316](https://www.github.com/yargs/yargs-parser/issues/316)) ([95a9e78](https://www.github.com/yargs/yargs-parser/commit/95a9e785127b9bbf2d1db1f1f808ca1fb100e82a)), closes [#315](https://www.github.com/yargs/yargs-parser/issues/315) + + +### Code Refactoring + +* do not ship type definitions ([#318](https://www.github.com/yargs/yargs-parser/issues/318)) ([8fbd56f](https://www.github.com/yargs/yargs-parser/commit/8fbd56f1d0b6c44c30fca62708812151ca0ce330)) + +### [19.0.4](https://www.github.com/yargs/yargs-parser/compare/v19.0.3...v19.0.4) (2020-08-27) + + +### Bug Fixes + +* **build:** fixing publication ([#310](https://www.github.com/yargs/yargs-parser/issues/310)) ([5d3c6c2](https://www.github.com/yargs/yargs-parser/commit/5d3c6c29a9126248ba601920d9cf87c78e161ff5)) + +### [19.0.3](https://www.github.com/yargs/yargs-parser/compare/v19.0.2...v19.0.3) (2020-08-27) + + +### Bug Fixes + +* **build:** switch to action for publish ([#308](https://www.github.com/yargs/yargs-parser/issues/308)) ([5c2f305](https://www.github.com/yargs/yargs-parser/commit/5c2f30585342bcd8aaf926407c863099d256d174)) + +### [19.0.2](https://www.github.com/yargs/yargs-parser/compare/v19.0.1...v19.0.2) (2020-08-27) + + +### Bug Fixes + +* **types:** envPrefix should be optional ([#305](https://www.github.com/yargs/yargs-parser/issues/305)) ([ae3f180](https://www.github.com/yargs/yargs-parser/commit/ae3f180e14df2de2fd962145f4518f9aa0e76523)) + +### [19.0.1](https://www.github.com/yargs/yargs-parser/compare/v19.0.0...v19.0.1) (2020-08-09) + + +### Bug Fixes + +* **build:** push tag created for deno ([2186a14](https://www.github.com/yargs/yargs-parser/commit/2186a14989749887d56189867602e39e6679f8b0)) + +## [19.0.0](https://www.github.com/yargs/yargs-parser/compare/v18.1.3...v19.0.0) (2020-08-09) + + +### ⚠ BREAKING CHANGES + +* adds support for ESM and Deno (#295) +* **ts:** projects using `@types/yargs-parser` may see variations in type definitions. +* drops Node 6. begin following Node.js LTS schedule (#278) + +### Features + +* adds support for ESM and Deno ([#295](https://www.github.com/yargs/yargs-parser/issues/295)) ([195bc4a](https://www.github.com/yargs/yargs-parser/commit/195bc4a7f20c2a8f8e33fbb6ba96ef6e9a0120a1)) +* expose camelCase and decamelize helpers ([#296](https://www.github.com/yargs/yargs-parser/issues/296)) ([39154ce](https://www.github.com/yargs/yargs-parser/commit/39154ceb5bdcf76b5f59a9219b34cedb79b67f26)) +* **deps:** update to latest camelcase/decamelize ([#281](https://www.github.com/yargs/yargs-parser/issues/281)) ([8931ab0](https://www.github.com/yargs/yargs-parser/commit/8931ab08f686cc55286f33a95a83537da2be5516)) + + +### Bug Fixes + +* boolean numeric short option ([#294](https://www.github.com/yargs/yargs-parser/issues/294)) ([f600082](https://www.github.com/yargs/yargs-parser/commit/f600082c959e092076caf420bbbc9d7a231e2418)) +* raise permission error for Deno if config load fails ([#298](https://www.github.com/yargs/yargs-parser/issues/298)) ([1174e2b](https://www.github.com/yargs/yargs-parser/commit/1174e2b3f0c845a1cd64e14ffc3703e730567a84)) +* **deps:** update dependency decamelize to v3 ([#274](https://www.github.com/yargs/yargs-parser/issues/274)) ([4d98698](https://www.github.com/yargs/yargs-parser/commit/4d98698bc6767e84ec54a0842908191739be73b7)) +* **types:** switch back to using Partial types ([#293](https://www.github.com/yargs/yargs-parser/issues/293)) ([bdc80ba](https://www.github.com/yargs/yargs-parser/commit/bdc80ba59fa13bc3025ce0a85e8bad9f9da24ea7)) + + +### Build System + +* drops Node 6. begin following Node.js LTS schedule ([#278](https://www.github.com/yargs/yargs-parser/issues/278)) ([9014ed7](https://www.github.com/yargs/yargs-parser/commit/9014ed722a32768b96b829e65a31705db5c1458a)) + + +### Code Refactoring + +* **ts:** move index.js to TypeScript ([#292](https://www.github.com/yargs/yargs-parser/issues/292)) ([f78d2b9](https://www.github.com/yargs/yargs-parser/commit/f78d2b97567ac4828624406e420b4047c710b789)) + +### [18.1.3](https://www.github.com/yargs/yargs-parser/compare/v18.1.2...v18.1.3) (2020-04-16) + + +### Bug Fixes + +* **setArg:** options using camel-case and dot-notation populated twice ([#268](https://www.github.com/yargs/yargs-parser/issues/268)) ([f7e15b9](https://www.github.com/yargs/yargs-parser/commit/f7e15b9800900b9856acac1a830a5f35847be73e)) + +### [18.1.2](https://www.github.com/yargs/yargs-parser/compare/v18.1.1...v18.1.2) (2020-03-26) + + +### Bug Fixes + +* **array, nargs:** support -o=--value and --option=--value format ([#262](https://www.github.com/yargs/yargs-parser/issues/262)) ([41d3f81](https://www.github.com/yargs/yargs-parser/commit/41d3f8139e116706b28de9b0de3433feb08d2f13)) + +### [18.1.1](https://www.github.com/yargs/yargs-parser/compare/v18.1.0...v18.1.1) (2020-03-16) + + +### Bug Fixes + +* \_\_proto\_\_ will now be replaced with \_\_\_proto\_\_\_ in parse ([#258](https://www.github.com/yargs/yargs-parser/issues/258)), patching a potential +prototype pollution vulnerability. This was reported by the Snyk Security Research Team.([63810ca](https://www.github.com/yargs/yargs-parser/commit/63810ca1ae1a24b08293a4d971e70e058c7a41e2)) + +## [18.1.0](https://www.github.com/yargs/yargs-parser/compare/v18.0.0...v18.1.0) (2020-03-07) + + +### Features + +* introduce single-digit boolean aliases ([#255](https://www.github.com/yargs/yargs-parser/issues/255)) ([9c60265](https://www.github.com/yargs/yargs-parser/commit/9c60265fd7a03cb98e6df3e32c8c5e7508d9f56f)) + +## [18.0.0](https://www.github.com/yargs/yargs-parser/compare/v17.1.0...v18.0.0) (2020-03-02) + + +### ⚠ BREAKING CHANGES + +* the narg count is now enforced when parsing arrays. + +### Features + +* NaN can now be provided as a value for nargs, indicating "at least" one value is expected for array ([#251](https://www.github.com/yargs/yargs-parser/issues/251)) ([9db4be8](https://www.github.com/yargs/yargs-parser/commit/9db4be81417a2c7097128db34d86fe70ef4af70c)) + +## [17.1.0](https://www.github.com/yargs/yargs-parser/compare/v17.0.1...v17.1.0) (2020-03-01) + + +### Features + +* introduce greedy-arrays config, for specifying whether arrays consume multiple positionals ([#249](https://www.github.com/yargs/yargs-parser/issues/249)) ([60e880a](https://www.github.com/yargs/yargs-parser/commit/60e880a837046314d89fa4725f923837fd33a9eb)) + +### [17.0.1](https://www.github.com/yargs/yargs-parser/compare/v17.0.0...v17.0.1) (2020-02-29) + + +### Bug Fixes + +* normalized keys were not enumerable ([#247](https://www.github.com/yargs/yargs-parser/issues/247)) ([57119f9](https://www.github.com/yargs/yargs-parser/commit/57119f9f17cf27499bd95e61c2f72d18314f11ba)) + +## [17.0.0](https://www.github.com/yargs/yargs-parser/compare/v16.1.0...v17.0.0) (2020-02-10) + + +### ⚠ BREAKING CHANGES + +* this reverts parsing behavior of booleans to that of yargs@14 +* objects used during parsing are now created with a null +prototype. There may be some scenarios where this change in behavior +leaks externally. + +### Features + +* boolean arguments will not be collected into an implicit array ([#236](https://www.github.com/yargs/yargs-parser/issues/236)) ([34c4e19](https://www.github.com/yargs/yargs-parser/commit/34c4e19bae4e7af63e3cb6fa654a97ed476e5eb5)) +* introduce nargs-eats-options config option ([#246](https://www.github.com/yargs/yargs-parser/issues/246)) ([d50822a](https://www.github.com/yargs/yargs-parser/commit/d50822ac10e1b05f2e9643671ca131ac251b6732)) + + +### Bug Fixes + +* address bugs with "uknown-options-as-args" ([bc023e3](https://www.github.com/yargs/yargs-parser/commit/bc023e3b13e20a118353f9507d1c999bf388a346)) +* array should take precedence over nargs, but enforce nargs ([#243](https://www.github.com/yargs/yargs-parser/issues/243)) ([4cbc188](https://www.github.com/yargs/yargs-parser/commit/4cbc188b7abb2249529a19c090338debdad2fe6c)) +* support keys that collide with object prototypes ([#234](https://www.github.com/yargs/yargs-parser/issues/234)) ([1587b6d](https://www.github.com/yargs/yargs-parser/commit/1587b6d91db853a9109f1be6b209077993fee4de)) +* unknown options terminated with digits now handled by unknown-options-as-args ([#238](https://www.github.com/yargs/yargs-parser/issues/238)) ([d36cdfa](https://www.github.com/yargs/yargs-parser/commit/d36cdfa854254d7c7e0fe1d583818332ac46c2a5)) + +## [16.1.0](https://www.github.com/yargs/yargs-parser/compare/v16.0.0...v16.1.0) (2019-11-01) + + +### ⚠ BREAKING CHANGES + +* populate error if incompatible narg/count or array/count options are used (#191) + +### Features + +* options that have had their default value used are now tracked ([#211](https://www.github.com/yargs/yargs-parser/issues/211)) ([a525234](https://www.github.com/yargs/yargs-parser/commit/a525234558c847deedd73f8792e0a3b77b26e2c0)) +* populate error if incompatible narg/count or array/count options are used ([#191](https://www.github.com/yargs/yargs-parser/issues/191)) ([84a401f](https://www.github.com/yargs/yargs-parser/commit/84a401f0fa3095e0a19661670d1570d0c3b9d3c9)) + + +### Reverts + +* revert 16.0.0 CHANGELOG entry ([920320a](https://www.github.com/yargs/yargs-parser/commit/920320ad9861bbfd58eda39221ae211540fc1daf)) diff --git a/node_modules/yargs-parser/LICENSE.txt b/node_modules/yargs-parser/LICENSE.txt new file mode 100644 index 00000000..836440be --- /dev/null +++ b/node_modules/yargs-parser/LICENSE.txt @@ -0,0 +1,14 @@ +Copyright (c) 2016, Contributors + +Permission to use, copy, modify, and/or distribute this software +for any purpose with or without fee is hereby granted, provided +that the above copyright notice and this permission notice +appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE +LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES +OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/yargs-parser/README.md b/node_modules/yargs-parser/README.md new file mode 100644 index 00000000..26148407 --- /dev/null +++ b/node_modules/yargs-parser/README.md @@ -0,0 +1,518 @@ +# yargs-parser + +![ci](https://github.com/yargs/yargs-parser/workflows/ci/badge.svg) +[![NPM version](https://img.shields.io/npm/v/yargs-parser.svg)](https://www.npmjs.com/package/yargs-parser) +[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org) +![nycrc config on GitHub](https://img.shields.io/nycrc/yargs/yargs-parser) + +The mighty option parser used by [yargs](https://github.com/yargs/yargs). + +visit the [yargs website](http://yargs.js.org/) for more examples, and thorough usage instructions. + + + +## Example + +```sh +npm i yargs-parser --save +``` + +```js +const argv = require('yargs-parser')(process.argv.slice(2)) +console.log(argv) +``` + +```console +$ node example.js --foo=33 --bar hello +{ _: [], foo: 33, bar: 'hello' } +``` + +_or parse a string!_ + +```js +const argv = require('yargs-parser')('--foo=99 --bar=33') +console.log(argv) +``` + +```console +{ _: [], foo: 99, bar: 33 } +``` + +Convert an array of mixed types before passing to `yargs-parser`: + +```js +const parse = require('yargs-parser') +parse(['-f', 11, '--zoom', 55].join(' ')) // <-- array to string +parse(['-f', 11, '--zoom', 55].map(String)) // <-- array of strings +``` + +## Deno Example + +As of `v19` `yargs-parser` supports [Deno](https://github.com/denoland/deno): + +```typescript +import parser from "https://deno.land/x/yargs_parser/deno.ts"; + +const argv = parser('--foo=99 --bar=9987930', { + string: ['bar'] +}) +console.log(argv) +``` + +## ESM Example + +As of `v19` `yargs-parser` supports ESM (_both in Node.js and in the browser_): + +**Node.js:** + +```js +import parser from 'yargs-parser' + +const argv = parser('--foo=99 --bar=9987930', { + string: ['bar'] +}) +console.log(argv) +``` + +**Browsers:** + +```html + + + + +``` + +## API + +### parser(args, opts={}) + +Parses command line arguments returning a simple mapping of keys and values. + +**expects:** + +* `args`: a string or array of strings representing the options to parse. +* `opts`: provide a set of hints indicating how `args` should be parsed: + * `opts.alias`: an object representing the set of aliases for a key: `{alias: {foo: ['f']}}`. + * `opts.array`: indicate that keys should be parsed as an array: `{array: ['foo', 'bar']}`.
+ Indicate that keys should be parsed as an array and coerced to booleans / numbers:
+ `{array: [{ key: 'foo', boolean: true }, {key: 'bar', number: true}]}`. + * `opts.boolean`: arguments should be parsed as booleans: `{boolean: ['x', 'y']}`. + * `opts.coerce`: provide a custom synchronous function that returns a coerced value from the argument provided + (or throws an error). For arrays the function is called only once for the entire array:
+ `{coerce: {foo: function (arg) {return modifiedArg}}}`. + * `opts.config`: indicate a key that represents a path to a configuration file (this file will be loaded and parsed). + * `opts.configObjects`: configuration objects to parse, their properties will be set as arguments:
+ `{configObjects: [{'x': 5, 'y': 33}, {'z': 44}]}`. + * `opts.configuration`: provide configuration options to the yargs-parser (see: [configuration](#configuration)). + * `opts.count`: indicate a key that should be used as a counter, e.g., `-vvv` = `{v: 3}`. + * `opts.default`: provide default values for keys: `{default: {x: 33, y: 'hello world!'}}`. + * `opts.envPrefix`: environment variables (`process.env`) with the prefix provided should be parsed. + * `opts.narg`: specify that a key requires `n` arguments: `{narg: {x: 2}}`. + * `opts.normalize`: `path.normalize()` will be applied to values set to this key. + * `opts.number`: keys should be treated as numbers. + * `opts.string`: keys should be treated as strings (even if they resemble a number `-x 33`). + +**returns:** + +* `obj`: an object representing the parsed value of `args` + * `key/value`: key value pairs for each argument and their aliases. + * `_`: an array representing the positional arguments. + * [optional] `--`: an array with arguments after the end-of-options flag `--`. + +### require('yargs-parser').detailed(args, opts={}) + +Parses a command line string, returning detailed information required by the +yargs engine. + +**expects:** + +* `args`: a string or array of strings representing options to parse. +* `opts`: provide a set of hints indicating how `args`, inputs are identical to `require('yargs-parser')(args, opts={})`. + +**returns:** + +* `argv`: an object representing the parsed value of `args` + * `key/value`: key value pairs for each argument and their aliases. + * `_`: an array representing the positional arguments. + * [optional] `--`: an array with arguments after the end-of-options flag `--`. +* `error`: populated with an error object if an exception occurred during parsing. +* `aliases`: the inferred list of aliases built by combining lists in `opts.alias`. +* `newAliases`: any new aliases added via camel-case expansion: + * `boolean`: `{ fooBar: true }` +* `defaulted`: any new argument created by `opts.default`, no aliases included. + * `boolean`: `{ foo: true }` +* `configuration`: given by default settings and `opts.configuration`. + + + +### Configuration + +The yargs-parser applies several automated transformations on the keys provided +in `args`. These features can be turned on and off using the `configuration` field +of `opts`. + +```js +var parsed = parser(['--no-dice'], { + configuration: { + 'boolean-negation': false + } +}) +``` + +### short option groups + +* default: `true`. +* key: `short-option-groups`. + +Should a group of short-options be treated as boolean flags? + +```console +$ node example.js -abc +{ _: [], a: true, b: true, c: true } +``` + +_if disabled:_ + +```console +$ node example.js -abc +{ _: [], abc: true } +``` + +### camel-case expansion + +* default: `true`. +* key: `camel-case-expansion`. + +Should hyphenated arguments be expanded into camel-case aliases? + +```console +$ node example.js --foo-bar +{ _: [], 'foo-bar': true, fooBar: true } +``` + +_if disabled:_ + +```console +$ node example.js --foo-bar +{ _: [], 'foo-bar': true } +``` + +### dot-notation + +* default: `true` +* key: `dot-notation` + +Should keys that contain `.` be treated as objects? + +```console +$ node example.js --foo.bar +{ _: [], foo: { bar: true } } +``` + +_if disabled:_ + +```console +$ node example.js --foo.bar +{ _: [], "foo.bar": true } +``` + +### parse numbers + +* default: `true` +* key: `parse-numbers` + +Should keys that look like numbers be treated as such? + +```console +$ node example.js --foo=99.3 +{ _: [], foo: 99.3 } +``` + +_if disabled:_ + +```console +$ node example.js --foo=99.3 +{ _: [], foo: "99.3" } +``` + +### parse positional numbers + +* default: `true` +* key: `parse-positional-numbers` + +Should positional keys that look like numbers be treated as such. + +```console +$ node example.js 99.3 +{ _: [99.3] } +``` + +_if disabled:_ + +```console +$ node example.js 99.3 +{ _: ['99.3'] } +``` + +### boolean negation + +* default: `true` +* key: `boolean-negation` + +Should variables prefixed with `--no` be treated as negations? + +```console +$ node example.js --no-foo +{ _: [], foo: false } +``` + +_if disabled:_ + +```console +$ node example.js --no-foo +{ _: [], "no-foo": true } +``` + +### combine arrays + +* default: `false` +* key: `combine-arrays` + +Should arrays be combined when provided by both command line arguments and +a configuration file. + +### duplicate arguments array + +* default: `true` +* key: `duplicate-arguments-array` + +Should arguments be coerced into an array when duplicated: + +```console +$ node example.js -x 1 -x 2 +{ _: [], x: [1, 2] } +``` + +_if disabled:_ + +```console +$ node example.js -x 1 -x 2 +{ _: [], x: 2 } +``` + +### flatten duplicate arrays + +* default: `true` +* key: `flatten-duplicate-arrays` + +Should array arguments be coerced into a single array when duplicated: + +```console +$ node example.js -x 1 2 -x 3 4 +{ _: [], x: [1, 2, 3, 4] } +``` + +_if disabled:_ + +```console +$ node example.js -x 1 2 -x 3 4 +{ _: [], x: [[1, 2], [3, 4]] } +``` + +### greedy arrays + +* default: `true` +* key: `greedy-arrays` + +Should arrays consume more than one positional argument following their flag. + +```console +$ node example --arr 1 2 +{ _: [], arr: [1, 2] } +``` + +_if disabled:_ + +```console +$ node example --arr 1 2 +{ _: [2], arr: [1] } +``` + +**Note: in `v18.0.0` we are considering defaulting greedy arrays to `false`.** + +### nargs eats options + +* default: `false` +* key: `nargs-eats-options` + +Should nargs consume dash options as well as positional arguments. + +### negation prefix + +* default: `no-` +* key: `negation-prefix` + +The prefix to use for negated boolean variables. + +```console +$ node example.js --no-foo +{ _: [], foo: false } +``` + +_if set to `quux`:_ + +```console +$ node example.js --quuxfoo +{ _: [], foo: false } +``` + +### populate -- + +* default: `false`. +* key: `populate--` + +Should unparsed flags be stored in `--` or `_`. + +_If disabled:_ + +```console +$ node example.js a -b -- x y +{ _: [ 'a', 'x', 'y' ], b: true } +``` + +_If enabled:_ + +```console +$ node example.js a -b -- x y +{ _: [ 'a' ], '--': [ 'x', 'y' ], b: true } +``` + +### set placeholder key + +* default: `false`. +* key: `set-placeholder-key`. + +Should a placeholder be added for keys not set via the corresponding CLI argument? + +_If disabled:_ + +```console +$ node example.js -a 1 -c 2 +{ _: [], a: 1, c: 2 } +``` + +_If enabled:_ + +```console +$ node example.js -a 1 -c 2 +{ _: [], a: 1, b: undefined, c: 2 } +``` + +### halt at non-option + +* default: `false`. +* key: `halt-at-non-option`. + +Should parsing stop at the first positional argument? This is similar to how e.g. `ssh` parses its command line. + +_If disabled:_ + +```console +$ node example.js -a run b -x y +{ _: [ 'b' ], a: 'run', x: 'y' } +``` + +_If enabled:_ + +```console +$ node example.js -a run b -x y +{ _: [ 'b', '-x', 'y' ], a: 'run' } +``` + +### strip aliased + +* default: `false` +* key: `strip-aliased` + +Should aliases be removed before returning results? + +_If disabled:_ + +```console +$ node example.js --test-field 1 +{ _: [], 'test-field': 1, testField: 1, 'test-alias': 1, testAlias: 1 } +``` + +_If enabled:_ + +```console +$ node example.js --test-field 1 +{ _: [], 'test-field': 1, testField: 1 } +``` + +### strip dashed + +* default: `false` +* key: `strip-dashed` + +Should dashed keys be removed before returning results? This option has no effect if +`camel-case-expansion` is disabled. + +_If disabled:_ + +```console +$ node example.js --test-field 1 +{ _: [], 'test-field': 1, testField: 1 } +``` + +_If enabled:_ + +```console +$ node example.js --test-field 1 +{ _: [], testField: 1 } +``` + +### unknown options as args + +* default: `false` +* key: `unknown-options-as-args` + +Should unknown options be treated like regular arguments? An unknown option is one that is not +configured in `opts`. + +_If disabled_ + +```console +$ node example.js --unknown-option --known-option 2 --string-option --unknown-option2 +{ _: [], unknownOption: true, knownOption: 2, stringOption: '', unknownOption2: true } +``` + +_If enabled_ + +```console +$ node example.js --unknown-option --known-option 2 --string-option --unknown-option2 +{ _: ['--unknown-option'], knownOption: 2, stringOption: '--unknown-option2' } +``` + +## Supported Node.js Versions + +Libraries in this ecosystem make a best effort to track +[Node.js' release schedule](https://nodejs.org/en/about/releases/). Here's [a +post on why we think this is important](https://medium.com/the-node-js-collection/maintainers-should-consider-following-node-js-release-schedule-ab08ed4de71a). + +## Special Thanks + +The yargs project evolves from optimist and minimist. It owes its +existence to a lot of James Halliday's hard work. Thanks [substack](https://github.com/substack) **beep** **boop** \o/ + +## License + +ISC diff --git a/node_modules/yargs-parser/browser.js b/node_modules/yargs-parser/browser.js new file mode 100644 index 00000000..241202c7 --- /dev/null +++ b/node_modules/yargs-parser/browser.js @@ -0,0 +1,29 @@ +// Main entrypoint for ESM web browser environments. Avoids using Node.js +// specific libraries, such as "path". +// +// TODO: figure out reasonable web equivalents for "resolve", "normalize", etc. +import { camelCase, decamelize, looksLikeNumber } from './build/lib/string-utils.js' +import { YargsParser } from './build/lib/yargs-parser.js' +const parser = new YargsParser({ + cwd: () => { return '' }, + format: (str, arg) => { return str.replace('%s', arg) }, + normalize: (str) => { return str }, + resolve: (str) => { return str }, + require: () => { + throw Error('loading config from files not currently supported in browser') + }, + env: () => {} +}) + +const yargsParser = function Parser (args, opts) { + const result = parser.parse(args.slice(), opts) + return result.argv +} +yargsParser.detailed = function (args, opts) { + return parser.parse(args.slice(), opts) +} +yargsParser.camelCase = camelCase +yargsParser.decamelize = decamelize +yargsParser.looksLikeNumber = looksLikeNumber + +export default yargsParser diff --git a/node_modules/yargs-parser/build/index.cjs b/node_modules/yargs-parser/build/index.cjs new file mode 100644 index 00000000..19e7b599 --- /dev/null +++ b/node_modules/yargs-parser/build/index.cjs @@ -0,0 +1,1048 @@ +'use strict'; + +var util = require('util'); +var path = require('path'); +var fs = require('fs'); + +function camelCase(str) { + const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase(); + if (!isCamelCase) { + str = str.toLowerCase(); + } + if (str.indexOf('-') === -1 && str.indexOf('_') === -1) { + return str; + } + else { + let camelcase = ''; + let nextChrUpper = false; + const leadingHyphens = str.match(/^-+/); + for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) { + let chr = str.charAt(i); + if (nextChrUpper) { + nextChrUpper = false; + chr = chr.toUpperCase(); + } + if (i !== 0 && (chr === '-' || chr === '_')) { + nextChrUpper = true; + } + else if (chr !== '-' && chr !== '_') { + camelcase += chr; + } + } + return camelcase; + } +} +function decamelize(str, joinString) { + const lowercase = str.toLowerCase(); + joinString = joinString || '-'; + let notCamelcase = ''; + for (let i = 0; i < str.length; i++) { + const chrLower = lowercase.charAt(i); + const chrString = str.charAt(i); + if (chrLower !== chrString && i > 0) { + notCamelcase += `${joinString}${lowercase.charAt(i)}`; + } + else { + notCamelcase += chrString; + } + } + return notCamelcase; +} +function looksLikeNumber(x) { + if (x === null || x === undefined) + return false; + if (typeof x === 'number') + return true; + if (/^0x[0-9a-f]+$/i.test(x)) + return true; + if (/^0[^.]/.test(x)) + return false; + return /^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); +} + +function tokenizeArgString(argString) { + if (Array.isArray(argString)) { + return argString.map(e => typeof e !== 'string' ? e + '' : e); + } + argString = argString.trim(); + let i = 0; + let prevC = null; + let c = null; + let opening = null; + const args = []; + for (let ii = 0; ii < argString.length; ii++) { + prevC = c; + c = argString.charAt(ii); + if (c === ' ' && !opening) { + if (!(prevC === ' ')) { + i++; + } + continue; + } + if (c === opening) { + opening = null; + } + else if ((c === "'" || c === '"') && !opening) { + opening = c; + } + if (!args[i]) + args[i] = ''; + args[i] += c; + } + return args; +} + +var DefaultValuesForTypeKey; +(function (DefaultValuesForTypeKey) { + DefaultValuesForTypeKey["BOOLEAN"] = "boolean"; + DefaultValuesForTypeKey["STRING"] = "string"; + DefaultValuesForTypeKey["NUMBER"] = "number"; + DefaultValuesForTypeKey["ARRAY"] = "array"; +})(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {})); + +let mixin; +class YargsParser { + constructor(_mixin) { + mixin = _mixin; + } + parse(argsInput, options) { + const opts = Object.assign({ + alias: undefined, + array: undefined, + boolean: undefined, + config: undefined, + configObjects: undefined, + configuration: undefined, + coerce: undefined, + count: undefined, + default: undefined, + envPrefix: undefined, + narg: undefined, + normalize: undefined, + string: undefined, + number: undefined, + __: undefined, + key: undefined + }, options); + const args = tokenizeArgString(argsInput); + const inputIsString = typeof argsInput === 'string'; + const aliases = combineAliases(Object.assign(Object.create(null), opts.alias)); + const configuration = Object.assign({ + 'boolean-negation': true, + 'camel-case-expansion': true, + 'combine-arrays': false, + 'dot-notation': true, + 'duplicate-arguments-array': true, + 'flatten-duplicate-arrays': true, + 'greedy-arrays': true, + 'halt-at-non-option': false, + 'nargs-eats-options': false, + 'negation-prefix': 'no-', + 'parse-numbers': true, + 'parse-positional-numbers': true, + 'populate--': false, + 'set-placeholder-key': false, + 'short-option-groups': true, + 'strip-aliased': false, + 'strip-dashed': false, + 'unknown-options-as-args': false + }, opts.configuration); + const defaults = Object.assign(Object.create(null), opts.default); + const configObjects = opts.configObjects || []; + const envPrefix = opts.envPrefix; + const notFlagsOption = configuration['populate--']; + const notFlagsArgv = notFlagsOption ? '--' : '_'; + const newAliases = Object.create(null); + const defaulted = Object.create(null); + const __ = opts.__ || mixin.format; + const flags = { + aliases: Object.create(null), + arrays: Object.create(null), + bools: Object.create(null), + strings: Object.create(null), + numbers: Object.create(null), + counts: Object.create(null), + normalize: Object.create(null), + configs: Object.create(null), + nargs: Object.create(null), + coercions: Object.create(null), + keys: [] + }; + const negative = /^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/; + const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)'); + [].concat(opts.array || []).filter(Boolean).forEach(function (opt) { + const key = typeof opt === 'object' ? opt.key : opt; + const assignment = Object.keys(opt).map(function (key) { + const arrayFlagKeys = { + boolean: 'bools', + string: 'strings', + number: 'numbers' + }; + return arrayFlagKeys[key]; + }).filter(Boolean).pop(); + if (assignment) { + flags[assignment][key] = true; + } + flags.arrays[key] = true; + flags.keys.push(key); + }); + [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) { + flags.bools[key] = true; + flags.keys.push(key); + }); + [].concat(opts.string || []).filter(Boolean).forEach(function (key) { + flags.strings[key] = true; + flags.keys.push(key); + }); + [].concat(opts.number || []).filter(Boolean).forEach(function (key) { + flags.numbers[key] = true; + flags.keys.push(key); + }); + [].concat(opts.count || []).filter(Boolean).forEach(function (key) { + flags.counts[key] = true; + flags.keys.push(key); + }); + [].concat(opts.normalize || []).filter(Boolean).forEach(function (key) { + flags.normalize[key] = true; + flags.keys.push(key); + }); + if (typeof opts.narg === 'object') { + Object.entries(opts.narg).forEach(([key, value]) => { + if (typeof value === 'number') { + flags.nargs[key] = value; + flags.keys.push(key); + } + }); + } + if (typeof opts.coerce === 'object') { + Object.entries(opts.coerce).forEach(([key, value]) => { + if (typeof value === 'function') { + flags.coercions[key] = value; + flags.keys.push(key); + } + }); + } + if (typeof opts.config !== 'undefined') { + if (Array.isArray(opts.config) || typeof opts.config === 'string') { + [].concat(opts.config).filter(Boolean).forEach(function (key) { + flags.configs[key] = true; + }); + } + else if (typeof opts.config === 'object') { + Object.entries(opts.config).forEach(([key, value]) => { + if (typeof value === 'boolean' || typeof value === 'function') { + flags.configs[key] = value; + } + }); + } + } + extendAliases(opts.key, aliases, opts.default, flags.arrays); + Object.keys(defaults).forEach(function (key) { + (flags.aliases[key] || []).forEach(function (alias) { + defaults[alias] = defaults[key]; + }); + }); + let error = null; + checkConfiguration(); + let notFlags = []; + const argv = Object.assign(Object.create(null), { _: [] }); + const argvReturn = {}; + for (let i = 0; i < args.length; i++) { + const arg = args[i]; + const truncatedArg = arg.replace(/^-{3,}/, '---'); + let broken; + let key; + let letters; + let m; + let next; + let value; + if (arg !== '--' && isUnknownOptionAsArg(arg)) { + pushPositional(arg); + } + else if (truncatedArg.match(/---+(=|$)/)) { + pushPositional(arg); + continue; + } + else if (arg.match(/^--.+=/) || (!configuration['short-option-groups'] && arg.match(/^-.+=/))) { + m = arg.match(/^--?([^=]+)=([\s\S]*)$/); + if (m !== null && Array.isArray(m) && m.length >= 3) { + if (checkAllAliases(m[1], flags.arrays)) { + i = eatArray(i, m[1], args, m[2]); + } + else if (checkAllAliases(m[1], flags.nargs) !== false) { + i = eatNargs(i, m[1], args, m[2]); + } + else { + setArg(m[1], m[2], true); + } + } + } + else if (arg.match(negatedBoolean) && configuration['boolean-negation']) { + m = arg.match(negatedBoolean); + if (m !== null && Array.isArray(m) && m.length >= 2) { + key = m[1]; + setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false); + } + } + else if (arg.match(/^--.+/) || (!configuration['short-option-groups'] && arg.match(/^-[^-]+/))) { + m = arg.match(/^--?(.+)/); + if (m !== null && Array.isArray(m) && m.length >= 2) { + key = m[1]; + if (checkAllAliases(key, flags.arrays)) { + i = eatArray(i, key, args); + } + else if (checkAllAliases(key, flags.nargs) !== false) { + i = eatNargs(i, key, args); + } + else { + next = args[i + 1]; + if (next !== undefined && (!next.match(/^-/) || + next.match(negative)) && + !checkAllAliases(key, flags.bools) && + !checkAllAliases(key, flags.counts)) { + setArg(key, next); + i++; + } + else if (/^(true|false)$/.test(next)) { + setArg(key, next); + i++; + } + else { + setArg(key, defaultValue(key)); + } + } + } + } + else if (arg.match(/^-.\..+=/)) { + m = arg.match(/^-([^=]+)=([\s\S]*)$/); + if (m !== null && Array.isArray(m) && m.length >= 3) { + setArg(m[1], m[2]); + } + } + else if (arg.match(/^-.\..+/) && !arg.match(negative)) { + next = args[i + 1]; + m = arg.match(/^-(.\..+)/); + if (m !== null && Array.isArray(m) && m.length >= 2) { + key = m[1]; + if (next !== undefined && !next.match(/^-/) && + !checkAllAliases(key, flags.bools) && + !checkAllAliases(key, flags.counts)) { + setArg(key, next); + i++; + } + else { + setArg(key, defaultValue(key)); + } + } + } + else if (arg.match(/^-[^-]+/) && !arg.match(negative)) { + letters = arg.slice(1, -1).split(''); + broken = false; + for (let j = 0; j < letters.length; j++) { + next = arg.slice(j + 2); + if (letters[j + 1] && letters[j + 1] === '=') { + value = arg.slice(j + 3); + key = letters[j]; + if (checkAllAliases(key, flags.arrays)) { + i = eatArray(i, key, args, value); + } + else if (checkAllAliases(key, flags.nargs) !== false) { + i = eatNargs(i, key, args, value); + } + else { + setArg(key, value); + } + broken = true; + break; + } + if (next === '-') { + setArg(letters[j], next); + continue; + } + if (/[A-Za-z]/.test(letters[j]) && + /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next) && + checkAllAliases(next, flags.bools) === false) { + setArg(letters[j], next); + broken = true; + break; + } + if (letters[j + 1] && letters[j + 1].match(/\W/)) { + setArg(letters[j], next); + broken = true; + break; + } + else { + setArg(letters[j], defaultValue(letters[j])); + } + } + key = arg.slice(-1)[0]; + if (!broken && key !== '-') { + if (checkAllAliases(key, flags.arrays)) { + i = eatArray(i, key, args); + } + else if (checkAllAliases(key, flags.nargs) !== false) { + i = eatNargs(i, key, args); + } + else { + next = args[i + 1]; + if (next !== undefined && (!/^(-|--)[^-]/.test(next) || + next.match(negative)) && + !checkAllAliases(key, flags.bools) && + !checkAllAliases(key, flags.counts)) { + setArg(key, next); + i++; + } + else if (/^(true|false)$/.test(next)) { + setArg(key, next); + i++; + } + else { + setArg(key, defaultValue(key)); + } + } + } + } + else if (arg.match(/^-[0-9]$/) && + arg.match(negative) && + checkAllAliases(arg.slice(1), flags.bools)) { + key = arg.slice(1); + setArg(key, defaultValue(key)); + } + else if (arg === '--') { + notFlags = args.slice(i + 1); + break; + } + else if (configuration['halt-at-non-option']) { + notFlags = args.slice(i); + break; + } + else { + pushPositional(arg); + } + } + applyEnvVars(argv, true); + applyEnvVars(argv, false); + setConfig(argv); + setConfigObjects(); + applyDefaultsAndAliases(argv, flags.aliases, defaults, true); + applyCoercions(argv); + if (configuration['set-placeholder-key']) + setPlaceholderKeys(argv); + Object.keys(flags.counts).forEach(function (key) { + if (!hasKey(argv, key.split('.'))) + setArg(key, 0); + }); + if (notFlagsOption && notFlags.length) + argv[notFlagsArgv] = []; + notFlags.forEach(function (key) { + argv[notFlagsArgv].push(key); + }); + if (configuration['camel-case-expansion'] && configuration['strip-dashed']) { + Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => { + delete argv[key]; + }); + } + if (configuration['strip-aliased']) { + [].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => { + if (configuration['camel-case-expansion'] && alias.includes('-')) { + delete argv[alias.split('.').map(prop => camelCase(prop)).join('.')]; + } + delete argv[alias]; + }); + } + function pushPositional(arg) { + const maybeCoercedNumber = maybeCoerceNumber('_', arg); + if (typeof maybeCoercedNumber === 'string' || typeof maybeCoercedNumber === 'number') { + argv._.push(maybeCoercedNumber); + } + } + function eatNargs(i, key, args, argAfterEqualSign) { + let ii; + let toEat = checkAllAliases(key, flags.nargs); + toEat = typeof toEat !== 'number' || isNaN(toEat) ? 1 : toEat; + if (toEat === 0) { + if (!isUndefined(argAfterEqualSign)) { + error = Error(__('Argument unexpected for: %s', key)); + } + setArg(key, defaultValue(key)); + return i; + } + let available = isUndefined(argAfterEqualSign) ? 0 : 1; + if (configuration['nargs-eats-options']) { + if (args.length - (i + 1) + available < toEat) { + error = Error(__('Not enough arguments following: %s', key)); + } + available = toEat; + } + else { + for (ii = i + 1; ii < args.length; ii++) { + if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii])) + available++; + else + break; + } + if (available < toEat) + error = Error(__('Not enough arguments following: %s', key)); + } + let consumed = Math.min(available, toEat); + if (!isUndefined(argAfterEqualSign) && consumed > 0) { + setArg(key, argAfterEqualSign); + consumed--; + } + for (ii = i + 1; ii < (consumed + i + 1); ii++) { + setArg(key, args[ii]); + } + return (i + consumed); + } + function eatArray(i, key, args, argAfterEqualSign) { + let argsToSet = []; + let next = argAfterEqualSign || args[i + 1]; + const nargsCount = checkAllAliases(key, flags.nargs); + if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) { + argsToSet.push(true); + } + else if (isUndefined(next) || + (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) { + if (defaults[key] !== undefined) { + const defVal = defaults[key]; + argsToSet = Array.isArray(defVal) ? defVal : [defVal]; + } + } + else { + if (!isUndefined(argAfterEqualSign)) { + argsToSet.push(processValue(key, argAfterEqualSign, true)); + } + for (let ii = i + 1; ii < args.length; ii++) { + if ((!configuration['greedy-arrays'] && argsToSet.length > 0) || + (nargsCount && typeof nargsCount === 'number' && argsToSet.length >= nargsCount)) + break; + next = args[ii]; + if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next)) + break; + i = ii; + argsToSet.push(processValue(key, next, inputIsString)); + } + } + if (typeof nargsCount === 'number' && ((nargsCount && argsToSet.length < nargsCount) || + (isNaN(nargsCount) && argsToSet.length === 0))) { + error = Error(__('Not enough arguments following: %s', key)); + } + setArg(key, argsToSet); + return i; + } + function setArg(key, val, shouldStripQuotes = inputIsString) { + if (/-/.test(key) && configuration['camel-case-expansion']) { + const alias = key.split('.').map(function (prop) { + return camelCase(prop); + }).join('.'); + addNewAlias(key, alias); + } + const value = processValue(key, val, shouldStripQuotes); + const splitKey = key.split('.'); + setKey(argv, splitKey, value); + if (flags.aliases[key]) { + flags.aliases[key].forEach(function (x) { + const keyProperties = x.split('.'); + setKey(argv, keyProperties, value); + }); + } + if (splitKey.length > 1 && configuration['dot-notation']) { + (flags.aliases[splitKey[0]] || []).forEach(function (x) { + let keyProperties = x.split('.'); + const a = [].concat(splitKey); + a.shift(); + keyProperties = keyProperties.concat(a); + if (!(flags.aliases[key] || []).includes(keyProperties.join('.'))) { + setKey(argv, keyProperties, value); + } + }); + } + if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) { + const keys = [key].concat(flags.aliases[key] || []); + keys.forEach(function (key) { + Object.defineProperty(argvReturn, key, { + enumerable: true, + get() { + return val; + }, + set(value) { + val = typeof value === 'string' ? mixin.normalize(value) : value; + } + }); + }); + } + } + function addNewAlias(key, alias) { + if (!(flags.aliases[key] && flags.aliases[key].length)) { + flags.aliases[key] = [alias]; + newAliases[alias] = true; + } + if (!(flags.aliases[alias] && flags.aliases[alias].length)) { + addNewAlias(alias, key); + } + } + function processValue(key, val, shouldStripQuotes) { + if (shouldStripQuotes) { + val = stripQuotes(val); + } + if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) { + if (typeof val === 'string') + val = val === 'true'; + } + let value = Array.isArray(val) + ? val.map(function (v) { return maybeCoerceNumber(key, v); }) + : maybeCoerceNumber(key, val); + if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) { + value = increment(); + } + if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) { + if (Array.isArray(val)) + value = val.map((val) => { return mixin.normalize(val); }); + else + value = mixin.normalize(val); + } + return value; + } + function maybeCoerceNumber(key, value) { + if (!configuration['parse-positional-numbers'] && key === '_') + return value; + if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) { + const shouldCoerceNumber = looksLikeNumber(value) && configuration['parse-numbers'] && (Number.isSafeInteger(Math.floor(parseFloat(`${value}`)))); + if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) { + value = Number(value); + } + } + return value; + } + function setConfig(argv) { + const configLookup = Object.create(null); + applyDefaultsAndAliases(configLookup, flags.aliases, defaults); + Object.keys(flags.configs).forEach(function (configKey) { + const configPath = argv[configKey] || configLookup[configKey]; + if (configPath) { + try { + let config = null; + const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath); + const resolveConfig = flags.configs[configKey]; + if (typeof resolveConfig === 'function') { + try { + config = resolveConfig(resolvedConfigPath); + } + catch (e) { + config = e; + } + if (config instanceof Error) { + error = config; + return; + } + } + else { + config = mixin.require(resolvedConfigPath); + } + setConfigObject(config); + } + catch (ex) { + if (ex.name === 'PermissionDenied') + error = ex; + else if (argv[configKey]) + error = Error(__('Invalid JSON config file: %s', configPath)); + } + } + }); + } + function setConfigObject(config, prev) { + Object.keys(config).forEach(function (key) { + const value = config[key]; + const fullKey = prev ? prev + '.' + key : key; + if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) { + setConfigObject(value, fullKey); + } + else { + if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) { + setArg(fullKey, value); + } + } + }); + } + function setConfigObjects() { + if (typeof configObjects !== 'undefined') { + configObjects.forEach(function (configObject) { + setConfigObject(configObject); + }); + } + } + function applyEnvVars(argv, configOnly) { + if (typeof envPrefix === 'undefined') + return; + const prefix = typeof envPrefix === 'string' ? envPrefix : ''; + const env = mixin.env(); + Object.keys(env).forEach(function (envVar) { + if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) { + const keys = envVar.split('__').map(function (key, i) { + if (i === 0) { + key = key.substring(prefix.length); + } + return camelCase(key); + }); + if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) { + setArg(keys.join('.'), env[envVar]); + } + } + }); + } + function applyCoercions(argv) { + let coerce; + const applied = new Set(); + Object.keys(argv).forEach(function (key) { + if (!applied.has(key)) { + coerce = checkAllAliases(key, flags.coercions); + if (typeof coerce === 'function') { + try { + const value = maybeCoerceNumber(key, coerce(argv[key])); + ([].concat(flags.aliases[key] || [], key)).forEach(ali => { + applied.add(ali); + argv[ali] = value; + }); + } + catch (err) { + error = err; + } + } + } + }); + } + function setPlaceholderKeys(argv) { + flags.keys.forEach((key) => { + if (~key.indexOf('.')) + return; + if (typeof argv[key] === 'undefined') + argv[key] = undefined; + }); + return argv; + } + function applyDefaultsAndAliases(obj, aliases, defaults, canLog = false) { + Object.keys(defaults).forEach(function (key) { + if (!hasKey(obj, key.split('.'))) { + setKey(obj, key.split('.'), defaults[key]); + if (canLog) + defaulted[key] = true; + (aliases[key] || []).forEach(function (x) { + if (hasKey(obj, x.split('.'))) + return; + setKey(obj, x.split('.'), defaults[key]); + }); + } + }); + } + function hasKey(obj, keys) { + let o = obj; + if (!configuration['dot-notation']) + keys = [keys.join('.')]; + keys.slice(0, -1).forEach(function (key) { + o = (o[key] || {}); + }); + const key = keys[keys.length - 1]; + if (typeof o !== 'object') + return false; + else + return key in o; + } + function setKey(obj, keys, value) { + let o = obj; + if (!configuration['dot-notation']) + keys = [keys.join('.')]; + keys.slice(0, -1).forEach(function (key) { + key = sanitizeKey(key); + if (typeof o === 'object' && o[key] === undefined) { + o[key] = {}; + } + if (typeof o[key] !== 'object' || Array.isArray(o[key])) { + if (Array.isArray(o[key])) { + o[key].push({}); + } + else { + o[key] = [o[key], {}]; + } + o = o[key][o[key].length - 1]; + } + else { + o = o[key]; + } + }); + const key = sanitizeKey(keys[keys.length - 1]); + const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays); + const isValueArray = Array.isArray(value); + let duplicate = configuration['duplicate-arguments-array']; + if (!duplicate && checkAllAliases(key, flags.nargs)) { + duplicate = true; + if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) { + o[key] = undefined; + } + } + if (value === increment()) { + o[key] = increment(o[key]); + } + else if (Array.isArray(o[key])) { + if (duplicate && isTypeArray && isValueArray) { + o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]); + } + else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) { + o[key] = value; + } + else { + o[key] = o[key].concat([value]); + } + } + else if (o[key] === undefined && isTypeArray) { + o[key] = isValueArray ? value : [value]; + } + else if (duplicate && !(o[key] === undefined || + checkAllAliases(key, flags.counts) || + checkAllAliases(key, flags.bools))) { + o[key] = [o[key], value]; + } + else { + o[key] = value; + } + } + function extendAliases(...args) { + args.forEach(function (obj) { + Object.keys(obj || {}).forEach(function (key) { + if (flags.aliases[key]) + return; + flags.aliases[key] = [].concat(aliases[key] || []); + flags.aliases[key].concat(key).forEach(function (x) { + if (/-/.test(x) && configuration['camel-case-expansion']) { + const c = camelCase(x); + if (c !== key && flags.aliases[key].indexOf(c) === -1) { + flags.aliases[key].push(c); + newAliases[c] = true; + } + } + }); + flags.aliases[key].concat(key).forEach(function (x) { + if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) { + const c = decamelize(x, '-'); + if (c !== key && flags.aliases[key].indexOf(c) === -1) { + flags.aliases[key].push(c); + newAliases[c] = true; + } + } + }); + flags.aliases[key].forEach(function (x) { + flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) { + return x !== y; + })); + }); + }); + }); + } + function checkAllAliases(key, flag) { + const toCheck = [].concat(flags.aliases[key] || [], key); + const keys = Object.keys(flag); + const setAlias = toCheck.find(key => keys.includes(key)); + return setAlias ? flag[setAlias] : false; + } + function hasAnyFlag(key) { + const flagsKeys = Object.keys(flags); + const toCheck = [].concat(flagsKeys.map(k => flags[k])); + return toCheck.some(function (flag) { + return Array.isArray(flag) ? flag.includes(key) : flag[key]; + }); + } + function hasFlagsMatching(arg, ...patterns) { + const toCheck = [].concat(...patterns); + return toCheck.some(function (pattern) { + const match = arg.match(pattern); + return match && hasAnyFlag(match[1]); + }); + } + function hasAllShortFlags(arg) { + if (arg.match(negative) || !arg.match(/^-[^-]+/)) { + return false; + } + let hasAllFlags = true; + let next; + const letters = arg.slice(1).split(''); + for (let j = 0; j < letters.length; j++) { + next = arg.slice(j + 2); + if (!hasAnyFlag(letters[j])) { + hasAllFlags = false; + break; + } + if ((letters[j + 1] && letters[j + 1] === '=') || + next === '-' || + (/[A-Za-z]/.test(letters[j]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) || + (letters[j + 1] && letters[j + 1].match(/\W/))) { + break; + } + } + return hasAllFlags; + } + function isUnknownOptionAsArg(arg) { + return configuration['unknown-options-as-args'] && isUnknownOption(arg); + } + function isUnknownOption(arg) { + arg = arg.replace(/^-{3,}/, '--'); + if (arg.match(negative)) { + return false; + } + if (hasAllShortFlags(arg)) { + return false; + } + const flagWithEquals = /^-+([^=]+?)=[\s\S]*$/; + const normalFlag = /^-+([^=]+?)$/; + const flagEndingInHyphen = /^-+([^=]+?)-$/; + const flagEndingInDigits = /^-+([^=]+?\d+)$/; + const flagEndingInNonWordCharacters = /^-+([^=]+?)\W+.*$/; + return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters); + } + function defaultValue(key) { + if (!checkAllAliases(key, flags.bools) && + !checkAllAliases(key, flags.counts) && + `${key}` in defaults) { + return defaults[key]; + } + else { + return defaultForType(guessType(key)); + } + } + function defaultForType(type) { + const def = { + [DefaultValuesForTypeKey.BOOLEAN]: true, + [DefaultValuesForTypeKey.STRING]: '', + [DefaultValuesForTypeKey.NUMBER]: undefined, + [DefaultValuesForTypeKey.ARRAY]: [] + }; + return def[type]; + } + function guessType(key) { + let type = DefaultValuesForTypeKey.BOOLEAN; + if (checkAllAliases(key, flags.strings)) + type = DefaultValuesForTypeKey.STRING; + else if (checkAllAliases(key, flags.numbers)) + type = DefaultValuesForTypeKey.NUMBER; + else if (checkAllAliases(key, flags.bools)) + type = DefaultValuesForTypeKey.BOOLEAN; + else if (checkAllAliases(key, flags.arrays)) + type = DefaultValuesForTypeKey.ARRAY; + return type; + } + function isUndefined(num) { + return num === undefined; + } + function checkConfiguration() { + Object.keys(flags.counts).find(key => { + if (checkAllAliases(key, flags.arrays)) { + error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key)); + return true; + } + else if (checkAllAliases(key, flags.nargs)) { + error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key)); + return true; + } + return false; + }); + } + return { + aliases: Object.assign({}, flags.aliases), + argv: Object.assign(argvReturn, argv), + configuration: configuration, + defaulted: Object.assign({}, defaulted), + error: error, + newAliases: Object.assign({}, newAliases) + }; + } +} +function combineAliases(aliases) { + const aliasArrays = []; + const combined = Object.create(null); + let change = true; + Object.keys(aliases).forEach(function (key) { + aliasArrays.push([].concat(aliases[key], key)); + }); + while (change) { + change = false; + for (let i = 0; i < aliasArrays.length; i++) { + for (let ii = i + 1; ii < aliasArrays.length; ii++) { + const intersect = aliasArrays[i].filter(function (v) { + return aliasArrays[ii].indexOf(v) !== -1; + }); + if (intersect.length) { + aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]); + aliasArrays.splice(ii, 1); + change = true; + break; + } + } + } + } + aliasArrays.forEach(function (aliasArray) { + aliasArray = aliasArray.filter(function (v, i, self) { + return self.indexOf(v) === i; + }); + const lastAlias = aliasArray.pop(); + if (lastAlias !== undefined && typeof lastAlias === 'string') { + combined[lastAlias] = aliasArray; + } + }); + return combined; +} +function increment(orig) { + return orig !== undefined ? orig + 1 : 1; +} +function sanitizeKey(key) { + if (key === '__proto__') + return '___proto___'; + return key; +} +function stripQuotes(val) { + return (typeof val === 'string' && + (val[0] === "'" || val[0] === '"') && + val[val.length - 1] === val[0]) + ? val.substring(1, val.length - 1) + : val; +} + +const minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION) + ? Number(process.env.YARGS_MIN_NODE_VERSION) + : 12; +if (process && process.version) { + const major = Number(process.version.match(/v([^.]+)/)[1]); + if (major < minNodeVersion) { + 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`); + } +} +const env = process ? process.env : {}; +const parser = new YargsParser({ + cwd: process.cwd, + env: () => { + return env; + }, + format: util.format, + normalize: path.normalize, + resolve: path.resolve, + require: (path) => { + if (typeof require !== 'undefined') { + return require(path); + } + else if (path.match(/\.json$/)) { + return JSON.parse(fs.readFileSync(path, 'utf8')); + } + else { + throw Error('only .json config files are supported in ESM'); + } + } +}); +const yargsParser = function Parser(args, opts) { + const result = parser.parse(args.slice(), opts); + return result.argv; +}; +yargsParser.detailed = function (args, opts) { + return parser.parse(args.slice(), opts); +}; +yargsParser.camelCase = camelCase; +yargsParser.decamelize = decamelize; +yargsParser.looksLikeNumber = looksLikeNumber; + +module.exports = yargsParser; diff --git a/node_modules/yargs-parser/build/lib/index.js b/node_modules/yargs-parser/build/lib/index.js new file mode 100644 index 00000000..7c5d3fdf --- /dev/null +++ b/node_modules/yargs-parser/build/lib/index.js @@ -0,0 +1,60 @@ +/** + * @fileoverview Main entrypoint for libraries using yargs-parser in Node.js + * CJS and ESM environments. + * + * @license + * Copyright (c) 2016, Contributors + * SPDX-License-Identifier: ISC + */ +import { format } from 'util'; +import { normalize, resolve } from 'path'; +import { camelCase, decamelize, looksLikeNumber } from './string-utils.js'; +import { YargsParser } from './yargs-parser.js'; +import { readFileSync } from 'fs'; +// See https://github.com/yargs/yargs-parser#supported-nodejs-versions for our +// version support policy. The YARGS_MIN_NODE_VERSION is used for testing only. +const minNodeVersion = (process && process.env && process.env.YARGS_MIN_NODE_VERSION) + ? Number(process.env.YARGS_MIN_NODE_VERSION) + : 12; +if (process && process.version) { + const major = Number(process.version.match(/v([^.]+)/)[1]); + if (major < minNodeVersion) { + 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`); + } +} +// Creates a yargs-parser instance using Node.js standard libraries: +const env = process ? process.env : {}; +const parser = new YargsParser({ + cwd: process.cwd, + env: () => { + return env; + }, + format, + normalize, + resolve, + // TODO: figure out a way to combine ESM and CJS coverage, such that + // we can exercise all the lines below: + require: (path) => { + if (typeof require !== 'undefined') { + return require(path); + } + else if (path.match(/\.json$/)) { + // Addresses: https://github.com/yargs/yargs/issues/2040 + return JSON.parse(readFileSync(path, 'utf8')); + } + else { + throw Error('only .json config files are supported in ESM'); + } + } +}); +const yargsParser = function Parser(args, opts) { + const result = parser.parse(args.slice(), opts); + return result.argv; +}; +yargsParser.detailed = function (args, opts) { + return parser.parse(args.slice(), opts); +}; +yargsParser.camelCase = camelCase; +yargsParser.decamelize = decamelize; +yargsParser.looksLikeNumber = looksLikeNumber; +export default yargsParser; diff --git a/node_modules/yargs-parser/build/lib/string-utils.js b/node_modules/yargs-parser/build/lib/string-utils.js new file mode 100644 index 00000000..4e8bd996 --- /dev/null +++ b/node_modules/yargs-parser/build/lib/string-utils.js @@ -0,0 +1,65 @@ +/** + * @license + * Copyright (c) 2016, Contributors + * SPDX-License-Identifier: ISC + */ +export function camelCase(str) { + // Handle the case where an argument is provided as camel case, e.g., fooBar. + // by ensuring that the string isn't already mixed case: + const isCamelCase = str !== str.toLowerCase() && str !== str.toUpperCase(); + if (!isCamelCase) { + str = str.toLowerCase(); + } + if (str.indexOf('-') === -1 && str.indexOf('_') === -1) { + return str; + } + else { + let camelcase = ''; + let nextChrUpper = false; + const leadingHyphens = str.match(/^-+/); + for (let i = leadingHyphens ? leadingHyphens[0].length : 0; i < str.length; i++) { + let chr = str.charAt(i); + if (nextChrUpper) { + nextChrUpper = false; + chr = chr.toUpperCase(); + } + if (i !== 0 && (chr === '-' || chr === '_')) { + nextChrUpper = true; + } + else if (chr !== '-' && chr !== '_') { + camelcase += chr; + } + } + return camelcase; + } +} +export function decamelize(str, joinString) { + const lowercase = str.toLowerCase(); + joinString = joinString || '-'; + let notCamelcase = ''; + for (let i = 0; i < str.length; i++) { + const chrLower = lowercase.charAt(i); + const chrString = str.charAt(i); + if (chrLower !== chrString && i > 0) { + notCamelcase += `${joinString}${lowercase.charAt(i)}`; + } + else { + notCamelcase += chrString; + } + } + return notCamelcase; +} +export function looksLikeNumber(x) { + if (x === null || x === undefined) + return false; + // if loaded from config, may already be a number. + if (typeof x === 'number') + return true; + // hexadecimal. + if (/^0x[0-9a-f]+$/i.test(x)) + return true; + // don't treat 0123 as a number; as it drops the leading '0'. + if (/^0[^.]/.test(x)) + return false; + return /^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); +} diff --git a/node_modules/yargs-parser/build/lib/tokenize-arg-string.js b/node_modules/yargs-parser/build/lib/tokenize-arg-string.js new file mode 100644 index 00000000..5e732efe --- /dev/null +++ b/node_modules/yargs-parser/build/lib/tokenize-arg-string.js @@ -0,0 +1,40 @@ +/** + * @license + * Copyright (c) 2016, Contributors + * SPDX-License-Identifier: ISC + */ +// take an un-split argv string and tokenize it. +export function tokenizeArgString(argString) { + if (Array.isArray(argString)) { + return argString.map(e => typeof e !== 'string' ? e + '' : e); + } + argString = argString.trim(); + let i = 0; + let prevC = null; + let c = null; + let opening = null; + const args = []; + for (let ii = 0; ii < argString.length; ii++) { + prevC = c; + c = argString.charAt(ii); + // split on spaces unless we're in quotes. + if (c === ' ' && !opening) { + if (!(prevC === ' ')) { + i++; + } + continue; + } + // don't split the string if we're in matching + // opening or closing single and double quotes. + if (c === opening) { + opening = null; + } + else if ((c === "'" || c === '"') && !opening) { + opening = c; + } + if (!args[i]) + args[i] = ''; + args[i] += c; + } + return args; +} diff --git a/node_modules/yargs-parser/build/lib/yargs-parser-types.js b/node_modules/yargs-parser/build/lib/yargs-parser-types.js new file mode 100644 index 00000000..63b7c313 --- /dev/null +++ b/node_modules/yargs-parser/build/lib/yargs-parser-types.js @@ -0,0 +1,12 @@ +/** + * @license + * Copyright (c) 2016, Contributors + * SPDX-License-Identifier: ISC + */ +export var DefaultValuesForTypeKey; +(function (DefaultValuesForTypeKey) { + DefaultValuesForTypeKey["BOOLEAN"] = "boolean"; + DefaultValuesForTypeKey["STRING"] = "string"; + DefaultValuesForTypeKey["NUMBER"] = "number"; + DefaultValuesForTypeKey["ARRAY"] = "array"; +})(DefaultValuesForTypeKey || (DefaultValuesForTypeKey = {})); diff --git a/node_modules/yargs-parser/build/lib/yargs-parser.js b/node_modules/yargs-parser/build/lib/yargs-parser.js new file mode 100644 index 00000000..90e37462 --- /dev/null +++ b/node_modules/yargs-parser/build/lib/yargs-parser.js @@ -0,0 +1,1045 @@ +/** + * @license + * Copyright (c) 2016, Contributors + * SPDX-License-Identifier: ISC + */ +import { tokenizeArgString } from './tokenize-arg-string.js'; +import { DefaultValuesForTypeKey } from './yargs-parser-types.js'; +import { camelCase, decamelize, looksLikeNumber } from './string-utils.js'; +let mixin; +export class YargsParser { + constructor(_mixin) { + mixin = _mixin; + } + parse(argsInput, options) { + const opts = Object.assign({ + alias: undefined, + array: undefined, + boolean: undefined, + config: undefined, + configObjects: undefined, + configuration: undefined, + coerce: undefined, + count: undefined, + default: undefined, + envPrefix: undefined, + narg: undefined, + normalize: undefined, + string: undefined, + number: undefined, + __: undefined, + key: undefined + }, options); + // allow a string argument to be passed in rather + // than an argv array. + const args = tokenizeArgString(argsInput); + // tokenizeArgString adds extra quotes to args if argsInput is a string + // only strip those extra quotes in processValue if argsInput is a string + const inputIsString = typeof argsInput === 'string'; + // aliases might have transitive relationships, normalize this. + const aliases = combineAliases(Object.assign(Object.create(null), opts.alias)); + const configuration = Object.assign({ + 'boolean-negation': true, + 'camel-case-expansion': true, + 'combine-arrays': false, + 'dot-notation': true, + 'duplicate-arguments-array': true, + 'flatten-duplicate-arrays': true, + 'greedy-arrays': true, + 'halt-at-non-option': false, + 'nargs-eats-options': false, + 'negation-prefix': 'no-', + 'parse-numbers': true, + 'parse-positional-numbers': true, + 'populate--': false, + 'set-placeholder-key': false, + 'short-option-groups': true, + 'strip-aliased': false, + 'strip-dashed': false, + 'unknown-options-as-args': false + }, opts.configuration); + const defaults = Object.assign(Object.create(null), opts.default); + const configObjects = opts.configObjects || []; + const envPrefix = opts.envPrefix; + const notFlagsOption = configuration['populate--']; + const notFlagsArgv = notFlagsOption ? '--' : '_'; + const newAliases = Object.create(null); + const defaulted = Object.create(null); + // allow a i18n handler to be passed in, default to a fake one (util.format). + const __ = opts.__ || mixin.format; + const flags = { + aliases: Object.create(null), + arrays: Object.create(null), + bools: Object.create(null), + strings: Object.create(null), + numbers: Object.create(null), + counts: Object.create(null), + normalize: Object.create(null), + configs: Object.create(null), + nargs: Object.create(null), + coercions: Object.create(null), + keys: [] + }; + const negative = /^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/; + const negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)'); + [].concat(opts.array || []).filter(Boolean).forEach(function (opt) { + const key = typeof opt === 'object' ? opt.key : opt; + // assign to flags[bools|strings|numbers] + const assignment = Object.keys(opt).map(function (key) { + const arrayFlagKeys = { + boolean: 'bools', + string: 'strings', + number: 'numbers' + }; + return arrayFlagKeys[key]; + }).filter(Boolean).pop(); + // assign key to be coerced + if (assignment) { + flags[assignment][key] = true; + } + flags.arrays[key] = true; + flags.keys.push(key); + }); + [].concat(opts.boolean || []).filter(Boolean).forEach(function (key) { + flags.bools[key] = true; + flags.keys.push(key); + }); + [].concat(opts.string || []).filter(Boolean).forEach(function (key) { + flags.strings[key] = true; + flags.keys.push(key); + }); + [].concat(opts.number || []).filter(Boolean).forEach(function (key) { + flags.numbers[key] = true; + flags.keys.push(key); + }); + [].concat(opts.count || []).filter(Boolean).forEach(function (key) { + flags.counts[key] = true; + flags.keys.push(key); + }); + [].concat(opts.normalize || []).filter(Boolean).forEach(function (key) { + flags.normalize[key] = true; + flags.keys.push(key); + }); + if (typeof opts.narg === 'object') { + Object.entries(opts.narg).forEach(([key, value]) => { + if (typeof value === 'number') { + flags.nargs[key] = value; + flags.keys.push(key); + } + }); + } + if (typeof opts.coerce === 'object') { + Object.entries(opts.coerce).forEach(([key, value]) => { + if (typeof value === 'function') { + flags.coercions[key] = value; + flags.keys.push(key); + } + }); + } + if (typeof opts.config !== 'undefined') { + if (Array.isArray(opts.config) || typeof opts.config === 'string') { + ; + [].concat(opts.config).filter(Boolean).forEach(function (key) { + flags.configs[key] = true; + }); + } + else if (typeof opts.config === 'object') { + Object.entries(opts.config).forEach(([key, value]) => { + if (typeof value === 'boolean' || typeof value === 'function') { + flags.configs[key] = value; + } + }); + } + } + // create a lookup table that takes into account all + // combinations of aliases: {f: ['foo'], foo: ['f']} + extendAliases(opts.key, aliases, opts.default, flags.arrays); + // apply default values to all aliases. + Object.keys(defaults).forEach(function (key) { + (flags.aliases[key] || []).forEach(function (alias) { + defaults[alias] = defaults[key]; + }); + }); + let error = null; + checkConfiguration(); + let notFlags = []; + const argv = Object.assign(Object.create(null), { _: [] }); + // TODO(bcoe): for the first pass at removing object prototype we didn't + // remove all prototypes from objects returned by this API, we might want + // to gradually move towards doing so. + const argvReturn = {}; + for (let i = 0; i < args.length; i++) { + const arg = args[i]; + const truncatedArg = arg.replace(/^-{3,}/, '---'); + let broken; + let key; + let letters; + let m; + let next; + let value; + // any unknown option (except for end-of-options, "--") + if (arg !== '--' && isUnknownOptionAsArg(arg)) { + pushPositional(arg); + // ---, ---=, ----, etc, + } + else if (truncatedArg.match(/---+(=|$)/)) { + // options without key name are invalid. + pushPositional(arg); + continue; + // -- separated by = + } + else if (arg.match(/^--.+=/) || (!configuration['short-option-groups'] && arg.match(/^-.+=/))) { + // Using [\s\S] instead of . because js doesn't support the + // 'dotall' regex modifier. See: + // http://stackoverflow.com/a/1068308/13216 + m = arg.match(/^--?([^=]+)=([\s\S]*)$/); + // arrays format = '--f=a b c' + if (m !== null && Array.isArray(m) && m.length >= 3) { + if (checkAllAliases(m[1], flags.arrays)) { + i = eatArray(i, m[1], args, m[2]); + } + else if (checkAllAliases(m[1], flags.nargs) !== false) { + // nargs format = '--f=monkey washing cat' + i = eatNargs(i, m[1], args, m[2]); + } + else { + setArg(m[1], m[2], true); + } + } + } + else if (arg.match(negatedBoolean) && configuration['boolean-negation']) { + m = arg.match(negatedBoolean); + if (m !== null && Array.isArray(m) && m.length >= 2) { + key = m[1]; + setArg(key, checkAllAliases(key, flags.arrays) ? [false] : false); + } + // -- separated by space. + } + else if (arg.match(/^--.+/) || (!configuration['short-option-groups'] && arg.match(/^-[^-]+/))) { + m = arg.match(/^--?(.+)/); + if (m !== null && Array.isArray(m) && m.length >= 2) { + key = m[1]; + if (checkAllAliases(key, flags.arrays)) { + // array format = '--foo a b c' + i = eatArray(i, key, args); + } + else if (checkAllAliases(key, flags.nargs) !== false) { + // nargs format = '--foo a b c' + // should be truthy even if: flags.nargs[key] === 0 + i = eatNargs(i, key, args); + } + else { + next = args[i + 1]; + if (next !== undefined && (!next.match(/^-/) || + next.match(negative)) && + !checkAllAliases(key, flags.bools) && + !checkAllAliases(key, flags.counts)) { + setArg(key, next); + i++; + } + else if (/^(true|false)$/.test(next)) { + setArg(key, next); + i++; + } + else { + setArg(key, defaultValue(key)); + } + } + } + // dot-notation flag separated by '='. + } + else if (arg.match(/^-.\..+=/)) { + m = arg.match(/^-([^=]+)=([\s\S]*)$/); + if (m !== null && Array.isArray(m) && m.length >= 3) { + setArg(m[1], m[2]); + } + // dot-notation flag separated by space. + } + else if (arg.match(/^-.\..+/) && !arg.match(negative)) { + next = args[i + 1]; + m = arg.match(/^-(.\..+)/); + if (m !== null && Array.isArray(m) && m.length >= 2) { + key = m[1]; + if (next !== undefined && !next.match(/^-/) && + !checkAllAliases(key, flags.bools) && + !checkAllAliases(key, flags.counts)) { + setArg(key, next); + i++; + } + else { + setArg(key, defaultValue(key)); + } + } + } + else if (arg.match(/^-[^-]+/) && !arg.match(negative)) { + letters = arg.slice(1, -1).split(''); + broken = false; + for (let j = 0; j < letters.length; j++) { + next = arg.slice(j + 2); + if (letters[j + 1] && letters[j + 1] === '=') { + value = arg.slice(j + 3); + key = letters[j]; + if (checkAllAliases(key, flags.arrays)) { + // array format = '-f=a b c' + i = eatArray(i, key, args, value); + } + else if (checkAllAliases(key, flags.nargs) !== false) { + // nargs format = '-f=monkey washing cat' + i = eatNargs(i, key, args, value); + } + else { + setArg(key, value); + } + broken = true; + break; + } + if (next === '-') { + setArg(letters[j], next); + continue; + } + // current letter is an alphabetic character and next value is a number + if (/[A-Za-z]/.test(letters[j]) && + /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next) && + checkAllAliases(next, flags.bools) === false) { + setArg(letters[j], next); + broken = true; + break; + } + if (letters[j + 1] && letters[j + 1].match(/\W/)) { + setArg(letters[j], next); + broken = true; + break; + } + else { + setArg(letters[j], defaultValue(letters[j])); + } + } + key = arg.slice(-1)[0]; + if (!broken && key !== '-') { + if (checkAllAliases(key, flags.arrays)) { + // array format = '-f a b c' + i = eatArray(i, key, args); + } + else if (checkAllAliases(key, flags.nargs) !== false) { + // nargs format = '-f a b c' + // should be truthy even if: flags.nargs[key] === 0 + i = eatNargs(i, key, args); + } + else { + next = args[i + 1]; + if (next !== undefined && (!/^(-|--)[^-]/.test(next) || + next.match(negative)) && + !checkAllAliases(key, flags.bools) && + !checkAllAliases(key, flags.counts)) { + setArg(key, next); + i++; + } + else if (/^(true|false)$/.test(next)) { + setArg(key, next); + i++; + } + else { + setArg(key, defaultValue(key)); + } + } + } + } + else if (arg.match(/^-[0-9]$/) && + arg.match(negative) && + checkAllAliases(arg.slice(1), flags.bools)) { + // single-digit boolean alias, e.g: xargs -0 + key = arg.slice(1); + setArg(key, defaultValue(key)); + } + else if (arg === '--') { + notFlags = args.slice(i + 1); + break; + } + else if (configuration['halt-at-non-option']) { + notFlags = args.slice(i); + break; + } + else { + pushPositional(arg); + } + } + // order of precedence: + // 1. command line arg + // 2. value from env var + // 3. value from config file + // 4. value from config objects + // 5. configured default value + applyEnvVars(argv, true); // special case: check env vars that point to config file + applyEnvVars(argv, false); + setConfig(argv); + setConfigObjects(); + applyDefaultsAndAliases(argv, flags.aliases, defaults, true); + applyCoercions(argv); + if (configuration['set-placeholder-key']) + setPlaceholderKeys(argv); + // for any counts either not in args or without an explicit default, set to 0 + Object.keys(flags.counts).forEach(function (key) { + if (!hasKey(argv, key.split('.'))) + setArg(key, 0); + }); + // '--' defaults to undefined. + if (notFlagsOption && notFlags.length) + argv[notFlagsArgv] = []; + notFlags.forEach(function (key) { + argv[notFlagsArgv].push(key); + }); + if (configuration['camel-case-expansion'] && configuration['strip-dashed']) { + Object.keys(argv).filter(key => key !== '--' && key.includes('-')).forEach(key => { + delete argv[key]; + }); + } + if (configuration['strip-aliased']) { + ; + [].concat(...Object.keys(aliases).map(k => aliases[k])).forEach(alias => { + if (configuration['camel-case-expansion'] && alias.includes('-')) { + delete argv[alias.split('.').map(prop => camelCase(prop)).join('.')]; + } + delete argv[alias]; + }); + } + // Push argument into positional array, applying numeric coercion: + function pushPositional(arg) { + const maybeCoercedNumber = maybeCoerceNumber('_', arg); + if (typeof maybeCoercedNumber === 'string' || typeof maybeCoercedNumber === 'number') { + argv._.push(maybeCoercedNumber); + } + } + // how many arguments should we consume, based + // on the nargs option? + function eatNargs(i, key, args, argAfterEqualSign) { + let ii; + let toEat = checkAllAliases(key, flags.nargs); + // NaN has a special meaning for the array type, indicating that one or + // more values are expected. + toEat = typeof toEat !== 'number' || isNaN(toEat) ? 1 : toEat; + if (toEat === 0) { + if (!isUndefined(argAfterEqualSign)) { + error = Error(__('Argument unexpected for: %s', key)); + } + setArg(key, defaultValue(key)); + return i; + } + let available = isUndefined(argAfterEqualSign) ? 0 : 1; + if (configuration['nargs-eats-options']) { + // classic behavior, yargs eats positional and dash arguments. + if (args.length - (i + 1) + available < toEat) { + error = Error(__('Not enough arguments following: %s', key)); + } + available = toEat; + } + else { + // nargs will not consume flag arguments, e.g., -abc, --foo, + // and terminates when one is observed. + for (ii = i + 1; ii < args.length; ii++) { + if (!args[ii].match(/^-[^0-9]/) || args[ii].match(negative) || isUnknownOptionAsArg(args[ii])) + available++; + else + break; + } + if (available < toEat) + error = Error(__('Not enough arguments following: %s', key)); + } + let consumed = Math.min(available, toEat); + if (!isUndefined(argAfterEqualSign) && consumed > 0) { + setArg(key, argAfterEqualSign); + consumed--; + } + for (ii = i + 1; ii < (consumed + i + 1); ii++) { + setArg(key, args[ii]); + } + return (i + consumed); + } + // if an option is an array, eat all non-hyphenated arguments + // following it... YUM! + // e.g., --foo apple banana cat becomes ["apple", "banana", "cat"] + function eatArray(i, key, args, argAfterEqualSign) { + let argsToSet = []; + let next = argAfterEqualSign || args[i + 1]; + // If both array and nargs are configured, enforce the nargs count: + const nargsCount = checkAllAliases(key, flags.nargs); + if (checkAllAliases(key, flags.bools) && !(/^(true|false)$/.test(next))) { + argsToSet.push(true); + } + else if (isUndefined(next) || + (isUndefined(argAfterEqualSign) && /^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next))) { + // for keys without value ==> argsToSet remains an empty [] + // set user default value, if available + if (defaults[key] !== undefined) { + const defVal = defaults[key]; + argsToSet = Array.isArray(defVal) ? defVal : [defVal]; + } + } + else { + // value in --option=value is eaten as is + if (!isUndefined(argAfterEqualSign)) { + argsToSet.push(processValue(key, argAfterEqualSign, true)); + } + for (let ii = i + 1; ii < args.length; ii++) { + if ((!configuration['greedy-arrays'] && argsToSet.length > 0) || + (nargsCount && typeof nargsCount === 'number' && argsToSet.length >= nargsCount)) + break; + next = args[ii]; + if (/^-/.test(next) && !negative.test(next) && !isUnknownOptionAsArg(next)) + break; + i = ii; + argsToSet.push(processValue(key, next, inputIsString)); + } + } + // If both array and nargs are configured, create an error if less than + // nargs positionals were found. NaN has special meaning, indicating + // that at least one value is required (more are okay). + if (typeof nargsCount === 'number' && ((nargsCount && argsToSet.length < nargsCount) || + (isNaN(nargsCount) && argsToSet.length === 0))) { + error = Error(__('Not enough arguments following: %s', key)); + } + setArg(key, argsToSet); + return i; + } + function setArg(key, val, shouldStripQuotes = inputIsString) { + if (/-/.test(key) && configuration['camel-case-expansion']) { + const alias = key.split('.').map(function (prop) { + return camelCase(prop); + }).join('.'); + addNewAlias(key, alias); + } + const value = processValue(key, val, shouldStripQuotes); + const splitKey = key.split('.'); + setKey(argv, splitKey, value); + // handle populating aliases of the full key + if (flags.aliases[key]) { + flags.aliases[key].forEach(function (x) { + const keyProperties = x.split('.'); + setKey(argv, keyProperties, value); + }); + } + // handle populating aliases of the first element of the dot-notation key + if (splitKey.length > 1 && configuration['dot-notation']) { + ; + (flags.aliases[splitKey[0]] || []).forEach(function (x) { + let keyProperties = x.split('.'); + // expand alias with nested objects in key + const a = [].concat(splitKey); + a.shift(); // nuke the old key. + keyProperties = keyProperties.concat(a); + // populate alias only if is not already an alias of the full key + // (already populated above) + if (!(flags.aliases[key] || []).includes(keyProperties.join('.'))) { + setKey(argv, keyProperties, value); + } + }); + } + // Set normalize getter and setter when key is in 'normalize' but isn't an array + if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) { + const keys = [key].concat(flags.aliases[key] || []); + keys.forEach(function (key) { + Object.defineProperty(argvReturn, key, { + enumerable: true, + get() { + return val; + }, + set(value) { + val = typeof value === 'string' ? mixin.normalize(value) : value; + } + }); + }); + } + } + function addNewAlias(key, alias) { + if (!(flags.aliases[key] && flags.aliases[key].length)) { + flags.aliases[key] = [alias]; + newAliases[alias] = true; + } + if (!(flags.aliases[alias] && flags.aliases[alias].length)) { + addNewAlias(alias, key); + } + } + function processValue(key, val, shouldStripQuotes) { + // strings may be quoted, clean this up as we assign values. + if (shouldStripQuotes) { + val = stripQuotes(val); + } + // handle parsing boolean arguments --foo=true --bar false. + if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) { + if (typeof val === 'string') + val = val === 'true'; + } + let value = Array.isArray(val) + ? val.map(function (v) { return maybeCoerceNumber(key, v); }) + : maybeCoerceNumber(key, val); + // increment a count given as arg (either no value or value parsed as boolean) + if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) { + value = increment(); + } + // Set normalized value when key is in 'normalize' and in 'arrays' + if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) { + if (Array.isArray(val)) + value = val.map((val) => { return mixin.normalize(val); }); + else + value = mixin.normalize(val); + } + return value; + } + function maybeCoerceNumber(key, value) { + if (!configuration['parse-positional-numbers'] && key === '_') + return value; + if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.bools) && !Array.isArray(value)) { + const shouldCoerceNumber = looksLikeNumber(value) && configuration['parse-numbers'] && (Number.isSafeInteger(Math.floor(parseFloat(`${value}`)))); + if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) { + value = Number(value); + } + } + return value; + } + // set args from config.json file, this should be + // applied last so that defaults can be applied. + function setConfig(argv) { + const configLookup = Object.create(null); + // expand defaults/aliases, in-case any happen to reference + // the config.json file. + applyDefaultsAndAliases(configLookup, flags.aliases, defaults); + Object.keys(flags.configs).forEach(function (configKey) { + const configPath = argv[configKey] || configLookup[configKey]; + if (configPath) { + try { + let config = null; + const resolvedConfigPath = mixin.resolve(mixin.cwd(), configPath); + const resolveConfig = flags.configs[configKey]; + if (typeof resolveConfig === 'function') { + try { + config = resolveConfig(resolvedConfigPath); + } + catch (e) { + config = e; + } + if (config instanceof Error) { + error = config; + return; + } + } + else { + config = mixin.require(resolvedConfigPath); + } + setConfigObject(config); + } + catch (ex) { + // Deno will receive a PermissionDenied error if an attempt is + // made to load config without the --allow-read flag: + if (ex.name === 'PermissionDenied') + error = ex; + else if (argv[configKey]) + error = Error(__('Invalid JSON config file: %s', configPath)); + } + } + }); + } + // set args from config object. + // it recursively checks nested objects. + function setConfigObject(config, prev) { + Object.keys(config).forEach(function (key) { + const value = config[key]; + const fullKey = prev ? prev + '.' + key : key; + // if the value is an inner object and we have dot-notation + // enabled, treat inner objects in config the same as + // heavily nested dot notations (foo.bar.apple). + if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) { + // if the value is an object but not an array, check nested object + setConfigObject(value, fullKey); + } + else { + // setting arguments via CLI takes precedence over + // values within the config file. + if (!hasKey(argv, fullKey.split('.')) || (checkAllAliases(fullKey, flags.arrays) && configuration['combine-arrays'])) { + setArg(fullKey, value); + } + } + }); + } + // set all config objects passed in opts + function setConfigObjects() { + if (typeof configObjects !== 'undefined') { + configObjects.forEach(function (configObject) { + setConfigObject(configObject); + }); + } + } + function applyEnvVars(argv, configOnly) { + if (typeof envPrefix === 'undefined') + return; + const prefix = typeof envPrefix === 'string' ? envPrefix : ''; + const env = mixin.env(); + Object.keys(env).forEach(function (envVar) { + if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) { + // get array of nested keys and convert them to camel case + const keys = envVar.split('__').map(function (key, i) { + if (i === 0) { + key = key.substring(prefix.length); + } + return camelCase(key); + }); + if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && !hasKey(argv, keys)) { + setArg(keys.join('.'), env[envVar]); + } + } + }); + } + function applyCoercions(argv) { + let coerce; + const applied = new Set(); + Object.keys(argv).forEach(function (key) { + if (!applied.has(key)) { // If we haven't already coerced this option via one of its aliases + coerce = checkAllAliases(key, flags.coercions); + if (typeof coerce === 'function') { + try { + const value = maybeCoerceNumber(key, coerce(argv[key])); + ([].concat(flags.aliases[key] || [], key)).forEach(ali => { + applied.add(ali); + argv[ali] = value; + }); + } + catch (err) { + error = err; + } + } + } + }); + } + function setPlaceholderKeys(argv) { + flags.keys.forEach((key) => { + // don't set placeholder keys for dot notation options 'foo.bar'. + if (~key.indexOf('.')) + return; + if (typeof argv[key] === 'undefined') + argv[key] = undefined; + }); + return argv; + } + function applyDefaultsAndAliases(obj, aliases, defaults, canLog = false) { + Object.keys(defaults).forEach(function (key) { + if (!hasKey(obj, key.split('.'))) { + setKey(obj, key.split('.'), defaults[key]); + if (canLog) + defaulted[key] = true; + (aliases[key] || []).forEach(function (x) { + if (hasKey(obj, x.split('.'))) + return; + setKey(obj, x.split('.'), defaults[key]); + }); + } + }); + } + function hasKey(obj, keys) { + let o = obj; + if (!configuration['dot-notation']) + keys = [keys.join('.')]; + keys.slice(0, -1).forEach(function (key) { + o = (o[key] || {}); + }); + const key = keys[keys.length - 1]; + if (typeof o !== 'object') + return false; + else + return key in o; + } + function setKey(obj, keys, value) { + let o = obj; + if (!configuration['dot-notation']) + keys = [keys.join('.')]; + keys.slice(0, -1).forEach(function (key) { + // TODO(bcoe): in the next major version of yargs, switch to + // Object.create(null) for dot notation: + key = sanitizeKey(key); + if (typeof o === 'object' && o[key] === undefined) { + o[key] = {}; + } + if (typeof o[key] !== 'object' || Array.isArray(o[key])) { + // ensure that o[key] is an array, and that the last item is an empty object. + if (Array.isArray(o[key])) { + o[key].push({}); + } + else { + o[key] = [o[key], {}]; + } + // we want to update the empty object at the end of the o[key] array, so set o to that object + o = o[key][o[key].length - 1]; + } + else { + o = o[key]; + } + }); + // TODO(bcoe): in the next major version of yargs, switch to + // Object.create(null) for dot notation: + const key = sanitizeKey(keys[keys.length - 1]); + const isTypeArray = checkAllAliases(keys.join('.'), flags.arrays); + const isValueArray = Array.isArray(value); + let duplicate = configuration['duplicate-arguments-array']; + // nargs has higher priority than duplicate + if (!duplicate && checkAllAliases(key, flags.nargs)) { + duplicate = true; + if ((!isUndefined(o[key]) && flags.nargs[key] === 1) || (Array.isArray(o[key]) && o[key].length === flags.nargs[key])) { + o[key] = undefined; + } + } + if (value === increment()) { + o[key] = increment(o[key]); + } + else if (Array.isArray(o[key])) { + if (duplicate && isTypeArray && isValueArray) { + o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : (Array.isArray(o[key][0]) ? o[key] : [o[key]]).concat([value]); + } + else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) { + o[key] = value; + } + else { + o[key] = o[key].concat([value]); + } + } + else if (o[key] === undefined && isTypeArray) { + o[key] = isValueArray ? value : [value]; + } + else if (duplicate && !(o[key] === undefined || + checkAllAliases(key, flags.counts) || + checkAllAliases(key, flags.bools))) { + o[key] = [o[key], value]; + } + else { + o[key] = value; + } + } + // extend the aliases list with inferred aliases. + function extendAliases(...args) { + args.forEach(function (obj) { + Object.keys(obj || {}).forEach(function (key) { + // short-circuit if we've already added a key + // to the aliases array, for example it might + // exist in both 'opts.default' and 'opts.key'. + if (flags.aliases[key]) + return; + flags.aliases[key] = [].concat(aliases[key] || []); + // For "--option-name", also set argv.optionName + flags.aliases[key].concat(key).forEach(function (x) { + if (/-/.test(x) && configuration['camel-case-expansion']) { + const c = camelCase(x); + if (c !== key && flags.aliases[key].indexOf(c) === -1) { + flags.aliases[key].push(c); + newAliases[c] = true; + } + } + }); + // For "--optionName", also set argv['option-name'] + flags.aliases[key].concat(key).forEach(function (x) { + if (x.length > 1 && /[A-Z]/.test(x) && configuration['camel-case-expansion']) { + const c = decamelize(x, '-'); + if (c !== key && flags.aliases[key].indexOf(c) === -1) { + flags.aliases[key].push(c); + newAliases[c] = true; + } + } + }); + flags.aliases[key].forEach(function (x) { + flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) { + return x !== y; + })); + }); + }); + }); + } + function checkAllAliases(key, flag) { + const toCheck = [].concat(flags.aliases[key] || [], key); + const keys = Object.keys(flag); + const setAlias = toCheck.find(key => keys.includes(key)); + return setAlias ? flag[setAlias] : false; + } + function hasAnyFlag(key) { + const flagsKeys = Object.keys(flags); + const toCheck = [].concat(flagsKeys.map(k => flags[k])); + return toCheck.some(function (flag) { + return Array.isArray(flag) ? flag.includes(key) : flag[key]; + }); + } + function hasFlagsMatching(arg, ...patterns) { + const toCheck = [].concat(...patterns); + return toCheck.some(function (pattern) { + const match = arg.match(pattern); + return match && hasAnyFlag(match[1]); + }); + } + // based on a simplified version of the short flag group parsing logic + function hasAllShortFlags(arg) { + // if this is a negative number, or doesn't start with a single hyphen, it's not a short flag group + if (arg.match(negative) || !arg.match(/^-[^-]+/)) { + return false; + } + let hasAllFlags = true; + let next; + const letters = arg.slice(1).split(''); + for (let j = 0; j < letters.length; j++) { + next = arg.slice(j + 2); + if (!hasAnyFlag(letters[j])) { + hasAllFlags = false; + break; + } + if ((letters[j + 1] && letters[j + 1] === '=') || + next === '-' || + (/[A-Za-z]/.test(letters[j]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) || + (letters[j + 1] && letters[j + 1].match(/\W/))) { + break; + } + } + return hasAllFlags; + } + function isUnknownOptionAsArg(arg) { + return configuration['unknown-options-as-args'] && isUnknownOption(arg); + } + function isUnknownOption(arg) { + arg = arg.replace(/^-{3,}/, '--'); + // ignore negative numbers + if (arg.match(negative)) { + return false; + } + // if this is a short option group and all of them are configured, it isn't unknown + if (hasAllShortFlags(arg)) { + return false; + } + // e.g. '--count=2' + const flagWithEquals = /^-+([^=]+?)=[\s\S]*$/; + // e.g. '-a' or '--arg' + const normalFlag = /^-+([^=]+?)$/; + // e.g. '-a-' + const flagEndingInHyphen = /^-+([^=]+?)-$/; + // e.g. '-abc123' + const flagEndingInDigits = /^-+([^=]+?\d+)$/; + // e.g. '-a/usr/local' + const flagEndingInNonWordCharacters = /^-+([^=]+?)\W+.*$/; + // check the different types of flag styles, including negatedBoolean, a pattern defined near the start of the parse method + return !hasFlagsMatching(arg, flagWithEquals, negatedBoolean, normalFlag, flagEndingInHyphen, flagEndingInDigits, flagEndingInNonWordCharacters); + } + // make a best effort to pick a default value + // for an option based on name and type. + function defaultValue(key) { + if (!checkAllAliases(key, flags.bools) && + !checkAllAliases(key, flags.counts) && + `${key}` in defaults) { + return defaults[key]; + } + else { + return defaultForType(guessType(key)); + } + } + // return a default value, given the type of a flag., + function defaultForType(type) { + const def = { + [DefaultValuesForTypeKey.BOOLEAN]: true, + [DefaultValuesForTypeKey.STRING]: '', + [DefaultValuesForTypeKey.NUMBER]: undefined, + [DefaultValuesForTypeKey.ARRAY]: [] + }; + return def[type]; + } + // given a flag, enforce a default type. + function guessType(key) { + let type = DefaultValuesForTypeKey.BOOLEAN; + if (checkAllAliases(key, flags.strings)) + type = DefaultValuesForTypeKey.STRING; + else if (checkAllAliases(key, flags.numbers)) + type = DefaultValuesForTypeKey.NUMBER; + else if (checkAllAliases(key, flags.bools)) + type = DefaultValuesForTypeKey.BOOLEAN; + else if (checkAllAliases(key, flags.arrays)) + type = DefaultValuesForTypeKey.ARRAY; + return type; + } + function isUndefined(num) { + return num === undefined; + } + // check user configuration settings for inconsistencies + function checkConfiguration() { + // count keys should not be set as array/narg + Object.keys(flags.counts).find(key => { + if (checkAllAliases(key, flags.arrays)) { + error = Error(__('Invalid configuration: %s, opts.count excludes opts.array.', key)); + return true; + } + else if (checkAllAliases(key, flags.nargs)) { + error = Error(__('Invalid configuration: %s, opts.count excludes opts.narg.', key)); + return true; + } + return false; + }); + } + return { + aliases: Object.assign({}, flags.aliases), + argv: Object.assign(argvReturn, argv), + configuration: configuration, + defaulted: Object.assign({}, defaulted), + error: error, + newAliases: Object.assign({}, newAliases) + }; + } +} +// if any aliases reference each other, we should +// merge them together. +function combineAliases(aliases) { + const aliasArrays = []; + const combined = Object.create(null); + let change = true; + // turn alias lookup hash {key: ['alias1', 'alias2']} into + // a simple array ['key', 'alias1', 'alias2'] + Object.keys(aliases).forEach(function (key) { + aliasArrays.push([].concat(aliases[key], key)); + }); + // combine arrays until zero changes are + // made in an iteration. + while (change) { + change = false; + for (let i = 0; i < aliasArrays.length; i++) { + for (let ii = i + 1; ii < aliasArrays.length; ii++) { + const intersect = aliasArrays[i].filter(function (v) { + return aliasArrays[ii].indexOf(v) !== -1; + }); + if (intersect.length) { + aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii]); + aliasArrays.splice(ii, 1); + change = true; + break; + } + } + } + } + // map arrays back to the hash-lookup (de-dupe while + // we're at it). + aliasArrays.forEach(function (aliasArray) { + aliasArray = aliasArray.filter(function (v, i, self) { + return self.indexOf(v) === i; + }); + const lastAlias = aliasArray.pop(); + if (lastAlias !== undefined && typeof lastAlias === 'string') { + combined[lastAlias] = aliasArray; + } + }); + return combined; +} +// this function should only be called when a count is given as an arg +// it is NOT called to set a default value +// thus we can start the count at 1 instead of 0 +function increment(orig) { + return orig !== undefined ? orig + 1 : 1; +} +// TODO(bcoe): in the next major version of yargs, switch to +// Object.create(null) for dot notation: +function sanitizeKey(key) { + if (key === '__proto__') + return '___proto___'; + return key; +} +function stripQuotes(val) { + return (typeof val === 'string' && + (val[0] === "'" || val[0] === '"') && + val[val.length - 1] === val[0]) + ? val.substring(1, val.length - 1) + : val; +} diff --git a/node_modules/yargs-parser/package.json b/node_modules/yargs-parser/package.json new file mode 100644 index 00000000..c4b03225 --- /dev/null +++ b/node_modules/yargs-parser/package.json @@ -0,0 +1,88 @@ +{ + "name": "yargs-parser", + "version": "21.0.0", + "description": "the mighty option parser used by yargs", + "main": "build/index.cjs", + "exports": { + ".": [ + { + "import": "./build/lib/index.js", + "require": "./build/index.cjs" + }, + "./build/index.cjs" + ] + }, + "type": "module", + "module": "./build/lib/index.js", + "scripts": { + "check": "standardx '**/*.ts' && standardx '**/*.js' && standardx '**/*.cjs'", + "fix": "standardx --fix '**/*.ts' && standardx --fix '**/*.js' && standardx --fix '**/*.cjs'", + "pretest": "rimraf build && tsc -p tsconfig.test.json && cross-env NODE_ENV=test npm run build:cjs", + "test": "c8 --reporter=text --reporter=html mocha test/*.cjs", + "test:esm": "c8 --reporter=text --reporter=html mocha test/*.mjs", + "test:browser": "start-server-and-test 'serve ./ -p 8080' http://127.0.0.1:8080/package.json 'node ./test/browser/yargs-test.cjs'", + "pretest:typescript": "npm run pretest", + "test:typescript": "c8 mocha ./build/test/typescript/*.js", + "coverage": "c8 report --check-coverage", + "precompile": "rimraf build", + "compile": "tsc", + "postcompile": "npm run build:cjs", + "build:cjs": "rollup -c", + "prepare": "npm run compile" + }, + "repository": { + "type": "git", + "url": "https://github.com/yargs/yargs-parser.git" + }, + "keywords": [ + "argument", + "parser", + "yargs", + "command", + "cli", + "parsing", + "option", + "args", + "argument" + ], + "author": "Ben Coe ", + "license": "ISC", + "devDependencies": { + "@types/chai": "^4.2.11", + "@types/mocha": "^9.0.0", + "@types/node": "^16.11.4", + "@typescript-eslint/eslint-plugin": "^3.10.1", + "@typescript-eslint/parser": "^3.10.1", + "@wessberg/rollup-plugin-ts": "^1.2.28", + "c8": "^7.3.0", + "chai": "^4.2.0", + "cross-env": "^7.0.2", + "eslint": "^7.0.0", + "eslint-plugin-import": "^2.20.1", + "eslint-plugin-node": "^11.0.0", + "gts": "^3.0.0", + "mocha": "^9.0.0", + "puppeteer": "^11.0.0", + "rimraf": "^3.0.2", + "rollup": "^2.22.1", + "rollup-plugin-cleanup": "^3.1.1", + "serve": "^13.0.0", + "standardx": "^7.0.0", + "start-server-and-test": "^1.11.2", + "ts-transform-default-export": "^1.0.2", + "typescript": "^4.0.0" + }, + "files": [ + "browser.js", + "build", + "!*.d.ts" + ], + "engines": { + "node": ">=12" + }, + "standardx": { + "ignore": [ + "build" + ] + } +} diff --git a/node_modules/yargs/LICENSE b/node_modules/yargs/LICENSE new file mode 100644 index 00000000..b0145ca0 --- /dev/null +++ b/node_modules/yargs/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright 2010 James Halliday (mail@substack.net); Modified work Copyright 2014 Contributors (ben@npmjs.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/yargs/README.md b/node_modules/yargs/README.md new file mode 100644 index 00000000..51f5b225 --- /dev/null +++ b/node_modules/yargs/README.md @@ -0,0 +1,204 @@ +

+ +

+

Yargs

+

+ Yargs be a node.js library fer hearties tryin' ter parse optstrings +

+ +
+ +![ci](https://github.com/yargs/yargs/workflows/ci/badge.svg) +[![NPM version][npm-image]][npm-url] +[![js-standard-style][standard-image]][standard-url] +[![Coverage][coverage-image]][coverage-url] +[![Conventional Commits][conventional-commits-image]][conventional-commits-url] +[![Slack][slack-image]][slack-url] + +## Description +Yargs helps you build interactive command line tools, by parsing arguments and generating an elegant user interface. + +It gives you: + +* commands and (grouped) options (`my-program.js serve --port=5000`). +* a dynamically generated help menu based on your arguments: + +``` +mocha [spec..] + +Run tests with Mocha + +Commands + mocha inspect [spec..] Run tests with Mocha [default] + mocha init create a client-side Mocha setup at + +Rules & Behavior + --allow-uncaught Allow uncaught errors to propagate [boolean] + --async-only, -A Require all tests to use a callback (async) or + return a Promise [boolean] +``` + +* bash-completion shortcuts for commands and options. +* and [tons more](/docs/api.md). + +## Installation + +Stable version: +```bash +npm i yargs +``` + +Bleeding edge version with the most recent features: +```bash +npm i yargs@next +``` + +## Usage + +### Simple Example + +```javascript +#!/usr/bin/env node +const yargs = require('yargs/yargs') +const { hideBin } = require('yargs/helpers') +const argv = yargs(hideBin(process.argv)).argv + +if (argv.ships > 3 && argv.distance < 53.5) { + console.log('Plunder more riffiwobbles!') +} else { + console.log('Retreat from the xupptumblers!') +} +``` + +```bash +$ ./plunder.js --ships=4 --distance=22 +Plunder more riffiwobbles! + +$ ./plunder.js --ships 12 --distance 98.7 +Retreat from the xupptumblers! +``` + +> Note: `hideBin` is a shorthand for [`process.argv.slice(2)`](https://nodejs.org/en/knowledge/command-line/how-to-parse-command-line-arguments/). It has the benefit that it takes into account variations in some environments, e.g., [Electron](https://github.com/electron/electron/issues/4690). + +### Complex Example + +```javascript +#!/usr/bin/env node +const yargs = require('yargs/yargs') +const { hideBin } = require('yargs/helpers') + +yargs(hideBin(process.argv)) + .command('serve [port]', 'start the server', (yargs) => { + return yargs + .positional('port', { + describe: 'port to bind on', + default: 5000 + }) + }, (argv) => { + if (argv.verbose) console.info(`start server on :${argv.port}`) + serve(argv.port) + }) + .option('verbose', { + alias: 'v', + type: 'boolean', + description: 'Run with verbose logging' + }) + .parse() +``` + +Run the example above with `--help` to see the help for the application. + +## Supported Platforms + +### TypeScript + +yargs has type definitions at [@types/yargs][type-definitions]. + +``` +npm i @types/yargs --save-dev +``` + +See usage examples in [docs](/docs/typescript.md). + +### Deno + +As of `v16`, `yargs` supports [Deno](https://github.com/denoland/deno): + +```typescript +import yargs from 'https://deno.land/x/yargs/deno.ts' +import { Arguments } from 'https://deno.land/x/yargs/deno-types.ts' + +yargs(Deno.args) + .command('download ', 'download a list of files', (yargs: any) => { + return yargs.positional('files', { + describe: 'a list of files to do something with' + }) + }, (argv: Arguments) => { + console.info(argv) + }) + .strictCommands() + .demandCommand(1) + .parse() +``` + +### ESM + +As of `v16`,`yargs` supports ESM imports: + +```js +import yargs from 'yargs' +import { hideBin } from 'yargs/helpers' + +yargs(hideBin(process.argv)) + .command('curl ', 'fetch the contents of the URL', () => {}, (argv) => { + console.info(argv) + }) + .demandCommand(1) + .parse() +``` + +### Usage in Browser + +See examples of using yargs in the browser in [docs](/docs/browser.md). + +## Community + +Having problems? want to contribute? join our [community slack](http://devtoolscommunity.herokuapp.com). + +## Documentation + +### Table of Contents + +* [Yargs' API](/docs/api.md) +* [Examples](/docs/examples.md) +* [Parsing Tricks](/docs/tricks.md) + * [Stop the Parser](/docs/tricks.md#stop) + * [Negating Boolean Arguments](/docs/tricks.md#negate) + * [Numbers](/docs/tricks.md#numbers) + * [Arrays](/docs/tricks.md#arrays) + * [Objects](/docs/tricks.md#objects) + * [Quotes](/docs/tricks.md#quotes) +* [Advanced Topics](/docs/advanced.md) + * [Composing Your App Using Commands](/docs/advanced.md#commands) + * [Building Configurable CLI Apps](/docs/advanced.md#configuration) + * [Customizing Yargs' Parser](/docs/advanced.md#customizing) + * [Bundling yargs](/docs/bundling.md) +* [Contributing](/contributing.md) + +## Supported Node.js Versions + +Libraries in this ecosystem make a best effort to track +[Node.js' release schedule](https://nodejs.org/en/about/releases/). Here's [a +post on why we think this is important](https://medium.com/the-node-js-collection/maintainers-should-consider-following-node-js-release-schedule-ab08ed4de71a). + +[npm-url]: https://www.npmjs.com/package/yargs +[npm-image]: https://img.shields.io/npm/v/yargs.svg +[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg +[standard-url]: http://standardjs.com/ +[conventional-commits-image]: https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg +[conventional-commits-url]: https://conventionalcommits.org/ +[slack-image]: http://devtoolscommunity.herokuapp.com/badge.svg +[slack-url]: http://devtoolscommunity.herokuapp.com +[type-definitions]: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/yargs +[coverage-image]: https://img.shields.io/nycrc/yargs/yargs +[coverage-url]: https://github.com/yargs/yargs/blob/main/.nycrc diff --git a/node_modules/yargs/browser.mjs b/node_modules/yargs/browser.mjs new file mode 100644 index 00000000..2d0d6e9e --- /dev/null +++ b/node_modules/yargs/browser.mjs @@ -0,0 +1,7 @@ +// Bootstrap yargs for browser: +import browserPlatformShim from './lib/platform-shims/browser.mjs'; +import {YargsFactory} from './build/lib/yargs-factory.js'; + +const Yargs = YargsFactory(browserPlatformShim); + +export default Yargs; diff --git a/node_modules/yargs/build/index.cjs b/node_modules/yargs/build/index.cjs new file mode 100644 index 00000000..43a6bc77 --- /dev/null +++ b/node_modules/yargs/build/index.cjs @@ -0,0 +1 @@ +"use strict";var t=require("assert");class e extends Error{constructor(t){super(t||"yargs error"),this.name="YError",Error.captureStackTrace(this,e)}}let s,i=[];function n(t,o,a,h){s=h;let l={};if(Object.prototype.hasOwnProperty.call(t,"extends")){if("string"!=typeof t.extends)return l;const r=/\.json|\..*rc$/.test(t.extends);let h=null;if(r)h=function(t,e){return s.path.resolve(t,e)}(o,t.extends);else try{h=require.resolve(t.extends)}catch(e){return t}!function(t){if(i.indexOf(t)>-1)throw new e(`Circular extended configurations: '${t}'.`)}(h),i.push(h),l=r?JSON.parse(s.readFileSync(h,"utf8")):require(t.extends),delete t.extends,l=n(l,s.path.dirname(h),a,s)}return i=[],a?r(l,t):Object.assign({},l,t)}function r(t,e){const s={};function i(t){return t&&"object"==typeof t&&!Array.isArray(t)}Object.assign(s,t);for(const n of Object.keys(e))i(e[n])&&i(s[n])?s[n]=r(t[n],e[n]):s[n]=e[n];return s}function o(t){const e=t.replace(/\s{2,}/g," ").split(/\s+(?![^[]*]|[^<]*>)/),s=/\.*[\][<>]/g,i=e.shift();if(!i)throw new Error(`No command found in: ${t}`);const n={cmd:i.replace(s,""),demanded:[],optional:[]};return e.forEach(((t,i)=>{let r=!1;t=t.replace(/\s/g,""),/\.+[\]>]/.test(t)&&i===e.length-1&&(r=!0),/^\[/.test(t)?n.optional.push({cmd:t.replace(s,"").split("|"),variadic:r}):n.demanded.push({cmd:t.replace(s,"").split("|"),variadic:r})})),n}const a=["first","second","third","fourth","fifth","sixth"];function h(t,s,i){try{let n=0;const[r,a,h]="object"==typeof t?[{demanded:[],optional:[]},t,s]:[o(`cmd ${t}`),s,i],f=[].slice.call(a);for(;f.length&&void 0===f[f.length-1];)f.pop();const d=h||f.length;if(du)throw new e(`Too many arguments provided. Expected max ${u} but received ${d}.`);r.demanded.forEach((t=>{const e=l(f.shift());0===t.cmd.filter((t=>t===e||"*"===t)).length&&c(e,t.cmd,n),n+=1})),r.optional.forEach((t=>{if(0===f.length)return;const e=l(f.shift());0===t.cmd.filter((t=>t===e||"*"===t)).length&&c(e,t.cmd,n),n+=1}))}catch(t){console.warn(t.stack)}}function l(t){return Array.isArray(t)?"array":null===t?"null":typeof t}function c(t,s,i){throw new e(`Invalid ${a[i]||"manyith"} argument. Expected ${s.join(" or ")} but received ${t}.`)}function f(t){return!!t&&!!t.then&&"function"==typeof t.then}function d(t,e,s,i){s.assert.notStrictEqual(t,e,i)}function u(t,e){e.assert.strictEqual(typeof t,"string")}function p(t){return Object.keys(t)}function g(t={},e=(()=>!0)){const s={};return p(t).forEach((i=>{e(i,t[i])&&(s[i]=t[i])})),s}function m(){return process.versions.electron&&!process.defaultApp?0:1}function y(){return process.argv[m()]}var b=Object.freeze({__proto__:null,hideBin:function(t){return t.slice(m()+1)},getProcessArgvBin:y});function v(t,e,s,i){if("a"===s&&!i)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===s?i:"a"===s?i.call(t):i?i.value:e.get(t)}function O(t,e,s,i,n){if("m"===i)throw new TypeError("Private method is not writable");if("a"===i&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===i?n.call(t,s):n?n.value=s:e.set(t,s),s}class w{constructor(t){this.globalMiddleware=[],this.frozens=[],this.yargs=t}addMiddleware(t,e,s=!0,i=!1){if(h(" [boolean] [boolean] [boolean]",[t,e,s],arguments.length),Array.isArray(t)){for(let i=0;i{const i=[...s[e]||[],e];return!t.option||!i.includes(t.option)})),t.option=e,this.addMiddleware(t,!0,!0,!0)}getMiddleware(){return this.globalMiddleware}freeze(){this.frozens.push([...this.globalMiddleware])}unfreeze(){const t=this.frozens.pop();void 0!==t&&(this.globalMiddleware=t)}reset(){this.globalMiddleware=this.globalMiddleware.filter((t=>t.global))}}function C(t,e,s,i){return s.reduce(((t,s)=>{if(s.applyBeforeValidation!==i)return t;if(s.mutates){if(s.applied)return t;s.applied=!0}if(f(t))return t.then((t=>Promise.all([t,s(t,e)]))).then((([t,e])=>Object.assign(t,e)));{const i=s(t,e);return f(i)?i.then((e=>Object.assign(t,e))):Object.assign(t,i)}}),t)}function j(t,e,s=(t=>{throw t})){try{const s="function"==typeof t?t():t;return f(s)?s.then((t=>e(t))):e(s)}catch(t){return s(t)}}const _=/(^\*)|(^\$0)/;class M{constructor(t,e,s,i){this.requireCache=new Set,this.handlers={},this.aliasMap={},this.frozens=[],this.shim=i,this.usage=t,this.globalMiddleware=s,this.validation=e}addDirectory(t,e,s,i){"boolean"!=typeof(i=i||{}).recurse&&(i.recurse=!1),Array.isArray(i.extensions)||(i.extensions=["js"]);const n="function"==typeof i.visit?i.visit:t=>t;i.visit=(t,e,s)=>{const i=n(t,e,s);if(i){if(this.requireCache.has(e))return i;this.requireCache.add(e),this.addHandler(i)}return i},this.shim.requireDirectory({require:e,filename:s},t,i)}addHandler(t,e,s,i,n,r){let a=[];const h=function(t){return t?t.map((t=>(t.applyBeforeValidation=!1,t))):[]}(n);if(i=i||(()=>{}),Array.isArray(t))if(function(t){return t.every((t=>"string"==typeof t))}(t))[t,...a]=t;else for(const e of t)this.addHandler(e);else{if(function(t){return"object"==typeof t&&!Array.isArray(t)}(t)){let e=Array.isArray(t.command)||"string"==typeof t.command?t.command:this.moduleName(t);return t.aliases&&(e=[].concat(e).concat(t.aliases)),void this.addHandler(e,this.extractDesc(t),t.builder,t.handler,t.middlewares,t.deprecated)}if(k(s))return void this.addHandler([t].concat(a),e,s.builder,s.handler,s.middlewares,s.deprecated)}if("string"==typeof t){const n=o(t);a=a.map((t=>o(t).cmd));let l=!1;const c=[n.cmd].concat(a).filter((t=>!_.test(t)||(l=!0,!1)));0===c.length&&l&&c.push("$0"),l&&(n.cmd=c[0],a=c.slice(1),t=t.replace(_,n.cmd)),a.forEach((t=>{this.aliasMap[t]=n.cmd})),!1!==e&&this.usage.command(t,e,l,a,r),this.handlers[n.cmd]={original:t,description:e,handler:i,builder:s||{},middlewares:h,deprecated:r,demanded:n.demanded,optional:n.optional},l&&(this.defaultCommand=this.handlers[n.cmd])}}getCommandHandlers(){return this.handlers}getCommands(){return Object.keys(this.handlers).concat(Object.keys(this.aliasMap))}hasDefaultCommand(){return!!this.defaultCommand}runCommand(t,e,s,i,n,r){const o=this.handlers[t]||this.handlers[this.aliasMap[t]]||this.defaultCommand,a=e.getInternalMethods().getContext(),h=a.commands.slice(),l=!t;t&&(a.commands.push(t),a.fullCommands.push(o.original));const c=this.applyBuilderUpdateUsageAndParse(l,o,e,s.aliases,h,i,n,r);return f(c)?c.then((t=>this.applyMiddlewareAndGetResult(l,o,t.innerArgv,a,n,t.aliases,e))):this.applyMiddlewareAndGetResult(l,o,c.innerArgv,a,n,c.aliases,e)}applyBuilderUpdateUsageAndParse(t,e,s,i,n,r,o,a){const h=e.builder;let l=s;if(E(h)){const c=h(s.getInternalMethods().reset(i),a);if(f(c))return c.then((i=>{var a;return l=(a=i)&&"function"==typeof a.getInternalMethods?i:s,this.parseAndUpdateUsage(t,e,l,n,r,o)}))}else(function(t){return"object"==typeof t})(h)&&(l=s.getInternalMethods().reset(i),Object.keys(e.builder).forEach((t=>{l.option(t,h[t])})));return this.parseAndUpdateUsage(t,e,l,n,r,o)}parseAndUpdateUsage(t,e,s,i,n,r){t&&s.getInternalMethods().getUsageInstance().unfreeze(),this.shouldUpdateUsage(s)&&s.getInternalMethods().getUsageInstance().usage(this.usageFromParentCommandsCommandHandler(i,e),e.description);const o=s.getInternalMethods().runYargsParserAndExecuteCommands(null,void 0,!0,n,r);return f(o)?o.then((t=>({aliases:s.parsed.aliases,innerArgv:t}))):{aliases:s.parsed.aliases,innerArgv:o}}shouldUpdateUsage(t){return!t.getInternalMethods().getUsageInstance().getUsageDisabled()&&0===t.getInternalMethods().getUsageInstance().getUsage().length}usageFromParentCommandsCommandHandler(t,e){const s=_.test(e.original)?e.original.replace(_,"").trim():e.original,i=t.filter((t=>!_.test(t)));return i.push(s),`$0 ${i.join(" ")}`}applyMiddlewareAndGetResult(t,e,s,i,n,r,o){let a={};if(n)return s;o.getInternalMethods().getHasOutput()||(a=this.populatePositionals(e,s,i,o));const h=this.globalMiddleware.getMiddleware().slice(0).concat(e.middlewares);if(s=C(s,o,h,!0),!o.getInternalMethods().getHasOutput()){const e=o.getInternalMethods().runValidation(r,a,o.parsed.error,t);s=j(s,(t=>(e(t),t)))}if(e.handler&&!o.getInternalMethods().getHasOutput()){o.getInternalMethods().setHasOutput();const i=!!o.getOptions().configuration["populate--"];o.getInternalMethods().postProcess(s,i,!1,!1),s=j(s=C(s,o,h,!1),(t=>{const s=e.handler(t);return f(s)?s.then((()=>t)):t})),t||o.getInternalMethods().getUsageInstance().cacheHelpMessage(),f(s)&&!o.getInternalMethods().hasParseCallback()&&s.catch((t=>{try{o.getInternalMethods().getUsageInstance().fail(null,t)}catch(t){}}))}return t||(i.commands.pop(),i.fullCommands.pop()),s}populatePositionals(t,e,s,i){e._=e._.slice(s.commands.length);const n=t.demanded.slice(0),r=t.optional.slice(0),o={};for(this.validation.positionalCount(n.length,e._.length);n.length;){const t=n.shift();this.populatePositional(t,e,o)}for(;r.length;){const t=r.shift();this.populatePositional(t,e,o)}return e._=s.commands.concat(e._.map((t=>""+t))),this.postProcessPositionals(e,o,this.cmdToParseOptions(t.original),i),o}populatePositional(t,e,s){const i=t.cmd[0];t.variadic?s[i]=e._.splice(0).map(String):e._.length&&(s[i]=[String(e._.shift())])}cmdToParseOptions(t){const e={array:[],default:{},alias:{},demand:{}},s=o(t);return s.demanded.forEach((t=>{const[s,...i]=t.cmd;t.variadic&&(e.array.push(s),e.default[s]=[]),e.alias[s]=i,e.demand[s]=!0})),s.optional.forEach((t=>{const[s,...i]=t.cmd;t.variadic&&(e.array.push(s),e.default[s]=[]),e.alias[s]=i})),e}postProcessPositionals(t,e,s,i){const n=Object.assign({},i.getOptions());n.default=Object.assign(s.default,n.default);for(const t of Object.keys(s.alias))n.alias[t]=(n.alias[t]||[]).concat(s.alias[t]);n.array=n.array.concat(s.array),n.config={};const r=[];if(Object.keys(e).forEach((t=>{e[t].map((e=>{n.configuration["unknown-options-as-args"]&&(n.key[t]=!0),r.push(`--${t}`),r.push(e)}))})),!r.length)return;const o=Object.assign({},n.configuration,{"populate--":!1}),a=this.shim.Parser.detailed(r,Object.assign({},n,{configuration:o}));if(a.error)i.getInternalMethods().getUsageInstance().fail(a.error.message,a.error);else{const s=Object.keys(e);Object.keys(e).forEach((t=>{s.push(...a.aliases[t])}));const n=i.getOptions().default;Object.keys(a.argv).forEach((i=>{s.includes(i)&&(e[i]||(e[i]=a.argv[i]),!Object.prototype.hasOwnProperty.call(n,i)&&Object.prototype.hasOwnProperty.call(t,i)&&Object.prototype.hasOwnProperty.call(a.argv,i)&&(Array.isArray(t[i])||Array.isArray(a.argv[i]))?t[i]=[].concat(t[i],a.argv[i]):t[i]=a.argv[i])}))}}runDefaultBuilderOn(t){if(!this.defaultCommand)return;if(this.shouldUpdateUsage(t)){const e=_.test(this.defaultCommand.original)?this.defaultCommand.original:this.defaultCommand.original.replace(/^[^[\]<>]*/,"$0 ");t.getInternalMethods().getUsageInstance().usage(e,this.defaultCommand.description)}const e=this.defaultCommand.builder;if(E(e))return e(t,!0);k(e)||Object.keys(e).forEach((s=>{t.option(s,e[s])}))}moduleName(t){const e=function(t){if("undefined"==typeof require)return null;for(let e,s=0,i=Object.keys(require.cache);s{const s=e;s._handle&&s.isTTY&&"function"==typeof s._handle.setBlocking&&s._handle.setBlocking(t)}))}function A(t){return"boolean"==typeof t}function S(t,s){const i=s.y18n.__,n={},r=[];n.failFn=function(t){r.push(t)};let o=null,a=!0;n.showHelpOnFail=function(t=!0,e){const[s,i]="string"==typeof t?[!0,t]:[t,e];return o=i,a=s,n};let h=!1;n.fail=function(s,i){const l=t.getInternalMethods().getLoggerInstance();if(!r.length){if(t.getExitProcess()&&x(!0),h||(h=!0,a&&(t.showHelp("error"),l.error()),(s||i)&&l.error(s||i),o&&((s||i)&&l.error(""),l.error(o))),i=i||new e(s),t.getExitProcess())return t.exit(1);if(t.getInternalMethods().hasParseCallback())return t.exit(1,i);throw i}for(let t=r.length-1;t>=0;--t){const e=r[t];if(A(e)){if(i)throw i;if(s)throw Error(s)}else e(s,i,n)}};let l=[],c=!1;n.usage=(t,e)=>null===t?(c=!0,l=[],n):(c=!1,l.push([t,e||""]),n),n.getUsage=()=>l,n.getUsageDisabled=()=>c,n.getPositionalGroupName=()=>i("Positionals:");let f=[];n.example=(t,e)=>{f.push([t,e||""])};let d=[];n.command=function(t,e,s,i,n=!1){s&&(d=d.map((t=>(t[2]=!1,t)))),d.push([t,e||"",s,i,n])},n.getCommands=()=>d;let u={};n.describe=function(t,e){Array.isArray(t)?t.forEach((t=>{n.describe(t,e)})):"object"==typeof t?Object.keys(t).forEach((e=>{n.describe(e,t[e])})):u[t]=e},n.getDescriptions=()=>u;let p=[];n.epilog=t=>{p.push(t)};let m,y=!1;function b(){return y||(m=function(){const t=80;return s.process.stdColumns?Math.min(t,s.process.stdColumns):t}(),y=!0),m}n.wrap=t=>{y=!0,m=t};const v="__yargsString__:";function O(t,e,i){let n=0;return Array.isArray(t)||(t=Object.values(t).map((t=>[t]))),t.forEach((t=>{n=Math.max(s.stringWidth(i?`${i} ${I(t[0])}`:I(t[0]))+$(t[0]),n)})),e&&(n=Math.min(n,parseInt((.5*e).toString(),10))),n}let w;function C(e){return t.getOptions().hiddenOptions.indexOf(e)<0||t.parsed.argv[t.getOptions().showHiddenOpt]}function j(t,e){let s=`[${i("default:")} `;if(void 0===t&&!e)return null;if(e)s+=e;else switch(typeof t){case"string":s+=`"${t}"`;break;case"object":s+=JSON.stringify(t);break;default:s+=t}return`${s}]`}n.deferY18nLookup=t=>v+t,n.help=function(){if(w)return w;!function(){const e=t.getDemandedOptions(),s=t.getOptions();(Object.keys(s.alias)||[]).forEach((i=>{s.alias[i].forEach((r=>{u[r]&&n.describe(i,u[r]),r in e&&t.demandOption(i,e[r]),s.boolean.includes(r)&&t.boolean(i),s.count.includes(r)&&t.count(i),s.string.includes(r)&&t.string(i),s.normalize.includes(r)&&t.normalize(i),s.array.includes(r)&&t.array(i),s.number.includes(r)&&t.number(i)}))}))}();const e=t.customScriptName?t.$0:s.path.basename(t.$0),r=t.getDemandedOptions(),o=t.getDemandedCommands(),a=t.getDeprecatedOptions(),h=t.getGroups(),g=t.getOptions();let m=[];m=m.concat(Object.keys(u)),m=m.concat(Object.keys(r)),m=m.concat(Object.keys(o)),m=m.concat(Object.keys(g.default)),m=m.filter(C),m=Object.keys(m.reduce(((t,e)=>("_"!==e&&(t[e]=!0),t)),{}));const y=b(),_=s.cliui({width:y,wrap:!!y});if(!c)if(l.length)l.forEach((t=>{_.div({text:`${t[0].replace(/\$0/g,e)}`}),t[1]&&_.div({text:`${t[1]}`,padding:[1,0,0,0]})})),_.div();else if(d.length){let t=null;t=o._?`${e} <${i("command")}>\n`:`${e} [${i("command")}]\n`,_.div(`${t}`)}if(d.length>1||1===d.length&&!d[0][2]){_.div(i("Commands:"));const s=t.getInternalMethods().getContext(),n=s.commands.length?`${s.commands.join(" ")} `:"";!0===t.getInternalMethods().getParserConfiguration()["sort-commands"]&&(d=d.sort(((t,e)=>t[0].localeCompare(e[0]))));const r=e?`${e} `:"";d.forEach((t=>{const s=`${r}${n}${t[0].replace(/^\$0 ?/,"")}`;_.span({text:s,padding:[0,2,0,2],width:O(d,y,`${e}${n}`)+4},{text:t[1]});const o=[];t[2]&&o.push(`[${i("default")}]`),t[3]&&t[3].length&&o.push(`[${i("aliases:")} ${t[3].join(", ")}]`),t[4]&&("string"==typeof t[4]?o.push(`[${i("deprecated: %s",t[4])}]`):o.push(`[${i("deprecated")}]`)),o.length?_.div({text:o.join(" "),padding:[0,0,0,2],align:"right"}):_.div()})),_.div()}const M=(Object.keys(g.alias)||[]).concat(Object.keys(t.parsed.newAliases)||[]);m=m.filter((e=>!t.parsed.newAliases[e]&&M.every((t=>-1===(g.alias[t]||[]).indexOf(e)))));const k=i("Options:");h[k]||(h[k]=[]),function(t,e,s,i){let n=[],r=null;Object.keys(s).forEach((t=>{n=n.concat(s[t])})),t.forEach((t=>{r=[t].concat(e[t]),r.some((t=>-1!==n.indexOf(t)))||s[i].push(t)}))}(m,g.alias,h,k);const E=t=>/^--/.test(I(t)),x=Object.keys(h).filter((t=>h[t].length>0)).map((t=>({groupName:t,normalizedKeys:h[t].filter(C).map((t=>{if(M.includes(t))return t;for(let e,s=0;void 0!==(e=M[s]);s++)if((g.alias[e]||[]).includes(t))return e;return t}))}))).filter((({normalizedKeys:t})=>t.length>0)).map((({groupName:t,normalizedKeys:e})=>{const s=e.reduce(((e,s)=>(e[s]=[s].concat(g.alias[s]||[]).map((e=>t===n.getPositionalGroupName()?e:(/^[0-9]$/.test(e)?g.boolean.includes(s)?"-":"--":e.length>1?"--":"-")+e)).sort(((t,e)=>E(t)===E(e)?0:E(t)?1:-1)).join(", "),e)),{});return{groupName:t,normalizedKeys:e,switches:s}}));if(x.filter((({groupName:t})=>t!==n.getPositionalGroupName())).some((({normalizedKeys:t,switches:e})=>!t.every((t=>E(e[t])))))&&x.filter((({groupName:t})=>t!==n.getPositionalGroupName())).forEach((({normalizedKeys:t,switches:e})=>{t.forEach((t=>{var s,i;E(e[t])&&(e[t]=(s=e[t],i="-x, ".length,P(s)?{text:s.text,indentation:s.indentation+i}:{text:s,indentation:i}))}))})),x.forEach((({groupName:t,normalizedKeys:e,switches:s})=>{_.div(t),e.forEach((t=>{const e=s[t];let o=u[t]||"",h=null;o.includes(v)&&(o=i(o.substring(v.length))),g.boolean.includes(t)&&(h=`[${i("boolean")}]`),g.count.includes(t)&&(h=`[${i("count")}]`),g.string.includes(t)&&(h=`[${i("string")}]`),g.normalize.includes(t)&&(h=`[${i("string")}]`),g.array.includes(t)&&(h=`[${i("array")}]`),g.number.includes(t)&&(h=`[${i("number")}]`);const l=[t in a?(c=a[t],"string"==typeof c?`[${i("deprecated: %s",c)}]`:`[${i("deprecated")}]`):null,h,t in r?`[${i("required")}]`:null,g.choices&&g.choices[t]?`[${i("choices:")} ${n.stringifiedValues(g.choices[t])}]`:null,j(g.default[t],g.defaultDescription[t])].filter(Boolean).join(" ");var c;_.span({text:I(e),padding:[0,2,0,2+$(e)],width:O(s,y)+4},o),l?_.div({text:l,padding:[0,0,0,2],align:"right"}):_.div()})),_.div()})),f.length&&(_.div(i("Examples:")),f.forEach((t=>{t[0]=t[0].replace(/\$0/g,e)})),f.forEach((t=>{""===t[1]?_.div({text:t[0],padding:[0,2,0,2]}):_.div({text:t[0],padding:[0,2,0,2],width:O(f,y)+4},{text:t[1]})})),_.div()),p.length>0){const t=p.map((t=>t.replace(/\$0/g,e))).join("\n");_.div(`${t}\n`)}return _.toString().replace(/\s*$/,"")},n.cacheHelpMessage=function(){w=this.help()},n.clearCachedHelpMessage=function(){w=void 0},n.hasCachedHelpMessage=function(){return!!w},n.showHelp=e=>{const s=t.getInternalMethods().getLoggerInstance();e||(e="error");("function"==typeof e?e:s[e])(n.help())},n.functionDescription=t=>["(",t.name?s.Parser.decamelize(t.name,"-"):i("generated-value"),")"].join(""),n.stringifiedValues=function(t,e){let s="";const i=e||", ",n=[].concat(t);return t&&n.length?(n.forEach((t=>{s.length&&(s+=i),s+=JSON.stringify(t)})),s):s};let _=null;n.version=t=>{_=t},n.showVersion=e=>{const s=t.getInternalMethods().getLoggerInstance();e||(e="error");("function"==typeof e?e:s[e])(_)},n.reset=function(t){return o=null,h=!1,l=[],c=!1,p=[],f=[],d=[],u=g(u,(e=>!t[e])),n};const M=[];return n.freeze=function(){M.push({failMessage:o,failureOutput:h,usages:l,usageDisabled:c,epilogs:p,examples:f,commands:d,descriptions:u})},n.unfreeze=function(){const t=M.pop();t&&({failMessage:o,failureOutput:h,usages:l,usageDisabled:c,epilogs:p,examples:f,commands:d,descriptions:u}=t)},n}function P(t){return"object"==typeof t}function $(t){return P(t)?t.indentation:0}function I(t){return P(t)?t.text:t}class D{constructor(t,e,s,i){var n,r,o;this.yargs=t,this.usage=e,this.command=s,this.shim=i,this.completionKey="get-yargs-completions",this.aliases=null,this.customCompletionFunction=null,this.zshShell=null!==(o=(null===(n=this.shim.getEnv("SHELL"))||void 0===n?void 0:n.includes("zsh"))||(null===(r=this.shim.getEnv("ZSH_NAME"))||void 0===r?void 0:r.includes("zsh")))&&void 0!==o&&o}defaultCompletion(t,e,s,i){const n=this.command.getCommandHandlers();for(let e=0,s=t.length;e{const i=o(s[0]).cmd;if(-1===e.indexOf(i))if(this.zshShell){const e=s[1]||"";t.push(i.replace(/:/g,"\\:")+":"+e)}else t.push(i)}))}optionCompletions(t,e,s,i){if((i.match(/^-/)||""===i&&0===t.length)&&!this.previousArgHasChoices(e)){const n=this.yargs.getOptions(),r=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[];Object.keys(n.key).forEach((o=>{const a=!!n.configuration["boolean-negation"]&&n.boolean.includes(o);r.includes(o)||this.argsContainKey(e,s,o,a)||(this.completeOptionKey(o,t,i),a&&n.default[o]&&this.completeOptionKey(`no-${o}`,t,i))}))}}choicesCompletions(t,e,s,i){if(this.previousArgHasChoices(e)){const s=this.getPreviousArgChoices(e);s&&s.length>0&&t.push(...s)}}getPreviousArgChoices(t){if(t.length<1)return;let e=t[t.length-1],s="";if(!e.startsWith("--")&&t.length>1&&(s=e,e=t[t.length-2]),!e.startsWith("--"))return;const i=e.replace(/-/g,""),n=this.yargs.getOptions();return Object.keys(n.key).some((t=>t===i))&&Array.isArray(n.choices[i])?n.choices[i].filter((t=>!s||t.startsWith(s))):void 0}previousArgHasChoices(t){const e=this.getPreviousArgChoices(t);return void 0!==e&&e.length>0}argsContainKey(t,e,s,i){if(-1!==t.indexOf(`--${s}`))return!0;if(i&&-1!==t.indexOf(`--no-${s}`))return!0;if(this.aliases)for(const t of this.aliases[s])if(void 0!==e[t])return!0;return!1}completeOptionKey(t,e,s){const i=this.usage.getDescriptions(),n=!/^--/.test(s)&&(t=>/^[^0-9]$/.test(t))(t)?"-":"--";if(this.zshShell){const s=i[t]||"";e.push(n+`${t.replace(/:/g,"\\:")}:${s.replace("__yargsString__:","")}`)}else e.push(n+t)}customCompletion(t,e,s,i){if(d(this.customCompletionFunction,null,this.shim),this.customCompletionFunction.length<3){const t=this.customCompletionFunction(s,e);return f(t)?t.then((t=>{this.shim.process.nextTick((()=>{i(null,t)}))})).catch((t=>{this.shim.process.nextTick((()=>{i(t,void 0)}))})):i(null,t)}return function(t){return t.length>3}(this.customCompletionFunction)?this.customCompletionFunction(s,e,((n=i)=>this.defaultCompletion(t,e,s,n)),(t=>{i(null,t)})):this.customCompletionFunction(s,e,(t=>{i(null,t)}))}getCompletion(t,e){const s=t.length?t[t.length-1]:"",i=this.yargs.parse(t,!0),n=this.customCompletionFunction?i=>this.customCompletion(t,i,s,e):i=>this.defaultCompletion(t,i,s,e);return f(i)?i.then(n):n(i)}generateCompletionScript(t,e){let s=this.zshShell?'#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}} >> ~/.zsh_profile 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 _describe \'values\' reply\n}\ncompdef _{{app_name}}_yargs_completions {{app_name}}\n###-end-{{app_name}}-completions-###\n':'###-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 type_list=$({{app_path}} --get-yargs-completions "${args[@]}")\n\n COMPREPLY=( $(compgen -W "${type_list}" -- ${cur_word}) )\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';const i=this.shim.path.basename(t);return t.match(/\.js$/)&&(t=`./${t}`),s=s.replace(/{{app_name}}/g,i),s=s.replace(/{{completion_command}}/g,e),s.replace(/{{app_path}}/g,t)}registerFunction(t){this.customCompletionFunction=t}setParsed(t){this.aliases=t.aliases}}function N(t,e){if(0===t.length)return e.length;if(0===e.length)return t.length;const s=[];let i,n;for(i=0;i<=e.length;i++)s[i]=[i];for(n=0;n<=t.length;n++)s[0][n]=n;for(i=1;i<=e.length;i++)for(n=1;n<=t.length;n++)e.charAt(i-1)===t.charAt(n-1)?s[i][n]=s[i-1][n-1]:i>1&&n>1&&e.charAt(i-2)===t.charAt(n-1)&&e.charAt(i-1)===t.charAt(n-2)?s[i][n]=s[i-2][n-2]+1:s[i][n]=Math.min(s[i-1][n-1]+1,Math.min(s[i][n-1]+1,s[i-1][n]+1));return s[e.length][t.length]}const H=["$0","--","_"];var z,q,W,U,F,L,V,T,R,G,K,B,Y,J,Z,X,Q,tt,et,st,it,nt,rt,ot,at,ht,lt,ct,ft,dt,ut,pt,gt;const mt=Symbol("copyDoubleDash"),yt=Symbol("copyDoubleDash"),bt=Symbol("deleteFromParserHintObject"),vt=Symbol("emitWarning"),Ot=Symbol("freeze"),wt=Symbol("getDollarZero"),Ct=Symbol("getParserConfiguration"),jt=Symbol("guessLocale"),_t=Symbol("guessVersion"),Mt=Symbol("parsePositionalNumbers"),kt=Symbol("pkgUp"),Et=Symbol("populateParserHintArray"),xt=Symbol("populateParserHintSingleValueDictionary"),At=Symbol("populateParserHintArrayDictionary"),St=Symbol("populateParserHintDictionary"),Pt=Symbol("sanitizeKey"),$t=Symbol("setKey"),It=Symbol("unfreeze"),Dt=Symbol("validateAsync"),Nt=Symbol("getCommandInstance"),Ht=Symbol("getContext"),zt=Symbol("getHasOutput"),qt=Symbol("getLoggerInstance"),Wt=Symbol("getParseContext"),Ut=Symbol("getUsageInstance"),Ft=Symbol("getValidationInstance"),Lt=Symbol("hasParseCallback"),Vt=Symbol("postProcess"),Tt=Symbol("rebase"),Rt=Symbol("reset"),Gt=Symbol("runYargsParserAndExecuteCommands"),Kt=Symbol("runValidation"),Bt=Symbol("setHasOutput"),Yt=Symbol("kTrackManuallySetKeys");class Jt{constructor(t=[],e,s,i){this.customScriptName=!1,this.parsed=!1,z.set(this,void 0),q.set(this,void 0),W.set(this,{commands:[],fullCommands:[]}),U.set(this,null),F.set(this,null),L.set(this,"show-hidden"),V.set(this,null),T.set(this,!0),R.set(this,{}),G.set(this,!0),K.set(this,[]),B.set(this,void 0),Y.set(this,{}),J.set(this,!1),Z.set(this,null),X.set(this,void 0),Q.set(this,""),tt.set(this,void 0),et.set(this,void 0),st.set(this,{}),it.set(this,null),nt.set(this,null),rt.set(this,{}),ot.set(this,{}),at.set(this,void 0),ht.set(this,!1),lt.set(this,void 0),ct.set(this,!1),ft.set(this,!1),dt.set(this,!1),ut.set(this,void 0),pt.set(this,null),gt.set(this,void 0),O(this,lt,i,"f"),O(this,at,t,"f"),O(this,q,e,"f"),O(this,et,s,"f"),O(this,B,new w(this),"f"),this.$0=this[wt](),this[Rt](),O(this,z,v(this,z,"f"),"f"),O(this,ut,v(this,ut,"f"),"f"),O(this,gt,v(this,gt,"f"),"f"),O(this,tt,v(this,tt,"f"),"f"),v(this,tt,"f").showHiddenOpt=v(this,L,"f"),O(this,X,this[yt](),"f")}addHelpOpt(t,e){return h("[string|boolean] [string]",[t,e],arguments.length),v(this,Z,"f")&&(this[bt](v(this,Z,"f")),O(this,Z,null,"f")),!1===t&&void 0===e||(O(this,Z,"string"==typeof t?t:"help","f"),this.boolean(v(this,Z,"f")),this.describe(v(this,Z,"f"),e||v(this,ut,"f").deferY18nLookup("Show help"))),this}help(t,e){return this.addHelpOpt(t,e)}addShowHiddenOpt(t,e){if(h("[string|boolean] [string]",[t,e],arguments.length),!1===t&&void 0===e)return this;const s="string"==typeof t?t:v(this,L,"f");return this.boolean(s),this.describe(s,e||v(this,ut,"f").deferY18nLookup("Show hidden options")),v(this,tt,"f").showHiddenOpt=s,this}showHidden(t,e){return this.addShowHiddenOpt(t,e)}alias(t,e){return h(" [string|array]",[t,e],arguments.length),this[At](this.alias.bind(this),"alias",t,e),this}array(t){return h("",[t],arguments.length),this[Et]("array",t),this[Yt](t),this}boolean(t){return h("",[t],arguments.length),this[Et]("boolean",t),this[Yt](t),this}check(t,e){return h(" [boolean]",[t,e],arguments.length),this.middleware(((e,s)=>j((()=>t(e,s.getOptions())),(s=>(s?("string"==typeof s||s instanceof Error)&&v(this,ut,"f").fail(s.toString(),s):v(this,ut,"f").fail(v(this,lt,"f").y18n.__("Argument check failed: %s",t.toString())),e)),(t=>(v(this,ut,"f").fail(t.message?t.message:t.toString(),t),e)))),!1,e),this}choices(t,e){return h(" [string|array]",[t,e],arguments.length),this[At](this.choices.bind(this),"choices",t,e),this}coerce(t,s){if(h(" [function]",[t,s],arguments.length),Array.isArray(t)){if(!s)throw new e("coerce callback must be provided");for(const e of t)this.coerce(e,s);return this}if("object"==typeof t){for(const e of Object.keys(t))this.coerce(e,t[e]);return this}if(!s)throw new e("coerce callback must be provided");return v(this,tt,"f").key[t]=!0,v(this,B,"f").addCoerceMiddleware(((i,n)=>{let r;return j((()=>(r=n.getAliases(),s(i[t]))),(e=>{if(i[t]=e,r[t])for(const s of r[t])i[s]=e;return i}),(t=>{throw new e(t.message)}))}),t),this}conflicts(t,e){return h(" [string|array]",[t,e],arguments.length),v(this,gt,"f").conflicts(t,e),this}config(t="config",e,s){return h("[object|string] [string|function] [function]",[t,e,s],arguments.length),"object"!=typeof t||Array.isArray(t)?("function"==typeof e&&(s=e,e=void 0),this.describe(t,e||v(this,ut,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(t)?t:[t]).forEach((t=>{v(this,tt,"f").config[t]=s||!0})),this):(t=n(t,v(this,q,"f"),this[Ct]()["deep-merge-config"]||!1,v(this,lt,"f")),v(this,tt,"f").configObjects=(v(this,tt,"f").configObjects||[]).concat(t),this)}completion(t,e,s){return h("[string] [string|boolean|function] [function]",[t,e,s],arguments.length),"function"==typeof e&&(s=e,e=void 0),O(this,F,t||v(this,F,"f")||"completion","f"),e||!1===e||(e="generate completion script"),this.command(v(this,F,"f"),e),s&&v(this,U,"f").registerFunction(s),this}command(t,e,s,i,n,r){return h(" [string|boolean] [function|object] [function] [array] [boolean|string]",[t,e,s,i,n,r],arguments.length),v(this,z,"f").addHandler(t,e,s,i,n,r),this}commands(t,e,s,i,n,r){return this.command(t,e,s,i,n,r)}commandDir(t,e){h(" [object]",[t,e],arguments.length);const s=v(this,et,"f")||v(this,lt,"f").require;return v(this,z,"f").addDirectory(t,s,v(this,lt,"f").getCallerFile(),e),this}count(t){return h("",[t],arguments.length),this[Et]("count",t),this[Yt](t),this}default(t,e,s){return h(" [*] [string]",[t,e,s],arguments.length),s&&(u(t,v(this,lt,"f")),v(this,tt,"f").defaultDescription[t]=s),"function"==typeof e&&(u(t,v(this,lt,"f")),v(this,tt,"f").defaultDescription[t]||(v(this,tt,"f").defaultDescription[t]=v(this,ut,"f").functionDescription(e)),e=e.call()),this[xt](this.default.bind(this),"default",t,e),this}defaults(t,e,s){return this.default(t,e,s)}demandCommand(t=1,e,s,i){return h("[number] [number|string] [string|null|undefined] [string|null|undefined]",[t,e,s,i],arguments.length),"number"!=typeof e&&(s=e,e=1/0),this.global("_",!1),v(this,tt,"f").demandedCommands._={min:t,max:e,minMsg:s,maxMsg:i},this}demand(t,e,s){return Array.isArray(e)?(e.forEach((t=>{d(s,!0,v(this,lt,"f")),this.demandOption(t,s)})),e=1/0):"number"!=typeof e&&(s=e,e=1/0),"number"==typeof t?(d(s,!0,v(this,lt,"f")),this.demandCommand(t,e,s,s)):Array.isArray(t)?t.forEach((t=>{d(s,!0,v(this,lt,"f")),this.demandOption(t,s)})):"string"==typeof s?this.demandOption(t,s):!0!==s&&void 0!==s||this.demandOption(t),this}demandOption(t,e){return h(" [string]",[t,e],arguments.length),this[xt](this.demandOption.bind(this),"demandedOptions",t,e),this}deprecateOption(t,e){return h(" [string|boolean]",[t,e],arguments.length),v(this,tt,"f").deprecatedOptions[t]=e,this}describe(t,e){return h(" [string]",[t,e],arguments.length),this[$t](t,!0),v(this,ut,"f").describe(t,e),this}detectLocale(t){return h("",[t],arguments.length),O(this,T,t,"f"),this}env(t){return h("[string|boolean]",[t],arguments.length),!1===t?delete v(this,tt,"f").envPrefix:v(this,tt,"f").envPrefix=t||"",this}epilogue(t){return h("",[t],arguments.length),v(this,ut,"f").epilog(t),this}epilog(t){return this.epilogue(t)}example(t,e){return h(" [string]",[t,e],arguments.length),Array.isArray(t)?t.forEach((t=>this.example(...t))):v(this,ut,"f").example(t,e),this}exit(t,e){O(this,J,!0,"f"),O(this,V,e,"f"),v(this,G,"f")&&v(this,lt,"f").process.exit(t)}exitProcess(t=!0){return h("[boolean]",[t],arguments.length),O(this,G,t,"f"),this}fail(t){if(h("",[t],arguments.length),"boolean"==typeof t&&!1!==t)throw new e("Invalid first argument. Expected function or boolean 'false'");return v(this,ut,"f").failFn(t),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(t,e){return h(" [function]",[t,e],arguments.length),e?v(this,U,"f").getCompletion(t,e):new Promise(((e,s)=>{v(this,U,"f").getCompletion(t,((t,i)=>{t?s(t):e(i)}))}))}getDemandedOptions(){return h([],0),v(this,tt,"f").demandedOptions}getDemandedCommands(){return h([],0),v(this,tt,"f").demandedCommands}getDeprecatedOptions(){return h([],0),v(this,tt,"f").deprecatedOptions}getDetectLocale(){return v(this,T,"f")}getExitProcess(){return v(this,G,"f")}getGroups(){return Object.assign({},v(this,Y,"f"),v(this,ot,"f"))}getHelp(){if(O(this,J,!0,"f"),!v(this,ut,"f").hasCachedHelpMessage()){if(!this.parsed){const t=this[Gt](v(this,at,"f"),void 0,void 0,0,!0);if(f(t))return t.then((()=>v(this,ut,"f").help()))}const t=v(this,z,"f").runDefaultBuilderOn(this);if(f(t))return t.then((()=>v(this,ut,"f").help()))}return Promise.resolve(v(this,ut,"f").help())}getOptions(){return v(this,tt,"f")}getStrict(){return v(this,ct,"f")}getStrictCommands(){return v(this,ft,"f")}getStrictOptions(){return v(this,dt,"f")}global(t,e){return h(" [boolean]",[t,e],arguments.length),t=[].concat(t),!1!==e?v(this,tt,"f").local=v(this,tt,"f").local.filter((e=>-1===t.indexOf(e))):t.forEach((t=>{v(this,tt,"f").local.includes(t)||v(this,tt,"f").local.push(t)})),this}group(t,e){h(" ",[t,e],arguments.length);const s=v(this,ot,"f")[e]||v(this,Y,"f")[e];v(this,ot,"f")[e]&&delete v(this,ot,"f")[e];const i={};return v(this,Y,"f")[e]=(s||[]).concat(t).filter((t=>!i[t]&&(i[t]=!0))),this}hide(t){return h("",[t],arguments.length),v(this,tt,"f").hiddenOptions.push(t),this}implies(t,e){return h(" [number|string|array]",[t,e],arguments.length),v(this,gt,"f").implies(t,e),this}locale(t){return h("[string]",[t],arguments.length),t?(O(this,T,!1,"f"),v(this,lt,"f").y18n.setLocale(t),this):(this[jt](),v(this,lt,"f").y18n.getLocale())}middleware(t,e,s){return v(this,B,"f").addMiddleware(t,!!e,s)}nargs(t,e){return h(" [number]",[t,e],arguments.length),this[xt](this.nargs.bind(this),"narg",t,e),this}normalize(t){return h("",[t],arguments.length),this[Et]("normalize",t),this}number(t){return h("",[t],arguments.length),this[Et]("number",t),this[Yt](t),this}option(t,e){if(h(" [object]",[t,e],arguments.length),"object"==typeof t)Object.keys(t).forEach((e=>{this.options(e,t[e])}));else{"object"!=typeof e&&(e={}),this[Yt](t),!v(this,pt,"f")||"version"!==t&&"version"!==(null==e?void 0:e.alias)||this[vt](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join("\n"),void 0,"versionWarning"),v(this,tt,"f").key[t]=!0,e.alias&&this.alias(t,e.alias);const s=e.deprecate||e.deprecated;s&&this.deprecateOption(t,s);const i=e.demand||e.required||e.require;i&&this.demand(t,i),e.demandOption&&this.demandOption(t,"string"==typeof e.demandOption?e.demandOption:void 0),e.conflicts&&this.conflicts(t,e.conflicts),"default"in e&&this.default(t,e.default),void 0!==e.implies&&this.implies(t,e.implies),void 0!==e.nargs&&this.nargs(t,e.nargs),e.config&&this.config(t,e.configParser),e.normalize&&this.normalize(t),e.choices&&this.choices(t,e.choices),e.coerce&&this.coerce(t,e.coerce),e.group&&this.group(t,e.group),(e.boolean||"boolean"===e.type)&&(this.boolean(t),e.alias&&this.boolean(e.alias)),(e.array||"array"===e.type)&&(this.array(t),e.alias&&this.array(e.alias)),(e.number||"number"===e.type)&&(this.number(t),e.alias&&this.number(e.alias)),(e.string||"string"===e.type)&&(this.string(t),e.alias&&this.string(e.alias)),(e.count||"count"===e.type)&&this.count(t),"boolean"==typeof e.global&&this.global(t,e.global),e.defaultDescription&&(v(this,tt,"f").defaultDescription[t]=e.defaultDescription),e.skipValidation&&this.skipValidation(t);const n=e.describe||e.description||e.desc;this.describe(t,n),e.hidden&&this.hide(t),e.requiresArg&&this.requiresArg(t)}return this}options(t,e){return this.option(t,e)}parse(t,e,s){h("[string|array] [function|boolean|object] [function]",[t,e,s],arguments.length),this[Ot](),void 0===t&&(t=v(this,at,"f")),"object"==typeof e&&(O(this,nt,e,"f"),e=s),"function"==typeof e&&(O(this,it,e,"f"),e=!1),e||O(this,at,t,"f"),v(this,it,"f")&&O(this,G,!1,"f");const i=this[Gt](t,!!e),n=this.parsed;return v(this,U,"f").setParsed(this.parsed),f(i)?i.then((t=>(v(this,it,"f")&&v(this,it,"f").call(this,v(this,V,"f"),t,v(this,Q,"f")),t))).catch((t=>{throw v(this,it,"f")&&v(this,it,"f")(t,this.parsed.argv,v(this,Q,"f")),t})).finally((()=>{this[It](),this.parsed=n})):(v(this,it,"f")&&v(this,it,"f").call(this,v(this,V,"f"),i,v(this,Q,"f")),this[It](),this.parsed=n,i)}parseAsync(t,e,s){const i=this.parse(t,e,s);return f(i)?i:Promise.resolve(i)}parseSync(t,s,i){const n=this.parse(t,s,i);if(f(n))throw new e(".parseSync() must not be used with asynchronous builders, handlers, or middleware");return n}parserConfiguration(t){return h("",[t],arguments.length),O(this,st,t,"f"),this}pkgConf(t,e){h(" [string]",[t,e],arguments.length);let s=null;const i=this[kt](e||v(this,q,"f"));return i[t]&&"object"==typeof i[t]&&(s=n(i[t],e||v(this,q,"f"),this[Ct]()["deep-merge-config"]||!1,v(this,lt,"f")),v(this,tt,"f").configObjects=(v(this,tt,"f").configObjects||[]).concat(s)),this}positional(t,e){h(" ",[t,e],arguments.length);const s=["default","defaultDescription","implies","normalize","choices","conflicts","coerce","type","describe","desc","description","alias"];e=g(e,((t,e)=>!("type"===t&&!["string","number","boolean"].includes(e))&&s.includes(t)));const i=v(this,W,"f").fullCommands[v(this,W,"f").fullCommands.length-1],n=i?v(this,z,"f").cmdToParseOptions(i):{array:[],alias:{},default:{},demand:{}};return p(n).forEach((s=>{const i=n[s];Array.isArray(i)?-1!==i.indexOf(t)&&(e[s]=!0):i[t]&&!(s in e)&&(e[s]=i[t])})),this.group(t,v(this,ut,"f").getPositionalGroupName()),this.option(t,e)}recommendCommands(t=!0){return h("[boolean]",[t],arguments.length),O(this,ht,t,"f"),this}required(t,e,s){return this.demand(t,e,s)}require(t,e,s){return this.demand(t,e,s)}requiresArg(t){return h(" [number]",[t],arguments.length),"string"==typeof t&&v(this,tt,"f").narg[t]||this[xt](this.requiresArg.bind(this),"narg",t,NaN),this}showCompletionScript(t,e){return h("[string] [string]",[t,e],arguments.length),t=t||this.$0,v(this,X,"f").log(v(this,U,"f").generateCompletionScript(t,e||v(this,F,"f")||"completion")),this}showHelp(t){if(h("[string|function]",[t],arguments.length),O(this,J,!0,"f"),!v(this,ut,"f").hasCachedHelpMessage()){if(!this.parsed){const e=this[Gt](v(this,at,"f"),void 0,void 0,0,!0);if(f(e))return e.then((()=>{v(this,ut,"f").showHelp(t)})),this}const e=v(this,z,"f").runDefaultBuilderOn(this);if(f(e))return e.then((()=>{v(this,ut,"f").showHelp(t)})),this}return v(this,ut,"f").showHelp(t),this}scriptName(t){return this.customScriptName=!0,this.$0=t,this}showHelpOnFail(t,e){return h("[boolean|string] [string]",[t,e],arguments.length),v(this,ut,"f").showHelpOnFail(t,e),this}showVersion(t){return h("[string|function]",[t],arguments.length),v(this,ut,"f").showVersion(t),this}skipValidation(t){return h("",[t],arguments.length),this[Et]("skipValidation",t),this}strict(t){return h("[boolean]",[t],arguments.length),O(this,ct,!1!==t,"f"),this}strictCommands(t){return h("[boolean]",[t],arguments.length),O(this,ft,!1!==t,"f"),this}strictOptions(t){return h("[boolean]",[t],arguments.length),O(this,dt,!1!==t,"f"),this}string(t){return h("",[t],arguments.length),this[Et]("string",t),this[Yt](t),this}terminalWidth(){return h([],0),v(this,lt,"f").process.stdColumns}updateLocale(t){return this.updateStrings(t)}updateStrings(t){return h("",[t],arguments.length),O(this,T,!1,"f"),v(this,lt,"f").y18n.updateLocale(t),this}usage(t,s,i,n){if(h(" [string|boolean] [function|object] [function]",[t,s,i,n],arguments.length),void 0!==s){if(d(t,null,v(this,lt,"f")),(t||"").match(/^\$0( |$)/))return this.command(t,s,i,n);throw new e(".usage() description must start with $0 if being used as alias for .command()")}return v(this,ut,"f").usage(t),this}version(t,e,s){const i="version";if(h("[boolean|string] [string] [string]",[t,e,s],arguments.length),v(this,pt,"f")&&(this[bt](v(this,pt,"f")),v(this,ut,"f").version(void 0),O(this,pt,null,"f")),0===arguments.length)s=this[_t](),t=i;else if(1===arguments.length){if(!1===t)return this;s=t,t=i}else 2===arguments.length&&(s=e,e=void 0);return O(this,pt,"string"==typeof t?t:i,"f"),e=e||v(this,ut,"f").deferY18nLookup("Show version number"),v(this,ut,"f").version(s||void 0),this.boolean(v(this,pt,"f")),this.describe(v(this,pt,"f"),e),this}wrap(t){return h("",[t],arguments.length),v(this,ut,"f").wrap(t),this}[(z=new WeakMap,q=new WeakMap,W=new WeakMap,U=new WeakMap,F=new WeakMap,L=new WeakMap,V=new WeakMap,T=new WeakMap,R=new WeakMap,G=new WeakMap,K=new WeakMap,B=new WeakMap,Y=new WeakMap,J=new WeakMap,Z=new WeakMap,X=new WeakMap,Q=new WeakMap,tt=new WeakMap,et=new WeakMap,st=new WeakMap,it=new WeakMap,nt=new WeakMap,rt=new WeakMap,ot=new WeakMap,at=new WeakMap,ht=new WeakMap,lt=new WeakMap,ct=new WeakMap,ft=new WeakMap,dt=new WeakMap,ut=new WeakMap,pt=new WeakMap,gt=new WeakMap,mt)](t){if(!t._||!t["--"])return t;t._.push.apply(t._,t["--"]);try{delete t["--"]}catch(t){}return t}[yt](){return{log:(...t)=>{this[Lt]()||console.log(...t),O(this,J,!0,"f"),v(this,Q,"f").length&&O(this,Q,v(this,Q,"f")+"\n","f"),O(this,Q,v(this,Q,"f")+t.join(" "),"f")},error:(...t)=>{this[Lt]()||console.error(...t),O(this,J,!0,"f"),v(this,Q,"f").length&&O(this,Q,v(this,Q,"f")+"\n","f"),O(this,Q,v(this,Q,"f")+t.join(" "),"f")}}}[bt](t){p(v(this,tt,"f")).forEach((e=>{if("configObjects"===e)return;const s=v(this,tt,"f")[e];Array.isArray(s)?s.includes(t)&&s.splice(s.indexOf(t),1):"object"==typeof s&&delete s[t]})),delete v(this,ut,"f").getDescriptions()[t]}[vt](t,e,s){v(this,R,"f")[s]||(v(this,lt,"f").process.emitWarning(t,e),v(this,R,"f")[s]=!0)}[Ot](){v(this,K,"f").push({options:v(this,tt,"f"),configObjects:v(this,tt,"f").configObjects.slice(0),exitProcess:v(this,G,"f"),groups:v(this,Y,"f"),strict:v(this,ct,"f"),strictCommands:v(this,ft,"f"),strictOptions:v(this,dt,"f"),completionCommand:v(this,F,"f"),output:v(this,Q,"f"),exitError:v(this,V,"f"),hasOutput:v(this,J,"f"),parsed:this.parsed,parseFn:v(this,it,"f"),parseContext:v(this,nt,"f")}),v(this,ut,"f").freeze(),v(this,gt,"f").freeze(),v(this,z,"f").freeze(),v(this,B,"f").freeze()}[wt](){let t,e="";return t=/\b(node|iojs|electron)(\.exe)?$/.test(v(this,lt,"f").process.argv()[0])?v(this,lt,"f").process.argv().slice(1,2):v(this,lt,"f").process.argv().slice(0,1),e=t.map((t=>{const e=this[Tt](v(this,q,"f"),t);return t.match(/^(\/|([a-zA-Z]:)?\\)/)&&e.lengthe.includes("package.json")?"package.json":void 0));d(i,void 0,v(this,lt,"f")),s=JSON.parse(v(this,lt,"f").readFileSync(i,"utf8"))}catch(t){}return v(this,rt,"f")[e]=s||{},v(this,rt,"f")[e]}[Et](t,e){(e=[].concat(e)).forEach((e=>{e=this[Pt](e),v(this,tt,"f")[t].push(e)}))}[xt](t,e,s,i){this[St](t,e,s,i,((t,e,s)=>{v(this,tt,"f")[t][e]=s}))}[At](t,e,s,i){this[St](t,e,s,i,((t,e,s)=>{v(this,tt,"f")[t][e]=(v(this,tt,"f")[t][e]||[]).concat(s)}))}[St](t,e,s,i,n){if(Array.isArray(s))s.forEach((e=>{t(e,i)}));else if((t=>"object"==typeof t)(s))for(const e of p(s))t(e,s[e]);else n(e,this[Pt](s),i)}[Pt](t){return"__proto__"===t?"___proto___":t}[$t](t,e){return this[xt](this[$t].bind(this),"key",t,e),this}[It](){var t,e,s,i,n,r,o,a,h,l,c,f;const u=v(this,K,"f").pop();let p;d(u,void 0,v(this,lt,"f")),t=this,e=this,s=this,i=this,n=this,r=this,o=this,a=this,h=this,l=this,c=this,f=this,({options:{set value(e){O(t,tt,e,"f")}}.value,configObjects:p,exitProcess:{set value(t){O(e,G,t,"f")}}.value,groups:{set value(t){O(s,Y,t,"f")}}.value,output:{set value(t){O(i,Q,t,"f")}}.value,exitError:{set value(t){O(n,V,t,"f")}}.value,hasOutput:{set value(t){O(r,J,t,"f")}}.value,parsed:this.parsed,strict:{set value(t){O(o,ct,t,"f")}}.value,strictCommands:{set value(t){O(a,ft,t,"f")}}.value,strictOptions:{set value(t){O(h,dt,t,"f")}}.value,completionCommand:{set value(t){O(l,F,t,"f")}}.value,parseFn:{set value(t){O(c,it,t,"f")}}.value,parseContext:{set value(t){O(f,nt,t,"f")}}.value}=u),v(this,tt,"f").configObjects=p,v(this,ut,"f").unfreeze(),v(this,gt,"f").unfreeze(),v(this,z,"f").unfreeze(),v(this,B,"f").unfreeze()}[Dt](t,e){return j(e,(e=>(t(e),e)))}getInternalMethods(){return{getCommandInstance:this[Nt].bind(this),getContext:this[Ht].bind(this),getHasOutput:this[zt].bind(this),getLoggerInstance:this[qt].bind(this),getParseContext:this[Wt].bind(this),getParserConfiguration:this[Ct].bind(this),getUsageInstance:this[Ut].bind(this),getValidationInstance:this[Ft].bind(this),hasParseCallback:this[Lt].bind(this),postProcess:this[Vt].bind(this),reset:this[Rt].bind(this),runValidation:this[Kt].bind(this),runYargsParserAndExecuteCommands:this[Gt].bind(this),setHasOutput:this[Bt].bind(this)}}[Nt](){return v(this,z,"f")}[Ht](){return v(this,W,"f")}[zt](){return v(this,J,"f")}[qt](){return v(this,X,"f")}[Wt](){return v(this,nt,"f")||{}}[Ut](){return v(this,ut,"f")}[Ft](){return v(this,gt,"f")}[Lt](){return!!v(this,it,"f")}[Vt](t,e,s,i){if(s)return t;if(f(t))return t;e||(t=this[mt](t));return(this[Ct]()["parse-positional-numbers"]||void 0===this[Ct]()["parse-positional-numbers"])&&(t=this[Mt](t)),i&&(t=C(t,this,v(this,B,"f").getMiddleware(),!1)),t}[Rt](t={}){O(this,tt,v(this,tt,"f")||{},"f");const e={};e.local=v(this,tt,"f").local||[],e.configObjects=v(this,tt,"f").configObjects||[];const s={};e.local.forEach((e=>{s[e]=!0,(t[e]||[]).forEach((t=>{s[t]=!0}))})),Object.assign(v(this,ot,"f"),Object.keys(v(this,Y,"f")).reduce(((t,e)=>{const i=v(this,Y,"f")[e].filter((t=>!(t in s)));return i.length>0&&(t[e]=i),t}),{})),O(this,Y,{},"f");return["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"].forEach((t=>{e[t]=(v(this,tt,"f")[t]||[]).filter((t=>!s[t]))})),["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"].forEach((t=>{e[t]=g(v(this,tt,"f")[t],(t=>!s[t]))})),e.envPrefix=v(this,tt,"f").envPrefix,O(this,tt,e,"f"),O(this,ut,v(this,ut,"f")?v(this,ut,"f").reset(s):S(this,v(this,lt,"f")),"f"),O(this,gt,v(this,gt,"f")?v(this,gt,"f").reset(s):function(t,e,s){const i=s.y18n.__,n=s.y18n.__n,r={nonOptionCount:function(s){const i=t.getDemandedCommands(),r=s._.length+(s["--"]?s["--"].length:0)-t.getInternalMethods().getContext().commands.length;i._&&(ri._.max)&&(ri._.max&&(void 0!==i._.maxMsg?e.fail(i._.maxMsg?i._.maxMsg.replace(/\$0/g,r.toString()).replace(/\$1/,i._.max.toString()):null):e.fail(n("Too many non-option arguments: got %s, maximum of %s","Too many non-option arguments: got %s, maximum of %s",r,r.toString(),i._.max.toString()))))},positionalCount:function(t,s){s{H.includes(e)||Object.prototype.hasOwnProperty.call(o,e)||Object.prototype.hasOwnProperty.call(t.getInternalMethods().getParseContext(),e)||r.isValidAndSomeAliasIsNotNew(e,i)||f.push(e)})),h&&(d.commands.length>0||c.length>0||a)&&s._.slice(d.commands.length).forEach((t=>{c.includes(""+t)||f.push(""+t)})),h){const e=(null===(l=t.getDemandedCommands()._)||void 0===l?void 0:l.max)||0,i=d.commands.length+e;i{t=String(t),d.commands.includes(t)||f.includes(t)||f.push(t)}))}f.length&&e.fail(n("Unknown argument: %s","Unknown arguments: %s",f.length,f.join(", ")))},unknownCommands:function(s){const i=t.getInternalMethods().getCommandInstance().getCommands(),r=[],o=t.getInternalMethods().getContext();return(o.commands.length>0||i.length>0)&&s._.slice(o.commands.length).forEach((t=>{i.includes(""+t)||r.push(""+t)})),r.length>0&&(e.fail(n("Unknown command: %s","Unknown commands: %s",r.length,r.join(", "))),!0)},isValidAndSomeAliasIsNotNew:function(e,s){if(!Object.prototype.hasOwnProperty.call(s,e))return!1;const i=t.parsed.newAliases;return[e,...s[e]].some((t=>!Object.prototype.hasOwnProperty.call(i,t)||!i[e]))},limitedChoices:function(s){const n=t.getOptions(),r={};if(!Object.keys(n.choices).length)return;Object.keys(s).forEach((t=>{-1===H.indexOf(t)&&Object.prototype.hasOwnProperty.call(n.choices,t)&&[].concat(s[t]).forEach((e=>{-1===n.choices[t].indexOf(e)&&void 0!==e&&(r[t]=(r[t]||[]).concat(e))}))}));const o=Object.keys(r);if(!o.length)return;let a=i("Invalid values:");o.forEach((t=>{a+=`\n ${i("Argument: %s, Given: %s, Choices: %s",t,e.stringifiedValues(r[t]),e.stringifiedValues(n.choices[t]))}`})),e.fail(a)}};let o={};function a(t,e){const s=Number(e);return"number"==typeof(e=isNaN(s)?e:s)?e=t._.length>=e:e.match(/^--no-.+/)?(e=e.match(/^--no-(.+)/)[1],e=!Object.prototype.hasOwnProperty.call(t,e)):e=Object.prototype.hasOwnProperty.call(t,e),e}r.implies=function(e,i){h(" [array|number|string]",[e,i],arguments.length),"object"==typeof e?Object.keys(e).forEach((t=>{r.implies(t,e[t])})):(t.global(e),o[e]||(o[e]=[]),Array.isArray(i)?i.forEach((t=>r.implies(e,t))):(d(i,void 0,s),o[e].push(i)))},r.getImplied=function(){return o},r.implications=function(t){const s=[];if(Object.keys(o).forEach((e=>{const i=e;(o[e]||[]).forEach((e=>{let n=i;const r=e;n=a(t,n),e=a(t,e),n&&!e&&s.push(` ${i} -> ${r}`)}))})),s.length){let t=`${i("Implications failed:")}\n`;s.forEach((e=>{t+=e})),e.fail(t)}};let l={};r.conflicts=function(e,s){h(" [array|string]",[e,s],arguments.length),"object"==typeof e?Object.keys(e).forEach((t=>{r.conflicts(t,e[t])})):(t.global(e),l[e]||(l[e]=[]),Array.isArray(s)?s.forEach((t=>r.conflicts(e,t))):l[e].push(s))},r.getConflicting=()=>l,r.conflicting=function(n){Object.keys(n).forEach((t=>{l[t]&&l[t].forEach((s=>{s&&void 0!==n[t]&&void 0!==n[s]&&e.fail(i("Arguments %s and %s are mutually exclusive",t,s))}))})),t.getInternalMethods().getParserConfiguration()["strip-dashed"]&&Object.keys(l).forEach((t=>{l[t].forEach((r=>{r&&void 0!==n[s.Parser.camelCase(t)]&&void 0!==n[s.Parser.camelCase(r)]&&e.fail(i("Arguments %s and %s are mutually exclusive",t,r))}))}))},r.recommendCommands=function(t,s){s=s.sort(((t,e)=>e.length-t.length));let n=null,r=1/0;for(let e,i=0;void 0!==(e=s[i]);i++){const s=N(t,e);s<=3&&s!t[e])),l=g(l,(e=>!t[e])),r};const c=[];return r.freeze=function(){c.push({implied:o,conflicting:l})},r.unfreeze=function(){const t=c.pop();d(t,void 0,s),({implied:o,conflicting:l}=t)},r}(this,v(this,ut,"f"),v(this,lt,"f")),"f"),O(this,z,v(this,z,"f")?v(this,z,"f").reset():function(t,e,s,i){return new M(t,e,s,i)}(v(this,ut,"f"),v(this,gt,"f"),v(this,B,"f"),v(this,lt,"f")),"f"),v(this,U,"f")||O(this,U,function(t,e,s,i){return new D(t,e,s,i)}(this,v(this,ut,"f"),v(this,z,"f"),v(this,lt,"f")),"f"),v(this,B,"f").reset(),O(this,F,null,"f"),O(this,Q,"","f"),O(this,V,null,"f"),O(this,J,!1,"f"),this.parsed=!1,this}[Tt](t,e){return v(this,lt,"f").path.relative(t,e)}[Gt](t,s,i,n=0,r=!1){let o=!!i||r;t=t||v(this,at,"f"),v(this,tt,"f").__=v(this,lt,"f").y18n.__,v(this,tt,"f").configuration=this[Ct]();const a=!!v(this,tt,"f").configuration["populate--"],h=Object.assign({},v(this,tt,"f").configuration,{"populate--":!0}),l=v(this,lt,"f").Parser.detailed(t,Object.assign({},v(this,tt,"f"),{configuration:{"parse-positional-numbers":!1,...h}})),c=Object.assign(l.argv,v(this,nt,"f"));let d;const u=l.aliases;let p=!1,g=!1;Object.keys(c).forEach((t=>{t===v(this,Z,"f")&&c[t]?p=!0:t===v(this,pt,"f")&&c[t]&&(g=!0)})),c.$0=this.$0,this.parsed=l,0===n&&v(this,ut,"f").clearCachedHelpMessage();try{if(this[jt](),s)return this[Vt](c,a,!!i,!1);if(v(this,Z,"f")){[v(this,Z,"f")].concat(u[v(this,Z,"f")]||[]).filter((t=>t.length>1)).includes(""+c._[c._.length-1])&&(c._.pop(),p=!0)}const h=v(this,z,"f").getCommands(),m=v(this,U,"f").completionKey in c,y=p||m||r;if(c._.length){if(h.length){let t;for(let e,s=n||0;void 0!==c._[s];s++){if(e=String(c._[s]),h.includes(e)&&e!==v(this,F,"f")){const t=v(this,z,"f").runCommand(e,this,l,s+1,r,p||g||r);return this[Vt](t,a,!!i,!1)}if(!t&&e!==v(this,F,"f")){t=e;break}}!v(this,z,"f").hasDefaultCommand()&&v(this,ht,"f")&&t&&!y&&v(this,gt,"f").recommendCommands(t,h)}v(this,F,"f")&&c._.includes(v(this,F,"f"))&&!m&&(v(this,G,"f")&&x(!0),this.showCompletionScript(),this.exit(0))}if(v(this,z,"f").hasDefaultCommand()&&!y){const t=v(this,z,"f").runCommand(null,this,l,0,r,p||g||r);return this[Vt](t,a,!!i,!1)}if(m){v(this,G,"f")&&x(!0);const s=(t=[].concat(t)).slice(t.indexOf(`--${v(this,U,"f").completionKey}`)+1);return v(this,U,"f").getCompletion(s,((t,s)=>{if(t)throw new e(t.message);(s||[]).forEach((t=>{v(this,X,"f").log(t)})),this.exit(0)})),this[Vt](c,!a,!!i,!1)}if(v(this,J,"f")||(p?(v(this,G,"f")&&x(!0),o=!0,this.showHelp("log"),this.exit(0)):g&&(v(this,G,"f")&&x(!0),o=!0,v(this,ut,"f").showVersion("log"),this.exit(0))),!o&&v(this,tt,"f").skipValidation.length>0&&(o=Object.keys(c).some((t=>v(this,tt,"f").skipValidation.indexOf(t)>=0&&!0===c[t]))),!o){if(l.error)throw new e(l.error.message);if(!m){const t=this[Kt](u,{},l.error);i||(d=C(c,this,v(this,B,"f").getMiddleware(),!0)),d=this[Dt](t,null!=d?d:c),f(d)&&!i&&(d=d.then((()=>C(c,this,v(this,B,"f").getMiddleware(),!1))))}}}catch(t){if(!(t instanceof e))throw t;v(this,ut,"f").fail(t.message,t)}return this[Vt](null!=d?d:c,a,!!i,!0)}[Kt](t,s,i,n){const r={...this.getDemandedOptions()};return o=>{if(i)throw new e(i.message);v(this,gt,"f").nonOptionCount(o),v(this,gt,"f").requiredArguments(o,r);let a=!1;v(this,ft,"f")&&(a=v(this,gt,"f").unknownCommands(o)),v(this,ct,"f")&&!a?v(this,gt,"f").unknownArguments(o,t,s,!!n):v(this,dt,"f")&&v(this,gt,"f").unknownArguments(o,t,{},!1,!1),v(this,gt,"f").limitedChoices(o),v(this,gt,"f").implications(o),v(this,gt,"f").conflicting(o)}}[Bt](){O(this,J,!0,"f")}[Yt](t){if("string"==typeof t)v(this,tt,"f").key[t]=!0;else for(const e of t)v(this,tt,"f").key[e]=!0}}var Zt,Xt;const{readFileSync:Qt}=require("fs"),{inspect:te}=require("util"),{resolve:ee}=require("path"),se=require("y18n"),ie=require("yargs-parser");var ne,re={assert:{notStrictEqual:t.notStrictEqual,strictEqual:t.strictEqual},cliui:require("cliui"),findUp:require("escalade/sync"),getEnv:t=>process.env[t],getCallerFile:require("get-caller-file"),getProcessArgvBin:y,inspect:te,mainFilename:null!==(Xt=null===(Zt=null===require||void 0===require?void 0:require.main)||void 0===Zt?void 0:Zt.filename)&&void 0!==Xt?Xt:process.cwd(),Parser:ie,path:require("path"),process:{argv:()=>process.argv,cwd:process.cwd,emitWarning:(t,e)=>process.emitWarning(t,e),execPath:()=>process.execPath,exit:t=>{process.exit(t)},nextTick:process.nextTick,stdColumns:void 0!==process.stdout.columns?process.stdout.columns:null},readFileSync:Qt,require:require,requireDirectory:require("require-directory"),stringWidth:require("string-width"),y18n:se({directory:ee(__dirname,"../locales"),updateFiles:!1})};const oe=(null===(ne=null===process||void 0===process?void 0:process.env)||void 0===ne?void 0:ne.YARGS_MIN_NODE_VERSION)?Number(process.env.YARGS_MIN_NODE_VERSION):12;if(process&&process.version){if(Number(process.version.match(/v([^.]+)/)[1]){const i=new Jt(t,e,s,he);return Object.defineProperty(i,"argv",{get:()=>i.parse(),enumerable:!0}),i.help(),i.version(),i}),argsert:h,isPromise:f,objFilter:g,parseCommand:o,Parser:ae,processArgv:b,YError:e};module.exports=le; diff --git a/node_modules/yargs/build/lib/argsert.js b/node_modules/yargs/build/lib/argsert.js new file mode 100644 index 00000000..be5b3aa6 --- /dev/null +++ b/node_modules/yargs/build/lib/argsert.js @@ -0,0 +1,62 @@ +import { YError } from './yerror.js'; +import { parseCommand } from './parse-command.js'; +const positionName = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth']; +export function argsert(arg1, arg2, arg3) { + function parseArgs() { + return typeof arg1 === 'object' + ? [{ demanded: [], optional: [] }, arg1, arg2] + : [ + parseCommand(`cmd ${arg1}`), + arg2, + arg3, + ]; + } + try { + let position = 0; + const [parsed, callerArguments, _length] = parseArgs(); + const args = [].slice.call(callerArguments); + while (args.length && args[args.length - 1] === undefined) + args.pop(); + const length = _length || args.length; + if (length < parsed.demanded.length) { + throw new YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`); + } + const totalCommands = parsed.demanded.length + parsed.optional.length; + if (length > totalCommands) { + throw new YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`); + } + parsed.demanded.forEach(demanded => { + const arg = args.shift(); + const observedType = guessType(arg); + const matchingTypes = demanded.cmd.filter(type => type === observedType || type === '*'); + if (matchingTypes.length === 0) + argumentTypeError(observedType, demanded.cmd, position); + position += 1; + }); + parsed.optional.forEach(optional => { + if (args.length === 0) + return; + const arg = args.shift(); + const observedType = guessType(arg); + const matchingTypes = optional.cmd.filter(type => type === observedType || type === '*'); + if (matchingTypes.length === 0) + argumentTypeError(observedType, optional.cmd, position); + position += 1; + }); + } + catch (err) { + console.warn(err.stack); + } +} +function guessType(arg) { + if (Array.isArray(arg)) { + return 'array'; + } + else if (arg === null) { + return 'null'; + } + return typeof arg; +} +function argumentTypeError(observedType, allowedTypes, position) { + throw new YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`); +} diff --git a/node_modules/yargs/build/lib/command.js b/node_modules/yargs/build/lib/command.js new file mode 100644 index 00000000..912a020d --- /dev/null +++ b/node_modules/yargs/build/lib/command.js @@ -0,0 +1,432 @@ +import { assertNotStrictEqual, } from './typings/common-types.js'; +import { isPromise } from './utils/is-promise.js'; +import { applyMiddleware, commandMiddlewareFactory, } from './middleware.js'; +import { parseCommand } from './parse-command.js'; +import { isYargsInstance, } from './yargs-factory.js'; +import { maybeAsyncResult } from './utils/maybe-async-result.js'; +import whichModule from './utils/which-module.js'; +const DEFAULT_MARKER = /(^\*)|(^\$0)/; +export class CommandInstance { + constructor(usage, validation, globalMiddleware, shim) { + this.requireCache = new Set(); + this.handlers = {}; + this.aliasMap = {}; + this.frozens = []; + this.shim = shim; + this.usage = usage; + this.globalMiddleware = globalMiddleware; + this.validation = validation; + } + addDirectory(dir, req, callerFile, opts) { + opts = opts || {}; + if (typeof opts.recurse !== 'boolean') + opts.recurse = false; + if (!Array.isArray(opts.extensions)) + opts.extensions = ['js']; + const parentVisit = typeof opts.visit === 'function' ? opts.visit : (o) => o; + opts.visit = (obj, joined, filename) => { + const visited = parentVisit(obj, joined, filename); + if (visited) { + if (this.requireCache.has(joined)) + return visited; + else + this.requireCache.add(joined); + this.addHandler(visited); + } + return visited; + }; + this.shim.requireDirectory({ require: req, filename: callerFile }, dir, opts); + } + addHandler(cmd, description, builder, handler, commandMiddleware, deprecated) { + let aliases = []; + const middlewares = commandMiddlewareFactory(commandMiddleware); + handler = handler || (() => { }); + if (Array.isArray(cmd)) { + if (isCommandAndAliases(cmd)) { + [cmd, ...aliases] = cmd; + } + else { + for (const command of cmd) { + this.addHandler(command); + } + } + } + else if (isCommandHandlerDefinition(cmd)) { + let command = Array.isArray(cmd.command) || typeof cmd.command === 'string' + ? cmd.command + : this.moduleName(cmd); + if (cmd.aliases) + command = [].concat(command).concat(cmd.aliases); + this.addHandler(command, this.extractDesc(cmd), cmd.builder, cmd.handler, cmd.middlewares, cmd.deprecated); + return; + } + else if (isCommandBuilderDefinition(builder)) { + this.addHandler([cmd].concat(aliases), description, builder.builder, builder.handler, builder.middlewares, builder.deprecated); + return; + } + if (typeof cmd === 'string') { + const parsedCommand = parseCommand(cmd); + aliases = aliases.map(alias => parseCommand(alias).cmd); + let isDefault = false; + const parsedAliases = [parsedCommand.cmd].concat(aliases).filter(c => { + if (DEFAULT_MARKER.test(c)) { + isDefault = true; + return false; + } + return true; + }); + if (parsedAliases.length === 0 && isDefault) + parsedAliases.push('$0'); + if (isDefault) { + parsedCommand.cmd = parsedAliases[0]; + aliases = parsedAliases.slice(1); + cmd = cmd.replace(DEFAULT_MARKER, parsedCommand.cmd); + } + aliases.forEach(alias => { + this.aliasMap[alias] = parsedCommand.cmd; + }); + if (description !== false) { + this.usage.command(cmd, description, isDefault, aliases, deprecated); + } + this.handlers[parsedCommand.cmd] = { + original: cmd, + description, + handler, + builder: builder || {}, + middlewares, + deprecated, + demanded: parsedCommand.demanded, + optional: parsedCommand.optional, + }; + if (isDefault) + this.defaultCommand = this.handlers[parsedCommand.cmd]; + } + } + getCommandHandlers() { + return this.handlers; + } + getCommands() { + return Object.keys(this.handlers).concat(Object.keys(this.aliasMap)); + } + hasDefaultCommand() { + return !!this.defaultCommand; + } + runCommand(command, yargs, parsed, commandIndex, helpOnly, helpOrVersionSet) { + const commandHandler = this.handlers[command] || + this.handlers[this.aliasMap[command]] || + this.defaultCommand; + const currentContext = yargs.getInternalMethods().getContext(); + const parentCommands = currentContext.commands.slice(); + const isDefaultCommand = !command; + if (command) { + currentContext.commands.push(command); + currentContext.fullCommands.push(commandHandler.original); + } + const builderResult = this.applyBuilderUpdateUsageAndParse(isDefaultCommand, commandHandler, yargs, parsed.aliases, parentCommands, commandIndex, helpOnly, helpOrVersionSet); + return isPromise(builderResult) + ? builderResult.then(result => this.applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, result.innerArgv, currentContext, helpOnly, result.aliases, yargs)) + : this.applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, builderResult.innerArgv, currentContext, helpOnly, builderResult.aliases, yargs); + } + applyBuilderUpdateUsageAndParse(isDefaultCommand, commandHandler, yargs, aliases, parentCommands, commandIndex, helpOnly, helpOrVersionSet) { + const builder = commandHandler.builder; + let innerYargs = yargs; + if (isCommandBuilderCallback(builder)) { + const builderOutput = builder(yargs.getInternalMethods().reset(aliases), helpOrVersionSet); + if (isPromise(builderOutput)) { + return builderOutput.then(output => { + innerYargs = isYargsInstance(output) ? output : yargs; + return this.parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly); + }); + } + } + else if (isCommandBuilderOptionDefinitions(builder)) { + innerYargs = yargs.getInternalMethods().reset(aliases); + Object.keys(commandHandler.builder).forEach(key => { + innerYargs.option(key, builder[key]); + }); + } + return this.parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly); + } + parseAndUpdateUsage(isDefaultCommand, commandHandler, innerYargs, parentCommands, commandIndex, helpOnly) { + if (isDefaultCommand) + innerYargs.getInternalMethods().getUsageInstance().unfreeze(); + if (this.shouldUpdateUsage(innerYargs)) { + innerYargs + .getInternalMethods() + .getUsageInstance() + .usage(this.usageFromParentCommandsCommandHandler(parentCommands, commandHandler), commandHandler.description); + } + const innerArgv = innerYargs + .getInternalMethods() + .runYargsParserAndExecuteCommands(null, undefined, true, commandIndex, helpOnly); + return isPromise(innerArgv) + ? innerArgv.then(argv => ({ + aliases: innerYargs.parsed.aliases, + innerArgv: argv, + })) + : { + aliases: innerYargs.parsed.aliases, + innerArgv: innerArgv, + }; + } + shouldUpdateUsage(yargs) { + return (!yargs.getInternalMethods().getUsageInstance().getUsageDisabled() && + yargs.getInternalMethods().getUsageInstance().getUsage().length === 0); + } + usageFromParentCommandsCommandHandler(parentCommands, commandHandler) { + const c = DEFAULT_MARKER.test(commandHandler.original) + ? commandHandler.original.replace(DEFAULT_MARKER, '').trim() + : commandHandler.original; + const pc = parentCommands.filter(c => { + return !DEFAULT_MARKER.test(c); + }); + pc.push(c); + return `$0 ${pc.join(' ')}`; + } + applyMiddlewareAndGetResult(isDefaultCommand, commandHandler, innerArgv, currentContext, helpOnly, aliases, yargs) { + let positionalMap = {}; + if (helpOnly) + return innerArgv; + if (!yargs.getInternalMethods().getHasOutput()) { + positionalMap = this.populatePositionals(commandHandler, innerArgv, currentContext, yargs); + } + const middlewares = this.globalMiddleware + .getMiddleware() + .slice(0) + .concat(commandHandler.middlewares); + innerArgv = applyMiddleware(innerArgv, yargs, middlewares, true); + if (!yargs.getInternalMethods().getHasOutput()) { + const validation = yargs + .getInternalMethods() + .runValidation(aliases, positionalMap, yargs.parsed.error, isDefaultCommand); + innerArgv = maybeAsyncResult(innerArgv, result => { + validation(result); + return result; + }); + } + if (commandHandler.handler && !yargs.getInternalMethods().getHasOutput()) { + yargs.getInternalMethods().setHasOutput(); + const populateDoubleDash = !!yargs.getOptions().configuration['populate--']; + yargs + .getInternalMethods() + .postProcess(innerArgv, populateDoubleDash, false, false); + innerArgv = applyMiddleware(innerArgv, yargs, middlewares, false); + innerArgv = maybeAsyncResult(innerArgv, result => { + const handlerResult = commandHandler.handler(result); + return isPromise(handlerResult) + ? handlerResult.then(() => result) + : result; + }); + if (!isDefaultCommand) { + yargs.getInternalMethods().getUsageInstance().cacheHelpMessage(); + } + if (isPromise(innerArgv) && + !yargs.getInternalMethods().hasParseCallback()) { + innerArgv.catch(error => { + try { + yargs.getInternalMethods().getUsageInstance().fail(null, error); + } + catch (_err) { + } + }); + } + } + if (!isDefaultCommand) { + currentContext.commands.pop(); + currentContext.fullCommands.pop(); + } + return innerArgv; + } + populatePositionals(commandHandler, argv, context, yargs) { + argv._ = argv._.slice(context.commands.length); + const demanded = commandHandler.demanded.slice(0); + const optional = commandHandler.optional.slice(0); + const positionalMap = {}; + this.validation.positionalCount(demanded.length, argv._.length); + while (demanded.length) { + const demand = demanded.shift(); + this.populatePositional(demand, argv, positionalMap); + } + while (optional.length) { + const maybe = optional.shift(); + this.populatePositional(maybe, argv, positionalMap); + } + argv._ = context.commands.concat(argv._.map(a => '' + a)); + this.postProcessPositionals(argv, positionalMap, this.cmdToParseOptions(commandHandler.original), yargs); + return positionalMap; + } + populatePositional(positional, argv, positionalMap) { + const cmd = positional.cmd[0]; + if (positional.variadic) { + positionalMap[cmd] = argv._.splice(0).map(String); + } + else { + if (argv._.length) + positionalMap[cmd] = [String(argv._.shift())]; + } + } + cmdToParseOptions(cmdString) { + const parseOptions = { + array: [], + default: {}, + alias: {}, + demand: {}, + }; + const parsed = parseCommand(cmdString); + parsed.demanded.forEach(d => { + const [cmd, ...aliases] = d.cmd; + if (d.variadic) { + parseOptions.array.push(cmd); + parseOptions.default[cmd] = []; + } + parseOptions.alias[cmd] = aliases; + parseOptions.demand[cmd] = true; + }); + parsed.optional.forEach(o => { + const [cmd, ...aliases] = o.cmd; + if (o.variadic) { + parseOptions.array.push(cmd); + parseOptions.default[cmd] = []; + } + parseOptions.alias[cmd] = aliases; + }); + return parseOptions; + } + postProcessPositionals(argv, positionalMap, parseOptions, yargs) { + const options = Object.assign({}, yargs.getOptions()); + options.default = Object.assign(parseOptions.default, options.default); + for (const key of Object.keys(parseOptions.alias)) { + options.alias[key] = (options.alias[key] || []).concat(parseOptions.alias[key]); + } + options.array = options.array.concat(parseOptions.array); + options.config = {}; + const unparsed = []; + Object.keys(positionalMap).forEach(key => { + positionalMap[key].map(value => { + if (options.configuration['unknown-options-as-args']) + options.key[key] = true; + unparsed.push(`--${key}`); + unparsed.push(value); + }); + }); + if (!unparsed.length) + return; + const config = Object.assign({}, options.configuration, { + 'populate--': false, + }); + const parsed = this.shim.Parser.detailed(unparsed, Object.assign({}, options, { + configuration: config, + })); + if (parsed.error) { + yargs + .getInternalMethods() + .getUsageInstance() + .fail(parsed.error.message, parsed.error); + } + else { + const positionalKeys = Object.keys(positionalMap); + Object.keys(positionalMap).forEach(key => { + positionalKeys.push(...parsed.aliases[key]); + }); + const defaults = yargs.getOptions().default; + Object.keys(parsed.argv).forEach(key => { + if (positionalKeys.includes(key)) { + if (!positionalMap[key]) + positionalMap[key] = parsed.argv[key]; + if (!Object.prototype.hasOwnProperty.call(defaults, key) && + Object.prototype.hasOwnProperty.call(argv, key) && + Object.prototype.hasOwnProperty.call(parsed.argv, key) && + (Array.isArray(argv[key]) || Array.isArray(parsed.argv[key]))) { + argv[key] = [].concat(argv[key], parsed.argv[key]); + } + else { + argv[key] = parsed.argv[key]; + } + } + }); + } + } + runDefaultBuilderOn(yargs) { + if (!this.defaultCommand) + return; + if (this.shouldUpdateUsage(yargs)) { + const commandString = DEFAULT_MARKER.test(this.defaultCommand.original) + ? this.defaultCommand.original + : this.defaultCommand.original.replace(/^[^[\]<>]*/, '$0 '); + yargs + .getInternalMethods() + .getUsageInstance() + .usage(commandString, this.defaultCommand.description); + } + const builder = this.defaultCommand.builder; + if (isCommandBuilderCallback(builder)) { + return builder(yargs, true); + } + else if (!isCommandBuilderDefinition(builder)) { + Object.keys(builder).forEach(key => { + yargs.option(key, builder[key]); + }); + } + return undefined; + } + moduleName(obj) { + const mod = whichModule(obj); + if (!mod) + throw new Error(`No command name given for module: ${this.shim.inspect(obj)}`); + return this.commandFromFilename(mod.filename); + } + commandFromFilename(filename) { + return this.shim.path.basename(filename, this.shim.path.extname(filename)); + } + extractDesc({ describe, description, desc }) { + for (const test of [describe, description, desc]) { + if (typeof test === 'string' || test === false) + return test; + assertNotStrictEqual(test, true, this.shim); + } + return false; + } + freeze() { + this.frozens.push({ + handlers: this.handlers, + aliasMap: this.aliasMap, + defaultCommand: this.defaultCommand, + }); + } + unfreeze() { + const frozen = this.frozens.pop(); + assertNotStrictEqual(frozen, undefined, this.shim); + ({ + handlers: this.handlers, + aliasMap: this.aliasMap, + defaultCommand: this.defaultCommand, + } = frozen); + } + reset() { + this.handlers = {}; + this.aliasMap = {}; + this.defaultCommand = undefined; + this.requireCache = new Set(); + return this; + } +} +export function command(usage, validation, globalMiddleware, shim) { + return new CommandInstance(usage, validation, globalMiddleware, shim); +} +export function isCommandBuilderDefinition(builder) { + return (typeof builder === 'object' && + !!builder.builder && + typeof builder.handler === 'function'); +} +function isCommandAndAliases(cmd) { + return cmd.every(c => typeof c === 'string'); +} +export function isCommandBuilderCallback(builder) { + return typeof builder === 'function'; +} +function isCommandBuilderOptionDefinitions(builder) { + return typeof builder === 'object'; +} +export function isCommandHandlerDefinition(cmd) { + return typeof cmd === 'object' && !Array.isArray(cmd); +} diff --git a/node_modules/yargs/build/lib/completion-templates.js b/node_modules/yargs/build/lib/completion-templates.js new file mode 100644 index 00000000..4bd930c3 --- /dev/null +++ b/node_modules/yargs/build/lib/completion-templates.js @@ -0,0 +1,48 @@ +export const completionShTemplate = `###-begin-{{app_name}}-completions-### +# +# yargs command completion script +# +# Installation: {{app_path}} {{completion_command}} >> ~/.bashrc +# or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX. +# +_{{app_name}}_yargs_completions() +{ + local cur_word args type_list + + cur_word="\${COMP_WORDS[COMP_CWORD]}" + args=("\${COMP_WORDS[@]}") + + # ask yargs to generate completions. + type_list=$({{app_path}} --get-yargs-completions "\${args[@]}") + + COMPREPLY=( $(compgen -W "\${type_list}" -- \${cur_word}) ) + + # if no match was found, fall back to filename completion + if [ \${#COMPREPLY[@]} -eq 0 ]; then + COMPREPLY=() + fi + + return 0 +} +complete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}} +###-end-{{app_name}}-completions-### +`; +export const completionZshTemplate = `#compdef {{app_name}} +###-begin-{{app_name}}-completions-### +# +# yargs command completion script +# +# Installation: {{app_path}} {{completion_command}} >> ~/.zshrc +# or {{app_path}} {{completion_command}} >> ~/.zsh_profile on OSX. +# +_{{app_name}}_yargs_completions() +{ + local reply + local si=$IFS + IFS=$'\n' reply=($(COMP_CWORD="$((CURRENT-1))" COMP_LINE="$BUFFER" COMP_POINT="$CURSOR" {{app_path}} --get-yargs-completions "\${words[@]}")) + IFS=$si + _describe 'values' reply +} +compdef _{{app_name}}_yargs_completions {{app_name}} +###-end-{{app_name}}-completions-### +`; diff --git a/node_modules/yargs/build/lib/completion.js b/node_modules/yargs/build/lib/completion.js new file mode 100644 index 00000000..e54a9754 --- /dev/null +++ b/node_modules/yargs/build/lib/completion.js @@ -0,0 +1,200 @@ +import { isCommandBuilderCallback } from './command.js'; +import { assertNotStrictEqual } from './typings/common-types.js'; +import * as templates from './completion-templates.js'; +import { isPromise } from './utils/is-promise.js'; +import { parseCommand } from './parse-command.js'; +export class Completion { + constructor(yargs, usage, command, shim) { + var _a, _b, _c; + this.yargs = yargs; + this.usage = usage; + this.command = command; + this.shim = shim; + this.completionKey = 'get-yargs-completions'; + this.aliases = null; + this.customCompletionFunction = null; + this.zshShell = + (_c = (((_a = this.shim.getEnv('SHELL')) === null || _a === void 0 ? void 0 : _a.includes('zsh')) || + ((_b = this.shim.getEnv('ZSH_NAME')) === null || _b === void 0 ? void 0 : _b.includes('zsh')))) !== null && _c !== void 0 ? _c : false; + } + defaultCompletion(args, argv, current, done) { + const handlers = this.command.getCommandHandlers(); + for (let i = 0, ii = args.length; i < ii; ++i) { + if (handlers[args[i]] && handlers[args[i]].builder) { + const builder = handlers[args[i]].builder; + if (isCommandBuilderCallback(builder)) { + const y = this.yargs.getInternalMethods().reset(); + builder(y, true); + return y.argv; + } + } + } + const completions = []; + this.commandCompletions(completions, args, current); + this.optionCompletions(completions, args, argv, current); + this.choicesCompletions(completions, args, argv, current); + done(null, completions); + } + commandCompletions(completions, args, current) { + const parentCommands = this.yargs + .getInternalMethods() + .getContext().commands; + if (!current.match(/^-/) && + parentCommands[parentCommands.length - 1] !== current && + !this.previousArgHasChoices(args)) { + this.usage.getCommands().forEach(usageCommand => { + const commandName = parseCommand(usageCommand[0]).cmd; + if (args.indexOf(commandName) === -1) { + if (!this.zshShell) { + completions.push(commandName); + } + else { + const desc = usageCommand[1] || ''; + completions.push(commandName.replace(/:/g, '\\:') + ':' + desc); + } + } + }); + } + } + optionCompletions(completions, args, argv, current) { + if ((current.match(/^-/) || (current === '' && completions.length === 0)) && + !this.previousArgHasChoices(args)) { + const options = this.yargs.getOptions(); + const positionalKeys = this.yargs.getGroups()[this.usage.getPositionalGroupName()] || []; + Object.keys(options.key).forEach(key => { + const negable = !!options.configuration['boolean-negation'] && + options.boolean.includes(key); + const isPositionalKey = positionalKeys.includes(key); + if (!isPositionalKey && + !this.argsContainKey(args, argv, key, negable)) { + this.completeOptionKey(key, completions, current); + if (negable && !!options.default[key]) + this.completeOptionKey(`no-${key}`, completions, current); + } + }); + } + } + choicesCompletions(completions, args, argv, current) { + if (this.previousArgHasChoices(args)) { + const choices = this.getPreviousArgChoices(args); + if (choices && choices.length > 0) { + completions.push(...choices); + } + } + } + getPreviousArgChoices(args) { + if (args.length < 1) + return; + let previousArg = args[args.length - 1]; + let filter = ''; + if (!previousArg.startsWith('--') && args.length > 1) { + filter = previousArg; + previousArg = args[args.length - 2]; + } + if (!previousArg.startsWith('--')) + return; + const previousArgKey = previousArg.replace(/-/g, ''); + const options = this.yargs.getOptions(); + if (Object.keys(options.key).some(key => key === previousArgKey) && + Array.isArray(options.choices[previousArgKey])) { + return options.choices[previousArgKey].filter(choice => !filter || choice.startsWith(filter)); + } + } + previousArgHasChoices(args) { + const choices = this.getPreviousArgChoices(args); + return choices !== undefined && choices.length > 0; + } + argsContainKey(args, argv, key, negable) { + if (args.indexOf(`--${key}`) !== -1) + return true; + if (negable && args.indexOf(`--no-${key}`) !== -1) + return true; + if (this.aliases) { + for (const alias of this.aliases[key]) { + if (argv[alias] !== undefined) + return true; + } + } + return false; + } + completeOptionKey(key, completions, current) { + const descs = this.usage.getDescriptions(); + const startsByTwoDashes = (s) => /^--/.test(s); + const isShortOption = (s) => /^[^0-9]$/.test(s); + const dashes = !startsByTwoDashes(current) && isShortOption(key) ? '-' : '--'; + if (!this.zshShell) { + completions.push(dashes + key); + } + else { + const desc = descs[key] || ''; + completions.push(dashes + + `${key.replace(/:/g, '\\:')}:${desc.replace('__yargsString__:', '')}`); + } + } + customCompletion(args, argv, current, done) { + assertNotStrictEqual(this.customCompletionFunction, null, this.shim); + if (isSyncCompletionFunction(this.customCompletionFunction)) { + const result = this.customCompletionFunction(current, argv); + if (isPromise(result)) { + return result + .then(list => { + this.shim.process.nextTick(() => { + done(null, list); + }); + }) + .catch(err => { + this.shim.process.nextTick(() => { + done(err, undefined); + }); + }); + } + return done(null, result); + } + else if (isFallbackCompletionFunction(this.customCompletionFunction)) { + return this.customCompletionFunction(current, argv, (onCompleted = done) => this.defaultCompletion(args, argv, current, onCompleted), completions => { + done(null, completions); + }); + } + else { + return this.customCompletionFunction(current, argv, completions => { + done(null, completions); + }); + } + } + getCompletion(args, done) { + const current = args.length ? args[args.length - 1] : ''; + const argv = this.yargs.parse(args, true); + const completionFunction = this.customCompletionFunction + ? (argv) => this.customCompletion(args, argv, current, done) + : (argv) => this.defaultCompletion(args, argv, current, done); + return isPromise(argv) + ? argv.then(completionFunction) + : completionFunction(argv); + } + generateCompletionScript($0, cmd) { + let script = this.zshShell + ? templates.completionZshTemplate + : templates.completionShTemplate; + const name = this.shim.path.basename($0); + if ($0.match(/\.js$/)) + $0 = `./${$0}`; + script = script.replace(/{{app_name}}/g, name); + script = script.replace(/{{completion_command}}/g, cmd); + return script.replace(/{{app_path}}/g, $0); + } + registerFunction(fn) { + this.customCompletionFunction = fn; + } + setParsed(parsed) { + this.aliases = parsed.aliases; + } +} +export function completion(yargs, usage, command, shim) { + return new Completion(yargs, usage, command, shim); +} +function isSyncCompletionFunction(completionFunction) { + return completionFunction.length < 3; +} +function isFallbackCompletionFunction(completionFunction) { + return completionFunction.length > 3; +} diff --git a/node_modules/yargs/build/lib/middleware.js b/node_modules/yargs/build/lib/middleware.js new file mode 100644 index 00000000..4e561a79 --- /dev/null +++ b/node_modules/yargs/build/lib/middleware.js @@ -0,0 +1,88 @@ +import { argsert } from './argsert.js'; +import { isPromise } from './utils/is-promise.js'; +export class GlobalMiddleware { + constructor(yargs) { + this.globalMiddleware = []; + this.frozens = []; + this.yargs = yargs; + } + addMiddleware(callback, applyBeforeValidation, global = true, mutates = false) { + argsert(' [boolean] [boolean] [boolean]', [callback, applyBeforeValidation, global], arguments.length); + if (Array.isArray(callback)) { + for (let i = 0; i < callback.length; i++) { + if (typeof callback[i] !== 'function') { + throw Error('middleware must be a function'); + } + const m = callback[i]; + m.applyBeforeValidation = applyBeforeValidation; + m.global = global; + } + Array.prototype.push.apply(this.globalMiddleware, callback); + } + else if (typeof callback === 'function') { + const m = callback; + m.applyBeforeValidation = applyBeforeValidation; + m.global = global; + m.mutates = mutates; + this.globalMiddleware.push(callback); + } + return this.yargs; + } + addCoerceMiddleware(callback, option) { + const aliases = this.yargs.getAliases(); + this.globalMiddleware = this.globalMiddleware.filter(m => { + const toCheck = [...(aliases[option] || []), option]; + if (!m.option) + return true; + else + return !toCheck.includes(m.option); + }); + callback.option = option; + return this.addMiddleware(callback, true, true, true); + } + getMiddleware() { + return this.globalMiddleware; + } + freeze() { + this.frozens.push([...this.globalMiddleware]); + } + unfreeze() { + const frozen = this.frozens.pop(); + if (frozen !== undefined) + this.globalMiddleware = frozen; + } + reset() { + this.globalMiddleware = this.globalMiddleware.filter(m => m.global); + } +} +export function commandMiddlewareFactory(commandMiddleware) { + if (!commandMiddleware) + return []; + return commandMiddleware.map(middleware => { + middleware.applyBeforeValidation = false; + return middleware; + }); +} +export function applyMiddleware(argv, yargs, middlewares, beforeValidation) { + return middlewares.reduce((acc, middleware) => { + if (middleware.applyBeforeValidation !== beforeValidation) { + return acc; + } + if (middleware.mutates) { + if (middleware.applied) + return acc; + middleware.applied = true; + } + if (isPromise(acc)) { + return acc + .then(initialObj => Promise.all([initialObj, middleware(initialObj, yargs)])) + .then(([initialObj, middlewareObj]) => Object.assign(initialObj, middlewareObj)); + } + else { + const result = middleware(acc, yargs); + return isPromise(result) + ? result.then(middlewareObj => Object.assign(acc, middlewareObj)) + : Object.assign(acc, result); + } + }, argv); +} diff --git a/node_modules/yargs/build/lib/parse-command.js b/node_modules/yargs/build/lib/parse-command.js new file mode 100644 index 00000000..4989f531 --- /dev/null +++ b/node_modules/yargs/build/lib/parse-command.js @@ -0,0 +1,32 @@ +export function parseCommand(cmd) { + const extraSpacesStrippedCommand = cmd.replace(/\s{2,}/g, ' '); + const splitCommand = extraSpacesStrippedCommand.split(/\s+(?![^[]*]|[^<]*>)/); + const bregex = /\.*[\][<>]/g; + const firstCommand = splitCommand.shift(); + if (!firstCommand) + throw new Error(`No command found in: ${cmd}`); + const parsedCommand = { + cmd: firstCommand.replace(bregex, ''), + demanded: [], + optional: [], + }; + splitCommand.forEach((cmd, i) => { + let variadic = false; + cmd = cmd.replace(/\s/g, ''); + if (/\.+[\]>]/.test(cmd) && i === splitCommand.length - 1) + variadic = true; + if (/^\[/.test(cmd)) { + parsedCommand.optional.push({ + cmd: cmd.replace(bregex, '').split('|'), + variadic, + }); + } + else { + parsedCommand.demanded.push({ + cmd: cmd.replace(bregex, '').split('|'), + variadic, + }); + } + }); + return parsedCommand; +} diff --git a/node_modules/yargs/build/lib/typings/common-types.js b/node_modules/yargs/build/lib/typings/common-types.js new file mode 100644 index 00000000..73e1773a --- /dev/null +++ b/node_modules/yargs/build/lib/typings/common-types.js @@ -0,0 +1,9 @@ +export function assertNotStrictEqual(actual, expected, shim, message) { + shim.assert.notStrictEqual(actual, expected, message); +} +export function assertSingleKey(actual, shim) { + shim.assert.strictEqual(typeof actual, 'string'); +} +export function objectKeys(object) { + return Object.keys(object); +} diff --git a/node_modules/yargs/build/lib/typings/yargs-parser-types.js b/node_modules/yargs/build/lib/typings/yargs-parser-types.js new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/node_modules/yargs/build/lib/typings/yargs-parser-types.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/yargs/build/lib/usage.js b/node_modules/yargs/build/lib/usage.js new file mode 100644 index 00000000..2a2aeb07 --- /dev/null +++ b/node_modules/yargs/build/lib/usage.js @@ -0,0 +1,568 @@ +import { objFilter } from './utils/obj-filter.js'; +import { YError } from './yerror.js'; +import setBlocking from './utils/set-blocking.js'; +function isBoolean(fail) { + return typeof fail === 'boolean'; +} +export function usage(yargs, shim) { + const __ = shim.y18n.__; + const self = {}; + const fails = []; + self.failFn = function failFn(f) { + fails.push(f); + }; + let failMessage = null; + let showHelpOnFail = true; + self.showHelpOnFail = function showHelpOnFailFn(arg1 = true, arg2) { + function parseFunctionArgs() { + return typeof arg1 === 'string' ? [true, arg1] : [arg1, arg2]; + } + const [enabled, message] = parseFunctionArgs(); + failMessage = message; + showHelpOnFail = enabled; + return self; + }; + let failureOutput = false; + self.fail = function fail(msg, err) { + const logger = yargs.getInternalMethods().getLoggerInstance(); + if (fails.length) { + for (let i = fails.length - 1; i >= 0; --i) { + const fail = fails[i]; + if (isBoolean(fail)) { + if (err) + throw err; + else if (msg) + throw Error(msg); + } + else { + fail(msg, err, self); + } + } + } + else { + if (yargs.getExitProcess()) + setBlocking(true); + if (!failureOutput) { + failureOutput = true; + if (showHelpOnFail) { + yargs.showHelp('error'); + logger.error(); + } + if (msg || err) + logger.error(msg || err); + if (failMessage) { + if (msg || err) + logger.error(''); + logger.error(failMessage); + } + } + err = err || new YError(msg); + if (yargs.getExitProcess()) { + return yargs.exit(1); + } + else if (yargs.getInternalMethods().hasParseCallback()) { + return yargs.exit(1, err); + } + else { + throw err; + } + } + }; + let usages = []; + let usageDisabled = false; + self.usage = (msg, description) => { + if (msg === null) { + usageDisabled = true; + usages = []; + return self; + } + usageDisabled = false; + usages.push([msg, description || '']); + return self; + }; + self.getUsage = () => { + return usages; + }; + self.getUsageDisabled = () => { + return usageDisabled; + }; + self.getPositionalGroupName = () => { + return __('Positionals:'); + }; + let examples = []; + self.example = (cmd, description) => { + examples.push([cmd, description || '']); + }; + let commands = []; + self.command = function command(cmd, description, isDefault, aliases, deprecated = false) { + if (isDefault) { + commands = commands.map(cmdArray => { + cmdArray[2] = false; + return cmdArray; + }); + } + commands.push([cmd, description || '', isDefault, aliases, deprecated]); + }; + self.getCommands = () => commands; + let descriptions = {}; + self.describe = function describe(keyOrKeys, desc) { + if (Array.isArray(keyOrKeys)) { + keyOrKeys.forEach(k => { + self.describe(k, desc); + }); + } + else if (typeof keyOrKeys === 'object') { + Object.keys(keyOrKeys).forEach(k => { + self.describe(k, keyOrKeys[k]); + }); + } + else { + descriptions[keyOrKeys] = desc; + } + }; + self.getDescriptions = () => descriptions; + let epilogs = []; + self.epilog = msg => { + epilogs.push(msg); + }; + let wrapSet = false; + let wrap; + self.wrap = cols => { + wrapSet = true; + wrap = cols; + }; + function getWrap() { + if (!wrapSet) { + wrap = windowWidth(); + wrapSet = true; + } + return wrap; + } + const deferY18nLookupPrefix = '__yargsString__:'; + self.deferY18nLookup = str => deferY18nLookupPrefix + str; + self.help = function help() { + if (cachedHelpMessage) + return cachedHelpMessage; + normalizeAliases(); + const base$0 = yargs.customScriptName + ? yargs.$0 + : shim.path.basename(yargs.$0); + const demandedOptions = yargs.getDemandedOptions(); + const demandedCommands = yargs.getDemandedCommands(); + const deprecatedOptions = yargs.getDeprecatedOptions(); + const groups = yargs.getGroups(); + const options = yargs.getOptions(); + let keys = []; + keys = keys.concat(Object.keys(descriptions)); + keys = keys.concat(Object.keys(demandedOptions)); + keys = keys.concat(Object.keys(demandedCommands)); + keys = keys.concat(Object.keys(options.default)); + keys = keys.filter(filterHiddenOptions); + keys = Object.keys(keys.reduce((acc, key) => { + if (key !== '_') + acc[key] = true; + return acc; + }, {})); + const theWrap = getWrap(); + const ui = shim.cliui({ + width: theWrap, + wrap: !!theWrap, + }); + if (!usageDisabled) { + if (usages.length) { + usages.forEach(usage => { + ui.div({ text: `${usage[0].replace(/\$0/g, base$0)}` }); + if (usage[1]) { + ui.div({ text: `${usage[1]}`, padding: [1, 0, 0, 0] }); + } + }); + ui.div(); + } + else if (commands.length) { + let u = null; + if (demandedCommands._) { + u = `${base$0} <${__('command')}>\n`; + } + else { + u = `${base$0} [${__('command')}]\n`; + } + ui.div(`${u}`); + } + } + if (commands.length > 1 || (commands.length === 1 && !commands[0][2])) { + ui.div(__('Commands:')); + const context = yargs.getInternalMethods().getContext(); + const parentCommands = context.commands.length + ? `${context.commands.join(' ')} ` + : ''; + if (yargs.getInternalMethods().getParserConfiguration()['sort-commands'] === + true) { + commands = commands.sort((a, b) => a[0].localeCompare(b[0])); + } + const prefix = base$0 ? `${base$0} ` : ''; + commands.forEach(command => { + const commandString = `${prefix}${parentCommands}${command[0].replace(/^\$0 ?/, '')}`; + ui.span({ + text: commandString, + padding: [0, 2, 0, 2], + width: maxWidth(commands, theWrap, `${base$0}${parentCommands}`) + 4, + }, { text: command[1] }); + const hints = []; + if (command[2]) + hints.push(`[${__('default')}]`); + if (command[3] && command[3].length) { + hints.push(`[${__('aliases:')} ${command[3].join(', ')}]`); + } + if (command[4]) { + if (typeof command[4] === 'string') { + hints.push(`[${__('deprecated: %s', command[4])}]`); + } + else { + hints.push(`[${__('deprecated')}]`); + } + } + if (hints.length) { + ui.div({ + text: hints.join(' '), + padding: [0, 0, 0, 2], + align: 'right', + }); + } + else { + ui.div(); + } + }); + ui.div(); + } + const aliasKeys = (Object.keys(options.alias) || []).concat(Object.keys(yargs.parsed.newAliases) || []); + keys = keys.filter(key => !yargs.parsed.newAliases[key] && + aliasKeys.every(alias => (options.alias[alias] || []).indexOf(key) === -1)); + const defaultGroup = __('Options:'); + if (!groups[defaultGroup]) + groups[defaultGroup] = []; + addUngroupedKeys(keys, options.alias, groups, defaultGroup); + const isLongSwitch = (sw) => /^--/.test(getText(sw)); + const displayedGroups = Object.keys(groups) + .filter(groupName => groups[groupName].length > 0) + .map(groupName => { + const normalizedKeys = groups[groupName] + .filter(filterHiddenOptions) + .map(key => { + if (aliasKeys.includes(key)) + return key; + for (let i = 0, aliasKey; (aliasKey = aliasKeys[i]) !== undefined; i++) { + if ((options.alias[aliasKey] || []).includes(key)) + return aliasKey; + } + return key; + }); + return { groupName, normalizedKeys }; + }) + .filter(({ normalizedKeys }) => normalizedKeys.length > 0) + .map(({ groupName, normalizedKeys }) => { + const switches = normalizedKeys.reduce((acc, key) => { + acc[key] = [key] + .concat(options.alias[key] || []) + .map(sw => { + if (groupName === self.getPositionalGroupName()) + return sw; + else { + return ((/^[0-9]$/.test(sw) + ? options.boolean.includes(key) + ? '-' + : '--' + : sw.length > 1 + ? '--' + : '-') + sw); + } + }) + .sort((sw1, sw2) => isLongSwitch(sw1) === isLongSwitch(sw2) + ? 0 + : isLongSwitch(sw1) + ? 1 + : -1) + .join(', '); + return acc; + }, {}); + return { groupName, normalizedKeys, switches }; + }); + const shortSwitchesUsed = displayedGroups + .filter(({ groupName }) => groupName !== self.getPositionalGroupName()) + .some(({ normalizedKeys, switches }) => !normalizedKeys.every(key => isLongSwitch(switches[key]))); + if (shortSwitchesUsed) { + displayedGroups + .filter(({ groupName }) => groupName !== self.getPositionalGroupName()) + .forEach(({ normalizedKeys, switches }) => { + normalizedKeys.forEach(key => { + if (isLongSwitch(switches[key])) { + switches[key] = addIndentation(switches[key], '-x, '.length); + } + }); + }); + } + displayedGroups.forEach(({ groupName, normalizedKeys, switches }) => { + ui.div(groupName); + normalizedKeys.forEach(key => { + const kswitch = switches[key]; + let desc = descriptions[key] || ''; + let type = null; + if (desc.includes(deferY18nLookupPrefix)) + desc = __(desc.substring(deferY18nLookupPrefix.length)); + if (options.boolean.includes(key)) + type = `[${__('boolean')}]`; + if (options.count.includes(key)) + type = `[${__('count')}]`; + if (options.string.includes(key)) + type = `[${__('string')}]`; + if (options.normalize.includes(key)) + type = `[${__('string')}]`; + if (options.array.includes(key)) + type = `[${__('array')}]`; + if (options.number.includes(key)) + type = `[${__('number')}]`; + const deprecatedExtra = (deprecated) => typeof deprecated === 'string' + ? `[${__('deprecated: %s', deprecated)}]` + : `[${__('deprecated')}]`; + const extra = [ + key in deprecatedOptions + ? deprecatedExtra(deprecatedOptions[key]) + : null, + type, + key in demandedOptions ? `[${__('required')}]` : null, + options.choices && options.choices[key] + ? `[${__('choices:')} ${self.stringifiedValues(options.choices[key])}]` + : null, + defaultString(options.default[key], options.defaultDescription[key]), + ] + .filter(Boolean) + .join(' '); + ui.span({ + text: getText(kswitch), + padding: [0, 2, 0, 2 + getIndentation(kswitch)], + width: maxWidth(switches, theWrap) + 4, + }, desc); + if (extra) + ui.div({ text: extra, padding: [0, 0, 0, 2], align: 'right' }); + else + ui.div(); + }); + ui.div(); + }); + if (examples.length) { + ui.div(__('Examples:')); + examples.forEach(example => { + example[0] = example[0].replace(/\$0/g, base$0); + }); + examples.forEach(example => { + if (example[1] === '') { + ui.div({ + text: example[0], + padding: [0, 2, 0, 2], + }); + } + else { + ui.div({ + text: example[0], + padding: [0, 2, 0, 2], + width: maxWidth(examples, theWrap) + 4, + }, { + text: example[1], + }); + } + }); + ui.div(); + } + if (epilogs.length > 0) { + const e = epilogs + .map(epilog => epilog.replace(/\$0/g, base$0)) + .join('\n'); + ui.div(`${e}\n`); + } + return ui.toString().replace(/\s*$/, ''); + }; + function maxWidth(table, theWrap, modifier) { + let width = 0; + if (!Array.isArray(table)) { + table = Object.values(table).map(v => [v]); + } + table.forEach(v => { + width = Math.max(shim.stringWidth(modifier ? `${modifier} ${getText(v[0])}` : getText(v[0])) + getIndentation(v[0]), width); + }); + if (theWrap) + width = Math.min(width, parseInt((theWrap * 0.5).toString(), 10)); + return width; + } + function normalizeAliases() { + const demandedOptions = yargs.getDemandedOptions(); + const options = yargs.getOptions(); + (Object.keys(options.alias) || []).forEach(key => { + options.alias[key].forEach(alias => { + if (descriptions[alias]) + self.describe(key, descriptions[alias]); + if (alias in demandedOptions) + yargs.demandOption(key, demandedOptions[alias]); + if (options.boolean.includes(alias)) + yargs.boolean(key); + if (options.count.includes(alias)) + yargs.count(key); + if (options.string.includes(alias)) + yargs.string(key); + if (options.normalize.includes(alias)) + yargs.normalize(key); + if (options.array.includes(alias)) + yargs.array(key); + if (options.number.includes(alias)) + yargs.number(key); + }); + }); + } + let cachedHelpMessage; + self.cacheHelpMessage = function () { + cachedHelpMessage = this.help(); + }; + self.clearCachedHelpMessage = function () { + cachedHelpMessage = undefined; + }; + self.hasCachedHelpMessage = function () { + return !!cachedHelpMessage; + }; + function addUngroupedKeys(keys, aliases, groups, defaultGroup) { + let groupedKeys = []; + let toCheck = null; + Object.keys(groups).forEach(group => { + groupedKeys = groupedKeys.concat(groups[group]); + }); + keys.forEach(key => { + toCheck = [key].concat(aliases[key]); + if (!toCheck.some(k => groupedKeys.indexOf(k) !== -1)) { + groups[defaultGroup].push(key); + } + }); + return groupedKeys; + } + function filterHiddenOptions(key) { + return (yargs.getOptions().hiddenOptions.indexOf(key) < 0 || + yargs.parsed.argv[yargs.getOptions().showHiddenOpt]); + } + self.showHelp = (level) => { + const logger = yargs.getInternalMethods().getLoggerInstance(); + if (!level) + level = 'error'; + const emit = typeof level === 'function' ? level : logger[level]; + emit(self.help()); + }; + self.functionDescription = fn => { + const description = fn.name + ? shim.Parser.decamelize(fn.name, '-') + : __('generated-value'); + return ['(', description, ')'].join(''); + }; + self.stringifiedValues = function stringifiedValues(values, separator) { + let string = ''; + const sep = separator || ', '; + const array = [].concat(values); + if (!values || !array.length) + return string; + array.forEach(value => { + if (string.length) + string += sep; + string += JSON.stringify(value); + }); + return string; + }; + function defaultString(value, defaultDescription) { + let string = `[${__('default:')} `; + if (value === undefined && !defaultDescription) + return null; + if (defaultDescription) { + string += defaultDescription; + } + else { + switch (typeof value) { + case 'string': + string += `"${value}"`; + break; + case 'object': + string += JSON.stringify(value); + break; + default: + string += value; + } + } + return `${string}]`; + } + function windowWidth() { + const maxWidth = 80; + if (shim.process.stdColumns) { + return Math.min(maxWidth, shim.process.stdColumns); + } + else { + return maxWidth; + } + } + let version = null; + self.version = ver => { + version = ver; + }; + self.showVersion = level => { + const logger = yargs.getInternalMethods().getLoggerInstance(); + if (!level) + level = 'error'; + const emit = typeof level === 'function' ? level : logger[level]; + emit(version); + }; + self.reset = function reset(localLookup) { + failMessage = null; + failureOutput = false; + usages = []; + usageDisabled = false; + epilogs = []; + examples = []; + commands = []; + descriptions = objFilter(descriptions, k => !localLookup[k]); + return self; + }; + const frozens = []; + self.freeze = function freeze() { + frozens.push({ + failMessage, + failureOutput, + usages, + usageDisabled, + epilogs, + examples, + commands, + descriptions, + }); + }; + self.unfreeze = function unfreeze() { + const frozen = frozens.pop(); + if (!frozen) + return; + ({ + failMessage, + failureOutput, + usages, + usageDisabled, + epilogs, + examples, + commands, + descriptions, + } = frozen); + }; + return self; +} +function isIndentedText(text) { + return typeof text === 'object'; +} +function addIndentation(text, indent) { + return isIndentedText(text) + ? { text: text.text, indentation: text.indentation + indent } + : { text, indentation: indent }; +} +function getIndentation(text) { + return isIndentedText(text) ? text.indentation : 0; +} +function getText(text) { + return isIndentedText(text) ? text.text : text; +} diff --git a/node_modules/yargs/build/lib/utils/apply-extends.js b/node_modules/yargs/build/lib/utils/apply-extends.js new file mode 100644 index 00000000..0e593b4f --- /dev/null +++ b/node_modules/yargs/build/lib/utils/apply-extends.js @@ -0,0 +1,59 @@ +import { YError } from '../yerror.js'; +let previouslyVisitedConfigs = []; +let shim; +export function applyExtends(config, cwd, mergeExtends, _shim) { + shim = _shim; + let defaultConfig = {}; + if (Object.prototype.hasOwnProperty.call(config, 'extends')) { + if (typeof config.extends !== 'string') + return defaultConfig; + const isPath = /\.json|\..*rc$/.test(config.extends); + let pathToDefault = null; + if (!isPath) { + try { + pathToDefault = require.resolve(config.extends); + } + catch (_err) { + return config; + } + } + else { + pathToDefault = getPathToDefaultConfig(cwd, config.extends); + } + checkForCircularExtends(pathToDefault); + previouslyVisitedConfigs.push(pathToDefault); + defaultConfig = isPath + ? JSON.parse(shim.readFileSync(pathToDefault, 'utf8')) + : require(config.extends); + delete config.extends; + defaultConfig = applyExtends(defaultConfig, shim.path.dirname(pathToDefault), mergeExtends, shim); + } + previouslyVisitedConfigs = []; + return mergeExtends + ? mergeDeep(defaultConfig, config) + : Object.assign({}, defaultConfig, config); +} +function checkForCircularExtends(cfgPath) { + if (previouslyVisitedConfigs.indexOf(cfgPath) > -1) { + throw new YError(`Circular extended configurations: '${cfgPath}'.`); + } +} +function getPathToDefaultConfig(cwd, pathToExtend) { + return shim.path.resolve(cwd, pathToExtend); +} +function mergeDeep(config1, config2) { + const target = {}; + function isObject(obj) { + return obj && typeof obj === 'object' && !Array.isArray(obj); + } + Object.assign(target, config1); + for (const key of Object.keys(config2)) { + if (isObject(config2[key]) && isObject(target[key])) { + target[key] = mergeDeep(config1[key], config2[key]); + } + else { + target[key] = config2[key]; + } + } + return target; +} diff --git a/node_modules/yargs/build/lib/utils/is-promise.js b/node_modules/yargs/build/lib/utils/is-promise.js new file mode 100644 index 00000000..d250c08a --- /dev/null +++ b/node_modules/yargs/build/lib/utils/is-promise.js @@ -0,0 +1,5 @@ +export function isPromise(maybePromise) { + return (!!maybePromise && + !!maybePromise.then && + typeof maybePromise.then === 'function'); +} diff --git a/node_modules/yargs/build/lib/utils/levenshtein.js b/node_modules/yargs/build/lib/utils/levenshtein.js new file mode 100644 index 00000000..60575ef3 --- /dev/null +++ b/node_modules/yargs/build/lib/utils/levenshtein.js @@ -0,0 +1,34 @@ +export function levenshtein(a, b) { + if (a.length === 0) + return b.length; + if (b.length === 0) + return a.length; + const matrix = []; + let i; + for (i = 0; i <= b.length; i++) { + matrix[i] = [i]; + } + let j; + for (j = 0; j <= a.length; j++) { + matrix[0][j] = j; + } + for (i = 1; i <= b.length; i++) { + for (j = 1; j <= a.length; j++) { + if (b.charAt(i - 1) === a.charAt(j - 1)) { + matrix[i][j] = matrix[i - 1][j - 1]; + } + else { + if (i > 1 && + j > 1 && + b.charAt(i - 2) === a.charAt(j - 1) && + b.charAt(i - 1) === a.charAt(j - 2)) { + matrix[i][j] = matrix[i - 2][j - 2] + 1; + } + else { + matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1)); + } + } + } + } + return matrix[b.length][a.length]; +} diff --git a/node_modules/yargs/build/lib/utils/maybe-async-result.js b/node_modules/yargs/build/lib/utils/maybe-async-result.js new file mode 100644 index 00000000..8c6a40c6 --- /dev/null +++ b/node_modules/yargs/build/lib/utils/maybe-async-result.js @@ -0,0 +1,17 @@ +import { isPromise } from './is-promise.js'; +export function maybeAsyncResult(getResult, resultHandler, errorHandler = (err) => { + throw err; +}) { + try { + const result = isFunction(getResult) ? getResult() : getResult; + return isPromise(result) + ? result.then((result) => resultHandler(result)) + : resultHandler(result); + } + catch (err) { + return errorHandler(err); + } +} +function isFunction(arg) { + return typeof arg === 'function'; +} diff --git a/node_modules/yargs/build/lib/utils/obj-filter.js b/node_modules/yargs/build/lib/utils/obj-filter.js new file mode 100644 index 00000000..cd68ad29 --- /dev/null +++ b/node_modules/yargs/build/lib/utils/obj-filter.js @@ -0,0 +1,10 @@ +import { objectKeys } from '../typings/common-types.js'; +export function objFilter(original = {}, filter = () => true) { + const obj = {}; + objectKeys(original).forEach(key => { + if (filter(key, original[key])) { + obj[key] = original[key]; + } + }); + return obj; +} diff --git a/node_modules/yargs/build/lib/utils/process-argv.js b/node_modules/yargs/build/lib/utils/process-argv.js new file mode 100644 index 00000000..74dc9e4c --- /dev/null +++ b/node_modules/yargs/build/lib/utils/process-argv.js @@ -0,0 +1,17 @@ +function getProcessArgvBinIndex() { + if (isBundledElectronApp()) + return 0; + return 1; +} +function isBundledElectronApp() { + return isElectronApp() && !process.defaultApp; +} +function isElectronApp() { + return !!process.versions.electron; +} +export function hideBin(argv) { + return argv.slice(getProcessArgvBinIndex() + 1); +} +export function getProcessArgvBin() { + return process.argv[getProcessArgvBinIndex()]; +} diff --git a/node_modules/yargs/build/lib/utils/set-blocking.js b/node_modules/yargs/build/lib/utils/set-blocking.js new file mode 100644 index 00000000..88fb806d --- /dev/null +++ b/node_modules/yargs/build/lib/utils/set-blocking.js @@ -0,0 +1,12 @@ +export default function setBlocking(blocking) { + if (typeof process === 'undefined') + return; + [process.stdout, process.stderr].forEach(_stream => { + const stream = _stream; + if (stream._handle && + stream.isTTY && + typeof stream._handle.setBlocking === 'function') { + stream._handle.setBlocking(blocking); + } + }); +} diff --git a/node_modules/yargs/build/lib/utils/which-module.js b/node_modules/yargs/build/lib/utils/which-module.js new file mode 100644 index 00000000..5974e226 --- /dev/null +++ b/node_modules/yargs/build/lib/utils/which-module.js @@ -0,0 +1,10 @@ +export default function whichModule(exported) { + if (typeof require === 'undefined') + return null; + for (let i = 0, files = Object.keys(require.cache), mod; i < files.length; i++) { + mod = require.cache[files[i]]; + if (mod.exports === exported) + return mod; + } + return null; +} diff --git a/node_modules/yargs/build/lib/validation.js b/node_modules/yargs/build/lib/validation.js new file mode 100644 index 00000000..c6f0ab01 --- /dev/null +++ b/node_modules/yargs/build/lib/validation.js @@ -0,0 +1,305 @@ +import { argsert } from './argsert.js'; +import { assertNotStrictEqual, } from './typings/common-types.js'; +import { levenshtein as distance } from './utils/levenshtein.js'; +import { objFilter } from './utils/obj-filter.js'; +const specialKeys = ['$0', '--', '_']; +export function validation(yargs, usage, shim) { + const __ = shim.y18n.__; + const __n = shim.y18n.__n; + const self = {}; + self.nonOptionCount = function nonOptionCount(argv) { + const demandedCommands = yargs.getDemandedCommands(); + const positionalCount = argv._.length + (argv['--'] ? argv['--'].length : 0); + const _s = positionalCount - yargs.getInternalMethods().getContext().commands.length; + if (demandedCommands._ && + (_s < demandedCommands._.min || _s > demandedCommands._.max)) { + if (_s < demandedCommands._.min) { + if (demandedCommands._.minMsg !== undefined) { + usage.fail(demandedCommands._.minMsg + ? demandedCommands._.minMsg + .replace(/\$0/g, _s.toString()) + .replace(/\$1/, demandedCommands._.min.toString()) + : null); + } + else { + 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())); + } + } + else if (_s > demandedCommands._.max) { + if (demandedCommands._.maxMsg !== undefined) { + usage.fail(demandedCommands._.maxMsg + ? demandedCommands._.maxMsg + .replace(/\$0/g, _s.toString()) + .replace(/\$1/, demandedCommands._.max.toString()) + : null); + } + else { + 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())); + } + } + } + }; + self.positionalCount = function positionalCount(required, observed) { + if (observed < required) { + 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 + '')); + } + }; + self.requiredArguments = function requiredArguments(argv, demandedOptions) { + let missing = null; + for (const key of Object.keys(demandedOptions)) { + if (!Object.prototype.hasOwnProperty.call(argv, key) || + typeof argv[key] === 'undefined') { + missing = missing || {}; + missing[key] = demandedOptions[key]; + } + } + if (missing) { + const customMsgs = []; + for (const key of Object.keys(missing)) { + const msg = missing[key]; + if (msg && customMsgs.indexOf(msg) < 0) { + customMsgs.push(msg); + } + } + const customMsg = customMsgs.length ? `\n${customMsgs.join('\n')}` : ''; + usage.fail(__n('Missing required argument: %s', 'Missing required arguments: %s', Object.keys(missing).length, Object.keys(missing).join(', ') + customMsg)); + } + }; + self.unknownArguments = function unknownArguments(argv, aliases, positionalMap, isDefaultCommand, checkPositionals = true) { + var _a; + const commandKeys = yargs + .getInternalMethods() + .getCommandInstance() + .getCommands(); + const unknown = []; + const currentContext = yargs.getInternalMethods().getContext(); + Object.keys(argv).forEach(key => { + if (!specialKeys.includes(key) && + !Object.prototype.hasOwnProperty.call(positionalMap, key) && + !Object.prototype.hasOwnProperty.call(yargs.getInternalMethods().getParseContext(), key) && + !self.isValidAndSomeAliasIsNotNew(key, aliases)) { + unknown.push(key); + } + }); + if (checkPositionals && + (currentContext.commands.length > 0 || + commandKeys.length > 0 || + isDefaultCommand)) { + argv._.slice(currentContext.commands.length).forEach(key => { + if (!commandKeys.includes('' + key)) { + unknown.push('' + key); + } + }); + } + if (checkPositionals) { + const demandedCommands = yargs.getDemandedCommands(); + const maxNonOptDemanded = ((_a = demandedCommands._) === null || _a === void 0 ? void 0 : _a.max) || 0; + const expected = currentContext.commands.length + maxNonOptDemanded; + if (expected < argv._.length) { + argv._.slice(expected).forEach(key => { + key = String(key); + if (!currentContext.commands.includes(key) && + !unknown.includes(key)) { + unknown.push(key); + } + }); + } + } + if (unknown.length) { + usage.fail(__n('Unknown argument: %s', 'Unknown arguments: %s', unknown.length, unknown.join(', '))); + } + }; + self.unknownCommands = function unknownCommands(argv) { + const commandKeys = yargs + .getInternalMethods() + .getCommandInstance() + .getCommands(); + const unknown = []; + const currentContext = yargs.getInternalMethods().getContext(); + if (currentContext.commands.length > 0 || commandKeys.length > 0) { + argv._.slice(currentContext.commands.length).forEach(key => { + if (!commandKeys.includes('' + key)) { + unknown.push('' + key); + } + }); + } + if (unknown.length > 0) { + usage.fail(__n('Unknown command: %s', 'Unknown commands: %s', unknown.length, unknown.join(', '))); + return true; + } + else { + return false; + } + }; + self.isValidAndSomeAliasIsNotNew = function isValidAndSomeAliasIsNotNew(key, aliases) { + if (!Object.prototype.hasOwnProperty.call(aliases, key)) { + return false; + } + const newAliases = yargs.parsed.newAliases; + return [key, ...aliases[key]].some(a => !Object.prototype.hasOwnProperty.call(newAliases, a) || !newAliases[key]); + }; + self.limitedChoices = function limitedChoices(argv) { + const options = yargs.getOptions(); + const invalid = {}; + if (!Object.keys(options.choices).length) + return; + Object.keys(argv).forEach(key => { + if (specialKeys.indexOf(key) === -1 && + Object.prototype.hasOwnProperty.call(options.choices, key)) { + [].concat(argv[key]).forEach(value => { + if (options.choices[key].indexOf(value) === -1 && + value !== undefined) { + invalid[key] = (invalid[key] || []).concat(value); + } + }); + } + }); + const invalidKeys = Object.keys(invalid); + if (!invalidKeys.length) + return; + let msg = __('Invalid values:'); + invalidKeys.forEach(key => { + msg += `\n ${__('Argument: %s, Given: %s, Choices: %s', key, usage.stringifiedValues(invalid[key]), usage.stringifiedValues(options.choices[key]))}`; + }); + usage.fail(msg); + }; + let implied = {}; + self.implies = function implies(key, value) { + argsert(' [array|number|string]', [key, value], arguments.length); + if (typeof key === 'object') { + Object.keys(key).forEach(k => { + self.implies(k, key[k]); + }); + } + else { + yargs.global(key); + if (!implied[key]) { + implied[key] = []; + } + if (Array.isArray(value)) { + value.forEach(i => self.implies(key, i)); + } + else { + assertNotStrictEqual(value, undefined, shim); + implied[key].push(value); + } + } + }; + self.getImplied = function getImplied() { + return implied; + }; + function keyExists(argv, val) { + const num = Number(val); + val = isNaN(num) ? val : num; + if (typeof val === 'number') { + val = argv._.length >= val; + } + else if (val.match(/^--no-.+/)) { + val = val.match(/^--no-(.+)/)[1]; + val = !Object.prototype.hasOwnProperty.call(argv, val); + } + else { + val = Object.prototype.hasOwnProperty.call(argv, val); + } + return val; + } + self.implications = function implications(argv) { + const implyFail = []; + Object.keys(implied).forEach(key => { + const origKey = key; + (implied[key] || []).forEach(value => { + let key = origKey; + const origValue = value; + key = keyExists(argv, key); + value = keyExists(argv, value); + if (key && !value) { + implyFail.push(` ${origKey} -> ${origValue}`); + } + }); + }); + if (implyFail.length) { + let msg = `${__('Implications failed:')}\n`; + implyFail.forEach(value => { + msg += value; + }); + usage.fail(msg); + } + }; + let conflicting = {}; + self.conflicts = function conflicts(key, value) { + argsert(' [array|string]', [key, value], arguments.length); + if (typeof key === 'object') { + Object.keys(key).forEach(k => { + self.conflicts(k, key[k]); + }); + } + else { + yargs.global(key); + if (!conflicting[key]) { + conflicting[key] = []; + } + if (Array.isArray(value)) { + value.forEach(i => self.conflicts(key, i)); + } + else { + conflicting[key].push(value); + } + } + }; + self.getConflicting = () => conflicting; + self.conflicting = function conflictingFn(argv) { + Object.keys(argv).forEach(key => { + if (conflicting[key]) { + conflicting[key].forEach(value => { + if (value && argv[key] !== undefined && argv[value] !== undefined) { + usage.fail(__('Arguments %s and %s are mutually exclusive', key, value)); + } + }); + } + }); + if (yargs.getInternalMethods().getParserConfiguration()['strip-dashed']) { + Object.keys(conflicting).forEach(key => { + conflicting[key].forEach(value => { + if (value && + argv[shim.Parser.camelCase(key)] !== undefined && + argv[shim.Parser.camelCase(value)] !== undefined) { + usage.fail(__('Arguments %s and %s are mutually exclusive', key, value)); + } + }); + }); + } + }; + self.recommendCommands = function recommendCommands(cmd, potentialCommands) { + const threshold = 3; + potentialCommands = potentialCommands.sort((a, b) => b.length - a.length); + let recommended = null; + let bestDistance = Infinity; + for (let i = 0, candidate; (candidate = potentialCommands[i]) !== undefined; i++) { + const d = distance(cmd, candidate); + if (d <= threshold && d < bestDistance) { + bestDistance = d; + recommended = candidate; + } + } + if (recommended) + usage.fail(__('Did you mean %s?', recommended)); + }; + self.reset = function reset(localLookup) { + implied = objFilter(implied, k => !localLookup[k]); + conflicting = objFilter(conflicting, k => !localLookup[k]); + return self; + }; + const frozens = []; + self.freeze = function freeze() { + frozens.push({ + implied, + conflicting, + }); + }; + self.unfreeze = function unfreeze() { + const frozen = frozens.pop(); + assertNotStrictEqual(frozen, undefined, shim); + ({ implied, conflicting } = frozen); + }; + return self; +} diff --git a/node_modules/yargs/build/lib/yargs-factory.js b/node_modules/yargs/build/lib/yargs-factory.js new file mode 100644 index 00000000..f4e63e2b --- /dev/null +++ b/node_modules/yargs/build/lib/yargs-factory.js @@ -0,0 +1,1483 @@ +var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { + if (kind === "m") throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); + 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"); + return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; +}; +var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { + if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); + 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"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); +}; +var _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_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_versionOpt, _YargsInstance_validation; +import { command as Command, } from './command.js'; +import { assertNotStrictEqual, assertSingleKey, objectKeys, } from './typings/common-types.js'; +import { YError } from './yerror.js'; +import { usage as Usage } from './usage.js'; +import { argsert } from './argsert.js'; +import { completion as Completion, } from './completion.js'; +import { validation as Validation, } from './validation.js'; +import { objFilter } from './utils/obj-filter.js'; +import { applyExtends } from './utils/apply-extends.js'; +import { applyMiddleware, GlobalMiddleware, } from './middleware.js'; +import { isPromise } from './utils/is-promise.js'; +import { maybeAsyncResult } from './utils/maybe-async-result.js'; +import setBlocking from './utils/set-blocking.js'; +export function YargsFactory(_shim) { + return (processArgs = [], cwd = _shim.process.cwd(), parentRequire) => { + const yargs = new YargsInstance(processArgs, cwd, parentRequire, _shim); + Object.defineProperty(yargs, 'argv', { + get: () => { + return yargs.parse(); + }, + enumerable: true, + }); + yargs.help(); + yargs.version(); + return yargs; + }; +} +const kCopyDoubleDash = Symbol('copyDoubleDash'); +const kCreateLogger = Symbol('copyDoubleDash'); +const kDeleteFromParserHintObject = Symbol('deleteFromParserHintObject'); +const kEmitWarning = Symbol('emitWarning'); +const kFreeze = Symbol('freeze'); +const kGetDollarZero = Symbol('getDollarZero'); +const kGetParserConfiguration = Symbol('getParserConfiguration'); +const kGuessLocale = Symbol('guessLocale'); +const kGuessVersion = Symbol('guessVersion'); +const kParsePositionalNumbers = Symbol('parsePositionalNumbers'); +const kPkgUp = Symbol('pkgUp'); +const kPopulateParserHintArray = Symbol('populateParserHintArray'); +const kPopulateParserHintSingleValueDictionary = Symbol('populateParserHintSingleValueDictionary'); +const kPopulateParserHintArrayDictionary = Symbol('populateParserHintArrayDictionary'); +const kPopulateParserHintDictionary = Symbol('populateParserHintDictionary'); +const kSanitizeKey = Symbol('sanitizeKey'); +const kSetKey = Symbol('setKey'); +const kUnfreeze = Symbol('unfreeze'); +const kValidateAsync = Symbol('validateAsync'); +const kGetCommandInstance = Symbol('getCommandInstance'); +const kGetContext = Symbol('getContext'); +const kGetHasOutput = Symbol('getHasOutput'); +const kGetLoggerInstance = Symbol('getLoggerInstance'); +const kGetParseContext = Symbol('getParseContext'); +const kGetUsageInstance = Symbol('getUsageInstance'); +const kGetValidationInstance = Symbol('getValidationInstance'); +const kHasParseCallback = Symbol('hasParseCallback'); +const kPostProcess = Symbol('postProcess'); +const kRebase = Symbol('rebase'); +const kReset = Symbol('reset'); +const kRunYargsParserAndExecuteCommands = Symbol('runYargsParserAndExecuteCommands'); +const kRunValidation = Symbol('runValidation'); +const kSetHasOutput = Symbol('setHasOutput'); +const kTrackManuallySetKeys = Symbol('kTrackManuallySetKeys'); +export class YargsInstance { + constructor(processArgs = [], cwd, parentRequire, shim) { + this.customScriptName = false; + this.parsed = false; + _YargsInstance_command.set(this, void 0); + _YargsInstance_cwd.set(this, void 0); + _YargsInstance_context.set(this, { commands: [], fullCommands: [] }); + _YargsInstance_completion.set(this, null); + _YargsInstance_completionCommand.set(this, null); + _YargsInstance_defaultShowHiddenOpt.set(this, 'show-hidden'); + _YargsInstance_exitError.set(this, null); + _YargsInstance_detectLocale.set(this, true); + _YargsInstance_emittedWarnings.set(this, {}); + _YargsInstance_exitProcess.set(this, true); + _YargsInstance_frozens.set(this, []); + _YargsInstance_globalMiddleware.set(this, void 0); + _YargsInstance_groups.set(this, {}); + _YargsInstance_hasOutput.set(this, false); + _YargsInstance_helpOpt.set(this, null); + _YargsInstance_logger.set(this, void 0); + _YargsInstance_output.set(this, ''); + _YargsInstance_options.set(this, void 0); + _YargsInstance_parentRequire.set(this, void 0); + _YargsInstance_parserConfig.set(this, {}); + _YargsInstance_parseFn.set(this, null); + _YargsInstance_parseContext.set(this, null); + _YargsInstance_pkgs.set(this, {}); + _YargsInstance_preservedGroups.set(this, {}); + _YargsInstance_processArgs.set(this, void 0); + _YargsInstance_recommendCommands.set(this, false); + _YargsInstance_shim.set(this, void 0); + _YargsInstance_strict.set(this, false); + _YargsInstance_strictCommands.set(this, false); + _YargsInstance_strictOptions.set(this, false); + _YargsInstance_usage.set(this, void 0); + _YargsInstance_versionOpt.set(this, null); + _YargsInstance_validation.set(this, void 0); + __classPrivateFieldSet(this, _YargsInstance_shim, shim, "f"); + __classPrivateFieldSet(this, _YargsInstance_processArgs, processArgs, "f"); + __classPrivateFieldSet(this, _YargsInstance_cwd, cwd, "f"); + __classPrivateFieldSet(this, _YargsInstance_parentRequire, parentRequire, "f"); + __classPrivateFieldSet(this, _YargsInstance_globalMiddleware, new GlobalMiddleware(this), "f"); + this.$0 = this[kGetDollarZero](); + this[kReset](); + __classPrivateFieldSet(this, _YargsInstance_command, __classPrivateFieldGet(this, _YargsInstance_command, "f"), "f"); + __classPrivateFieldSet(this, _YargsInstance_usage, __classPrivateFieldGet(this, _YargsInstance_usage, "f"), "f"); + __classPrivateFieldSet(this, _YargsInstance_validation, __classPrivateFieldGet(this, _YargsInstance_validation, "f"), "f"); + __classPrivateFieldSet(this, _YargsInstance_options, __classPrivateFieldGet(this, _YargsInstance_options, "f"), "f"); + __classPrivateFieldGet(this, _YargsInstance_options, "f").showHiddenOpt = __classPrivateFieldGet(this, _YargsInstance_defaultShowHiddenOpt, "f"); + __classPrivateFieldSet(this, _YargsInstance_logger, this[kCreateLogger](), "f"); + } + addHelpOpt(opt, msg) { + const defaultHelpOpt = 'help'; + argsert('[string|boolean] [string]', [opt, msg], arguments.length); + if (__classPrivateFieldGet(this, _YargsInstance_helpOpt, "f")) { + this[kDeleteFromParserHintObject](__classPrivateFieldGet(this, _YargsInstance_helpOpt, "f")); + __classPrivateFieldSet(this, _YargsInstance_helpOpt, null, "f"); + } + if (opt === false && msg === undefined) + return this; + __classPrivateFieldSet(this, _YargsInstance_helpOpt, typeof opt === 'string' ? opt : defaultHelpOpt, "f"); + this.boolean(__classPrivateFieldGet(this, _YargsInstance_helpOpt, "f")); + this.describe(__classPrivateFieldGet(this, _YargsInstance_helpOpt, "f"), msg || __classPrivateFieldGet(this, _YargsInstance_usage, "f").deferY18nLookup('Show help')); + return this; + } + help(opt, msg) { + return this.addHelpOpt(opt, msg); + } + addShowHiddenOpt(opt, msg) { + argsert('[string|boolean] [string]', [opt, msg], arguments.length); + if (opt === false && msg === undefined) + return this; + const showHiddenOpt = typeof opt === 'string' ? opt : __classPrivateFieldGet(this, _YargsInstance_defaultShowHiddenOpt, "f"); + this.boolean(showHiddenOpt); + this.describe(showHiddenOpt, msg || __classPrivateFieldGet(this, _YargsInstance_usage, "f").deferY18nLookup('Show hidden options')); + __classPrivateFieldGet(this, _YargsInstance_options, "f").showHiddenOpt = showHiddenOpt; + return this; + } + showHidden(opt, msg) { + return this.addShowHiddenOpt(opt, msg); + } + alias(key, value) { + argsert(' [string|array]', [key, value], arguments.length); + this[kPopulateParserHintArrayDictionary](this.alias.bind(this), 'alias', key, value); + return this; + } + array(keys) { + argsert('', [keys], arguments.length); + this[kPopulateParserHintArray]('array', keys); + this[kTrackManuallySetKeys](keys); + return this; + } + boolean(keys) { + argsert('', [keys], arguments.length); + this[kPopulateParserHintArray]('boolean', keys); + this[kTrackManuallySetKeys](keys); + return this; + } + check(f, global) { + argsert(' [boolean]', [f, global], arguments.length); + this.middleware((argv, _yargs) => { + return maybeAsyncResult(() => { + return f(argv, _yargs.getOptions()); + }, (result) => { + if (!result) { + __classPrivateFieldGet(this, _YargsInstance_usage, "f").fail(__classPrivateFieldGet(this, _YargsInstance_shim, "f").y18n.__('Argument check failed: %s', f.toString())); + } + else if (typeof result === 'string' || result instanceof Error) { + __classPrivateFieldGet(this, _YargsInstance_usage, "f").fail(result.toString(), result); + } + return argv; + }, (err) => { + __classPrivateFieldGet(this, _YargsInstance_usage, "f").fail(err.message ? err.message : err.toString(), err); + return argv; + }); + }, false, global); + return this; + } + choices(key, value) { + argsert(' [string|array]', [key, value], arguments.length); + this[kPopulateParserHintArrayDictionary](this.choices.bind(this), 'choices', key, value); + return this; + } + coerce(keys, value) { + argsert(' [function]', [keys, value], arguments.length); + if (Array.isArray(keys)) { + if (!value) { + throw new YError('coerce callback must be provided'); + } + for (const key of keys) { + this.coerce(key, value); + } + return this; + } + else if (typeof keys === 'object') { + for (const key of Object.keys(keys)) { + this.coerce(key, keys[key]); + } + return this; + } + if (!value) { + throw new YError('coerce callback must be provided'); + } + __classPrivateFieldGet(this, _YargsInstance_options, "f").key[keys] = true; + __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").addCoerceMiddleware((argv, yargs) => { + let aliases; + return maybeAsyncResult(() => { + aliases = yargs.getAliases(); + return value(argv[keys]); + }, (result) => { + argv[keys] = result; + if (aliases[keys]) { + for (const alias of aliases[keys]) { + argv[alias] = result; + } + } + return argv; + }, (err) => { + throw new YError(err.message); + }); + }, keys); + return this; + } + conflicts(key1, key2) { + argsert(' [string|array]', [key1, key2], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_validation, "f").conflicts(key1, key2); + return this; + } + config(key = 'config', msg, parseFn) { + argsert('[object|string] [string|function] [function]', [key, msg, parseFn], arguments.length); + if (typeof key === 'object' && !Array.isArray(key)) { + key = applyExtends(key, __classPrivateFieldGet(this, _YargsInstance_cwd, "f"), this[kGetParserConfiguration]()['deep-merge-config'] || false, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + __classPrivateFieldGet(this, _YargsInstance_options, "f").configObjects = (__classPrivateFieldGet(this, _YargsInstance_options, "f").configObjects || []).concat(key); + return this; + } + if (typeof msg === 'function') { + parseFn = msg; + msg = undefined; + } + this.describe(key, msg || __classPrivateFieldGet(this, _YargsInstance_usage, "f").deferY18nLookup('Path to JSON config file')); + (Array.isArray(key) ? key : [key]).forEach(k => { + __classPrivateFieldGet(this, _YargsInstance_options, "f").config[k] = parseFn || true; + }); + return this; + } + completion(cmd, desc, fn) { + argsert('[string] [string|boolean|function] [function]', [cmd, desc, fn], arguments.length); + if (typeof desc === 'function') { + fn = desc; + desc = undefined; + } + __classPrivateFieldSet(this, _YargsInstance_completionCommand, cmd || __classPrivateFieldGet(this, _YargsInstance_completionCommand, "f") || 'completion', "f"); + if (!desc && desc !== false) { + desc = 'generate completion script'; + } + this.command(__classPrivateFieldGet(this, _YargsInstance_completionCommand, "f"), desc); + if (fn) + __classPrivateFieldGet(this, _YargsInstance_completion, "f").registerFunction(fn); + return this; + } + command(cmd, description, builder, handler, middlewares, deprecated) { + argsert(' [string|boolean] [function|object] [function] [array] [boolean|string]', [cmd, description, builder, handler, middlewares, deprecated], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_command, "f").addHandler(cmd, description, builder, handler, middlewares, deprecated); + return this; + } + commands(cmd, description, builder, handler, middlewares, deprecated) { + return this.command(cmd, description, builder, handler, middlewares, deprecated); + } + commandDir(dir, opts) { + argsert(' [object]', [dir, opts], arguments.length); + const req = __classPrivateFieldGet(this, _YargsInstance_parentRequire, "f") || __classPrivateFieldGet(this, _YargsInstance_shim, "f").require; + __classPrivateFieldGet(this, _YargsInstance_command, "f").addDirectory(dir, req, __classPrivateFieldGet(this, _YargsInstance_shim, "f").getCallerFile(), opts); + return this; + } + count(keys) { + argsert('', [keys], arguments.length); + this[kPopulateParserHintArray]('count', keys); + this[kTrackManuallySetKeys](keys); + return this; + } + default(key, value, defaultDescription) { + argsert(' [*] [string]', [key, value, defaultDescription], arguments.length); + if (defaultDescription) { + assertSingleKey(key, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + __classPrivateFieldGet(this, _YargsInstance_options, "f").defaultDescription[key] = defaultDescription; + } + if (typeof value === 'function') { + assertSingleKey(key, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + if (!__classPrivateFieldGet(this, _YargsInstance_options, "f").defaultDescription[key]) + __classPrivateFieldGet(this, _YargsInstance_options, "f").defaultDescription[key] = + __classPrivateFieldGet(this, _YargsInstance_usage, "f").functionDescription(value); + value = value.call(); + } + this[kPopulateParserHintSingleValueDictionary](this.default.bind(this), 'default', key, value); + return this; + } + defaults(key, value, defaultDescription) { + return this.default(key, value, defaultDescription); + } + demandCommand(min = 1, max, minMsg, maxMsg) { + argsert('[number] [number|string] [string|null|undefined] [string|null|undefined]', [min, max, minMsg, maxMsg], arguments.length); + if (typeof max !== 'number') { + minMsg = max; + max = Infinity; + } + this.global('_', false); + __classPrivateFieldGet(this, _YargsInstance_options, "f").demandedCommands._ = { + min, + max, + minMsg, + maxMsg, + }; + return this; + } + demand(keys, max, msg) { + if (Array.isArray(max)) { + max.forEach(key => { + assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + this.demandOption(key, msg); + }); + max = Infinity; + } + else if (typeof max !== 'number') { + msg = max; + max = Infinity; + } + if (typeof keys === 'number') { + assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + this.demandCommand(keys, max, msg, msg); + } + else if (Array.isArray(keys)) { + keys.forEach(key => { + assertNotStrictEqual(msg, true, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + this.demandOption(key, msg); + }); + } + else { + if (typeof msg === 'string') { + this.demandOption(keys, msg); + } + else if (msg === true || typeof msg === 'undefined') { + this.demandOption(keys); + } + } + return this; + } + demandOption(keys, msg) { + argsert(' [string]', [keys, msg], arguments.length); + this[kPopulateParserHintSingleValueDictionary](this.demandOption.bind(this), 'demandedOptions', keys, msg); + return this; + } + deprecateOption(option, message) { + argsert(' [string|boolean]', [option, message], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_options, "f").deprecatedOptions[option] = message; + return this; + } + describe(keys, description) { + argsert(' [string]', [keys, description], arguments.length); + this[kSetKey](keys, true); + __classPrivateFieldGet(this, _YargsInstance_usage, "f").describe(keys, description); + return this; + } + detectLocale(detect) { + argsert('', [detect], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_detectLocale, detect, "f"); + return this; + } + env(prefix) { + argsert('[string|boolean]', [prefix], arguments.length); + if (prefix === false) + delete __classPrivateFieldGet(this, _YargsInstance_options, "f").envPrefix; + else + __classPrivateFieldGet(this, _YargsInstance_options, "f").envPrefix = prefix || ''; + return this; + } + epilogue(msg) { + argsert('', [msg], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_usage, "f").epilog(msg); + return this; + } + epilog(msg) { + return this.epilogue(msg); + } + example(cmd, description) { + argsert(' [string]', [cmd, description], arguments.length); + if (Array.isArray(cmd)) { + cmd.forEach(exampleParams => this.example(...exampleParams)); + } + else { + __classPrivateFieldGet(this, _YargsInstance_usage, "f").example(cmd, description); + } + return this; + } + exit(code, err) { + __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, "f"); + __classPrivateFieldSet(this, _YargsInstance_exitError, err, "f"); + if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, "f")) + __classPrivateFieldGet(this, _YargsInstance_shim, "f").process.exit(code); + } + exitProcess(enabled = true) { + argsert('[boolean]', [enabled], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_exitProcess, enabled, "f"); + return this; + } + fail(f) { + argsert('', [f], arguments.length); + if (typeof f === 'boolean' && f !== false) { + throw new YError("Invalid first argument. Expected function or boolean 'false'"); + } + __classPrivateFieldGet(this, _YargsInstance_usage, "f").failFn(f); + return this; + } + getAliases() { + return this.parsed ? this.parsed.aliases : {}; + } + async getCompletion(args, done) { + argsert(' [function]', [args, done], arguments.length); + if (!done) { + return new Promise((resolve, reject) => { + __classPrivateFieldGet(this, _YargsInstance_completion, "f").getCompletion(args, (err, completions) => { + if (err) + reject(err); + else + resolve(completions); + }); + }); + } + else { + return __classPrivateFieldGet(this, _YargsInstance_completion, "f").getCompletion(args, done); + } + } + getDemandedOptions() { + argsert([], 0); + return __classPrivateFieldGet(this, _YargsInstance_options, "f").demandedOptions; + } + getDemandedCommands() { + argsert([], 0); + return __classPrivateFieldGet(this, _YargsInstance_options, "f").demandedCommands; + } + getDeprecatedOptions() { + argsert([], 0); + return __classPrivateFieldGet(this, _YargsInstance_options, "f").deprecatedOptions; + } + getDetectLocale() { + return __classPrivateFieldGet(this, _YargsInstance_detectLocale, "f"); + } + getExitProcess() { + return __classPrivateFieldGet(this, _YargsInstance_exitProcess, "f"); + } + getGroups() { + return Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_groups, "f"), __classPrivateFieldGet(this, _YargsInstance_preservedGroups, "f")); + } + getHelp() { + __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, "f"); + if (!__classPrivateFieldGet(this, _YargsInstance_usage, "f").hasCachedHelpMessage()) { + if (!this.parsed) { + const parse = this[kRunYargsParserAndExecuteCommands](__classPrivateFieldGet(this, _YargsInstance_processArgs, "f"), undefined, undefined, 0, true); + if (isPromise(parse)) { + return parse.then(() => { + return __classPrivateFieldGet(this, _YargsInstance_usage, "f").help(); + }); + } + } + const builderResponse = __classPrivateFieldGet(this, _YargsInstance_command, "f").runDefaultBuilderOn(this); + if (isPromise(builderResponse)) { + return builderResponse.then(() => { + return __classPrivateFieldGet(this, _YargsInstance_usage, "f").help(); + }); + } + } + return Promise.resolve(__classPrivateFieldGet(this, _YargsInstance_usage, "f").help()); + } + getOptions() { + return __classPrivateFieldGet(this, _YargsInstance_options, "f"); + } + getStrict() { + return __classPrivateFieldGet(this, _YargsInstance_strict, "f"); + } + getStrictCommands() { + return __classPrivateFieldGet(this, _YargsInstance_strictCommands, "f"); + } + getStrictOptions() { + return __classPrivateFieldGet(this, _YargsInstance_strictOptions, "f"); + } + global(globals, global) { + argsert(' [boolean]', [globals, global], arguments.length); + globals = [].concat(globals); + if (global !== false) { + __classPrivateFieldGet(this, _YargsInstance_options, "f").local = __classPrivateFieldGet(this, _YargsInstance_options, "f").local.filter(l => globals.indexOf(l) === -1); + } + else { + globals.forEach(g => { + if (!__classPrivateFieldGet(this, _YargsInstance_options, "f").local.includes(g)) + __classPrivateFieldGet(this, _YargsInstance_options, "f").local.push(g); + }); + } + return this; + } + group(opts, groupName) { + argsert(' ', [opts, groupName], arguments.length); + const existing = __classPrivateFieldGet(this, _YargsInstance_preservedGroups, "f")[groupName] || __classPrivateFieldGet(this, _YargsInstance_groups, "f")[groupName]; + if (__classPrivateFieldGet(this, _YargsInstance_preservedGroups, "f")[groupName]) { + delete __classPrivateFieldGet(this, _YargsInstance_preservedGroups, "f")[groupName]; + } + const seen = {}; + __classPrivateFieldGet(this, _YargsInstance_groups, "f")[groupName] = (existing || []).concat(opts).filter(key => { + if (seen[key]) + return false; + return (seen[key] = true); + }); + return this; + } + hide(key) { + argsert('', [key], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_options, "f").hiddenOptions.push(key); + return this; + } + implies(key, value) { + argsert(' [number|string|array]', [key, value], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_validation, "f").implies(key, value); + return this; + } + locale(locale) { + argsert('[string]', [locale], arguments.length); + if (!locale) { + this[kGuessLocale](); + return __classPrivateFieldGet(this, _YargsInstance_shim, "f").y18n.getLocale(); + } + __classPrivateFieldSet(this, _YargsInstance_detectLocale, false, "f"); + __classPrivateFieldGet(this, _YargsInstance_shim, "f").y18n.setLocale(locale); + return this; + } + middleware(callback, applyBeforeValidation, global) { + return __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").addMiddleware(callback, !!applyBeforeValidation, global); + } + nargs(key, value) { + argsert(' [number]', [key, value], arguments.length); + this[kPopulateParserHintSingleValueDictionary](this.nargs.bind(this), 'narg', key, value); + return this; + } + normalize(keys) { + argsert('', [keys], arguments.length); + this[kPopulateParserHintArray]('normalize', keys); + return this; + } + number(keys) { + argsert('', [keys], arguments.length); + this[kPopulateParserHintArray]('number', keys); + this[kTrackManuallySetKeys](keys); + return this; + } + option(key, opt) { + argsert(' [object]', [key, opt], arguments.length); + if (typeof key === 'object') { + Object.keys(key).forEach(k => { + this.options(k, key[k]); + }); + } + else { + if (typeof opt !== 'object') { + opt = {}; + } + this[kTrackManuallySetKeys](key); + if (__classPrivateFieldGet(this, _YargsInstance_versionOpt, "f") && (key === 'version' || (opt === null || opt === void 0 ? void 0 : opt.alias) === 'version')) { + this[kEmitWarning]([ + '"version" is a reserved word.', + 'Please do one of the following:', + '- Disable version with `yargs.version(false)` if using "version" as an option', + '- Use the built-in `yargs.version` method instead (if applicable)', + '- Use a different option key', + 'https://yargs.js.org/docs/#api-reference-version', + ].join('\n'), undefined, 'versionWarning'); + } + __classPrivateFieldGet(this, _YargsInstance_options, "f").key[key] = true; + if (opt.alias) + this.alias(key, opt.alias); + const deprecate = opt.deprecate || opt.deprecated; + if (deprecate) { + this.deprecateOption(key, deprecate); + } + const demand = opt.demand || opt.required || opt.require; + if (demand) { + this.demand(key, demand); + } + if (opt.demandOption) { + this.demandOption(key, typeof opt.demandOption === 'string' ? opt.demandOption : undefined); + } + if (opt.conflicts) { + this.conflicts(key, opt.conflicts); + } + if ('default' in opt) { + this.default(key, opt.default); + } + if (opt.implies !== undefined) { + this.implies(key, opt.implies); + } + if (opt.nargs !== undefined) { + this.nargs(key, opt.nargs); + } + if (opt.config) { + this.config(key, opt.configParser); + } + if (opt.normalize) { + this.normalize(key); + } + if (opt.choices) { + this.choices(key, opt.choices); + } + if (opt.coerce) { + this.coerce(key, opt.coerce); + } + if (opt.group) { + this.group(key, opt.group); + } + if (opt.boolean || opt.type === 'boolean') { + this.boolean(key); + if (opt.alias) + this.boolean(opt.alias); + } + if (opt.array || opt.type === 'array') { + this.array(key); + if (opt.alias) + this.array(opt.alias); + } + if (opt.number || opt.type === 'number') { + this.number(key); + if (opt.alias) + this.number(opt.alias); + } + if (opt.string || opt.type === 'string') { + this.string(key); + if (opt.alias) + this.string(opt.alias); + } + if (opt.count || opt.type === 'count') { + this.count(key); + } + if (typeof opt.global === 'boolean') { + this.global(key, opt.global); + } + if (opt.defaultDescription) { + __classPrivateFieldGet(this, _YargsInstance_options, "f").defaultDescription[key] = opt.defaultDescription; + } + if (opt.skipValidation) { + this.skipValidation(key); + } + const desc = opt.describe || opt.description || opt.desc; + this.describe(key, desc); + if (opt.hidden) { + this.hide(key); + } + if (opt.requiresArg) { + this.requiresArg(key); + } + } + return this; + } + options(key, opt) { + return this.option(key, opt); + } + parse(args, shortCircuit, _parseFn) { + argsert('[string|array] [function|boolean|object] [function]', [args, shortCircuit, _parseFn], arguments.length); + this[kFreeze](); + if (typeof args === 'undefined') { + args = __classPrivateFieldGet(this, _YargsInstance_processArgs, "f"); + } + if (typeof shortCircuit === 'object') { + __classPrivateFieldSet(this, _YargsInstance_parseContext, shortCircuit, "f"); + shortCircuit = _parseFn; + } + if (typeof shortCircuit === 'function') { + __classPrivateFieldSet(this, _YargsInstance_parseFn, shortCircuit, "f"); + shortCircuit = false; + } + if (!shortCircuit) + __classPrivateFieldSet(this, _YargsInstance_processArgs, args, "f"); + if (__classPrivateFieldGet(this, _YargsInstance_parseFn, "f")) + __classPrivateFieldSet(this, _YargsInstance_exitProcess, false, "f"); + const parsed = this[kRunYargsParserAndExecuteCommands](args, !!shortCircuit); + const tmpParsed = this.parsed; + __classPrivateFieldGet(this, _YargsInstance_completion, "f").setParsed(this.parsed); + if (isPromise(parsed)) { + return parsed + .then(argv => { + if (__classPrivateFieldGet(this, _YargsInstance_parseFn, "f")) + __classPrivateFieldGet(this, _YargsInstance_parseFn, "f").call(this, __classPrivateFieldGet(this, _YargsInstance_exitError, "f"), argv, __classPrivateFieldGet(this, _YargsInstance_output, "f")); + return argv; + }) + .catch(err => { + if (__classPrivateFieldGet(this, _YargsInstance_parseFn, "f")) { + __classPrivateFieldGet(this, _YargsInstance_parseFn, "f")(err, this.parsed.argv, __classPrivateFieldGet(this, _YargsInstance_output, "f")); + } + throw err; + }) + .finally(() => { + this[kUnfreeze](); + this.parsed = tmpParsed; + }); + } + else { + if (__classPrivateFieldGet(this, _YargsInstance_parseFn, "f")) + __classPrivateFieldGet(this, _YargsInstance_parseFn, "f").call(this, __classPrivateFieldGet(this, _YargsInstance_exitError, "f"), parsed, __classPrivateFieldGet(this, _YargsInstance_output, "f")); + this[kUnfreeze](); + this.parsed = tmpParsed; + } + return parsed; + } + parseAsync(args, shortCircuit, _parseFn) { + const maybePromise = this.parse(args, shortCircuit, _parseFn); + return !isPromise(maybePromise) + ? Promise.resolve(maybePromise) + : maybePromise; + } + parseSync(args, shortCircuit, _parseFn) { + const maybePromise = this.parse(args, shortCircuit, _parseFn); + if (isPromise(maybePromise)) { + throw new YError('.parseSync() must not be used with asynchronous builders, handlers, or middleware'); + } + return maybePromise; + } + parserConfiguration(config) { + argsert('', [config], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_parserConfig, config, "f"); + return this; + } + pkgConf(key, rootPath) { + argsert(' [string]', [key, rootPath], arguments.length); + let conf = null; + const obj = this[kPkgUp](rootPath || __classPrivateFieldGet(this, _YargsInstance_cwd, "f")); + if (obj[key] && typeof obj[key] === 'object') { + conf = applyExtends(obj[key], rootPath || __classPrivateFieldGet(this, _YargsInstance_cwd, "f"), this[kGetParserConfiguration]()['deep-merge-config'] || false, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + __classPrivateFieldGet(this, _YargsInstance_options, "f").configObjects = (__classPrivateFieldGet(this, _YargsInstance_options, "f").configObjects || []).concat(conf); + } + return this; + } + positional(key, opts) { + argsert(' ', [key, opts], arguments.length); + const supportedOpts = [ + 'default', + 'defaultDescription', + 'implies', + 'normalize', + 'choices', + 'conflicts', + 'coerce', + 'type', + 'describe', + 'desc', + 'description', + 'alias', + ]; + opts = objFilter(opts, (k, v) => { + if (k === 'type' && !['string', 'number', 'boolean'].includes(v)) + return false; + return supportedOpts.includes(k); + }); + const fullCommand = __classPrivateFieldGet(this, _YargsInstance_context, "f").fullCommands[__classPrivateFieldGet(this, _YargsInstance_context, "f").fullCommands.length - 1]; + const parseOptions = fullCommand + ? __classPrivateFieldGet(this, _YargsInstance_command, "f").cmdToParseOptions(fullCommand) + : { + array: [], + alias: {}, + default: {}, + demand: {}, + }; + objectKeys(parseOptions).forEach(pk => { + const parseOption = parseOptions[pk]; + if (Array.isArray(parseOption)) { + if (parseOption.indexOf(key) !== -1) + opts[pk] = true; + } + else { + if (parseOption[key] && !(pk in opts)) + opts[pk] = parseOption[key]; + } + }); + this.group(key, __classPrivateFieldGet(this, _YargsInstance_usage, "f").getPositionalGroupName()); + return this.option(key, opts); + } + recommendCommands(recommend = true) { + argsert('[boolean]', [recommend], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_recommendCommands, recommend, "f"); + return this; + } + required(keys, max, msg) { + return this.demand(keys, max, msg); + } + require(keys, max, msg) { + return this.demand(keys, max, msg); + } + requiresArg(keys) { + argsert(' [number]', [keys], arguments.length); + if (typeof keys === 'string' && __classPrivateFieldGet(this, _YargsInstance_options, "f").narg[keys]) { + return this; + } + else { + this[kPopulateParserHintSingleValueDictionary](this.requiresArg.bind(this), 'narg', keys, NaN); + } + return this; + } + showCompletionScript($0, cmd) { + argsert('[string] [string]', [$0, cmd], arguments.length); + $0 = $0 || this.$0; + __classPrivateFieldGet(this, _YargsInstance_logger, "f").log(__classPrivateFieldGet(this, _YargsInstance_completion, "f").generateCompletionScript($0, cmd || __classPrivateFieldGet(this, _YargsInstance_completionCommand, "f") || 'completion')); + return this; + } + showHelp(level) { + argsert('[string|function]', [level], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, "f"); + if (!__classPrivateFieldGet(this, _YargsInstance_usage, "f").hasCachedHelpMessage()) { + if (!this.parsed) { + const parse = this[kRunYargsParserAndExecuteCommands](__classPrivateFieldGet(this, _YargsInstance_processArgs, "f"), undefined, undefined, 0, true); + if (isPromise(parse)) { + parse.then(() => { + __classPrivateFieldGet(this, _YargsInstance_usage, "f").showHelp(level); + }); + return this; + } + } + const builderResponse = __classPrivateFieldGet(this, _YargsInstance_command, "f").runDefaultBuilderOn(this); + if (isPromise(builderResponse)) { + builderResponse.then(() => { + __classPrivateFieldGet(this, _YargsInstance_usage, "f").showHelp(level); + }); + return this; + } + } + __classPrivateFieldGet(this, _YargsInstance_usage, "f").showHelp(level); + return this; + } + scriptName(scriptName) { + this.customScriptName = true; + this.$0 = scriptName; + return this; + } + showHelpOnFail(enabled, message) { + argsert('[boolean|string] [string]', [enabled, message], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_usage, "f").showHelpOnFail(enabled, message); + return this; + } + showVersion(level) { + argsert('[string|function]', [level], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_usage, "f").showVersion(level); + return this; + } + skipValidation(keys) { + argsert('', [keys], arguments.length); + this[kPopulateParserHintArray]('skipValidation', keys); + return this; + } + strict(enabled) { + argsert('[boolean]', [enabled], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_strict, enabled !== false, "f"); + return this; + } + strictCommands(enabled) { + argsert('[boolean]', [enabled], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_strictCommands, enabled !== false, "f"); + return this; + } + strictOptions(enabled) { + argsert('[boolean]', [enabled], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_strictOptions, enabled !== false, "f"); + return this; + } + string(keys) { + argsert('', [keys], arguments.length); + this[kPopulateParserHintArray]('string', keys); + this[kTrackManuallySetKeys](keys); + return this; + } + terminalWidth() { + argsert([], 0); + return __classPrivateFieldGet(this, _YargsInstance_shim, "f").process.stdColumns; + } + updateLocale(obj) { + return this.updateStrings(obj); + } + updateStrings(obj) { + argsert('', [obj], arguments.length); + __classPrivateFieldSet(this, _YargsInstance_detectLocale, false, "f"); + __classPrivateFieldGet(this, _YargsInstance_shim, "f").y18n.updateLocale(obj); + return this; + } + usage(msg, description, builder, handler) { + argsert(' [string|boolean] [function|object] [function]', [msg, description, builder, handler], arguments.length); + if (description !== undefined) { + assertNotStrictEqual(msg, null, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + if ((msg || '').match(/^\$0( |$)/)) { + return this.command(msg, description, builder, handler); + } + else { + throw new YError('.usage() description must start with $0 if being used as alias for .command()'); + } + } + else { + __classPrivateFieldGet(this, _YargsInstance_usage, "f").usage(msg); + return this; + } + } + version(opt, msg, ver) { + const defaultVersionOpt = 'version'; + argsert('[boolean|string] [string] [string]', [opt, msg, ver], arguments.length); + if (__classPrivateFieldGet(this, _YargsInstance_versionOpt, "f")) { + this[kDeleteFromParserHintObject](__classPrivateFieldGet(this, _YargsInstance_versionOpt, "f")); + __classPrivateFieldGet(this, _YargsInstance_usage, "f").version(undefined); + __classPrivateFieldSet(this, _YargsInstance_versionOpt, null, "f"); + } + if (arguments.length === 0) { + ver = this[kGuessVersion](); + opt = defaultVersionOpt; + } + else if (arguments.length === 1) { + if (opt === false) { + return this; + } + ver = opt; + opt = defaultVersionOpt; + } + else if (arguments.length === 2) { + ver = msg; + msg = undefined; + } + __classPrivateFieldSet(this, _YargsInstance_versionOpt, typeof opt === 'string' ? opt : defaultVersionOpt, "f"); + msg = msg || __classPrivateFieldGet(this, _YargsInstance_usage, "f").deferY18nLookup('Show version number'); + __classPrivateFieldGet(this, _YargsInstance_usage, "f").version(ver || undefined); + this.boolean(__classPrivateFieldGet(this, _YargsInstance_versionOpt, "f")); + this.describe(__classPrivateFieldGet(this, _YargsInstance_versionOpt, "f"), msg); + return this; + } + wrap(cols) { + argsert('', [cols], arguments.length); + __classPrivateFieldGet(this, _YargsInstance_usage, "f").wrap(cols); + return this; + } + [(_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_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_versionOpt = new WeakMap(), _YargsInstance_validation = new WeakMap(), kCopyDoubleDash)](argv) { + if (!argv._ || !argv['--']) + return argv; + argv._.push.apply(argv._, argv['--']); + try { + delete argv['--']; + } + catch (_err) { } + return argv; + } + [kCreateLogger]() { + return { + log: (...args) => { + if (!this[kHasParseCallback]()) + console.log(...args); + __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, "f"); + if (__classPrivateFieldGet(this, _YargsInstance_output, "f").length) + __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, "f") + '\n', "f"); + __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, "f") + args.join(' '), "f"); + }, + error: (...args) => { + if (!this[kHasParseCallback]()) + console.error(...args); + __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, "f"); + if (__classPrivateFieldGet(this, _YargsInstance_output, "f").length) + __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, "f") + '\n', "f"); + __classPrivateFieldSet(this, _YargsInstance_output, __classPrivateFieldGet(this, _YargsInstance_output, "f") + args.join(' '), "f"); + }, + }; + } + [kDeleteFromParserHintObject](optionKey) { + objectKeys(__classPrivateFieldGet(this, _YargsInstance_options, "f")).forEach((hintKey) => { + if (((key) => key === 'configObjects')(hintKey)) + return; + const hint = __classPrivateFieldGet(this, _YargsInstance_options, "f")[hintKey]; + if (Array.isArray(hint)) { + if (hint.includes(optionKey)) + hint.splice(hint.indexOf(optionKey), 1); + } + else if (typeof hint === 'object') { + delete hint[optionKey]; + } + }); + delete __classPrivateFieldGet(this, _YargsInstance_usage, "f").getDescriptions()[optionKey]; + } + [kEmitWarning](warning, type, deduplicationId) { + if (!__classPrivateFieldGet(this, _YargsInstance_emittedWarnings, "f")[deduplicationId]) { + __classPrivateFieldGet(this, _YargsInstance_shim, "f").process.emitWarning(warning, type); + __classPrivateFieldGet(this, _YargsInstance_emittedWarnings, "f")[deduplicationId] = true; + } + } + [kFreeze]() { + __classPrivateFieldGet(this, _YargsInstance_frozens, "f").push({ + options: __classPrivateFieldGet(this, _YargsInstance_options, "f"), + configObjects: __classPrivateFieldGet(this, _YargsInstance_options, "f").configObjects.slice(0), + exitProcess: __classPrivateFieldGet(this, _YargsInstance_exitProcess, "f"), + groups: __classPrivateFieldGet(this, _YargsInstance_groups, "f"), + strict: __classPrivateFieldGet(this, _YargsInstance_strict, "f"), + strictCommands: __classPrivateFieldGet(this, _YargsInstance_strictCommands, "f"), + strictOptions: __classPrivateFieldGet(this, _YargsInstance_strictOptions, "f"), + completionCommand: __classPrivateFieldGet(this, _YargsInstance_completionCommand, "f"), + output: __classPrivateFieldGet(this, _YargsInstance_output, "f"), + exitError: __classPrivateFieldGet(this, _YargsInstance_exitError, "f"), + hasOutput: __classPrivateFieldGet(this, _YargsInstance_hasOutput, "f"), + parsed: this.parsed, + parseFn: __classPrivateFieldGet(this, _YargsInstance_parseFn, "f"), + parseContext: __classPrivateFieldGet(this, _YargsInstance_parseContext, "f"), + }); + __classPrivateFieldGet(this, _YargsInstance_usage, "f").freeze(); + __classPrivateFieldGet(this, _YargsInstance_validation, "f").freeze(); + __classPrivateFieldGet(this, _YargsInstance_command, "f").freeze(); + __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").freeze(); + } + [kGetDollarZero]() { + let $0 = ''; + let default$0; + if (/\b(node|iojs|electron)(\.exe)?$/.test(__classPrivateFieldGet(this, _YargsInstance_shim, "f").process.argv()[0])) { + default$0 = __classPrivateFieldGet(this, _YargsInstance_shim, "f").process.argv().slice(1, 2); + } + else { + default$0 = __classPrivateFieldGet(this, _YargsInstance_shim, "f").process.argv().slice(0, 1); + } + $0 = default$0 + .map(x => { + const b = this[kRebase](__classPrivateFieldGet(this, _YargsInstance_cwd, "f"), x); + return x.match(/^(\/|([a-zA-Z]:)?\\)/) && b.length < x.length ? b : x; + }) + .join(' ') + .trim(); + if (__classPrivateFieldGet(this, _YargsInstance_shim, "f").getEnv('_') && + __classPrivateFieldGet(this, _YargsInstance_shim, "f").getProcessArgvBin() === __classPrivateFieldGet(this, _YargsInstance_shim, "f").getEnv('_')) { + $0 = __classPrivateFieldGet(this, _YargsInstance_shim, "f") + .getEnv('_') + .replace(`${__classPrivateFieldGet(this, _YargsInstance_shim, "f").path.dirname(__classPrivateFieldGet(this, _YargsInstance_shim, "f").process.execPath())}/`, ''); + } + return $0; + } + [kGetParserConfiguration]() { + return __classPrivateFieldGet(this, _YargsInstance_parserConfig, "f"); + } + [kGuessLocale]() { + if (!__classPrivateFieldGet(this, _YargsInstance_detectLocale, "f")) + return; + const locale = __classPrivateFieldGet(this, _YargsInstance_shim, "f").getEnv('LC_ALL') || + __classPrivateFieldGet(this, _YargsInstance_shim, "f").getEnv('LC_MESSAGES') || + __classPrivateFieldGet(this, _YargsInstance_shim, "f").getEnv('LANG') || + __classPrivateFieldGet(this, _YargsInstance_shim, "f").getEnv('LANGUAGE') || + 'en_US'; + this.locale(locale.replace(/[.:].*/, '')); + } + [kGuessVersion]() { + const obj = this[kPkgUp](); + return obj.version || 'unknown'; + } + [kParsePositionalNumbers](argv) { + const args = argv['--'] ? argv['--'] : argv._; + for (let i = 0, arg; (arg = args[i]) !== undefined; i++) { + if (__classPrivateFieldGet(this, _YargsInstance_shim, "f").Parser.looksLikeNumber(arg) && + Number.isSafeInteger(Math.floor(parseFloat(`${arg}`)))) { + args[i] = Number(arg); + } + } + return argv; + } + [kPkgUp](rootPath) { + const npath = rootPath || '*'; + if (__classPrivateFieldGet(this, _YargsInstance_pkgs, "f")[npath]) + return __classPrivateFieldGet(this, _YargsInstance_pkgs, "f")[npath]; + let obj = {}; + try { + let startDir = rootPath || __classPrivateFieldGet(this, _YargsInstance_shim, "f").mainFilename; + if (!rootPath && __classPrivateFieldGet(this, _YargsInstance_shim, "f").path.extname(startDir)) { + startDir = __classPrivateFieldGet(this, _YargsInstance_shim, "f").path.dirname(startDir); + } + const pkgJsonPath = __classPrivateFieldGet(this, _YargsInstance_shim, "f").findUp(startDir, (dir, names) => { + if (names.includes('package.json')) { + return 'package.json'; + } + else { + return undefined; + } + }); + assertNotStrictEqual(pkgJsonPath, undefined, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + obj = JSON.parse(__classPrivateFieldGet(this, _YargsInstance_shim, "f").readFileSync(pkgJsonPath, 'utf8')); + } + catch (_noop) { } + __classPrivateFieldGet(this, _YargsInstance_pkgs, "f")[npath] = obj || {}; + return __classPrivateFieldGet(this, _YargsInstance_pkgs, "f")[npath]; + } + [kPopulateParserHintArray](type, keys) { + keys = [].concat(keys); + keys.forEach(key => { + key = this[kSanitizeKey](key); + __classPrivateFieldGet(this, _YargsInstance_options, "f")[type].push(key); + }); + } + [kPopulateParserHintSingleValueDictionary](builder, type, key, value) { + this[kPopulateParserHintDictionary](builder, type, key, value, (type, key, value) => { + __classPrivateFieldGet(this, _YargsInstance_options, "f")[type][key] = value; + }); + } + [kPopulateParserHintArrayDictionary](builder, type, key, value) { + this[kPopulateParserHintDictionary](builder, type, key, value, (type, key, value) => { + __classPrivateFieldGet(this, _YargsInstance_options, "f")[type][key] = (__classPrivateFieldGet(this, _YargsInstance_options, "f")[type][key] || []).concat(value); + }); + } + [kPopulateParserHintDictionary](builder, type, key, value, singleKeyHandler) { + if (Array.isArray(key)) { + key.forEach(k => { + builder(k, value); + }); + } + else if (((key) => typeof key === 'object')(key)) { + for (const k of objectKeys(key)) { + builder(k, key[k]); + } + } + else { + singleKeyHandler(type, this[kSanitizeKey](key), value); + } + } + [kSanitizeKey](key) { + if (key === '__proto__') + return '___proto___'; + return key; + } + [kSetKey](key, set) { + this[kPopulateParserHintSingleValueDictionary](this[kSetKey].bind(this), 'key', key, set); + return this; + } + [kUnfreeze]() { + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m; + const frozen = __classPrivateFieldGet(this, _YargsInstance_frozens, "f").pop(); + assertNotStrictEqual(frozen, undefined, __classPrivateFieldGet(this, _YargsInstance_shim, "f")); + let configObjects; + (_a = this, _b = this, _c = this, _d = this, _e = this, _f = this, _g = this, _h = this, _j = this, _k = this, _l = this, _m = this, { + options: ({ set value(_o) { __classPrivateFieldSet(_a, _YargsInstance_options, _o, "f"); } }).value, + configObjects, + exitProcess: ({ set value(_o) { __classPrivateFieldSet(_b, _YargsInstance_exitProcess, _o, "f"); } }).value, + groups: ({ set value(_o) { __classPrivateFieldSet(_c, _YargsInstance_groups, _o, "f"); } }).value, + output: ({ set value(_o) { __classPrivateFieldSet(_d, _YargsInstance_output, _o, "f"); } }).value, + exitError: ({ set value(_o) { __classPrivateFieldSet(_e, _YargsInstance_exitError, _o, "f"); } }).value, + hasOutput: ({ set value(_o) { __classPrivateFieldSet(_f, _YargsInstance_hasOutput, _o, "f"); } }).value, + parsed: this.parsed, + strict: ({ set value(_o) { __classPrivateFieldSet(_g, _YargsInstance_strict, _o, "f"); } }).value, + strictCommands: ({ set value(_o) { __classPrivateFieldSet(_h, _YargsInstance_strictCommands, _o, "f"); } }).value, + strictOptions: ({ set value(_o) { __classPrivateFieldSet(_j, _YargsInstance_strictOptions, _o, "f"); } }).value, + completionCommand: ({ set value(_o) { __classPrivateFieldSet(_k, _YargsInstance_completionCommand, _o, "f"); } }).value, + parseFn: ({ set value(_o) { __classPrivateFieldSet(_l, _YargsInstance_parseFn, _o, "f"); } }).value, + parseContext: ({ set value(_o) { __classPrivateFieldSet(_m, _YargsInstance_parseContext, _o, "f"); } }).value, + } = frozen); + __classPrivateFieldGet(this, _YargsInstance_options, "f").configObjects = configObjects; + __classPrivateFieldGet(this, _YargsInstance_usage, "f").unfreeze(); + __classPrivateFieldGet(this, _YargsInstance_validation, "f").unfreeze(); + __classPrivateFieldGet(this, _YargsInstance_command, "f").unfreeze(); + __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").unfreeze(); + } + [kValidateAsync](validation, argv) { + return maybeAsyncResult(argv, result => { + validation(result); + return result; + }); + } + getInternalMethods() { + return { + getCommandInstance: this[kGetCommandInstance].bind(this), + getContext: this[kGetContext].bind(this), + getHasOutput: this[kGetHasOutput].bind(this), + getLoggerInstance: this[kGetLoggerInstance].bind(this), + getParseContext: this[kGetParseContext].bind(this), + getParserConfiguration: this[kGetParserConfiguration].bind(this), + getUsageInstance: this[kGetUsageInstance].bind(this), + getValidationInstance: this[kGetValidationInstance].bind(this), + hasParseCallback: this[kHasParseCallback].bind(this), + postProcess: this[kPostProcess].bind(this), + reset: this[kReset].bind(this), + runValidation: this[kRunValidation].bind(this), + runYargsParserAndExecuteCommands: this[kRunYargsParserAndExecuteCommands].bind(this), + setHasOutput: this[kSetHasOutput].bind(this), + }; + } + [kGetCommandInstance]() { + return __classPrivateFieldGet(this, _YargsInstance_command, "f"); + } + [kGetContext]() { + return __classPrivateFieldGet(this, _YargsInstance_context, "f"); + } + [kGetHasOutput]() { + return __classPrivateFieldGet(this, _YargsInstance_hasOutput, "f"); + } + [kGetLoggerInstance]() { + return __classPrivateFieldGet(this, _YargsInstance_logger, "f"); + } + [kGetParseContext]() { + return __classPrivateFieldGet(this, _YargsInstance_parseContext, "f") || {}; + } + [kGetUsageInstance]() { + return __classPrivateFieldGet(this, _YargsInstance_usage, "f"); + } + [kGetValidationInstance]() { + return __classPrivateFieldGet(this, _YargsInstance_validation, "f"); + } + [kHasParseCallback]() { + return !!__classPrivateFieldGet(this, _YargsInstance_parseFn, "f"); + } + [kPostProcess](argv, populateDoubleDash, calledFromCommand, runGlobalMiddleware) { + if (calledFromCommand) + return argv; + if (isPromise(argv)) + return argv; + if (!populateDoubleDash) { + argv = this[kCopyDoubleDash](argv); + } + const parsePositionalNumbers = this[kGetParserConfiguration]()['parse-positional-numbers'] || + this[kGetParserConfiguration]()['parse-positional-numbers'] === undefined; + if (parsePositionalNumbers) { + argv = this[kParsePositionalNumbers](argv); + } + if (runGlobalMiddleware) { + argv = applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").getMiddleware(), false); + } + return argv; + } + [kReset](aliases = {}) { + __classPrivateFieldSet(this, _YargsInstance_options, __classPrivateFieldGet(this, _YargsInstance_options, "f") || {}, "f"); + const tmpOptions = {}; + tmpOptions.local = __classPrivateFieldGet(this, _YargsInstance_options, "f").local || []; + tmpOptions.configObjects = __classPrivateFieldGet(this, _YargsInstance_options, "f").configObjects || []; + const localLookup = {}; + tmpOptions.local.forEach(l => { + localLookup[l] = true; + (aliases[l] || []).forEach(a => { + localLookup[a] = true; + }); + }); + Object.assign(__classPrivateFieldGet(this, _YargsInstance_preservedGroups, "f"), Object.keys(__classPrivateFieldGet(this, _YargsInstance_groups, "f")).reduce((acc, groupName) => { + const keys = __classPrivateFieldGet(this, _YargsInstance_groups, "f")[groupName].filter(key => !(key in localLookup)); + if (keys.length > 0) { + acc[groupName] = keys; + } + return acc; + }, {})); + __classPrivateFieldSet(this, _YargsInstance_groups, {}, "f"); + const arrayOptions = [ + 'array', + 'boolean', + 'string', + 'skipValidation', + 'count', + 'normalize', + 'number', + 'hiddenOptions', + ]; + const objectOptions = [ + 'narg', + 'key', + 'alias', + 'default', + 'defaultDescription', + 'config', + 'choices', + 'demandedOptions', + 'demandedCommands', + 'deprecatedOptions', + ]; + arrayOptions.forEach(k => { + tmpOptions[k] = (__classPrivateFieldGet(this, _YargsInstance_options, "f")[k] || []).filter((k) => !localLookup[k]); + }); + objectOptions.forEach((k) => { + tmpOptions[k] = objFilter(__classPrivateFieldGet(this, _YargsInstance_options, "f")[k], k => !localLookup[k]); + }); + tmpOptions.envPrefix = __classPrivateFieldGet(this, _YargsInstance_options, "f").envPrefix; + __classPrivateFieldSet(this, _YargsInstance_options, tmpOptions, "f"); + __classPrivateFieldSet(this, _YargsInstance_usage, __classPrivateFieldGet(this, _YargsInstance_usage, "f") + ? __classPrivateFieldGet(this, _YargsInstance_usage, "f").reset(localLookup) + : Usage(this, __classPrivateFieldGet(this, _YargsInstance_shim, "f")), "f"); + __classPrivateFieldSet(this, _YargsInstance_validation, __classPrivateFieldGet(this, _YargsInstance_validation, "f") + ? __classPrivateFieldGet(this, _YargsInstance_validation, "f").reset(localLookup) + : Validation(this, __classPrivateFieldGet(this, _YargsInstance_usage, "f"), __classPrivateFieldGet(this, _YargsInstance_shim, "f")), "f"); + __classPrivateFieldSet(this, _YargsInstance_command, __classPrivateFieldGet(this, _YargsInstance_command, "f") + ? __classPrivateFieldGet(this, _YargsInstance_command, "f").reset() + : Command(__classPrivateFieldGet(this, _YargsInstance_usage, "f"), __classPrivateFieldGet(this, _YargsInstance_validation, "f"), __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f"), __classPrivateFieldGet(this, _YargsInstance_shim, "f")), "f"); + if (!__classPrivateFieldGet(this, _YargsInstance_completion, "f")) + __classPrivateFieldSet(this, _YargsInstance_completion, Completion(this, __classPrivateFieldGet(this, _YargsInstance_usage, "f"), __classPrivateFieldGet(this, _YargsInstance_command, "f"), __classPrivateFieldGet(this, _YargsInstance_shim, "f")), "f"); + __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").reset(); + __classPrivateFieldSet(this, _YargsInstance_completionCommand, null, "f"); + __classPrivateFieldSet(this, _YargsInstance_output, '', "f"); + __classPrivateFieldSet(this, _YargsInstance_exitError, null, "f"); + __classPrivateFieldSet(this, _YargsInstance_hasOutput, false, "f"); + this.parsed = false; + return this; + } + [kRebase](base, dir) { + return __classPrivateFieldGet(this, _YargsInstance_shim, "f").path.relative(base, dir); + } + [kRunYargsParserAndExecuteCommands](args, shortCircuit, calledFromCommand, commandIndex = 0, helpOnly = false) { + let skipValidation = !!calledFromCommand || helpOnly; + args = args || __classPrivateFieldGet(this, _YargsInstance_processArgs, "f"); + __classPrivateFieldGet(this, _YargsInstance_options, "f").__ = __classPrivateFieldGet(this, _YargsInstance_shim, "f").y18n.__; + __classPrivateFieldGet(this, _YargsInstance_options, "f").configuration = this[kGetParserConfiguration](); + const populateDoubleDash = !!__classPrivateFieldGet(this, _YargsInstance_options, "f").configuration['populate--']; + const config = Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_options, "f").configuration, { + 'populate--': true, + }); + const parsed = __classPrivateFieldGet(this, _YargsInstance_shim, "f").Parser.detailed(args, Object.assign({}, __classPrivateFieldGet(this, _YargsInstance_options, "f"), { + configuration: { 'parse-positional-numbers': false, ...config }, + })); + const argv = Object.assign(parsed.argv, __classPrivateFieldGet(this, _YargsInstance_parseContext, "f")); + let argvPromise = undefined; + const aliases = parsed.aliases; + let helpOptSet = false; + let versionOptSet = false; + Object.keys(argv).forEach(key => { + if (key === __classPrivateFieldGet(this, _YargsInstance_helpOpt, "f") && argv[key]) { + helpOptSet = true; + } + else if (key === __classPrivateFieldGet(this, _YargsInstance_versionOpt, "f") && argv[key]) { + versionOptSet = true; + } + }); + argv.$0 = this.$0; + this.parsed = parsed; + if (commandIndex === 0) { + __classPrivateFieldGet(this, _YargsInstance_usage, "f").clearCachedHelpMessage(); + } + try { + this[kGuessLocale](); + if (shortCircuit) { + return this[kPostProcess](argv, populateDoubleDash, !!calledFromCommand, false); + } + if (__classPrivateFieldGet(this, _YargsInstance_helpOpt, "f")) { + const helpCmds = [__classPrivateFieldGet(this, _YargsInstance_helpOpt, "f")] + .concat(aliases[__classPrivateFieldGet(this, _YargsInstance_helpOpt, "f")] || []) + .filter(k => k.length > 1); + if (helpCmds.includes('' + argv._[argv._.length - 1])) { + argv._.pop(); + helpOptSet = true; + } + } + const handlerKeys = __classPrivateFieldGet(this, _YargsInstance_command, "f").getCommands(); + const requestCompletions = __classPrivateFieldGet(this, _YargsInstance_completion, "f").completionKey in argv; + const skipRecommendation = helpOptSet || requestCompletions || helpOnly; + if (argv._.length) { + if (handlerKeys.length) { + let firstUnknownCommand; + for (let i = commandIndex || 0, cmd; argv._[i] !== undefined; i++) { + cmd = String(argv._[i]); + if (handlerKeys.includes(cmd) && cmd !== __classPrivateFieldGet(this, _YargsInstance_completionCommand, "f")) { + const innerArgv = __classPrivateFieldGet(this, _YargsInstance_command, "f").runCommand(cmd, this, parsed, i + 1, helpOnly, helpOptSet || versionOptSet || helpOnly); + return this[kPostProcess](innerArgv, populateDoubleDash, !!calledFromCommand, false); + } + else if (!firstUnknownCommand && + cmd !== __classPrivateFieldGet(this, _YargsInstance_completionCommand, "f")) { + firstUnknownCommand = cmd; + break; + } + } + if (!__classPrivateFieldGet(this, _YargsInstance_command, "f").hasDefaultCommand() && + __classPrivateFieldGet(this, _YargsInstance_recommendCommands, "f") && + firstUnknownCommand && + !skipRecommendation) { + __classPrivateFieldGet(this, _YargsInstance_validation, "f").recommendCommands(firstUnknownCommand, handlerKeys); + } + } + if (__classPrivateFieldGet(this, _YargsInstance_completionCommand, "f") && + argv._.includes(__classPrivateFieldGet(this, _YargsInstance_completionCommand, "f")) && + !requestCompletions) { + if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, "f")) + setBlocking(true); + this.showCompletionScript(); + this.exit(0); + } + } + if (__classPrivateFieldGet(this, _YargsInstance_command, "f").hasDefaultCommand() && !skipRecommendation) { + const innerArgv = __classPrivateFieldGet(this, _YargsInstance_command, "f").runCommand(null, this, parsed, 0, helpOnly, helpOptSet || versionOptSet || helpOnly); + return this[kPostProcess](innerArgv, populateDoubleDash, !!calledFromCommand, false); + } + if (requestCompletions) { + if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, "f")) + setBlocking(true); + args = [].concat(args); + const completionArgs = args.slice(args.indexOf(`--${__classPrivateFieldGet(this, _YargsInstance_completion, "f").completionKey}`) + 1); + __classPrivateFieldGet(this, _YargsInstance_completion, "f").getCompletion(completionArgs, (err, completions) => { + if (err) + throw new YError(err.message); + (completions || []).forEach(completion => { + __classPrivateFieldGet(this, _YargsInstance_logger, "f").log(completion); + }); + this.exit(0); + }); + return this[kPostProcess](argv, !populateDoubleDash, !!calledFromCommand, false); + } + if (!__classPrivateFieldGet(this, _YargsInstance_hasOutput, "f")) { + if (helpOptSet) { + if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, "f")) + setBlocking(true); + skipValidation = true; + this.showHelp('log'); + this.exit(0); + } + else if (versionOptSet) { + if (__classPrivateFieldGet(this, _YargsInstance_exitProcess, "f")) + setBlocking(true); + skipValidation = true; + __classPrivateFieldGet(this, _YargsInstance_usage, "f").showVersion('log'); + this.exit(0); + } + } + if (!skipValidation && __classPrivateFieldGet(this, _YargsInstance_options, "f").skipValidation.length > 0) { + skipValidation = Object.keys(argv).some(key => __classPrivateFieldGet(this, _YargsInstance_options, "f").skipValidation.indexOf(key) >= 0 && argv[key] === true); + } + if (!skipValidation) { + if (parsed.error) + throw new YError(parsed.error.message); + if (!requestCompletions) { + const validation = this[kRunValidation](aliases, {}, parsed.error); + if (!calledFromCommand) { + argvPromise = applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").getMiddleware(), true); + } + argvPromise = this[kValidateAsync](validation, argvPromise !== null && argvPromise !== void 0 ? argvPromise : argv); + if (isPromise(argvPromise) && !calledFromCommand) { + argvPromise = argvPromise.then(() => { + return applyMiddleware(argv, this, __classPrivateFieldGet(this, _YargsInstance_globalMiddleware, "f").getMiddleware(), false); + }); + } + } + } + } + catch (err) { + if (err instanceof YError) + __classPrivateFieldGet(this, _YargsInstance_usage, "f").fail(err.message, err); + else + throw err; + } + return this[kPostProcess](argvPromise !== null && argvPromise !== void 0 ? argvPromise : argv, populateDoubleDash, !!calledFromCommand, true); + } + [kRunValidation](aliases, positionalMap, parseErrors, isDefaultCommand) { + const demandedOptions = { ...this.getDemandedOptions() }; + return (argv) => { + if (parseErrors) + throw new YError(parseErrors.message); + __classPrivateFieldGet(this, _YargsInstance_validation, "f").nonOptionCount(argv); + __classPrivateFieldGet(this, _YargsInstance_validation, "f").requiredArguments(argv, demandedOptions); + let failedStrictCommands = false; + if (__classPrivateFieldGet(this, _YargsInstance_strictCommands, "f")) { + failedStrictCommands = __classPrivateFieldGet(this, _YargsInstance_validation, "f").unknownCommands(argv); + } + if (__classPrivateFieldGet(this, _YargsInstance_strict, "f") && !failedStrictCommands) { + __classPrivateFieldGet(this, _YargsInstance_validation, "f").unknownArguments(argv, aliases, positionalMap, !!isDefaultCommand); + } + else if (__classPrivateFieldGet(this, _YargsInstance_strictOptions, "f")) { + __classPrivateFieldGet(this, _YargsInstance_validation, "f").unknownArguments(argv, aliases, {}, false, false); + } + __classPrivateFieldGet(this, _YargsInstance_validation, "f").limitedChoices(argv); + __classPrivateFieldGet(this, _YargsInstance_validation, "f").implications(argv); + __classPrivateFieldGet(this, _YargsInstance_validation, "f").conflicting(argv); + }; + } + [kSetHasOutput]() { + __classPrivateFieldSet(this, _YargsInstance_hasOutput, true, "f"); + } + [kTrackManuallySetKeys](keys) { + if (typeof keys === 'string') { + __classPrivateFieldGet(this, _YargsInstance_options, "f").key[keys] = true; + } + else { + for (const k of keys) { + __classPrivateFieldGet(this, _YargsInstance_options, "f").key[k] = true; + } + } + } +} +export function isYargsInstance(y) { + return !!y && typeof y.getInternalMethods === 'function'; +} diff --git a/node_modules/yargs/build/lib/yerror.js b/node_modules/yargs/build/lib/yerror.js new file mode 100644 index 00000000..4cfef75e --- /dev/null +++ b/node_modules/yargs/build/lib/yerror.js @@ -0,0 +1,7 @@ +export class YError extends Error { + constructor(msg) { + super(msg || 'yargs error'); + this.name = 'YError'; + Error.captureStackTrace(this, YError); + } +} diff --git a/node_modules/yargs/helpers/helpers.mjs b/node_modules/yargs/helpers/helpers.mjs new file mode 100644 index 00000000..3f96b3db --- /dev/null +++ b/node_modules/yargs/helpers/helpers.mjs @@ -0,0 +1,10 @@ +import {applyExtends as _applyExtends} from '../build/lib/utils/apply-extends.js'; +import {hideBin} from '../build/lib/utils/process-argv.js'; +import Parser from 'yargs-parser'; +import shim from '../lib/platform-shims/esm.mjs'; + +const applyExtends = (config, cwd, mergeExtends) => { + return _applyExtends(config, cwd, mergeExtends, shim); +}; + +export {applyExtends, hideBin, Parser}; diff --git a/node_modules/yargs/helpers/index.js b/node_modules/yargs/helpers/index.js new file mode 100644 index 00000000..8ab79a33 --- /dev/null +++ b/node_modules/yargs/helpers/index.js @@ -0,0 +1,14 @@ +const { + applyExtends, + cjsPlatformShim, + Parser, + processArgv, +} = require('../build/index.cjs'); + +module.exports = { + applyExtends: (config, cwd, mergeExtends) => { + return applyExtends(config, cwd, mergeExtends, cjsPlatformShim); + }, + hideBin: processArgv.hideBin, + Parser, +}; diff --git a/node_modules/yargs/helpers/package.json b/node_modules/yargs/helpers/package.json new file mode 100644 index 00000000..5bbefffb --- /dev/null +++ b/node_modules/yargs/helpers/package.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} diff --git a/node_modules/yargs/index.cjs b/node_modules/yargs/index.cjs new file mode 100644 index 00000000..d1eee821 --- /dev/null +++ b/node_modules/yargs/index.cjs @@ -0,0 +1,53 @@ +'use strict'; +// classic singleton yargs API, to use yargs +// without running as a singleton do: +// require('yargs/yargs')(process.argv.slice(2)) +const {Yargs, processArgv} = require('./build/index.cjs'); + +Argv(processArgv.hideBin(process.argv)); + +module.exports = Argv; + +function Argv(processArgs, cwd) { + const argv = Yargs(processArgs, cwd, require); + singletonify(argv); + // TODO(bcoe): warn if argv.parse() or argv.argv is used directly. + return argv; +} + +function defineGetter(obj, key, getter) { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: true, + get: getter, + }); +} +function lookupGetter(obj, key) { + const desc = Object.getOwnPropertyDescriptor(obj, key); + if (typeof desc !== 'undefined') { + return desc.get; + } +} + +/* Hack an instance of Argv with process.argv into Argv + so people can do + require('yargs')(['--beeble=1','-z','zizzle']).argv + to parse a list of args and + require('yargs').argv + to get a parsed version of process.argv. +*/ +function singletonify(inst) { + [ + ...Object.keys(inst), + ...Object.getOwnPropertyNames(inst.constructor.prototype), + ].forEach(key => { + if (key === 'argv') { + defineGetter(Argv, key, lookupGetter(inst, key)); + } else if (typeof inst[key] === 'function') { + Argv[key] = inst[key].bind(inst); + } else { + defineGetter(Argv, '$0', () => inst.$0); + defineGetter(Argv, 'parsed', () => inst.parsed); + } + }); +} diff --git a/node_modules/yargs/index.mjs b/node_modules/yargs/index.mjs new file mode 100644 index 00000000..c6440b9e --- /dev/null +++ b/node_modules/yargs/index.mjs @@ -0,0 +1,8 @@ +'use strict'; + +// Bootstraps yargs for ESM: +import esmPlatformShim from './lib/platform-shims/esm.mjs'; +import {YargsFactory} from './build/lib/yargs-factory.js'; + +const Yargs = YargsFactory(esmPlatformShim); +export default Yargs; diff --git a/node_modules/yargs/lib/platform-shims/browser.mjs b/node_modules/yargs/lib/platform-shims/browser.mjs new file mode 100644 index 00000000..5f8ec61f --- /dev/null +++ b/node_modules/yargs/lib/platform-shims/browser.mjs @@ -0,0 +1,95 @@ +/* eslint-disable no-unused-vars */ +'use strict'; + +import cliui from 'https://unpkg.com/cliui@7.0.1/index.mjs'; // eslint-disable-line +import Parser from 'https://unpkg.com/yargs-parser@19.0.0/browser.js'; // eslint-disable-line +import {getProcessArgvBin} from '../../build/lib/utils/process-argv.js'; +import {YError} from '../../build/lib/yerror.js'; + +const REQUIRE_ERROR = 'require is not supported in browser'; +const REQUIRE_DIRECTORY_ERROR = + 'loading a directory of commands is not supported in browser'; + +export default { + assert: { + notStrictEqual: (a, b) => { + // noop. + }, + strictEqual: (a, b) => { + // noop. + }, + }, + cliui, + findUp: () => undefined, + getEnv: key => { + // There is no environment in browser: + return undefined; + }, + inspect: console.log, + getCallerFile: () => { + throw new YError(REQUIRE_DIRECTORY_ERROR); + }, + getProcessArgvBin, + mainFilename: 'yargs', + Parser, + path: { + basename: str => str, + dirname: str => str, + extname: str => str, + relative: str => str, + }, + process: { + argv: () => [], + cwd: () => '', + emitWarning: (warning, name) => {}, + execPath: () => '', + // exit is noop browser: + exit: () => {}, + nextTick: cb => { + // eslint-disable-next-line no-undef + window.setTimeout(cb, 1); + }, + stdColumns: 80, + }, + readFileSync: () => { + return ''; + }, + require: () => { + throw new YError(REQUIRE_ERROR); + }, + requireDirectory: () => { + throw new YError(REQUIRE_DIRECTORY_ERROR); + }, + stringWidth: str => { + return [...str].length; + }, + // TODO: replace this with y18n once it's ported to ESM: + y18n: { + __: (...str) => { + if (str.length === 0) return ''; + const args = str.slice(1); + return sprintf(str[0], ...args); + }, + __n: (str1, str2, count, ...args) => { + if (count === 1) { + return sprintf(str1, ...args); + } else { + return sprintf(str2, ...args); + } + }, + getLocale: () => { + return 'en_US'; + }, + setLocale: () => {}, + updateLocale: () => {}, + }, +}; + +function sprintf(_str, ...args) { + let str = ''; + const split = _str.split('%s'); + split.forEach((token, i) => { + str += `${token}${split[i + 1] !== undefined && args[i] ? args[i] : ''}`; + }); + return str; +} diff --git a/node_modules/yargs/lib/platform-shims/esm.mjs b/node_modules/yargs/lib/platform-shims/esm.mjs new file mode 100644 index 00000000..92f2f099 --- /dev/null +++ b/node_modules/yargs/lib/platform-shims/esm.mjs @@ -0,0 +1,73 @@ +'use strict' + +import { notStrictEqual, strictEqual } from 'assert' +import cliui from 'cliui' +import escalade from 'escalade/sync' +import { inspect } from 'util' +import { readFileSync } from 'fs' +import { fileURLToPath } from 'url'; +import Parser from 'yargs-parser' +import { basename, dirname, extname, relative, resolve } from 'path' +import { getProcessArgvBin } from '../../build/lib/utils/process-argv.js' +import { YError } from '../../build/lib/yerror.js' +import y18n from 'y18n' + +const REQUIRE_ERROR = 'require is not supported by ESM' +const REQUIRE_DIRECTORY_ERROR = 'loading a directory of commands is not supported yet for ESM' + +let __dirname; +try { + __dirname = fileURLToPath(import.meta.url); +} catch (e) { + __dirname = process.cwd(); +} +const mainFilename = __dirname.split('node_modules')[0] + +export default { + assert: { + notStrictEqual, + strictEqual + }, + cliui, + findUp: escalade, + getEnv: (key) => { + return process.env[key] + }, + inspect, + getCallerFile: () => { + throw new YError(REQUIRE_DIRECTORY_ERROR) + }, + getProcessArgvBin, + mainFilename: mainFilename || process.cwd(), + Parser, + path: { + basename, + dirname, + extname, + relative, + resolve + }, + process: { + argv: () => process.argv, + cwd: process.cwd, + emitWarning: (warning, type) => process.emitWarning(warning, type), + execPath: () => process.execPath, + exit: process.exit, + nextTick: process.nextTick, + stdColumns: typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null + }, + readFileSync, + require: () => { + throw new YError(REQUIRE_ERROR) + }, + requireDirectory: () => { + throw new YError(REQUIRE_DIRECTORY_ERROR) + }, + stringWidth: (str) => { + return [...str].length + }, + y18n: y18n({ + directory: resolve(__dirname, '../../../locales'), + updateFiles: false + }) +} diff --git a/node_modules/yargs/locales/be.json b/node_modules/yargs/locales/be.json new file mode 100644 index 00000000..e28fa301 --- /dev/null +++ b/node_modules/yargs/locales/be.json @@ -0,0 +1,46 @@ +{ + "Commands:": "Каманды:", + "Options:": "Опцыі:", + "Examples:": "Прыклады:", + "boolean": "булевы тып", + "count": "падлік", + "string": "радковы тып", + "number": "лік", + "array": "масіў", + "required": "неабходна", + "default": "па змаўчанні", + "default:": "па змаўчанні:", + "choices:": "магчымасці:", + "aliases:": "аліасы:", + "generated-value": "згенераванае значэнне", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Недастаткова неапцыйных аргументаў: ёсць %s, трэба як мінімум %s", + "other": "Недастаткова неапцыйных аргументаў: ёсць %s, трэба як мінімум %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Занадта шмат неапцыйных аргументаў: ёсць %s, максімум дапушчальна %s", + "other": "Занадта шмат неапцыйных аргументаў: ёсць %s, максімум дапушчальна %s" + }, + "Missing argument value: %s": { + "one": "Не хапае значэння аргументу: %s", + "other": "Не хапае значэнняў аргументаў: %s" + }, + "Missing required argument: %s": { + "one": "Не хапае неабходнага аргументу: %s", + "other": "Не хапае неабходных аргументаў: %s" + }, + "Unknown argument: %s": { + "one": "Невядомы аргумент: %s", + "other": "Невядомыя аргументы: %s" + }, + "Invalid values:": "Несапраўдныя значэння:", + "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Дадзенае значэнне: %s, Магчымасці: %s", + "Argument check failed: %s": "Праверка аргументаў не ўдалася: %s", + "Implications failed:": "Дадзены аргумент патрабуе наступны дадатковы аргумент:", + "Not enough arguments following: %s": "Недастаткова наступных аргументаў: %s", + "Invalid JSON config file: %s": "Несапраўдны файл канфігурацыі JSON: %s", + "Path to JSON config file": "Шлях да файла канфігурацыі JSON", + "Show help": "Паказаць дапамогу", + "Show version number": "Паказаць нумар версіі", + "Did you mean %s?": "Вы мелі на ўвазе %s?" +} diff --git a/node_modules/yargs/locales/de.json b/node_modules/yargs/locales/de.json new file mode 100644 index 00000000..dc73ec3f --- /dev/null +++ b/node_modules/yargs/locales/de.json @@ -0,0 +1,46 @@ +{ + "Commands:": "Kommandos:", + "Options:": "Optionen:", + "Examples:": "Beispiele:", + "boolean": "boolean", + "count": "Zähler", + "string": "string", + "number": "Zahl", + "array": "array", + "required": "erforderlich", + "default": "Standard", + "default:": "Standard:", + "choices:": "Möglichkeiten:", + "aliases:": "Aliase:", + "generated-value": "Generierter-Wert", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Nicht genügend Argumente ohne Optionen: %s vorhanden, mindestens %s benötigt", + "other": "Nicht genügend Argumente ohne Optionen: %s vorhanden, mindestens %s benötigt" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Zu viele Argumente ohne Optionen: %s vorhanden, maximal %s erlaubt", + "other": "Zu viele Argumente ohne Optionen: %s vorhanden, maximal %s erlaubt" + }, + "Missing argument value: %s": { + "one": "Fehlender Argumentwert: %s", + "other": "Fehlende Argumentwerte: %s" + }, + "Missing required argument: %s": { + "one": "Fehlendes Argument: %s", + "other": "Fehlende Argumente: %s" + }, + "Unknown argument: %s": { + "one": "Unbekanntes Argument: %s", + "other": "Unbekannte Argumente: %s" + }, + "Invalid values:": "Unzulässige Werte:", + "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gegeben: %s, Möglichkeiten: %s", + "Argument check failed: %s": "Argumente-Check fehlgeschlagen: %s", + "Implications failed:": "Fehlende abhängige Argumente:", + "Not enough arguments following: %s": "Nicht genügend Argumente nach: %s", + "Invalid JSON config file: %s": "Fehlerhafte JSON-Config Datei: %s", + "Path to JSON config file": "Pfad zur JSON-Config Datei", + "Show help": "Hilfe anzeigen", + "Show version number": "Version anzeigen", + "Did you mean %s?": "Meintest du %s?" +} diff --git a/node_modules/yargs/locales/en.json b/node_modules/yargs/locales/en.json new file mode 100644 index 00000000..d794947d --- /dev/null +++ b/node_modules/yargs/locales/en.json @@ -0,0 +1,51 @@ +{ + "Commands:": "Commands:", + "Options:": "Options:", + "Examples:": "Examples:", + "boolean": "boolean", + "count": "count", + "string": "string", + "number": "number", + "array": "array", + "required": "required", + "default": "default", + "default:": "default:", + "choices:": "choices:", + "aliases:": "aliases:", + "generated-value": "generated-value", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Not enough non-option arguments: got %s, need at least %s", + "other": "Not enough non-option arguments: got %s, need at least %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Too many non-option arguments: got %s, maximum of %s", + "other": "Too many non-option arguments: got %s, maximum of %s" + }, + "Missing argument value: %s": { + "one": "Missing argument value: %s", + "other": "Missing argument values: %s" + }, + "Missing required argument: %s": { + "one": "Missing required argument: %s", + "other": "Missing required arguments: %s" + }, + "Unknown argument: %s": { + "one": "Unknown argument: %s", + "other": "Unknown arguments: %s" + }, + "Invalid values:": "Invalid values:", + "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Given: %s, Choices: %s", + "Argument check failed: %s": "Argument check failed: %s", + "Implications failed:": "Missing dependent arguments:", + "Not enough arguments following: %s": "Not enough arguments following: %s", + "Invalid JSON config file: %s": "Invalid JSON config file: %s", + "Path to JSON config file": "Path to JSON config file", + "Show help": "Show help", + "Show version number": "Show version number", + "Did you mean %s?": "Did you mean %s?", + "Arguments %s and %s are mutually exclusive" : "Arguments %s and %s are mutually exclusive", + "Positionals:": "Positionals:", + "command": "command", + "deprecated": "deprecated", + "deprecated: %s": "deprecated: %s" +} diff --git a/node_modules/yargs/locales/es.json b/node_modules/yargs/locales/es.json new file mode 100644 index 00000000..d77b4616 --- /dev/null +++ b/node_modules/yargs/locales/es.json @@ -0,0 +1,46 @@ +{ + "Commands:": "Comandos:", + "Options:": "Opciones:", + "Examples:": "Ejemplos:", + "boolean": "booleano", + "count": "cuenta", + "string": "cadena de caracteres", + "number": "número", + "array": "tabla", + "required": "requerido", + "default": "defecto", + "default:": "defecto:", + "choices:": "selección:", + "aliases:": "alias:", + "generated-value": "valor-generado", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Hacen falta argumentos no-opcionales: Número recibido %s, necesita por lo menos %s", + "other": "Hacen falta argumentos no-opcionales: Número recibido %s, necesita por lo menos %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Demasiados argumentos no-opcionales: Número recibido %s, máximo es %s", + "other": "Demasiados argumentos no-opcionales: Número recibido %s, máximo es %s" + }, + "Missing argument value: %s": { + "one": "Falta argumento: %s", + "other": "Faltan argumentos: %s" + }, + "Missing required argument: %s": { + "one": "Falta argumento requerido: %s", + "other": "Faltan argumentos requeridos: %s" + }, + "Unknown argument: %s": { + "one": "Argumento desconocido: %s", + "other": "Argumentos desconocidos: %s" + }, + "Invalid values:": "Valores inválidos:", + "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Recibido: %s, Seleccionados: %s", + "Argument check failed: %s": "Verificación de argumento ha fallado: %s", + "Implications failed:": "Implicaciones fallidas:", + "Not enough arguments following: %s": "No hay suficientes argumentos después de: %s", + "Invalid JSON config file: %s": "Archivo de configuración JSON inválido: %s", + "Path to JSON config file": "Ruta al archivo de configuración JSON", + "Show help": "Muestra ayuda", + "Show version number": "Muestra número de versión", + "Did you mean %s?": "Quisiste decir %s?" +} diff --git a/node_modules/yargs/locales/fi.json b/node_modules/yargs/locales/fi.json new file mode 100644 index 00000000..0728c578 --- /dev/null +++ b/node_modules/yargs/locales/fi.json @@ -0,0 +1,49 @@ +{ + "Commands:": "Komennot:", + "Options:": "Valinnat:", + "Examples:": "Esimerkkejä:", + "boolean": "totuusarvo", + "count": "lukumäärä", + "string": "merkkijono", + "number": "numero", + "array": "taulukko", + "required": "pakollinen", + "default": "oletusarvo", + "default:": "oletusarvo:", + "choices:": "vaihtoehdot:", + "aliases:": "aliakset:", + "generated-value": "generoitu-arvo", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Liian vähän argumentteja, jotka eivät ole valintoja: annettu %s, vaaditaan vähintään %s", + "other": "Liian vähän argumentteja, jotka eivät ole valintoja: annettu %s, vaaditaan vähintään %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Liikaa argumentteja, jotka eivät ole valintoja: annettu %s, sallitaan enintään %s", + "other": "Liikaa argumentteja, jotka eivät ole valintoja: annettu %s, sallitaan enintään %s" + }, + "Missing argument value: %s": { + "one": "Argumentin arvo puuttuu: %s", + "other": "Argumentin arvot puuttuvat: %s" + }, + "Missing required argument: %s": { + "one": "Pakollinen argumentti puuttuu: %s", + "other": "Pakollisia argumentteja puuttuu: %s" + }, + "Unknown argument: %s": { + "one": "Tuntematon argumenttn: %s", + "other": "Tuntemattomia argumentteja: %s" + }, + "Invalid values:": "Virheelliset arvot:", + "Argument: %s, Given: %s, Choices: %s": "Argumentti: %s, Annettu: %s, Vaihtoehdot: %s", + "Argument check failed: %s": "Argumentin tarkistus epäonnistui: %s", + "Implications failed:": "Riippuvia argumentteja puuttuu:", + "Not enough arguments following: %s": "Argumentin perässä ei ole tarpeeksi argumentteja: %s", + "Invalid JSON config file: %s": "Epävalidi JSON-asetustiedosto: %s", + "Path to JSON config file": "JSON-asetustiedoston polku", + "Show help": "Näytä ohje", + "Show version number": "Näytä versionumero", + "Did you mean %s?": "Tarkoititko %s?", + "Arguments %s and %s are mutually exclusive" : "Argumentit %s ja %s eivät ole yhteensopivat", + "Positionals:": "Sijaintiparametrit:", + "command": "komento" +} diff --git a/node_modules/yargs/locales/fr.json b/node_modules/yargs/locales/fr.json new file mode 100644 index 00000000..edd743f0 --- /dev/null +++ b/node_modules/yargs/locales/fr.json @@ -0,0 +1,53 @@ +{ + "Commands:": "Commandes :", + "Options:": "Options :", + "Examples:": "Exemples :", + "boolean": "booléen", + "count": "compteur", + "string": "chaîne de caractères", + "number": "nombre", + "array": "tableau", + "required": "requis", + "default": "défaut", + "default:": "défaut :", + "choices:": "choix :", + "aliases:": "alias :", + "generated-value": "valeur générée", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Pas assez d'arguments (hors options) : reçu %s, besoin d'au moins %s", + "other": "Pas assez d'arguments (hors options) : reçus %s, besoin d'au moins %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Trop d'arguments (hors options) : reçu %s, maximum de %s", + "other": "Trop d'arguments (hors options) : reçus %s, maximum de %s" + }, + "Missing argument value: %s": { + "one": "Argument manquant : %s", + "other": "Arguments manquants : %s" + }, + "Missing required argument: %s": { + "one": "Argument requis manquant : %s", + "other": "Arguments requis manquants : %s" + }, + "Unknown argument: %s": { + "one": "Argument inconnu : %s", + "other": "Arguments inconnus : %s" + }, + "Unknown command: %s": { + "one": "Commande inconnue : %s", + "other": "Commandes inconnues : %s" + }, + "Invalid values:": "Valeurs invalides :", + "Argument: %s, Given: %s, Choices: %s": "Argument : %s, donné : %s, choix : %s", + "Argument check failed: %s": "Echec de la vérification de l'argument : %s", + "Implications failed:": "Arguments dépendants manquants :", + "Not enough arguments following: %s": "Pas assez d'arguments après : %s", + "Invalid JSON config file: %s": "Fichier de configuration JSON invalide : %s", + "Path to JSON config file": "Chemin du fichier de configuration JSON", + "Show help": "Affiche l'aide", + "Show version number": "Affiche le numéro de version", + "Did you mean %s?": "Vouliez-vous dire %s ?", + "Arguments %s and %s are mutually exclusive" : "Les arguments %s et %s sont mutuellement exclusifs", + "Positionals:": "Arguments positionnels :", + "command": "commande" +} diff --git a/node_modules/yargs/locales/hi.json b/node_modules/yargs/locales/hi.json new file mode 100644 index 00000000..a9de77cc --- /dev/null +++ b/node_modules/yargs/locales/hi.json @@ -0,0 +1,49 @@ +{ + "Commands:": "आदेश:", + "Options:": "विकल्प:", + "Examples:": "उदाहरण:", + "boolean": "सत्यता", + "count": "संख्या", + "string": "वर्णों का तार ", + "number": "अंक", + "array": "सरणी", + "required": "आवश्यक", + "default": "डिफॉल्ट", + "default:": "डिफॉल्ट:", + "choices:": "विकल्प:", + "aliases:": "उपनाम:", + "generated-value": "उत्पन्न-मूल्य", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "पर्याप्त गैर-विकल्प तर्क प्राप्त नहीं: %s प्राप्त, कम से कम %s की आवश्यकता है", + "other": "पर्याप्त गैर-विकल्प तर्क प्राप्त नहीं: %s प्राप्त, कम से कम %s की आवश्यकता है" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "बहुत सारे गैर-विकल्प तर्क: %s प्राप्त, अधिकतम %s मान्य", + "other": "बहुत सारे गैर-विकल्प तर्क: %s प्राप्त, अधिकतम %s मान्य" + }, + "Missing argument value: %s": { + "one": "कुछ तर्को के मूल्य गुम हैं: %s", + "other": "कुछ तर्को के मूल्य गुम हैं: %s" + }, + "Missing required argument: %s": { + "one": "आवश्यक तर्क गुम हैं: %s", + "other": "आवश्यक तर्क गुम हैं: %s" + }, + "Unknown argument: %s": { + "one": "अज्ञात तर्क प्राप्त: %s", + "other": "अज्ञात तर्क प्राप्त: %s" + }, + "Invalid values:": "अमान्य मूल्य:", + "Argument: %s, Given: %s, Choices: %s": "तर्क: %s, प्राप्त: %s, विकल्प: %s", + "Argument check failed: %s": "तर्क जांच विफल: %s", + "Implications failed:": "दिए गए तर्क के लिए अतिरिक्त तर्क की अपेक्षा है:", + "Not enough arguments following: %s": "निम्नलिखित के बाद पर्याप्त तर्क नहीं प्राप्त: %s", + "Invalid JSON config file: %s": "अमान्य JSON config फाइल: %s", + "Path to JSON config file": "JSON config फाइल का पथ", + "Show help": "सहायता दिखाएँ", + "Show version number": "Version संख्या दिखाएँ", + "Did you mean %s?": "क्या आपका मतलब है %s?", + "Arguments %s and %s are mutually exclusive" : "तर्क %s और %s परस्पर अनन्य हैं", + "Positionals:": "स्थानीय:", + "command": "आदेश" +} diff --git a/node_modules/yargs/locales/hu.json b/node_modules/yargs/locales/hu.json new file mode 100644 index 00000000..21492d05 --- /dev/null +++ b/node_modules/yargs/locales/hu.json @@ -0,0 +1,46 @@ +{ + "Commands:": "Parancsok:", + "Options:": "Opciók:", + "Examples:": "Példák:", + "boolean": "boolean", + "count": "számláló", + "string": "szöveg", + "number": "szám", + "array": "tömb", + "required": "kötelező", + "default": "alapértelmezett", + "default:": "alapértelmezett:", + "choices:": "lehetőségek:", + "aliases:": "aliaszok:", + "generated-value": "generált-érték", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Nincs elég nem opcionális argumentum: %s van, legalább %s kell", + "other": "Nincs elég nem opcionális argumentum: %s van, legalább %s kell" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Túl sok nem opciánlis argumentum van: %s van, maximum %s lehet", + "other": "Túl sok nem opciánlis argumentum van: %s van, maximum %s lehet" + }, + "Missing argument value: %s": { + "one": "Hiányzó argumentum érték: %s", + "other": "Hiányzó argumentum értékek: %s" + }, + "Missing required argument: %s": { + "one": "Hiányzó kötelező argumentum: %s", + "other": "Hiányzó kötelező argumentumok: %s" + }, + "Unknown argument: %s": { + "one": "Ismeretlen argumentum: %s", + "other": "Ismeretlen argumentumok: %s" + }, + "Invalid values:": "Érvénytelen érték:", + "Argument: %s, Given: %s, Choices: %s": "Argumentum: %s, Megadott: %s, Lehetőségek: %s", + "Argument check failed: %s": "Argumentum ellenőrzés sikertelen: %s", + "Implications failed:": "Implikációk sikertelenek:", + "Not enough arguments following: %s": "Nem elég argumentum követi: %s", + "Invalid JSON config file: %s": "Érvénytelen JSON konfigurációs file: %s", + "Path to JSON config file": "JSON konfigurációs file helye", + "Show help": "Súgo megjelenítése", + "Show version number": "Verziószám megjelenítése", + "Did you mean %s?": "Erre gondoltál %s?" +} diff --git a/node_modules/yargs/locales/id.json b/node_modules/yargs/locales/id.json new file mode 100644 index 00000000..125867cb --- /dev/null +++ b/node_modules/yargs/locales/id.json @@ -0,0 +1,50 @@ + +{ + "Commands:": "Perintah:", + "Options:": "Pilihan:", + "Examples:": "Contoh:", + "boolean": "boolean", + "count": "jumlah", + "number": "nomor", + "string": "string", + "array": "larik", + "required": "diperlukan", + "default": "bawaan", + "default:": "bawaan:", + "aliases:": "istilah lain:", + "choices:": "pilihan:", + "generated-value": "nilai-yang-dihasilkan", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Argumen wajib kurang: hanya %s, minimal %s", + "other": "Argumen wajib kurang: hanya %s, minimal %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Terlalu banyak argumen wajib: ada %s, maksimal %s", + "other": "Terlalu banyak argumen wajib: ada %s, maksimal %s" + }, + "Missing argument value: %s": { + "one": "Kurang argumen: %s", + "other": "Kurang argumen: %s" + }, + "Missing required argument: %s": { + "one": "Kurang argumen wajib: %s", + "other": "Kurang argumen wajib: %s" + }, + "Unknown argument: %s": { + "one": "Argumen tak diketahui: %s", + "other": "Argumen tak diketahui: %s" + }, + "Invalid values:": "Nilai-nilai tidak valid:", + "Argument: %s, Given: %s, Choices: %s": "Argumen: %s, Diberikan: %s, Pilihan: %s", + "Argument check failed: %s": "Pemeriksaan argument gagal: %s", + "Implications failed:": "Implikasi gagal:", + "Not enough arguments following: %s": "Kurang argumen untuk: %s", + "Invalid JSON config file: %s": "Berkas konfigurasi JSON tidak valid: %s", + "Path to JSON config file": "Alamat berkas konfigurasi JSON", + "Show help": "Lihat bantuan", + "Show version number": "Lihat nomor versi", + "Did you mean %s?": "Maksud Anda: %s?", + "Arguments %s and %s are mutually exclusive" : "Argumen %s dan %s saling eksklusif", + "Positionals:": "Posisional-posisional:", + "command": "perintah" +} diff --git a/node_modules/yargs/locales/it.json b/node_modules/yargs/locales/it.json new file mode 100644 index 00000000..fde57561 --- /dev/null +++ b/node_modules/yargs/locales/it.json @@ -0,0 +1,46 @@ +{ + "Commands:": "Comandi:", + "Options:": "Opzioni:", + "Examples:": "Esempi:", + "boolean": "booleano", + "count": "contatore", + "string": "stringa", + "number": "numero", + "array": "vettore", + "required": "richiesto", + "default": "predefinito", + "default:": "predefinito:", + "choices:": "scelte:", + "aliases:": "alias:", + "generated-value": "valore generato", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Numero insufficiente di argomenti non opzione: inseriti %s, richiesti almeno %s", + "other": "Numero insufficiente di argomenti non opzione: inseriti %s, richiesti almeno %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Troppi argomenti non opzione: inseriti %s, massimo possibile %s", + "other": "Troppi argomenti non opzione: inseriti %s, massimo possibile %s" + }, + "Missing argument value: %s": { + "one": "Argomento mancante: %s", + "other": "Argomenti mancanti: %s" + }, + "Missing required argument: %s": { + "one": "Argomento richiesto mancante: %s", + "other": "Argomenti richiesti mancanti: %s" + }, + "Unknown argument: %s": { + "one": "Argomento sconosciuto: %s", + "other": "Argomenti sconosciuti: %s" + }, + "Invalid values:": "Valori non validi:", + "Argument: %s, Given: %s, Choices: %s": "Argomento: %s, Richiesto: %s, Scelte: %s", + "Argument check failed: %s": "Controllo dell'argomento fallito: %s", + "Implications failed:": "Argomenti dipendenti mancanti:", + "Not enough arguments following: %s": "Argomenti insufficienti dopo: %s", + "Invalid JSON config file: %s": "File di configurazione JSON non valido: %s", + "Path to JSON config file": "Percorso del file di configurazione JSON", + "Show help": "Mostra la schermata di aiuto", + "Show version number": "Mostra il numero di versione", + "Did you mean %s?": "Intendi forse %s?" +} diff --git a/node_modules/yargs/locales/ja.json b/node_modules/yargs/locales/ja.json new file mode 100644 index 00000000..3954ae68 --- /dev/null +++ b/node_modules/yargs/locales/ja.json @@ -0,0 +1,51 @@ +{ + "Commands:": "コマンド:", + "Options:": "オプション:", + "Examples:": "例:", + "boolean": "真偽", + "count": "カウント", + "string": "文字列", + "number": "数値", + "array": "配列", + "required": "必須", + "default": "デフォルト", + "default:": "デフォルト:", + "choices:": "選択してください:", + "aliases:": "エイリアス:", + "generated-value": "生成された値", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "オプションではない引数が %s 個では不足しています。少なくとも %s 個の引数が必要です:", + "other": "オプションではない引数が %s 個では不足しています。少なくとも %s 個の引数が必要です:" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "オプションではない引数が %s 個では多すぎます。最大で %s 個までです:", + "other": "オプションではない引数が %s 個では多すぎます。最大で %s 個までです:" + }, + "Missing argument value: %s": { + "one": "引数の値が見つかりません: %s", + "other": "引数の値が見つかりません: %s" + }, + "Missing required argument: %s": { + "one": "必須の引数が見つかりません: %s", + "other": "必須の引数が見つかりません: %s" + }, + "Unknown argument: %s": { + "one": "未知の引数です: %s", + "other": "未知の引数です: %s" + }, + "Invalid values:": "不正な値です:", + "Argument: %s, Given: %s, Choices: %s": "引数は %s です。与えられた値: %s, 選択してください: %s", + "Argument check failed: %s": "引数のチェックに失敗しました: %s", + "Implications failed:": "オプションの組み合わせで不正が生じました:", + "Not enough arguments following: %s": "次の引数が不足しています。: %s", + "Invalid JSON config file: %s": "JSONの設定ファイルが不正です: %s", + "Path to JSON config file": "JSONの設定ファイルまでのpath", + "Show help": "ヘルプを表示", + "Show version number": "バージョンを表示", + "Did you mean %s?": "もしかして %s?", + "Arguments %s and %s are mutually exclusive" : "引数 %s と %s は同時に指定できません", + "Positionals:": "位置:", + "command": "コマンド", + "deprecated": "非推奨", + "deprecated: %s": "非推奨: %s" +} diff --git a/node_modules/yargs/locales/ko.json b/node_modules/yargs/locales/ko.json new file mode 100644 index 00000000..746bc89f --- /dev/null +++ b/node_modules/yargs/locales/ko.json @@ -0,0 +1,49 @@ +{ + "Commands:": "명령:", + "Options:": "옵션:", + "Examples:": "예시:", + "boolean": "불리언", + "count": "개수", + "string": "문자열", + "number": "숫자", + "array": "배열", + "required": "필수", + "default": "기본값", + "default:": "기본값:", + "choices:": "선택지:", + "aliases:": "별칭:", + "generated-value": "생성된 값", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "옵션이 아닌 인수가 충분하지 않습니다: %s개 입력받음, 최소 %s개 입력 필요", + "other": "옵션이 아닌 인수가 충분하지 않습니다: %s개 입력받음, 최소 %s개 입력 필요" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "옵션이 아닌 인수가 너무 많습니다: %s개 입력받음, 최대 %s개 입력 가능", + "other": "옵션이 아닌 인수가 너무 많습니다: %s개 입력받음, 최대 %s개 입력 가능" + }, + "Missing argument value: %s": { + "one": "인수가 주어지지 않았습니다: %s", + "other": "인수가 주어지지 않았습니다: %s" + }, + "Missing required argument: %s": { + "one": "필수 인수가 주어지지 않았습니다: %s", + "other": "필수 인수가 주어지지 않았습니다: %s" + }, + "Unknown argument: %s": { + "one": "알 수 없는 인수입니다: %s", + "other": "알 수 없는 인수입니다: %s" + }, + "Invalid values:": "유효하지 않은 값:", + "Argument: %s, Given: %s, Choices: %s": "인수: %s, 주어진 값: %s, 선택지: %s", + "Argument check failed: %s": "인수 체크에 실패했습니다: %s", + "Implications failed:": "주어진 인수에 필요한 추가 인수가 주어지지 않았습니다:", + "Not enough arguments following: %s": "다음 인수가 주어지지 않았습니다: %s", + "Invalid JSON config file: %s": "유효하지 않은 JSON 설정 파일: %s", + "Path to JSON config file": "JSON 설정 파일 경로", + "Show help": "도움말 표시", + "Show version number": "버전 표시", + "Did you mean %s?": "%s을(를) 찾으시나요?", + "Arguments %s and %s are mutually exclusive" : "인수 %s과(와) %s은(는) 동시에 지정할 수 없습니다", + "Positionals:": "위치:", + "command": "명령" +} diff --git a/node_modules/yargs/locales/nb.json b/node_modules/yargs/locales/nb.json new file mode 100644 index 00000000..6f410ed0 --- /dev/null +++ b/node_modules/yargs/locales/nb.json @@ -0,0 +1,44 @@ +{ + "Commands:": "Kommandoer:", + "Options:": "Alternativer:", + "Examples:": "Eksempler:", + "boolean": "boolsk", + "count": "antall", + "string": "streng", + "number": "nummer", + "array": "matrise", + "required": "obligatorisk", + "default": "standard", + "default:": "standard:", + "choices:": "valg:", + "generated-value": "generert-verdi", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Ikke nok ikke-alternativ argumenter: fikk %s, trenger minst %s", + "other": "Ikke nok ikke-alternativ argumenter: fikk %s, trenger minst %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "For mange ikke-alternativ argumenter: fikk %s, maksimum %s", + "other": "For mange ikke-alternativ argumenter: fikk %s, maksimum %s" + }, + "Missing argument value: %s": { + "one": "Mangler argument verdi: %s", + "other": "Mangler argument verdier: %s" + }, + "Missing required argument: %s": { + "one": "Mangler obligatorisk argument: %s", + "other": "Mangler obligatoriske argumenter: %s" + }, + "Unknown argument: %s": { + "one": "Ukjent argument: %s", + "other": "Ukjente argumenter: %s" + }, + "Invalid values:": "Ugyldige verdier:", + "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gitt: %s, Valg: %s", + "Argument check failed: %s": "Argumentsjekk mislyktes: %s", + "Implications failed:": "Konsekvensene mislyktes:", + "Not enough arguments following: %s": "Ikke nok følgende argumenter: %s", + "Invalid JSON config file: %s": "Ugyldig JSON konfigurasjonsfil: %s", + "Path to JSON config file": "Bane til JSON konfigurasjonsfil", + "Show help": "Vis hjelp", + "Show version number": "Vis versjonsnummer" +} diff --git a/node_modules/yargs/locales/nl.json b/node_modules/yargs/locales/nl.json new file mode 100644 index 00000000..9ff95c55 --- /dev/null +++ b/node_modules/yargs/locales/nl.json @@ -0,0 +1,49 @@ +{ + "Commands:": "Commando's:", + "Options:": "Opties:", + "Examples:": "Voorbeelden:", + "boolean": "booleaans", + "count": "aantal", + "string": "string", + "number": "getal", + "array": "lijst", + "required": "verplicht", + "default": "standaard", + "default:": "standaard:", + "choices:": "keuzes:", + "aliases:": "aliassen:", + "generated-value": "gegenereerde waarde", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Niet genoeg niet-optie-argumenten: %s gekregen, minstens %s nodig", + "other": "Niet genoeg niet-optie-argumenten: %s gekregen, minstens %s nodig" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Te veel niet-optie-argumenten: %s gekregen, maximum is %s", + "other": "Te veel niet-optie-argumenten: %s gekregen, maximum is %s" + }, + "Missing argument value: %s": { + "one": "Missende argumentwaarde: %s", + "other": "Missende argumentwaarden: %s" + }, + "Missing required argument: %s": { + "one": "Missend verplicht argument: %s", + "other": "Missende verplichte argumenten: %s" + }, + "Unknown argument: %s": { + "one": "Onbekend argument: %s", + "other": "Onbekende argumenten: %s" + }, + "Invalid values:": "Ongeldige waarden:", + "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gegeven: %s, Keuzes: %s", + "Argument check failed: %s": "Argumentcontrole mislukt: %s", + "Implications failed:": "Ontbrekende afhankelijke argumenten:", + "Not enough arguments following: %s": "Niet genoeg argumenten na: %s", + "Invalid JSON config file: %s": "Ongeldig JSON-config-bestand: %s", + "Path to JSON config file": "Pad naar JSON-config-bestand", + "Show help": "Toon help", + "Show version number": "Toon versienummer", + "Did you mean %s?": "Bedoelde u misschien %s?", + "Arguments %s and %s are mutually exclusive": "Argumenten %s en %s kunnen niet tegelijk gebruikt worden", + "Positionals:": "Positie-afhankelijke argumenten", + "command": "commando" +} diff --git a/node_modules/yargs/locales/nn.json b/node_modules/yargs/locales/nn.json new file mode 100644 index 00000000..24479ac9 --- /dev/null +++ b/node_modules/yargs/locales/nn.json @@ -0,0 +1,44 @@ +{ + "Commands:": "Kommandoar:", + "Options:": "Alternativ:", + "Examples:": "Døme:", + "boolean": "boolsk", + "count": "mengd", + "string": "streng", + "number": "nummer", + "array": "matrise", + "required": "obligatorisk", + "default": "standard", + "default:": "standard:", + "choices:": "val:", + "generated-value": "generert-verdi", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Ikkje nok ikkje-alternativ argument: fekk %s, treng minst %s", + "other": "Ikkje nok ikkje-alternativ argument: fekk %s, treng minst %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "For mange ikkje-alternativ argument: fekk %s, maksimum %s", + "other": "For mange ikkje-alternativ argument: fekk %s, maksimum %s" + }, + "Missing argument value: %s": { + "one": "Manglar argumentverdi: %s", + "other": "Manglar argumentverdiar: %s" + }, + "Missing required argument: %s": { + "one": "Manglar obligatorisk argument: %s", + "other": "Manglar obligatoriske argument: %s" + }, + "Unknown argument: %s": { + "one": "Ukjent argument: %s", + "other": "Ukjende argument: %s" + }, + "Invalid values:": "Ugyldige verdiar:", + "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gjeve: %s, Val: %s", + "Argument check failed: %s": "Argumentsjekk mislukkast: %s", + "Implications failed:": "Konsekvensane mislukkast:", + "Not enough arguments following: %s": "Ikkje nok fylgjande argument: %s", + "Invalid JSON config file: %s": "Ugyldig JSON konfigurasjonsfil: %s", + "Path to JSON config file": "Bane til JSON konfigurasjonsfil", + "Show help": "Vis hjelp", + "Show version number": "Vis versjonsnummer" +} diff --git a/node_modules/yargs/locales/pirate.json b/node_modules/yargs/locales/pirate.json new file mode 100644 index 00000000..dcb5cb75 --- /dev/null +++ b/node_modules/yargs/locales/pirate.json @@ -0,0 +1,13 @@ +{ + "Commands:": "Choose yer command:", + "Options:": "Options for me hearties!", + "Examples:": "Ex. marks the spot:", + "required": "requi-yar-ed", + "Missing required argument: %s": { + "one": "Ye be havin' to set the followin' argument land lubber: %s", + "other": "Ye be havin' to set the followin' arguments land lubber: %s" + }, + "Show help": "Parlay this here code of conduct", + "Show version number": "'Tis the version ye be askin' fer", + "Arguments %s and %s are mutually exclusive" : "Yon scurvy dogs %s and %s be as bad as rum and a prudish wench" +} diff --git a/node_modules/yargs/locales/pl.json b/node_modules/yargs/locales/pl.json new file mode 100644 index 00000000..a41d4bd5 --- /dev/null +++ b/node_modules/yargs/locales/pl.json @@ -0,0 +1,49 @@ +{ + "Commands:": "Polecenia:", + "Options:": "Opcje:", + "Examples:": "Przykłady:", + "boolean": "boolean", + "count": "ilość", + "string": "ciąg znaków", + "number": "liczba", + "array": "tablica", + "required": "wymagany", + "default": "domyślny", + "default:": "domyślny:", + "choices:": "dostępne:", + "aliases:": "aliasy:", + "generated-value": "wygenerowana-wartość", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Niewystarczająca ilość argumentów: otrzymano %s, wymagane co najmniej %s", + "other": "Niewystarczająca ilość argumentów: otrzymano %s, wymagane co najmniej %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Zbyt duża ilość argumentów: otrzymano %s, wymagane co najwyżej %s", + "other": "Zbyt duża ilość argumentów: otrzymano %s, wymagane co najwyżej %s" + }, + "Missing argument value: %s": { + "one": "Brak wartości dla argumentu: %s", + "other": "Brak wartości dla argumentów: %s" + }, + "Missing required argument: %s": { + "one": "Brak wymaganego argumentu: %s", + "other": "Brak wymaganych argumentów: %s" + }, + "Unknown argument: %s": { + "one": "Nieznany argument: %s", + "other": "Nieznane argumenty: %s" + }, + "Invalid values:": "Nieprawidłowe wartości:", + "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Otrzymano: %s, Dostępne: %s", + "Argument check failed: %s": "Weryfikacja argumentów nie powiodła się: %s", + "Implications failed:": "Założenia nie zostały spełnione:", + "Not enough arguments following: %s": "Niewystarczająca ilość argumentów następujących po: %s", + "Invalid JSON config file: %s": "Nieprawidłowy plik konfiguracyjny JSON: %s", + "Path to JSON config file": "Ścieżka do pliku konfiguracyjnego JSON", + "Show help": "Pokaż pomoc", + "Show version number": "Pokaż numer wersji", + "Did you mean %s?": "Czy chodziło Ci o %s?", + "Arguments %s and %s are mutually exclusive": "Argumenty %s i %s wzajemnie się wykluczają", + "Positionals:": "Pozycyjne:", + "command": "polecenie" +} diff --git a/node_modules/yargs/locales/pt.json b/node_modules/yargs/locales/pt.json new file mode 100644 index 00000000..0c8ac99c --- /dev/null +++ b/node_modules/yargs/locales/pt.json @@ -0,0 +1,45 @@ +{ + "Commands:": "Comandos:", + "Options:": "Opções:", + "Examples:": "Exemplos:", + "boolean": "boolean", + "count": "contagem", + "string": "cadeia de caracteres", + "number": "número", + "array": "arranjo", + "required": "requerido", + "default": "padrão", + "default:": "padrão:", + "choices:": "escolhas:", + "generated-value": "valor-gerado", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Argumentos insuficientes não opcionais: Argumento %s, necessário pelo menos %s", + "other": "Argumentos insuficientes não opcionais: Argumento %s, necessário pelo menos %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Excesso de argumentos não opcionais: recebido %s, máximo de %s", + "other": "Excesso de argumentos não opcionais: recebido %s, máximo de %s" + }, + "Missing argument value: %s": { + "one": "Falta valor de argumento: %s", + "other": "Falta valores de argumento: %s" + }, + "Missing required argument: %s": { + "one": "Falta argumento obrigatório: %s", + "other": "Faltando argumentos obrigatórios: %s" + }, + "Unknown argument: %s": { + "one": "Argumento desconhecido: %s", + "other": "Argumentos desconhecidos: %s" + }, + "Invalid values:": "Valores inválidos:", + "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Dado: %s, Escolhas: %s", + "Argument check failed: %s": "Verificação de argumento falhou: %s", + "Implications failed:": "Implicações falharam:", + "Not enough arguments following: %s": "Insuficientes argumentos a seguir: %s", + "Invalid JSON config file: %s": "Arquivo de configuração em JSON esta inválido: %s", + "Path to JSON config file": "Caminho para o arquivo de configuração em JSON", + "Show help": "Mostra ajuda", + "Show version number": "Mostra número de versão", + "Arguments %s and %s are mutually exclusive" : "Argumentos %s e %s são mutualmente exclusivos" +} diff --git a/node_modules/yargs/locales/pt_BR.json b/node_modules/yargs/locales/pt_BR.json new file mode 100644 index 00000000..eae1ec60 --- /dev/null +++ b/node_modules/yargs/locales/pt_BR.json @@ -0,0 +1,48 @@ +{ + "Commands:": "Comandos:", + "Options:": "Opções:", + "Examples:": "Exemplos:", + "boolean": "booleano", + "count": "contagem", + "string": "string", + "number": "número", + "array": "array", + "required": "obrigatório", + "default:": "padrão:", + "choices:": "opções:", + "aliases:": "sinônimos:", + "generated-value": "valor-gerado", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Argumentos insuficientes: Argumento %s, necessário pelo menos %s", + "other": "Argumentos insuficientes: Argumento %s, necessário pelo menos %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Excesso de argumentos: recebido %s, máximo de %s", + "other": "Excesso de argumentos: recebido %s, máximo de %s" + }, + "Missing argument value: %s": { + "one": "Falta valor de argumento: %s", + "other": "Falta valores de argumento: %s" + }, + "Missing required argument: %s": { + "one": "Falta argumento obrigatório: %s", + "other": "Faltando argumentos obrigatórios: %s" + }, + "Unknown argument: %s": { + "one": "Argumento desconhecido: %s", + "other": "Argumentos desconhecidos: %s" + }, + "Invalid values:": "Valores inválidos:", + "Argument: %s, Given: %s, Choices: %s": "Argumento: %s, Dado: %s, Opções: %s", + "Argument check failed: %s": "Verificação de argumento falhou: %s", + "Implications failed:": "Implicações falharam:", + "Not enough arguments following: %s": "Argumentos insuficientes a seguir: %s", + "Invalid JSON config file: %s": "Arquivo JSON de configuração inválido: %s", + "Path to JSON config file": "Caminho para o arquivo JSON de configuração", + "Show help": "Exibe ajuda", + "Show version number": "Exibe a versão", + "Did you mean %s?": "Você quis dizer %s?", + "Arguments %s and %s are mutually exclusive" : "Argumentos %s e %s são mutualmente exclusivos", + "Positionals:": "Posicionais:", + "command": "comando" +} diff --git a/node_modules/yargs/locales/ru.json b/node_modules/yargs/locales/ru.json new file mode 100644 index 00000000..5f7f7681 --- /dev/null +++ b/node_modules/yargs/locales/ru.json @@ -0,0 +1,46 @@ +{ + "Commands:": "Команды:", + "Options:": "Опции:", + "Examples:": "Примеры:", + "boolean": "булевый тип", + "count": "подсчет", + "string": "строковой тип", + "number": "число", + "array": "массив", + "required": "необходимо", + "default": "по умолчанию", + "default:": "по умолчанию:", + "choices:": "возможности:", + "aliases:": "алиасы:", + "generated-value": "генерированное значение", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Недостаточно неопционных аргументов: есть %s, нужно как минимум %s", + "other": "Недостаточно неопционных аргументов: есть %s, нужно как минимум %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Слишком много неопционных аргументов: есть %s, максимум допустимо %s", + "other": "Слишком много неопционных аргументов: есть %s, максимум допустимо %s" + }, + "Missing argument value: %s": { + "one": "Не хватает значения аргумента: %s", + "other": "Не хватает значений аргументов: %s" + }, + "Missing required argument: %s": { + "one": "Не хватает необходимого аргумента: %s", + "other": "Не хватает необходимых аргументов: %s" + }, + "Unknown argument: %s": { + "one": "Неизвестный аргумент: %s", + "other": "Неизвестные аргументы: %s" + }, + "Invalid values:": "Недействительные значения:", + "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Данное значение: %s, Возможности: %s", + "Argument check failed: %s": "Проверка аргументов не удалась: %s", + "Implications failed:": "Данный аргумент требует следующий дополнительный аргумент:", + "Not enough arguments following: %s": "Недостаточно следующих аргументов: %s", + "Invalid JSON config file: %s": "Недействительный файл конфигурации JSON: %s", + "Path to JSON config file": "Путь к файлу конфигурации JSON", + "Show help": "Показать помощь", + "Show version number": "Показать номер версии", + "Did you mean %s?": "Вы имели в виду %s?" +} diff --git a/node_modules/yargs/locales/th.json b/node_modules/yargs/locales/th.json new file mode 100644 index 00000000..33b048e2 --- /dev/null +++ b/node_modules/yargs/locales/th.json @@ -0,0 +1,46 @@ +{ + "Commands:": "คอมมาน", + "Options:": "ออฟชั่น", + "Examples:": "ตัวอย่าง", + "boolean": "บูลีน", + "count": "นับ", + "string": "สตริง", + "number": "ตัวเลข", + "array": "อาเรย์", + "required": "จำเป็น", + "default": "ค่าเริ่มต้", + "default:": "ค่าเริ่มต้น", + "choices:": "ตัวเลือก", + "aliases:": "เอเลียส", + "generated-value": "ค่าที่ถูกสร้างขึ้น", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "ใส่อาร์กิวเมนต์ไม่ครบตามจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการอย่างน้อย %s ค่า", + "other": "ใส่อาร์กิวเมนต์ไม่ครบตามจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการอย่างน้อย %s ค่า" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "ใส่อาร์กิวเมนต์เกินจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการมากที่สุด %s ค่า", + "other": "ใส่อาร์กิวเมนต์เกินจำนวนที่กำหนด: ใส่ค่ามาจำนวน %s ค่า, แต่ต้องการมากที่สุด %s ค่า" + }, + "Missing argument value: %s": { + "one": "ค่าอาร์กิวเมนต์ที่ขาดไป: %s", + "other": "ค่าอาร์กิวเมนต์ที่ขาดไป: %s" + }, + "Missing required argument: %s": { + "one": "อาร์กิวเมนต์จำเป็นที่ขาดไป: %s", + "other": "อาร์กิวเมนต์จำเป็นที่ขาดไป: %s" + }, + "Unknown argument: %s": { + "one": "อาร์กิวเมนต์ที่ไม่รู้จัก: %s", + "other": "อาร์กิวเมนต์ที่ไม่รู้จัก: %s" + }, + "Invalid values:": "ค่าไม่ถูกต้อง:", + "Argument: %s, Given: %s, Choices: %s": "อาร์กิวเมนต์: %s, ได้รับ: %s, ตัวเลือก: %s", + "Argument check failed: %s": "ตรวจสอบพบอาร์กิวเมนต์ที่ไม่ถูกต้อง: %s", + "Implications failed:": "Implications ไม่สำเร็จ:", + "Not enough arguments following: %s": "ใส่อาร์กิวเมนต์ไม่ครบ: %s", + "Invalid JSON config file: %s": "ไฟล์คอนฟิค JSON ไม่ถูกต้อง: %s", + "Path to JSON config file": "พาทไฟล์คอนฟิค JSON", + "Show help": "ขอความช่วยเหลือ", + "Show version number": "แสดงตัวเลขเวอร์ชั่น", + "Did you mean %s?": "คุณหมายถึง %s?" +} diff --git a/node_modules/yargs/locales/tr.json b/node_modules/yargs/locales/tr.json new file mode 100644 index 00000000..0d0d2ccd --- /dev/null +++ b/node_modules/yargs/locales/tr.json @@ -0,0 +1,48 @@ +{ + "Commands:": "Komutlar:", + "Options:": "Seçenekler:", + "Examples:": "Örnekler:", + "boolean": "boolean", + "count": "sayı", + "string": "string", + "number": "numara", + "array": "array", + "required": "zorunlu", + "default": "varsayılan", + "default:": "varsayılan:", + "choices:": "seçimler:", + "aliases:": "takma adlar:", + "generated-value": "oluşturulan-değer", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Seçenek dışı argümanlar yetersiz: %s bulundu, %s gerekli", + "other": "Seçenek dışı argümanlar yetersiz: %s bulundu, %s gerekli" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Seçenek dışı argümanlar gereğinden fazla: %s bulundu, azami %s", + "other": "Seçenek dışı argümanlar gereğinden fazla: %s bulundu, azami %s" + }, + "Missing argument value: %s": { + "one": "Eksik argüman değeri: %s", + "other": "Eksik argüman değerleri: %s" + }, + "Missing required argument: %s": { + "one": "Eksik zorunlu argüman: %s", + "other": "Eksik zorunlu argümanlar: %s" + }, + "Unknown argument: %s": { + "one": "Bilinmeyen argüman: %s", + "other": "Bilinmeyen argümanlar: %s" + }, + "Invalid values:": "Geçersiz değerler:", + "Argument: %s, Given: %s, Choices: %s": "Argüman: %s, Verilen: %s, Seçimler: %s", + "Argument check failed: %s": "Argüman kontrolü başarısız oldu: %s", + "Implications failed:": "Sonuçlar başarısız oldu:", + "Not enough arguments following: %s": "%s için yeterli argüman bulunamadı", + "Invalid JSON config file: %s": "Geçersiz JSON yapılandırma dosyası: %s", + "Path to JSON config file": "JSON yapılandırma dosya konumu", + "Show help": "Yardım detaylarını göster", + "Show version number": "Versiyon detaylarını göster", + "Did you mean %s?": "Bunu mu demek istediniz: %s?", + "Positionals:": "Sıralılar:", + "command": "komut" +} diff --git a/node_modules/yargs/locales/uk_UA.json b/node_modules/yargs/locales/uk_UA.json new file mode 100644 index 00000000..0af0e99c --- /dev/null +++ b/node_modules/yargs/locales/uk_UA.json @@ -0,0 +1,51 @@ +{ + "Commands:": "Команди:", + "Options:": "Опції:", + "Examples:": "Приклади:", + "boolean": "boolean", + "count": "кількість", + "string": "строка", + "number": "число", + "array": "масива", + "required": "обов'язково", + "default": "за замовчуванням", + "default:": "за замовчуванням:", + "choices:": "доступні варіанти:", + "aliases:": "псевдоніми:", + "generated-value": "згенероване значення", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "Недостатньо аргументів: наразі %s, потрібно %s або більше", + "other": "Недостатньо аргументів: наразі %s, потрібно %s або більше" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "Забагато аргументів: наразі %s, максимум %s", + "other": "Too many non-option arguments: наразі %s, максимум of %s" + }, + "Missing argument value: %s": { + "one": "Відсутнє значення для аргументу: %s", + "other": "Відсутні значення для аргументу: %s" + }, + "Missing required argument: %s": { + "one": "Відсутній обов'язковий аргумент: %s", + "other": "Відсутні обов'язкові аргументи: %s" + }, + "Unknown argument: %s": { + "one": "Аргумент %s не підтримується", + "other": "Аргументи %s не підтримуються" + }, + "Invalid values:": "Некоректні значення:", + "Argument: %s, Given: %s, Choices: %s": "Аргумент: %s, Введено: %s, Доступні варіанти: %s", + "Argument check failed: %s": "Аргумент не пройшов перевірку: %s", + "Implications failed:": "Відсутні залежні аргументи:", + "Not enough arguments following: %s": "Не достатньо аргументів після: %s", + "Invalid JSON config file: %s": "Некоректний JSON-файл конфігурації: %s", + "Path to JSON config file": "Шлях до JSON-файлу конфігурації", + "Show help": "Показати довідку", + "Show version number": "Показати версію", + "Did you mean %s?": "Можливо, ви мали на увазі %s?", + "Arguments %s and %s are mutually exclusive" : "Аргументи %s та %s взаємовиключні", + "Positionals:": "Позиційні:", + "command": "команда", + "deprecated": "застарілий", + "deprecated: %s": "застарілий: %s" +} diff --git a/node_modules/yargs/locales/uz.json b/node_modules/yargs/locales/uz.json new file mode 100644 index 00000000..0d071681 --- /dev/null +++ b/node_modules/yargs/locales/uz.json @@ -0,0 +1,52 @@ +{ + "Commands:": "Buyruqlar:", + "Options:": "Imkoniyatlar:", + "Examples:": "Misollar:", + "boolean": "boolean", + "count": "sanoq", + "string": "satr", + "number": "raqam", + "array": "massiv", + "required": "majburiy", + "default": "boshlang'ich", + "default:": "boshlang'ich:", + "choices:": "tanlovlar:", + "aliases:": "taxalluslar:", + "generated-value": "yaratilgan-qiymat", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "No-imkoniyat argumentlar yetarli emas: berilgan %s, minimum %s", + "other": "No-imkoniyat argumentlar yetarli emas: berilgan %s, minimum %s" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "No-imkoniyat argumentlar juda ko'p: berilgan %s, maksimum %s", + "other": "No-imkoniyat argumentlar juda ko'p: got %s, maksimum %s" + }, + "Missing argument value: %s": { + "one": "Argument qiymati berilmagan: %s", + "other": "Argument qiymatlari berilmagan: %s" + }, + "Missing required argument: %s": { + "one": "Majburiy argument berilmagan: %s", + "other": "Majburiy argumentlar berilmagan: %s" + }, + "Unknown argument: %s": { + "one": "Noma'lum argument berilmagan: %s", + "other": "Noma'lum argumentlar berilmagan: %s" + }, + "Invalid values:": "Nosoz qiymatlar:", + "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Berilgan: %s, Tanlovlar: %s", + "Argument check failed: %s": "Muvaffaqiyatsiz argument tekshiruvi: %s", + "Implications failed:": "Bog'liq argumentlar berilmagan:", + "Not enough arguments following: %s": "Quyidagi argumentlar yetarli emas: %s", + "Invalid JSON config file: %s": "Nosoz JSON konfiguratsiya fayli: %s", + "Path to JSON config file": "JSON konfiguratsiya fayli joylashuvi", + "Show help": "Yordam ko'rsatish", + "Show version number": "Versiyani ko'rsatish", + "Did you mean %s?": "%s ni nazarda tutyapsizmi?", + "Arguments %s and %s are mutually exclusive" : "%s va %s argumentlari alohida", + "Positionals:": "Positsionallar:", + "command": "buyruq", + "deprecated": "eskirgan", + "deprecated: %s": "eskirgan: %s" + } + \ No newline at end of file diff --git a/node_modules/yargs/locales/zh_CN.json b/node_modules/yargs/locales/zh_CN.json new file mode 100644 index 00000000..257d26ba --- /dev/null +++ b/node_modules/yargs/locales/zh_CN.json @@ -0,0 +1,48 @@ +{ + "Commands:": "命令:", + "Options:": "选项:", + "Examples:": "示例:", + "boolean": "布尔", + "count": "计数", + "string": "字符串", + "number": "数字", + "array": "数组", + "required": "必需", + "default": "默认值", + "default:": "默认值:", + "choices:": "可选值:", + "generated-value": "生成的值", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "缺少 non-option 参数:传入了 %s 个, 至少需要 %s 个", + "other": "缺少 non-option 参数:传入了 %s 个, 至少需要 %s 个" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "non-option 参数过多:传入了 %s 个, 最大允许 %s 个", + "other": "non-option 参数过多:传入了 %s 个, 最大允许 %s 个" + }, + "Missing argument value: %s": { + "one": "没有给此选项指定值:%s", + "other": "没有给这些选项指定值:%s" + }, + "Missing required argument: %s": { + "one": "缺少必须的选项:%s", + "other": "缺少这些必须的选项:%s" + }, + "Unknown argument: %s": { + "one": "无法识别的选项:%s", + "other": "无法识别这些选项:%s" + }, + "Invalid values:": "无效的选项值:", + "Argument: %s, Given: %s, Choices: %s": "选项名称: %s, 传入的值: %s, 可选的值:%s", + "Argument check failed: %s": "选项值验证失败:%s", + "Implications failed:": "缺少依赖的选项:", + "Not enough arguments following: %s": "没有提供足够的值给此选项:%s", + "Invalid JSON config file: %s": "无效的 JSON 配置文件:%s", + "Path to JSON config file": "JSON 配置文件的路径", + "Show help": "显示帮助信息", + "Show version number": "显示版本号", + "Did you mean %s?": "是指 %s?", + "Arguments %s and %s are mutually exclusive" : "选项 %s 和 %s 是互斥的", + "Positionals:": "位置:", + "command": "命令" +} diff --git a/node_modules/yargs/locales/zh_TW.json b/node_modules/yargs/locales/zh_TW.json new file mode 100644 index 00000000..e38495d3 --- /dev/null +++ b/node_modules/yargs/locales/zh_TW.json @@ -0,0 +1,51 @@ +{ + "Commands:": "命令:", + "Options:": "選項:", + "Examples:": "範例:", + "boolean": "布林", + "count": "次數", + "string": "字串", + "number": "數字", + "array": "陣列", + "required": "必填", + "default": "預設值", + "default:": "預設值:", + "choices:": "可選值:", + "aliases:": "別名:", + "generated-value": "生成的值", + "Not enough non-option arguments: got %s, need at least %s": { + "one": "non-option 引數不足:只傳入了 %s 個, 至少要 %s 個", + "other": "non-option 引數不足:只傳入了 %s 個, 至少要 %s 個" + }, + "Too many non-option arguments: got %s, maximum of %s": { + "one": "non-option 引數過多:傳入了 %s 個, 但最多 %s 個", + "other": "non-option 引數過多:傳入了 %s 個, 但最多 %s 個" + }, + "Missing argument value: %s": { + "one": "此引數無指定值:%s", + "other": "這些引數無指定值:%s" + }, + "Missing required argument: %s": { + "one": "缺少必須的引數:%s", + "other": "缺少這些必須的引數:%s" + }, + "Unknown argument: %s": { + "one": "未知的引數:%s", + "other": "未知的引數:%s" + }, + "Invalid values:": "無效的選項值:", + "Argument: %s, Given: %s, Choices: %s": "引數名稱: %s, 傳入的值: %s, 可選的值:%s", + "Argument check failed: %s": "引數驗證失敗:%s", + "Implications failed:": "缺少依賴引數:", + "Not enough arguments following: %s": "沒有提供足夠的值給此引數:%s", + "Invalid JSON config file: %s": "無效的 JSON 設置文件:%s", + "Path to JSON config file": "JSON 設置文件的路徑", + "Show help": "顯示說明", + "Show version number": "顯示版本", + "Did you mean %s?": "您是指 %s 嗎?", + "Arguments %s and %s are mutually exclusive" : "引數 %s 和 %s 互斥", + "Positionals:": "位置:", + "command": "命令", + "deprecated": "已淘汰", + "deprecated: %s": "已淘汰:%s" + } diff --git a/node_modules/yargs/package.json b/node_modules/yargs/package.json new file mode 100644 index 00000000..2c69bc76 --- /dev/null +++ b/node_modules/yargs/package.json @@ -0,0 +1,116 @@ +{ + "name": "yargs", + "version": "17.3.1", + "description": "yargs the modern, pirate-themed, successor to optimist.", + "main": "./index.cjs", + "exports": { + "./package.json": "./package.json", + ".": [ + { + "import": "./index.mjs", + "require": "./index.cjs" + }, + "./index.cjs" + ], + "./helpers": { + "import": "./helpers/helpers.mjs", + "require": "./helpers/index.js" + }, + "./yargs": [ + { + "require": "./yargs" + }, + "./yargs" + ] + }, + "type": "module", + "module": "./index.mjs", + "contributors": [ + { + "name": "Yargs Contributors", + "url": "https://github.com/yargs/yargs/graphs/contributors" + } + ], + "files": [ + "browser.mjs", + "index.cjs", + "helpers/*.js", + "helpers/*", + "index.mjs", + "yargs", + "build", + "locales", + "LICENSE", + "lib/platform-shims/*.mjs", + "!*.d.ts", + "!**/*.d.ts" + ], + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "devDependencies": { + "@types/chai": "^4.2.11", + "@types/mocha": "^9.0.0", + "@types/node": "^16.11.4", + "c8": "^7.7.0", + "chai": "^4.2.0", + "chalk": "^4.0.0", + "coveralls": "^3.0.9", + "cpr": "^3.0.1", + "cross-env": "^7.0.2", + "cross-spawn": "^7.0.0", + "eslint": "^7.23.0", + "gts": "^3.0.0", + "hashish": "0.0.4", + "mocha": "^9.0.0", + "rimraf": "^3.0.2", + "rollup": "^2.23.0", + "rollup-plugin-cleanup": "^3.1.1", + "rollup-plugin-terser": "^7.0.2", + "rollup-plugin-ts": "^2.0.4", + "typescript": "^4.0.2", + "which": "^2.0.0", + "yargs-test-extends": "^1.0.1" + }, + "scripts": { + "fix": "gts fix && npm run fix:js", + "fix:js": "eslint . --ext cjs --ext mjs --ext js --fix", + "posttest": "npm run check", + "test": "c8 mocha --enable-source-maps ./test/*.cjs --require ./test/before.cjs --timeout=12000 --check-leaks", + "test:esm": "c8 mocha --enable-source-maps ./test/esm/*.mjs --check-leaks", + "coverage": "c8 report --check-coverage", + "prepare": "npm run compile", + "pretest": "npm run compile -- -p tsconfig.test.json && cross-env NODE_ENV=test npm run build:cjs", + "compile": "rimraf build && tsc", + "postcompile": "npm run build:cjs", + "build:cjs": "rollup -c rollup.config.cjs", + "postbuild:cjs": "rimraf ./build/index.cjs.d.ts", + "check": "gts lint && npm run check:js", + "check:js": "eslint . --ext cjs --ext mjs --ext js", + "clean": "gts clean" + }, + "repository": { + "type": "git", + "url": "https://github.com/yargs/yargs.git" + }, + "homepage": "https://yargs.js.org/", + "keywords": [ + "argument", + "args", + "option", + "parser", + "parsing", + "cli", + "command" + ], + "license": "MIT", + "engines": { + "node": ">=12" + } +} diff --git a/node_modules/yargs/yargs b/node_modules/yargs/yargs new file mode 100644 index 00000000..8460d10a --- /dev/null +++ b/node_modules/yargs/yargs @@ -0,0 +1,9 @@ +// TODO: consolidate on using a helpers file at some point in the future, which +// is the approach currently used to export Parser and applyExtends for ESM: +const {applyExtends, cjsPlatformShim, Parser, Yargs, processArgv} = require('./build/index.cjs') +Yargs.applyExtends = (config, cwd, mergeExtends) => { + return applyExtends(config, cwd, mergeExtends, cjsPlatformShim) +} +Yargs.hideBin = processArgv.hideBin +Yargs.Parser = Parser +module.exports = Yargs diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..5e58564d --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1229 @@ +{ + "name": "federated", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "postcss-cli": "^9.1.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lilconfig": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", + "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/nanoid": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.0.tgz", + "integrity": "sha512-JzxqqT5u/x+/KOFSd7JP15DOo9nOoHpx6DYatqIHUW2+flybkm+mdcraotSQR5WcnZr+qhGVh8Ted0KdfSMxlg==", + "peer": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", + "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", + "peer": true, + "dependencies": { + "nanoid": "^3.2.0", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-cli": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.1.0.tgz", + "integrity": "sha512-zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw==", + "dependencies": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^10.0.0", + "get-stdin": "^9.0.0", + "globby": "^12.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^3.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^4.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "postcss": "index.js" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.3.tgz", + "integrity": "sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==", + "dependencies": { + "lilconfig": "^2.0.4", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "dependencies": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", + "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "engines": { + "node": ">=12" + } + } + }, + "dependencies": { + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==" + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-stdin": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", + "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==" + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "requires": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "lilconfig": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", + "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "nanoid": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.0.tgz", + "integrity": "sha512-JzxqqT5u/x+/KOFSd7JP15DOo9nOoHpx6DYatqIHUW2+flybkm+mdcraotSQR5WcnZr+qhGVh8Ted0KdfSMxlg==", + "peer": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "postcss": { + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz", + "integrity": "sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==", + "peer": true, + "requires": { + "nanoid": "^3.2.0", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-cli": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-9.1.0.tgz", + "integrity": "sha512-zvDN2ADbWfza42sAnj+O2uUWyL0eRL1V+6giM2vi4SqTR3gTYy8XzcpfwccayF2szcUif0HMmXiEaDv9iEhcpw==", + "requires": { + "chokidar": "^3.3.0", + "dependency-graph": "^0.11.0", + "fs-extra": "^10.0.0", + "get-stdin": "^9.0.0", + "globby": "^12.0.0", + "picocolors": "^1.0.0", + "postcss-load-config": "^3.0.0", + "postcss-reporter": "^7.0.0", + "pretty-hrtime": "^1.0.3", + "read-cache": "^1.0.0", + "slash": "^4.0.0", + "yargs": "^17.0.0" + } + }, + "postcss-load-config": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.3.tgz", + "integrity": "sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==", + "requires": { + "lilconfig": "^2.0.4", + "yaml": "^1.10.2" + } + }, + "postcss-reporter": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", + "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "requires": { + "picocolors": "^1.0.0", + "thenby": "^1.3.4" + } + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "requires": { + "pify": "^2.3.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "peer": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "thenby": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", + "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yargs": { + "version": "17.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", + "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 00000000..fa425acc --- /dev/null +++ b/package.json @@ -0,0 +1,7 @@ +{ + "dependencies": { + "postcss-cli": "8.3.1", + "postcss": "8.2.9", + "autoprefixer": "10.2.5" + } +} diff --git a/public/about/index.html b/public/about/index.html new file mode 100644 index 00000000..e69e791f --- /dev/null +++ b/public/about/index.html @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + About - Federated Computer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + About + + + + + + + +
+

About

+
+ +
+ +
+

<Back

+ + +

Federated Computer is proudly located in the great state of Colorado under the majestic heights of Pikes Peak. We embrace the values of those who went before us here for full choice, freedom and respect for the people and places around us.

+ + +

Federated Computer was founded by two pioneers in cloud computing who worked side-by-side at Joyent building one of the first and most consequential cloud companies.

+
    +
  • +

    David Young: One of cloud-computing’s pioneers. Founder and CEO of Joyent, Inc. Brought node.js, containers, public cloud, programmable datacenters, and cloud operating systems first to market. He also started an ice cream company (“Honeymoon Ice Cream”) which may have been the toughest thing he’s ever done in business.

    +
  • +
  • +

    Shane Stakem: Cloud computing visionary. Early advocate,practitioner, and visionary for containers and datacenter automation at Joyent. Delivered cloud services to hundreds of thousands of startups, small business, developers and enterprise customers.

    +
  • +
+ + +

Federated Computer is hiring talented individuals who are experts in their respective fields and who are excited and passionate about our project to bring freedom to Customers everywhere. If you’d like to talk about joining, please send your resume and a cover letter to jobs@federated.company and we will be in touch. Promise. No recruiters, please. Federated Computer is an equal-opportunity company.

+ + +

Federated is fully committed to open source as a movement, way of life, and company mission. We have been at the forefront of open-sourcing projects such as node.js, technologies for storage services, containers, cloud operating systems, and much more. We don’t have enough, today, to meaningfully contribute to the community, but that will happen prior to our general release.

+ + +

We welcome the chance to work with companies providing hosting and other open-source software and services. Please get in touch with us at partners@federated.company so that we can talk.

+ + +

Join us for the first Federation Conference in 2023 a free-wheeling meet-up to gather software freedom lovers from around the world. It will be held in Colorado Springs, Co. Send us email to info@federated.company to be notified of further details as they become available.

+ + +

Email: info@federated.company. Call: 682-207-7629.

+

🐳 Twitter: @federatedcompu 🎅 Discord: Federated 👑 Careers: jobs@federated.company 🎏 Partners and Resellers: partners@federated.company

+

🐝

+

(c) 2022 Federated Computer, Inc.

+ +
+ + + + + + + + +
+ +
+
+ + + + + \ No newline at end of file diff --git a/public/about/index.xml b/public/about/index.xml new file mode 100644 index 00000000..e0f05efd --- /dev/null +++ b/public/about/index.xml @@ -0,0 +1,11 @@ + + + + About on Federated Computer + http://federated.computer/about/ + Recent content in About on Federated Computer + Hugo -- gohugo.io + en-us + Mon, 14 Feb 2022 14:12:46 -0700 + + diff --git a/public/access/index.html b/public/access/index.html new file mode 100644 index 00000000..ec478982 --- /dev/null +++ b/public/access/index.html @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + Early Access - Federated Computer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Early Access + + + + + + + +
+

Early Access

+
+ +
+ +
+

<Back

+ + +

Parts or whole of the Federated suite is used by privacy-loving early adoptors in departments and workgroups at these companies and institutions, among others 😘:

+ + + +

You can also get early access to the Federated suite. It’s battle-tested, secure, safe. Just not feature-complete and not everything has been fully integrated. But it works on the web and with all your favorite “fat” clients such as mail.app, calendar.app, Windows Mail.

+

If you’d like to get in on our early access program, send us some information about your organization to earlyaccess@federated.company. At the moment, we are only accepting customers at the $25/month tier which should be more than fine for a workgroup of 3-5 people. You get email, calendar, contacts…video conferencing…password managment and a whole lot more. We’ll tell you what’s on the menu when we touch base. Again,not everything is fully integrated, but it all works and you’ll get exceptional, personal customer support.

+ + +

You will have our eternal thanks for your participation in the early access program. When Federated reaches general availability, you can earn access to the $100/month tier (good for a department) for “life” by having five of your friends or colleagues sign up for the $25/month tier or higher for 12 months during the “early access” period. (“Life”, for us, means 10 years…we’re old souls.)

+

😃

+

(c) 2022 Federated Computer, Inc.

+ +
+ + + + + + + + +
+ +
+
+ + + + + \ No newline at end of file diff --git a/public/access/index.xml b/public/access/index.xml new file mode 100644 index 00000000..2564b9f6 --- /dev/null +++ b/public/access/index.xml @@ -0,0 +1,11 @@ + + + + Early Access on Federated Computer + http://federated.computer/access/ + Recent content in Early Access on Federated Computer + Hugo -- gohugo.io + en-us + Mon, 14 Feb 2022 14:12:23 -0700 + + diff --git a/public/background.jpg b/public/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..969aec1a73dde0c8b2813996c5a1d8994338914c GIT binary patch literal 239908 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%0DlD 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%0Dfa4ZY6aY2T;yGV&7TSBxyQZ3+ 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

evDpz_h%oY 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 ~D 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 k4>f^{)p9BIV)t%I78J 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

q`$6;2T2=Y$466B|MmxaY70UQP301NEbO*SGq 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

BnQs%rPqmMxEW)54Mf`h5cq! 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

6zoBvq`vn2`b^2G}!T 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


55K1D3I(Ab>-}w+cz^NHb)LGGPbOQg6mU_AL}o z%W=m41%zvY62uB&uG#)1FLyvM3PbI|eF@%R)FH}<(AD$~dPYc_G`>%<7MtLypCI$$ zyviy365A?WmZZZLyyAT{=?M7Imtg9E`zI)X=Nx^3IhZ@dwQJ7PL-WpbGgI^M`CV^b zpiw*0P-X>v5;ZJdjJQrJ-OiW&l3muXqFy1EOQpWU@eNAbHM^CPeSuY2uqZuy-5ts{ zJ(?d>viZg^VuhySx`a3MB0?dqsm5)=+yYIHym1Zln7#3AxC4~d07tM74n;dn!O^v;!WqVI+V^qZNW1%Nfa4{mu2fIBRixD0#Gz`Sc zNdNKz_(gG_9+D?^NE*5w=%;Fja5%Q1ew+j6*E!e9;fE5@@HLT7(O)Lvb`<75hU+?f zP#EB8_|ouxw0fRpAk=udlQ+hx=oqXWyhO$si?`ZR5V_(h!%)rdxqjiAD_x?GsE_I^ zTB8kR(7V8%N%?kA_T&6Ws+$W^(jOqu>)r8uUFN8F{dO;zmyz3lm?DF8(5Ry8O;d=Q zYrTH}JWUX-vm%1Eg&%y(TqO!QLgrgXYOUB1XZrg}gBdEBPAm}M=?&mH>A~=Zf-v$& z$B3=s7<=$haG(oftP#bPlJdrEW50@kUi%Jd#_Hc@19f{NN=C42a!>zI+=?C3VL{}@ z?+?m|-lQijP>YAF<;OhnD=XBa&#ATfsLINumIv1v?K1xtx`ioJpPvM^sj|s%y~Oq( z)dr`#CXQY)%LkN~^T(r3d{7i{l#xuIzbtEvq+YH}wCFc#B>0rfY;Jl9a6$h(y=jIo zVJDu+jPcIGTZ=>VbEfRY(V?^zHMgnuM?+js#B`rgiAq6IYsO2ZYQud|_5Il8q?}8z z1+>pIZ)v18W(J%NVljw8BZ2mT`h`?OAktnJZ!U~Cafn`dw z5LFz$+jpOh-wJ`M{+-<( zFguc?;tK!+Wbk!94y6mx;D{sQ)6&@aU67eDxc|V>=mJdOXzp(-&-+UTX(&nTjrS`` z7`|-@v9%HEoUis#K315Mj+CL@#vW(tyM6y-fRkej&UA9Qs3TH#*m*0wS zIk!N{M5tGhi9blP{X)F|gn$drlh_E{7mzL4V)`z!t={spCMymtz+=s|gi1h(g# zMlPnOTB@(gAwXMn9TFdSpLizF-rHvNh+S80KyfL`oXOtu`{WP)+hIpll11g&q=? zVnTAeSc*dOW-e(8M|o6!6NCg`H#3n?sYFV;vfN@a$A`rC>&OYilRRnOVcbhXi3|oV z#>;mLlkIORAGF=pewmo3pX{mM?AQ1b{30wa$D5>PFlgcDcpdP*Fq4Cgz55NotfPpF zi~+ekP5!PlYU~3NE}&=9*u+JLv9Gki*dI+Ehov36>0rYf+Ws?Uv|#WBVuhirtz+n` zZCu7MBjTQ@z4ci=uSX4^cQ;966)+_3P0ne`&o)Q<^T+G{vvYte5cA<0H;JeuCSmbW zd0-%j-#3MoCx!DBHSu8}pfIPl-->rK1L;!V#Ni3xTeYDm@+5i;HcyL^JvVrOYAzc| zYwWJr$L}F$Tl3xvhe=^aSk)v5l(?px&Te(e@41Qhw1=i{=Tm1lT=mbD_2T+cn>W_E z?Wl;|YR;G`4nFTiKbyB~u-GN*bZZswc?6Bzc=w(l^4YxFSdC3e_AQ(&K!u?{5UR(l z0}NsCW@^f#Gu9Ei&rt-*K=Nwth;X2=kEvdG)`+Ac0(39j@XS6q^&^MNq`G@`TI>)J zUthgQN|Sa0kKLR5^{z+>Ls-vUVIKg^Xd$Uz{SfO*0x=YrlvA8W^3qe9%DjB!zzr0P z`+AEyONBZHr_0$kzD~X~oFA%T)O&cRI@{`71ibLxCdqyP(_Fk9+L?Zgt6J%~qLc zq5pT*Fa7u^J4X@~ZsS6XT2YL`h&4D$iHy$qclG1BtGLu7`9Xm?n z=5SuR0#SzIf{KCc7q7h8K6*rZ_PF4oxyN!(?oK1JPw^z83FJ##c%bM#W+!)yHOrcl z(Cj1(AgC(hoDh74T%_JjZyD~I`1pJIYrd!!P5SP*DDy;u2+ftm3M4Mq6;{IG|XG>M@a2z;P6{_Jz!4ZE$fJwkCJP?s5tJrHigSw{(?1W;`qYUY*%zi5>^?Fes`K zEhK7Vu#yP`A(cVCg*ZBdbZ+bT6R@EjbxW;}JOX=Pc9^}Ag1j^?AG z=g1ajqGP5?4l;fTu0|cr<(21M7@$a5M5v200Y5jfh)U)zvw)wTzjm#&83O7>@N8Go zHnB8q|NC5GTi!%(fn!8x4@m=13ym2?Z2U|N`DK0c7|Q7n^b|BTj&8f9`_Q4QYqZxT z5Q$$eiuss?`Z_D^7%$QpRD zJ7ew5%EKbbELiV2zU{iMwZ^)p@StwYh2nqS97a!UjOK3lu-+;NNL$eR1I8n0onLS1 zBZf1V|3gmM!>&oWjtrb`eY)zvZaVX|Zi{HN}Itojka5yy-{vxP;lvb<#z1O5wpJhL-SKAH ztx+C9A?DHTV@5Tr8sYN}OwTq_l(}wQRLjjST)w9J_2Aq?&Ev18q>TsCr8x}XJ9c9A z&T(l^+)xhs*Xyv{YcXM4TROJrg}qXc6?j5(6$+_m$Gr~kcU0*&hc!#kr&wd$@-vb3 z+4MsQ#|9newD|F*-;9g zaTnAj;&#kd)niiKxM)bLH5WeWwOFXG-qoL(m&VU^4 z2k~07Sp{!4SMq*}n~S*l^2j?B?DeLmCrK4TGl5k{$y9#E|i2uK$HC!VLU2^+}FPTit4}Z#^Wj4XMcUf?#lH$H^|F zB_g6Su#TcUG3VMI$CcorPwS5@E|ymSoDYsWQ-0D+_O;$R))#*fJ)Q5$(G(q&BH7r@ ze-{k@Kg0Mxv-9?^dlsMxFvn@B_Ywn)rW}ghi032B6QR&x2+`Qx-RSWpqVamZYl=XC z-4_~QS#{0FraRKb1_Cd?=_Omnr3!U#cP#S^*W0mWR z1rE4wD-q2#{DSegg+9#K!klM4?CR-$M4(OBKGNrNOeM&c8dg5wzXP2A`$+y%$>RUg zCjakQ|HmdcuK&6hX9P3c{&#|7^?nT2_)Y)Qt5}0oc678cnk@n^V}f}RE=A@jSav}m z(p#BxQ3tqJKtvk3t##zot_eoc&z=K6?tQ{^U-&{zYe2g4ZG%`MbRFzef=~G(CX@9E zHQbYgJJ;X(cjEo>#WX9JR^$-Xu7+C!g?u%0NKoP41-mv>-JD$XWlFr!n?WV@6;2=#X=U zTY`~4NnwVa8fg_!YsF!{ZvA|?tbgWy>jgkkG49cS8?wNjusNS4183^_4gp(y9`46S7M?6r}oz>JAH;5;We>qPMzh!r$bV?EO zR=$Z$Pb|3D4n1C`D(0dI&c1nnK-QHLkYd3_uWi%rGNcLPbit11*`=L`S{rUEyZ}a< zpdnIfxji*Ga~XL8mtwexo;Wy#3dXRqRLINt`IV3WF`jU20!YJj-);eeIJ+dZq21rv z#bVSirebTb?ywziY_`=H4I8vE@cACS%@GL9N&-;CNs@?X_w#H)n==&yy(x&|9XcAn zY>aC)5}h5vty}UjRDMOOF24ZAKiJtB<`8>CCF?NCG8>E#%G;DWT8UQvc#Wb)9>u?# zDiGzegFdh=wl2hwu8L|pi2FYK@R*_5h8KBz5~nw3JA=6}6R4O6dU2tgQFip2r=XId zxaVJ?`|oAXpF0FM;a-esXXGx`pn%lWzBpZv=Veb@ZGC@WembWu|;6;A5}c&$ry?&1AUx zJA$2(qA+|_p}xsu8kh(B!VV5F_l{whI&ai6?H%gWm>;LWifvM5PP#VZF@SREKQ`;x zr|;qzK-N-ZH*Lo-cDQ6JeNE2v75 zN0LNN<h0!~*edTAn>`8&rvQYn-jjlR0NEvO6em?R2RW-?j}Dy& zUz~xJ3cUKxRL{YSj*01trcG92!*S}Myy%g3!~jzD_(DC*BhB!`bz%dvYb(2zJ5mS{ zuqduGgZSN2e&?fm3iU66{32XHjBhWw>rU#Xvpa>v+M5K323D?Lqv~^joGFbzDlq{{C1X!()I>Ul z2HwlH5gKU^nPF*}2B^PDxuJipPm=sR17pJ@ZpCKYy|tlo=qdqQf`#~%_6}!1T(Qhv zv`Specq}8>X5`U&klXc(0n(Xa0MoP}#)QHmOgJ?S=LidWR`0Nhp?GL^stWtKXb-!? zS|t^Fh$P4{8xS&eU9c|h*nnvG0;U>tN;!?mE==)amcS+WrlPv4K~zs-G)g1Y+~|T} zI-h4Tq8qkppGah6MN`!Z$FPVYya^N~HPLfx{ecZDG=`9$o&fsUlgVT`nNPOsO>HKu zYTs9&QNhCU$v$rq5mmlnRp&R!-`}FjTlcaRU`dt_)0PZ{NXXa(4P~NJ-lBuPt(XUi zG7AtKg*df7pN*=^Yy@h4$%3V_kU&`#zT0&G2ie>r46RuPnkFeEym)n6sV5kISoI(OB||I<9a}TB(Yk

&x?>3aUA4pwF8_SM?DVDCx3=nf4e$XZ&h}pAt~6Fc`S4h~ zeLBz@cdcg7pvr+y7fD~(R|1?fH$jU}xt&Xy%HD??f6>ZxDDX-)4;%g3 z1JBZkmD-^lk)|A%{MLplKz1#dr(j#2PVIdX1Wa;lj?W1S~OeW9R`}hnZU290*Yz`UhFl z02#yL6)~*}muj(@H%(sP=;bN70S1ENXC+Z@=1NmmYi`p3d-E{jUXh_Z=N4JyEkm<{fyg?qNMXEybD3_952UWumXKvrctQrq z%NYu`B{CmbnLk2O=kTP>Bpyld0*e(cnHl`X{plof!9kykt=D>+Nc$K~2XwFo{i15Jt={9tmj zK=^`V;F@7Ej&U6P-YWl>RKU+f2GgAo`aA z7x)dYctR7*ruAHUDuvXVOp&y{X&VU!n$xMzz0s5muvDhznDaxK$OAce9+8za3;(kA(3bQG$m238x*@gC=)dk71gJe8vInpmZCe zL@31r8bi3$JG5YSUN~(mI;A3~W&v^KrgkK(WOS>3#Ysd@2B)FzSJ&voQ^wR>l^L8B zE-r-z<;L-vw@gBH{<3&~v+wnO3ky|@{FdXDQ0?iqy>p)_+_#p4e^`hmYQK_gx5J})YU=>#5Yuk|aKTmD{&c3wrZA^6iZ=-~ z+?_7a5ebWA%Mq&?t{fZ?w7GZ_x*A$h*Ne=Tz5i|c;0tI)-u6TFID1Ar22I@gw^h1j zl*dm|sSV>U;DPX7)<9dEf~X^gQTS)xU(46D<0h~3(}0C)T%&uRzeGw9w2S+;dL)5z z*_?N8zS=UhQo_^Q10820>#6|No^Cx`&~G>Yf~sIttsc8G1YuPr}r$z{~&Etn_LTCqEdsi zE|EXDc+r27*~R#)(}X>yK36B=0fMl3LmRv75b7IoL!Ng721@8s3Q~tiLkkV&EdP*4 zn+9!aWB6og8L#=ETuYo(Epuzoee;T1Dxk+mc!sE6E;k#)%$P>zQ}{Q2Y6I0}J1@lC zY@PMIU_nCBa(yyQ0x4zA_KLzeAcQ@L&G@AZ*~t22P1tm1(i zFkC8>t5OOIqj!BvVsM8QjSsn1s~~TiYc3(*9k3AXI@gzn$gE3>0#I8uz!d4x31^^K zG(y`Vr3O2(j7|}jqI72ppvUu6fU9dxb~*a2q4jU*@BJ8UG^5bqc12st4VqWF%^$*5+Djc-3pD8h#-MNaQC(}N5^}^ zZ5?&zR^_)-%4HcI4*8V$Wen!tmruEYp`Epcq>0pJZYEnJrh)gu$}Ww~#S^b9ds9G* zH};zRq<1mb=K0W}EoXPjGhqQ*SA|XqKx*>8gfW}Z_%p(Bg4nD~xeovQ_2ut@Va09X z$o`_CK-h6F<)uG`#0!tSbiyyQKKec!x@FD8is!CxsY(D1hThftF8-(Ib0z`f|HFa* z2M+v~M6&;d-u~ZO|F?YVe+i9{@`BlH|6wojl(*UHnvAS*lSj9b2jCmNQvUr`7Y1<* z3?UoJR4_7p;`<>D4ECxC($W`zEs*FsC$=!`@)wlQj?b;+7(1kT7s?=S$*4dB{V1n2 z4o-Uq66HeTj=Q+Vrbr97k+lZeu=raGe@07NjLa7Z$FV5HkEiP|##>F?ijo_eFtKI< zGAjdK)@Qxc3Juejm|J>BAAU371nN`Y+pm5K4E2~gGt9CUNb9?V zI5$g)qw=(DstSTM!ekRn%8IbnYA(Qy8Aqi;%aN19 z#1Gs^!pdv9m2rCI)x0nN+$-H~4lb~K6l303ip9mE8ZL~P-_dbP3`dfVQz&OVPuTe0 z)@;yitXg*G3Dir$6J3eBLY1a7`D28XS6ZUH4P{K~ZO%hoGQC!p6SRU=_$tfI#;L+9 zncnxy5`2Ri4pa}qFKO92gweE-kB~QsM5=l=26#2SotEk;({{NYITFEaDr#G~ z3!+M;eH3vVB*6$~9AZA_Kv)(icyCL-{bu5_@^N$@7+oE06aaW%%{*~Aa#~XzSv3NN zL?5{tO)XTD=0{|KK__!kn+8D0d#*{OnzDQ~NPt^-jJ8FT=H~IMvy8iXR=Od!jDs>u zsvwk7lL3jjZHA0jM#H~=54ti_*9}V&d=~@H==z`-ONku0G%?0}vPmN*(M1>(gdt7R z6~RcW0mEYG^w1GDI_>>P`-<7q8RoGCtmU>LGiU$q1AOKSG!7dYfQ){$0@_Z!+1Y}6a7pqK# zazIriAx8xrbp;6pnQ7mU7$XuvElwP?-dc8`k6Hf78uCX`%#tvnjB7=&$isd5$BYhw z_+k?WmhDuhXK3q_gWeX2&tDiJ8s_A+iG@~gW}XN#1aCh>!zoWp(Y-W>t{B@D>e>-8 zz+$`5{!6dY3=vTa;&WzYmK9PFf5kaEIgbXICx{91q4USe2Lr5BRre!;&dZKOt64PO z&o^5M!3Vy&tEE9vbFvXS+D`jGq4>Wy#tzHZ<5!Wmp7PY(GDZ=@0e8dF2feFWdnV<4 z*2wmJxc#&Mm;GSWf<)5t7AZbhcBKTW3l`Ns%bC58SBO2_K=b(=-vLJ$V(%&r zOaDY=_&mShHHGc4T!GD@WVjPbAV+iHP+>4}d>!a;Fi(YOl<#{aq}Z2#!RtH0lZcMp zTo-Y`i_a(4oPMON5&X4`jb;t$OMsMY(rR}aGX_* zAY*jSl;6vH+$`+~WSJsPU!FQiwnSLj!V|+>M8N3ZJ8OV{F0o~$FcOmUPY6mxL)D8f zW^gFlqi_?utT#t2L#FNpQd$BtJ34GON$?OMi@<0c4EBKf_dYLmHG0NpTZhRqp|6g5 z#guaYF8;&$X6S^0zbLOujqG&b`VXLAF)YI&UWpw24wqdLM{}Q;5HcT|ikiN5-YJHG zo#H(C`JP=xx-em%Tlmwt=6(nfgZ7j(L{N?&S<;e^WoNGp&ML_O5>)LfkGrZbc8ZFvcXAYvKuhC*X=cs z+NG3+qXJpQrahDF5#DYh2Amia1-^6wlhg+3rg{mh`TK*2gtnmAGlc{!GdrhL7c0Qj zPO4e*%yxOU?vDYGs^J4Hw}>iT{jzMy)zj>TtKA{d?Y^( zni%4)7gOj9%k4v(n?R;o+5G|RwMO$?Z3b?dH2U+RfutyWVK@kVSvdbApj zVl}``*%e=hB((K+yRK7)mVKm*%ZUrk&xgik@u!L5R30CsXq2*6Z*nF@q`^pPcNRb1 zg0&=wZ+JktA;^~ds^aTS_ zInq!B z7LtGvhlxd|_}>3|h5yU1|1B-l_aDEq31(~jhhHr#N@zX#y8_n1qz*u!+XzZO>KuLV zv)nFa#h?t2Vg7h54Zujjm>9brqZ`;>@V-U5Xbsqd4$&pWN?3caCFF|4vmOpR8@&vg zw~ahMmT*OuRKfLIA-alxmYu|EnHsVg2@nLgW@0{XA*1;Y{T(0xesAvvyeVO*f_27z zHpf~0AY!sRilO3@Mo&gyk%yy`14m)(i~oJ1bEd{7NBBwLWL+i03O2#*{XlbH;1-0V z+DfcprNy@FT9i$SUPo2`gex}c_^!^HpvFBnI?)((0vG;dZ`oohL;KMPhXzfr{kg4p zyBF=IWz_1??ULc(Q8;}BZ+4C&(XT^%BA%4}YdOH=Eq-UYS(|YX|1oHD7!kO5`Emc! z3N@GbB+kEoI=?(hpSiV)x^Y#B1~#d~y1U##(hwmG{%rq8>Ro}94#F~L{F*D#pi#C= zJR}I3^)+_}>4MilM^0-O;fM^gg5X_v523c_$I`!`Ck~Tz1s+!c3Ppq7y?0GmCa$Dx zi|ISPoRN<2*C${&&-y7|^qQrZDpu!B9uU~CUsc-9J~z@}sM=f8`M#JazY-?vga!@t z+*e?JCiN~x84%*V&xM+E+f3s0K4rr9J}1kK{#Y=F1X~rgoel8^))(SV*IQ*4>FO3y z$+h|CJk~}?B{K#Y1N$1HQkCo5b(b3TFfn0qW3$M3cq^C3AWjLz)!F`AUrOddhmQ4- zrG1o_z)4Z#jlC*e!rOE`EnqxsI1DyFh6-&2EHVQR^GxOl4ubG=GbHo`H)M&Ql(7)X z#ty2%_J-S%q707CR#%H8;>b?w z15B}}Md1vOm_!Le(AWsvK$}Gze$nT%P}`*Ffy)1c;!8#51Y(*;EYZev9~2>m^N=VW z3@TsA#t0QP)?b7Lus@OSx3b^I zz0m$~7DwNOAZwn5wXDQQH3l3Ylj&jnk%PgX=b=yQJj#?z zu8Z>p&ZGw7UQX=+hf)sfE?9^v$>Dq)W8dr(0(z6c2#JKi}7-LTOTx==LJ7Cohf?_qu56a1gu<^Uuw2Hhv7AUo+#ZTz10!?qH>e>UP@Iki#EN&6t{jM zpjP}-P#}rUu@VDrPVm)X)96^y!NqPJjksC39Vp@_K1pjZ{P2&99>VlwD~_|RvdQ*} zW4$hO>{KYcym?~;@+1Csv3O0Dotny!jub)*Gu*>enn{CTs)|nJTLJI6mp8{*iPBRH zo`4OuxqpQdPrh-#yZSCJjQF?%qGMceo#+@(=sOF@oeVoX1PnDN+Z6dpf}L_Ru<61eyqxc?VtKPas_6x*t(v% zxVEC_((9EGGo!joJ>{~nuyMFtm{qdeIniM-dI3t&n9brEp9D}7Zxt+0#z}{1Kb#&2 z7+k_e`I=gJ6edX)VXEcx*VUTQ+*T`{G@9rj4B$E>%hHvx3&!-HzBsi-ENfjTCEfJ+ z{NewQPAG%M^+Em!L9VD+_T&o4^~C-r#ap-MD!WgyXlL-G9+VMY0MDo^*<)JpXH<(c=g8yHp2DTRLO zoBCB}EO=)k&j1*k%m5b^gx>Ct@19%>-3DbeOTWUxzn6j31Q6)j4r~P$&(H51@M8uM zpnD#Fdr2u)C_*8Eu>gNXCyu&^)Apte)2P4T#$oq&OJAo9;eT0S=q)scUx^gv7mU{q zn>Z$ZSw?AjJ9SpoKeE*f@#<_1Mx^r5FEzK%5@QcIGA$5{hNHkT}PGFbeT$3GN`cxiiycrAPX@6SC1hyP!olEJJ>O)d-l77t}hMv}7O{@U6oq$Cay9BJYC2FRa)M-gZz}vF%&K63+XalL#r@ z(l})0BugEYGoU@J4^B%Muk0CId*LNeY|~$H>*Lu8%P`WSn&1 z`k*nYu81UhXdVi~#sexwoRHM_T4TX+0U1mV;YP2Xe^xQpTmp89mr+Gc*xwXV(LI~F-`GdO2*u_dsigb*KO5;F#MJ2{i_;UhUlD}fV-d_YL5LQ{5vSV7* z*7YGhu&kVN(t~(GE~^NmvQtKofeS+C`LOl+uHN7D65w$5e763hW1@9N>po@7_2QCH3Afk zvy!KJ3eQO4&MKL$6Q^0+->*vzSi69e!h(Rbp2a8xU5Z*{C65n#fhaJH_*CJ9%DP@X z*=`H@h+XM;`v1Vx|Bg@k z|0|9)g4tgGq12v0eyEE8X|f))mP2O-Ib#FWQrb&xGzcCCT}C?pp|*L5IUjBd^#+f- zXpFD`^7<#*ffFB&&Cj~*3ZI^ZF8DwIXATMOd_vLzd8?cb2_9z(`;g??(RF~F=JtgE z9JdHK1MW$z2d7;8UYtJDx+8o1o2q;nsuI=AP|7b(wN`2OgM+vUWFy z+*gfj{#y!Q23h@^)cJD|NO)dA|1VIVL>1swg+5Zlawr-R2k6No4ev@KoSb8=`ZMj< zIdHJ~g`>!w{jL#ctJGcIxUQsedw|qdW){cWk5@!^Qn3WVrsV#j0PCc?qv*Id6FDy% zy?3NwRvx&>!?H(-7S1CA`677qV+SgkoU1AFOoPjPswI&VVaJC+XTp_>8XLbB&E??I z%ADK|4N>;31?vMAV-suB4HCNjlUkEXVa1DS5xV_B@2a2!Deaba37S}lcQ=Rhihk&b=4s^X*SV-*ym39n>92K*;_EW zwL^W9mnwF2*2c$6OH$!o;GrOp_4b;-Lw zQ8ii7aR@X$HUflFsj>@+IbYWm(jFEyO-kY7$H*908%s=vjQD3-ITm0Zlt2r=%mhS) z1br0`+VH*6AF+V*mAb)D8v@D9LvP|wbE3Q<$N`wI5gdpC6cpoP9YTMe>E@d#N%m=0 zwEltDzJY1{JIoIn(EPSY*TV7L7#s#k#lud`pNGrr8D&x9NVa$_$_CP^=Mm9TLHCOq zhT_ZTfdNfhbe2@#ECqkV2GHTblg^;=-w;b1^2v)Pc)Bg4Gx5{3vlJGQi$b+H402oF z>X;&&M``rdl(*(=%2}JWO)NB6M}Ct9gw#~#a(XO|y?htsiA-rPj^10HyJbl^Yko&keGeZZ2I|03Ut6km=FyM_!m$^YNl?Ki|eRxNtR`SUstxL z8sSpUJarT7rh<#KWaeJb4uHtGqCnAIxFI{>c%Yh|^#W{mvUlGLyt8VmT~#v1X15I% z4sn;%{CIWk-h0}Zt>hG5!%{2gTi|?)9=D1_3 zd1eA9L#PZ3IFbNR`FqHSiz@|NrX!m`_8U-UZS#PTNA6vYPKvF~&s2*ERFSdp7{tTT z+{h8LJB@$sq&n;uU&*h)`x=6Hq4P|hMXR7_IJ-KX)QC|IZ2>5(BVQA0!(Wf%qZn$Z z(kmrXxYx#k>>-ux#i|CNO_C>8T|;>-uoX_B^9j#pCJRy_52WLr5q!iz+vTp^{%JYE zhx-HfD&{eSNUPtC2ENL`@Vm&aJOXwQ-W?+V!dGNnKPOQ`{f9X|24IW*4QF%&i)`W< z2qH#jwj>=4%r!@U+i9VtmMfgP8+`IKw(wMon9Yy){AI=5wP4k!Mb$LH zWL(;R7deBqb(dH>Zab){eWP@vWt%VKK=myCWK3~D1zEQZVvO3rJL#h} zrNE)i3V2wDD}|~624zctpO}z{H0A*wKi$LW#UWCD4dNrncLP%Bo`&Y{%t;N;pS45YPhnW|qMv(Vkny@&8QmsOn!FLRqKGhst@)MM&`{ zc)FQGsJk9(a&r?-yZ#b+wuIOW^jtWLQT~NT2A5+CR|wfNqN>I&*i>T@0BxTtb$#HF zg^%raJA=q{qzZI+@*V~%@?6o@k^c4~?`v!BYjMG8Ta}-;ajqw*pjV@QiZ0a~yxnuf zcep}cGrPv_0h6OSpPN0fU06|>rNEs>aMMSCH-fqcvlf8wFK&@bohsPdHT+d@)8t~j z{mLn?%hN;*A0g^?cH;+4*&7yPhF45??71)oA7C{eZgkci^nbRJ$ufg{@i^ZTHj7#3 zQB9d27M9ExW9^!pV)s6wMch(}%F0?uKJs;?TO75=A!1d8R||h57gx_dGlWWPaVn{i z&wXVEn(wn|S)v5^_u2n7G3Qv@t^U)5DwawYi!YA-8Xa)3d?(tmO=Qfm_;UWfLejQm zk_W7&{>pJ_D3}1x&!lAC6B9Ow3)yqkffl<@FtK`G=!wNR(^5v|OAp36H6-r-P8~KL zf`10WQWY6P_W`W`$r<3jG9eH;fPwQ1Kv<@d$=bNE%w=AaD)FY|G%Fkcu1=y6b<%wP zmK3{{y)jE77sbYNXwmE-o%bnBA?o_)G|}b7WrU$vVe)`Wz3QrAsQp#ehg2kUvMaVj#t8PAJ;h+pY8#bxxFYIpSZFgF8om>)_W|w zuMf-Zi>v*J89DF6^KihTD{e0n__#&yoIv41tY*BSIqD~cI#xBj%3lO;EOh7Ul{{)U z_T1EYMJHXco;vr@w;<|veY5*HI2$?ppyKg9L+ZBKH!_Fg1=7blsM|(x=LmjFFap;| zZm`yLBZ_s>tHGJyDOHH)@#S+cR^GvEh|Ygm?9iU$j5kBV8uy9+W5fRk8~&GchyM*5 z{oh*u7j*{+VZrR2|A4qEgbY2%>Jo3(gOruWHh|%B%IVBT%q(dU^l+Zsi*$ykU(iD6@L<&Mj!ro`HIA-8$=)2PZZu*%F z3NDOMfrF980K{&)W$eAF7cfvH7QgxPoKxqaXM@xGs|;#+!`9|syjbYr6W-&%9{@Ye zm$O?GC;00l@Bx+w|0x;mdy0+`h>KR+vDTVaQjjSB3{RC52F9W-=A?SiBAE|}x_fl< zqe>$y5M!*3k$uj>&X}c!@DHXeNl3(h*hV}`Q^rCylN5Yd(yba?5?OgAs(Ma91 zdh)2kgnJj`1reiwy&m@t1~r*{A@owvk;EKbwyg3-YLPM#Np)Ti({tBiD}`eHCuAn;pyDE7-i z7l%+bPDMTa^El8dhF!{!0`&|;6G=+a_P=c>M)ud+dH|B4L%}mIUaDJ{E-Ut zl;zQB!`<)Y!yHoVSmCuLzBu$F#|@qK$?bqIHuy1TL>0qC%{dG$X|Hu*c3l_vinw3_LS%>Brrxh4nXnsZxMoc( z_EalO)7?(B92K+NjhuS_dsD$t4 zQRmQvuE}?^{=hjv-O7v@*>Ms53W=?lE#DvwXhuGT&*5BM#H%YcCw;w>eKu7%V}|Fc zyoLRD2a@(my2K8IMmzs5YwGJbc;BNxUO^Ar57r?5j*dtkNDnE+v*bMf@e%Q%o~XxwxJBk@1bT#U1mOpi@j?Ml^_Zez1P)ch%5-d%`QHp~ftw(mIY6T+%SZ;2jK>>9E0~PkLPvfaZ?}O0jjHG5qJHOld^u_T}-{DPM6IdYa^x}dD4m*=d zv(+0{bU3bgcP{VE+Mbw7nL5>h%_y9zYQ?V%at>i=)`%{p#=5s-qltVkiAWl7N&lk) zAdXXJYAPu)<7eg(nvosbid@D^HJ%t|%!-f9LY^a57^1OV&Rdo%!ajq2WrjOm_!OBL zgUqO43=76g5=Z--zr>Lc%JjjzH|3Zs_e=F5=E_?V=OHsOulB>@-qF}2IaIL(Wj%E7 zU8jim&wT6MZFg@Cvk>>iblGjk6(^wJW!!<`@Y&tc{iO0y6$Haq)cU^7J**QZNzJny z2m0d5AD0k+@RvmIx1osOaX#44Xu`H$GIlHqE}|QUXQbO7vJGxs*FsAaV24$v z7%%aLh++M8;CxuFP9xE9Bk}$c8=}2pg`{02{nLN{C}ApYHa0NL7IgG7K)%Px$7ZnL zKtdtEsHeLA=kk|k7zrPZV;Z#s;&z+ihv+8mvpx8-Zu!|M&zlcr71&M@qd=#J7z#?q;>w>uj z>-r|QeaXe$kNlXP>Buo6NelgQj9ZZ-6FfT5x*!Zu3BBCEca36Ahckk3|WLBHG#P((ycxl7xE zx`%U-jZVI{C)va4(0M6QVcG-Dh#~zmL3QBZt)ekgnLvmroQM$max4_K-eOu zDIy9l8SFZ%V3jrv2~!I-gucPUHC#r}YGqGqAd%{ZDi%I9gMnW-mTFM}m(q!?x%Bwy zbJ6&<84`TDLvK^M?Zmp-7YaZ+(jx2RsUu&CHQ06~v5JSrDM>=sPV8rT5B;9Xqxm3r zMPnA#YDkY`6FXOr#x7~%*PjyJCyT&ZtG#5Gj5~f_dX9G+>@Jl=JTcC3$)2?e5Qg(w ziOoIV0suP|gc*z>i}lftUCY?vpaw$v!z|YaRDRx80*~dMHz41{Yj2XVioc_6Kdb_j zp@(JgQ(|a&-R9QZShP`lu+@ozd&Ho1`Myt9tcz_ZgFifhLI4`i@-mh$b#aJc{x23z zjQ-82d$E`s4XC$cl@2vdv(R9%?O^h9lOuM3@8*A?(I#)CkfMVX zhZdovhAF41*=ApunhAA%`T7}D!j?L+C|<38aV5$ys-ZHN*K|HrhMdMl(>M=@$+jq3 z_xQ^`DK`dtr5iplM>%ZmgpcA&3zu`YLb01Q^m@77h+663!u$mg{+-5miwWj+#OO@$ z_5MCw!rx!@{i~Ms2w`Rn0p8}<`&H$f1JUgDweITWW;tLm3qKfQaC$v{Q2gmd>?uF6${d84N%d-Ja53 zmJ})P`-EgGYMpsG$GoZ!f04$MZ~IwFg-XF`PPS`j%Mgzv3~1=}yU-4Trz(yr%Sc}{ zY`Y@mT2Ru)L?Z{A?s{6E-KR0)u^vzqdL$Nh4_RZkj}py3J74Etwd@P6(b`jrm$_QL zFT+hO_9O9{gsn9x-)S5lG7*qR@oo{VsWt5yNgu2Dqt<;P{S(4q5%Aw`5Hr=fu2~$y z3yBlMb3*T`%M)?N2#^ItuRIoeuv z!%AMfZp!gUp_>4#^&ln-M_6C+G1eSf1!dPdQUUxMd+}(o(kGS^>sqwzA|10)w&#($ zIa=dlc%@`>A#!YI$h>z))GF*VW&eBO@71TA8RPMXADnp#$#KF+$#rT*gYe3KZuY}7 zRWiY1+622KL|{4}`LUsQ`wD!=O1gzXaXdJ^mGgAt1Z2@$iyXi)DOF#bTBcDhNbK6H;yVIA9XW+|~bX2`M5B*%Lm0IQsHbR2l>CD7RX=Z0rIhxT5VlLGO&Fa({8fw(SKa z0N^alj3sxWS0P(QV-EDA)JVrf%Wy|elWI770Ue~ z(RWifz5uY`uZ{sSbRO*}aRZ_BlZa)Li)l8{>;0Sx^aU7+#pKN7p0z$krU^97=Ds(a z0Gh(Ez-i9<)*4Nk0&8nryt=p}wA+c#3CaVvk~`>hVO$G1xp=eq^! z5|l408u@;~5un}cNs@@Yhx%}V;aYJ}(hAeay!mX;Kq1czO3AAz zDEZUesC3lyQS1p#FVw0p*ia-4Qo4ZjJlZ$m$&&$Y(;lce?leccku>u|iUKfuZR$yW z+DIGB2rDI?cZdcZ?%Cpv z%F~iaHcWHm^7K9&8{9$K%(_nHGmr>F?n^CZ>vZVzt@D(HR##2U*xt zE82+$Pg2h9xS=Q%!s&u+RE^FvT=?UyM>@&@x@;&b)#4@(ekx-8U(KN{XI~^5_SP$4 zvMk$_-+$3@4!F<6j)$1a^P@l%=%&$JM<7-AAhAa}Dtq{hYwcjR;)HlmXBjIj7Hx}xfu0Mq&p#L!!tJvZ7urB{^w z91pp&mm<=|{I%__5x$xl!opU%Q>4gKIB!#*=%zPLd*{+^IpNvYcd$4Z!^6_HJTfqB zc~!$_Nh}ACZ5G%En-rAdQf*Q3^@D^|S9kujm=Y>BSiNtsv-^-dxaVk&()DO5iCTU4 zFv8OAc^rdC?0W3sCtYClJ_Uf30x>kxr`;EBKo%!zs?eBRr-U`xJkxY&nuimm6g0p` z==Dv33F#?&y06Dg;4zp0SVN7XS+@ONhk$k+tE6mgLbAIjShB?|T35VhHD}5_5s426 z5Q#&#Nwj$ylsh(E#az}dcom*>w|GdSvTJmPg7!0X9X7t%>1E0dF^%TfUavJU6jX(> zk4If8sX<`FdyOeI{omN(;Erjb05tv~iq(s=?JT_rO-`(*vpJM`f zd%O3=19Q6pkY)5huA9i`i=OB@NdD`&2MGiAZdJxo`pY0Qv9L^xVJIb<*0Q{k2oH;1 zi@i5u;Obq&z%dq@f=;X#6LVVMolGemr4AM1_{KlB@rvdU%Pp!^OjQk1N(Yp20Rcf& z_6Y;T$jJp>v_$NRr_S>!CRlUwu`S9H#0~-u0OYW7I&~q3CT57d^G)h!FwO(4IAV=l zQ5=yTYfy{m`qr3#lJ#*)a2c)y4%47W4AJFY@Y&7rr>BgaI^iY{@FtsGJykYgi;&zb zCD-8ag|gG0B$T<-`jtSIL`Dt7q&el7O)l`A`b~+xX+m2uqhG|dkrpQ11J38+2l*b3 zBT4K}G||oX40_96GfFEB>3epZ4O}~23?6XV_@jQo?V|BM1+Ol=lolM~!-g7MXvBH| zfOz{re6-&F*4`4t`Ire~k(hr}!WugM0WwQcj6T+M7}oEIakBvNwWU%d?ccBkv)Kb2 zdXmrR-j9ZsK2pjI)F);Kr5%b=!o2lNQ?~4 zT?W}7=9u4fIL)2CAGz+EjAzfQibxD2%Lf1e2Egb-P*ab48)Rp9@D~OTQ3#7y7_xrJ zG215j|JeJc?o6~L+Ss<$v2EK%$F`l0ZKGp59ox2T+jhPrx9>Rj?VQ(rpY|_UW7NW| zS*vQ!m1W6GYC^rh&s|eqYQzNd_~Kg0cjc<5BE#g;o%3Mraivm&ziNcM9Z`r-u3lcq zZEKS}1XjvhwnfC=U$jzRH8|6{zH*ISkzwhO>#Ww=0L3lO>di1Lyt%x&H7t4jk=Px| z9sQ_nJl$@Tmv%<609}ST(OhF{Z@@Z}sW0StQ$0U5ka=z3Z|X)|pqgQbX0jdpHwu_LmmJMU{|n3(01_uwg5j4v3%)^TMiIRVb*+0i9gJ`A z-CQ_4dX8h@n*Rdq?S-xTreDooMvE)weeAR5uJ@;Dk2WaMs^05L4SFIiGZ-I;IS!GM zdcl}vsr1!XpK33VLFpsZc|xG@Ozbpur1qg9U&y+9K^ifp{fG;&trP(PcBlAJ|SuI)o(D3g^Gqqi`9k0Cu91n}6zlmu=`;?kXT+rk7|r za_mF@^v%BMpO?+SumZ;$WiB#T5;^8MTVFqMuLlAz!5JmhD)rBfXt^J(bqJn19C(c* zJPot~;96_!NC-PE%&w_Uy}M9TZ$tZA`Q^u1l>Xsf^B5%jtnp1IOEsYbVD)L06|Jdv z^2R_A`=!RZONRSA1}J5^zV^8j4#|VhZa96XK5IrOLbuW9(lksC&1!l&12}?$JU}(r zOTD+7bN2|@8rN~gkST5~R6X4c`{v!qxt|=lhAzy@>y%-~WSt|1+&ij{nB`f5iG9`U-UYyHpNv?)KvMWfq-|y0P6kaFO>3 zS!0RV(M@fI^zrjN5Ya4u`__f=wacBPQo)vAilsY7jcKJ!HEnG{R@V4d5qp)UEv;us zV5)vT>KjOcp{^I6u~lFDKfT|49d=C9AH}0kj#b{X9CYiwm~X=8H~&2j|NoAI$KRz2 zfpdHRx}J$aR$xBaosgt!L37Cp^fllyV?zTxaDV)`an;H4CaeJjjg4|2%A0>5Q*|l0 z1HHWK)C@8y%7FH<#>8hVe{0ft4SRhN85GCyA>QqsKHD)xN#J@Z!oNTI>-xmPK>yCQ zJD9&DH*p9b>q}dz_ohPwCU?ky1V%g(wCe3e(FM??;`Ybs#7g969tasVa=$;I`#8)F z@Dw?oft7;%dnW$JnfPa(W0!wp{Xb&;4?V|!U3MS{gfa*JpXY$e^$cy$T^vQ$*xt_~ zB%_}*Hs(i`qOaFGY6@#X*KQnp=UuNDC?a`&gZD;%v5J2h4ObD|o3tl$1=B~_ zd}4-oP-yf;b8hYDoYFWQP94Oz-94G5RolzII(fm2V9fu(SM_b(@Xa;0azKm`6@}V6 zo|hqzb;Q>sntP=|F{wQExQz*MLsZ>YR5F zCym9$euC+ie)Ls4d^)U!kB(8dz{pxA7z>$~t8$5t#D&<~8!4bAJKRUghm&l_%%NHd zIfUAl)xSV8t$oNQ%f9XOnd$93q;9fguX)%pB<~_I`t0I{7o8#gp7+_WHrie8pD1vd z7JWq#OyKXmya%7s;4BiRvg`IRBB1Od!yPE@h9kG6b%TUk>8TAC{cBO;jk9D&`|H)7 zddz6JOF{9l0J9~{OzQnkU1k)5Mea!`Af-#5hlqc&G)Y|_pjf*GzL+rmF~)5L)>P33 z{H+I~H?K(%QU%hz8bp5n)8#_iXgYzkh;}nr_K>-sTR4=IlV`oNH=EQa5e589USRkT z43fG=Cz~xTWm&fXEN;A=yG_oq(CXMTJd~VCldL+99Sw${7m<>QtxqgGDA@3g3>3z-27ET7!lhOaN6grxr+3*ON zC{uSblY7XB(AADI|B^ff&2PRSj9}n&TGA5zCW#Tq=U8gqw|V!DjLNCyKPhMsKD` z5f+kOT(jHo+Q%^^1#jfqf z(r{2|;tn;+EyJQw-*z*GM&y&xS$Z%PjPKGdmDJ-VNIU zB0nXf3~K|JK$Ndv$dQmE3j9C+xIZMEUGN*o|2Zgb@xJl|&H^?cJC}?~Wx~2NsyxV4 zmCtI*A;rqdza_?o#emt%V5c4Wo}!t+jYLC40>@7+Z91d2^22Tm@sCKxVX43Yiz?UY zQJoBkOALwR&+7G+1D_lhmlGb)lS1=t?U$d2qkRNkr>!;MMiBay?M!~M zKMC(K7*-|Sgu3)Z%iw-`rYfYb{!@iMhg4+7)*CQC)Wv6i`GxPJsX^b>D z;&BUTueDXNQYOgl{IVaZ712@iG{F35J!G??j*Btvg@&K}Z@n+8=i0|j4J&bI6~7y? z@YJ{K=XZZR`X{>Lvo8QgR1lg2D0v51@I0p-2d=Iw$KMBXnsnh8u!}T!>q{|4@WQvDOa> zuDVB?k0a6n8h`+Gu!_0LK$%jFch3Ed`sv}+N8DmB8q*msS2LEX>FqY8k#y{4oy3If z>!c0S9WU8e7PJ zKMkRsq01jUt+F5VB5u6kID~km$4{a4L8>Q1*S7@%w!={R(sOjpl8ry6VsPr!PhW z+$2kt9UDQe=01;{a%h;L|1+cOjOyda%$p9lyXeSQB0kvSIBm$WZ3FFx0_k94Bb05k zkgXnTQJNq(J#97)DYc=MlZE?oz!8{UpzudksDL||cusChI3nE^I!2)iuqfsGl;2x5@5uAcDLB@_so5rI1HQycYPUpH>|9UAI=Co!&$af?_9lr{ zwpo&gOIa%zZ-$w88(K-E@Dh>84_$omSbDvoD~AvCHN`o!(50w^Y(o<|^7 zCi_#X*OI99p-H*n`p!CIRAgJb;BT@RS1Va=lRj|R%yw0O2!Ti?8n{P4 zm7o!v^fWV9gJkCHCnZq02LKa&&r2$;IY-Yatl(bdD#VM2B?;0e+${Qu5ZUr&zKf|O2R(+(VTzp6XoJWpp z!D71TaY3CDPi%gS~&dq54xnQb~=Dj*J>&2qW81yNtnP`;SLa z_+vKF%KxyiaT;kg{}L33ph)fB{?01}=Ash5Q_2#a3g|s4q5@f`E8=DXx`A2jqlmgp zxFx(Gm6!>$vRgdT;-PI2D-ZuH=u6q$S?{MxZp-3Vy+&fs@HhJGE3tRB2uAw3#%yQJJVPmb? zwXtNS6BgQuIfr~&WfF2mj}pxAglQx$4uh|Vm@Ya;s8c$1Z+;VoC{ z9u0=uvgZ8W%$h9wT^3$xDlF`|M)tRN)p)R>(5o}R$|@b4!rqGSj0)x5 zet!$aN+EPP4@t6-D%2L}MuK5vMx!CzM36{4vG<8#|Jr98uFk76Ffs9Y^E2s%O#c&15?Jy+B+s&wmAO&F~_(Mr%ZuCXaGx*qfRNF*Ka5hNYsE6_{ma7<%-N~%OiKVzeHt%}Qy3+sg; zERGf;i5z=@*Wp5X3=Klj*vl2My8ZZTE2ay{#f+4R6OGuHB>^zpJh^_6HKO%l zcr;wxwh@WFxkSawxkIX>KAR3xFH^rBBe7#Vheyw|tSdL|(%w&Hwm?0=KF#mbF%PGo z!GO3}opIhlGJC=DkGcygFR0iR`pq-}Tfc>a3LTgsYw*Z$-dY)hgRHBA>OgQbC7Al5 zE+u_fMv`qt$Kj@aHRJb4&U?u^een-B!A;WE)mkwrB*}xXQqAxVK;as0Sp)#>`VBz= zzh-tB{fRcbPsN|U?qMviE~Kug1so=h3-6!U2Z|FZk%wF>&A*a|n_tCz00=YKmnpAB4?7ny%0YfA9t$tncgUh8z*{7-4vf{^W zL)3+^%;GudeEY2vGUJ+g=qVxr43`;rQP^XQ7%u-2-41>{#_CL#y!&+F#3ZhU=O2oo zB`|n@K=unU8l7oWVJ)+TYXkm0Cm`k>B1NKjdqi9>Mk1RMi_V2PZx9l&fwn? z#D6C}|5WqazvcJ;j`cs4V7dSS!9ELRK>a7dtOW`>SXY~(x2a%Xhew0H z3>cO9-ny9q>GPxA6tzzclpB_=Y_8HNJ~7ee70N7u-g#M?yES^Ir2xOoy!>L)T`H`J zt@GzYk*Zo9POMuRoa8(^wn=($904U54{CQF$NdBA$-EU91~vmBzW=Sl-&7HaEIk`@ z@bO}lZxRNH2LCeVTWg-!j~S~{&SYD=Zb_>VwGppV=EB@SVnO`NejG~wahO{SPSy+! z|12hTB52!fle^ADnH_YT(w?1pe(J({oq0nc{%xE!W5}DkD~syA6O^LSG8la_B|VZ? zFM5qYInr26b>?`NOhRs@Aw>RlB`}jK1$Wym;FklU{B)ITv@9n-4g|Pjy%gc~fKA@TqOMKJB?U z+yqs1S2`sWrYQi-Q_arSV*-23Adi+7-fqj);!;VinO*KkAj3d$=^D-iC`^U#5_HJK z1zrubo^`v@IS%ofW0?_2SW71#XrUAOJz-yAYOtBfZgXH3v<2_4UCaIibC7l+eHoDF z4-#uqB$CW(_3J~gEGt)%H8b{SS6Yn_+mFYvYs>Drt*je$pG7|6PKTc@Ifg(S0B*}c zay}~Z$*eG+AAWTr&elKheX>EnDIG3@u#wvJ}8@wl2^#~+7>++;`n(qFSx z9U|=mWILCy_2tj(dU`j@W@*$uv^Xdp!lq zm5UW?za?pj)@qi92+%rR#i81mWdc!#lAuTzqC@2E{Z> zWm)g|>gY$`{usJ?d;KPz`DvhL4zocc)KEf1UprDcqb}yhu2ACQoN-cL3Dj=R_-~Q4 z_L1eecso^WnHJ1(+00AfVkGR!ZVlPQOwKYX`zNapZVw8dePHP zZ8l{GV`{gUh@=I+4)R^pX~dx>wq(U04@>YAz4vV{^G= zrfkkNVttc?Q|iI(lt*D*KHXbqH@v5-!NAmD3(qI=kwnF(lk2UX^%2PzufE;Xq?oHB z!f{D(#+bS0T-^Cm@; zMBuKrxmD)P#%bqsMAmfa#+eamIS3ph&U6rK}z+k#}a$hA<2FM+QN8Rgw)@_-!DJo%1PWd0vyrBOoQC!j?)}3sw_n(e{=mwmptWon1 z&ITvm8ZAl&G?-sU&z7GD{<$G#7Tb%@4uirO?SSNexo+9mQc;gHQ!Pt*EWkSM-oeFn zST3hI&#aNosewM)Ogu)^=FBo*5@jkvO_b^;0srl^=e~Z+tgaK@^(FKMfLQ9;~>Xl?7K>u?W%RAgo(w0$2~;|OlY>*@yQlJ)%c2a>;NjT zI|cPdoB;JSKy~GrE5exIrb>yenlKx1HI1?aVrjEssc1U0!xX zF!mTor+(&3A0T2=Lka{|>NCEz8&LYkjG4pUag{hTKaC}2qVl>(KEdLGjgFSu(+|BS zttmxe1F-tNUANVK&c~=Ft%uYXC#7m}eE55hN=@f|^b9{{l63TCCEnRzNxlyFPwq&1 zX$JCUd7)_7(w_NE1T;GL?Y&*4walk-=iUB|uglz=nZ3;}kRNWW;I znOff+w|a}~Z6fs8K2nR}tr5!x8BfM&Z&49dm9{*64*4BVlwXj@D&J}Y3{s3W$n-`u z8)$gct4E_2HKxlSJ*gn2tnb}qU0>_jnyKd5zQ*m>&oCzME-e(dX2jvbxVQ?WzAVNG- z^deZU>{8L~yuFJpc72vNOoK!Mf7D z9&7JYh|ff?wq`&eqD>uBC%|Q|)Zon|NdK&f)5{SnM-hcf7b}Vz=WPJ;XX6&>4y&74 zOo#aM(~C3Q#OqH(EdeEXrA3S%-oQ zdQ=9GN2mG6cXS`u;tKy%b!>X^Xe1k2aB?y^OjKFD6N1D{hV%;_kVQNgrjV@nRoDd^ zWsZ64CEfdoUGfi<7Cep%QHc@(f&DY2>3wCw2 z`u#z%j_eq#aU6O%j`w+4yGw1^9DO=squUQ4ZH$eZ+8LG4fKqR-liW+2&wOV11E z?JO2m4aepiZ$GqifZ=ns;LzOC_JYp+522H2#97fFz!f)LY7Y^D7oCSv9qE+38nv>) zny0-eJ90_&V{gd=RO6b-6*R%B@&;lC(yC_LZ!-|xbar1FKH!OpI`~IsY)T9ilHi*g zIX`1l84gfWfXU%3(m~28@G!Q zHQ*w-)j+4fbKruR%0#}`Hr-_;J;2F(ky-d*egjv&E9hRU_Ad%^Pr2BdtrY6xom_nL z4@9zlm5w-Y)6+e=`^P)vg?47v>oijT1D$2~Ar83tHy&VYeD$5$#`EAfpnF5pryD$9x zw&&p-T2n9!qep+j236TOj=KoXxT9Fb?7+idVp&Fd!w zO(N8?023#8L$7INq35me0Dv?HuGCKO{ALB|z_mlC!QIbX2ih9bc6S1q(M7A<2xRD< z{FwT&2wh(SN30n0FkTT3^6R?-inutd>ZvDZK_t>!OmEDQx{wKlaNMtsb9Z6)v!T3b zL)d8F=}b~k%vSX14VRy2VBaYa$b@tVK#M-MZ1_}(IiK^Wf@g)`{~`8k7?vBQZWZ^^ z0FGnd)s0)c262Vo(?4HNVxQ@v&SIWQ`j)}L^ov^zY^Y9JCL{lJ=|aESjOXxk;mrC{ zoQc4V!Z7dBJot+ITrn;z+wtT(hE0;P)Yfv5~~hFN2N+ zmR`8g7*6O7r<0-qwiX0)kmXHtdUg~5>o25-^~wDx*j8ofz`TUP=39!j@xq`7_dql; z-GNtGiN$ZP(sVoUMs4-h{0}w+dQ!0;FCtcoG2c2+1PLpuSLlAJ&u;IoG~hdI2c`}- zBkF>q%v1`Oyzhb{?PKyNkM_IC)h|!&a6em0pZ1MQm;GYG8GdbS3Jbusd&}gazkN4g zgTcL0<|{%~7%BN6@))Hq)6h-6{K!qxePK_dDsiUG0qUboJ+RJalqW^}Q$adQEO;RU*}LN)_jt-OZOeZ3-uAD11& z_39k5_ZX7+fw--2o9meC*+YhS)x?rW!vp>lUVLfsweuTvs=>Be*dNI z&EQ7#s0|e7_aYP~^gWoTx5&aJp8UtW)Ijlv;Ksg!@Pp-4wO0Bj^Uyf;X1J2x*%%`k z&S2^^Yt3XpC2725c0eppSM(TCXc>s%M5G>mQ*AMipU=ns7EE3_?i_#_*>z}^ChfdJGw)*P! z@tYpmflkv4v}A#sxYbs z-N$d5%MVe%=t`>tHD}bt9rh9L0`i#}>WAW9$!(4NEz@trB{iUH2H(xVO4YZ?u{^-d zpaM1-Hp|{v`rJP&Z!>e{O}S-&X`mc~g!V>+{PF#*gKD~b?RAkvCc6BUZ2NUGDD{8f zQ-c9K)%|5TAYF9Z>JQRpz-le-4zpaLig)wTmr>mLO}@VD0=!sxJJT1&2#I6Rf{e0Y zZE)g>*Q7AtsT(V*kP{WA@W@!nD82K;f64y33MsIk5G2D|a=<}|s#?_qA-?2&>#3sy zl@-p@LRgRR75!BTV6?-H^J3l)?6a0{5`!~MGweLdREXG#Yj_g!@j(ADA{-fig!cnG z6{L$l4h}}ehcLQp@O!lotX3C3p%T7CAi~mkam3Kc=-IwYNJBae4ub-1cYgiu!vAe8 zr9uk?)ET2*kxv4u+QC&94FTvdocW#NSFOoKvYd!W6W2!+ms0i99dtQgTouIKh2w(i zEV`Rr>07MuE4Y2jTAVGuVfmgnv23xVu|KduVr-WeS-MT66s$bvkl{=~hEO<} z5&9Jl`q6L%qxH9Ak0$Gv{ExN?i;VNe0RGMAHfqY+oQEaYnjN_HIZWYvw#~Xnwh8mp*C07~&D?oa=x2`FT${!!n93gb!M z4&AIUGRSvG5Qa}zuvR-6x&TgnWw*?n-wLugGe#E(q8Ub9j77wdusw2qv{nBy zkN?3u{+ZrshrcVu0_R9Ce&hAkxaL4b>+!8}HhLaWFUc8!z8y5J4D|iV#yV-Q%LA(| zQSQ7gVOTBP=SK*0UQCtNjU?EWqS^c1(RLFT4F7=~DDEVi$l?s$zOua)rZ(-D#;1!@ z^AIP1g2T7d);>y?HLzWEIGd^PieaW6ORh&q$Ff;QT+H(`ry3kM!E7{ZDlb_4YWQE? z`QMul^pEk*f3MnqNBbYLbpCtQ!2f=w%Kzsp)hqIZOK15;ytp84yCFL}j_8@ECik+~ z$Qvi;byAaR0LzhDOe={p4QPVQq;Qt%rB)>+jzZfmQFm|oJ&4CaTNLZ=Z7pnrTbc!fBv5vBrb=4N#QM+0R5wF!8iP?oq~jJRQlI1$F*-5& z8^l^yoBM{Jbt+;yI9T$*PGm_89`pwam>IzBbwaBOF?O2~P1{wim)hlHAsd}vD@6@7 zmnJjUzgB>dUz9+9SOpx9<^ZYLH#l3ob&eDmMC56si~q5438cD!pGJ!HEYs4GBX@Ra ztWzQ|AhWb1OU@BlzAdRiFza=pk4VqlF9ap@HRE!8v)}!xQqSObks&c+vA@@@Akt)J z#SvNe^*-<*fI}Kv)*lI|ONT*S`KfcirA$84*S}%M5lzSH``Tv#%UP5OwaWw{-|igy zvv@3jj4m2D@FX~jt$ohGPaEmh{+-HgXLf?I-h7Oj@%kI7U(cF4_xSw5TmeGe7h=Q8c2}U>jw_HV1 zPk=T-DbLGUBW|QOg8r_xE2}1FNM+~aQ^zQr4NK`Gh(=)0A*og^^hKFWuU_Lb+ifx# zx>d2B(i7P|iWTSS!_uV-^J}u)%x=B%fd$!i7Tm?iES;WA0xh~UdMM;nz%e(`Ps=~) zD_us#Bj?|J)7zhdl?V=Q79)^3L&hF2vd(kA?}_6I)|)+ zPcek)Y0FQ_UmCw5@~Ex5cx=-;Ld6UF9`Gi&-Q#X9NiB>72CWAE=i7bkAD`gv?Qdg z6Gz7yYtq3~IFLIN#O8eke?*WCEG*bF3Pl+;Ugg*TJ!}HVrRb)_?5!j{>jX5(42s?89#3!VwxWpVQC zui+jN&wEI8o;n{WBzg`+*%Rc>QD&1KzHY>B1oI_CT%{zKYqjN@#0SqZA&RIzD)BPv zjV1I2LjLL7;|S#1)zh>_H2${o_}J8dS`X0>8Xenj?{#TLl(+O$a<%$UH&9lu@^sMVvlUq5cPsc!kl7%|8ym4)uY3s!b3XhY4?b*-> z0CzFvP#mzAM;h{icgykU-!C=tVQmaR_wB! z-#LSG?zeQXWZT>s+N<^kM`)hPRz=bTkK5g^v&>g&C9$DSL0Owm`4?sX2g?3K18RTg zg~7vxG93N`vlR;r3~CDC8UsXKo2$gcl0MwG=%W79W^m*5cnD^Ait1GYi~x`IVj;ux zf~!$avYB40UsyB|IsBT?Fzz;AgPx$*9wM#_CoUDqmQ1DV1$@KNme!I)Qa5@pL(Ug1 z&T{dVGLj9DIUU23@caDi7KWahXcqF5xKfA#vFYK6ylLoZSGT`9sj-bEZRU*mSg+zz znG%Rz=@6E)gDMamV#)!OO!p{Lid?l5ZFwjiS5R| z?rOA}%hO&+=vUMR;W8Y(5Atx#->oIx38#zb+jhVry57=BEAP5H1cK0aBs*}|7KB0~ zkC4dbL;BAnSWy)#CJj7)NSA=;$pKW!9<(jx7Gb|xy$e6ALxI{}?}8JWiV#rPT~V&| zsAH)XUQ;gq%EW~^LoXmNu+`^3xgvAhgSzmuY%Em$9(|{v#d4-X%p;{8AkiJ$$-2`8 zquI7TaCkR73Mt3N*kEt;!I67-X_qD&w{SBtZz7i7I)5W4PLg|uwN;Ho0Z?0FUEEKrRiOOKm71U z71!B>m#N{BlBI(MLqr8m=$kH6CW^0*uRkAx=k(ij70o>}$8CSxq}hqxy9lbZtX~pe zv+@@K8+bNr2{%_yWTZA+Tca1!;0Irb#LdX~@DMl`g;a<#maWZl17@(?4JJue7)jfO zE;*0Vsf8p_mx*eM!7x2eePO^}L%|vHJD_6_BdZwxmKf#jH+K0!KnQ!Hp*gO#&>j?` zfjk0vMr{~z8bNaEqOL&7R)NmjSty7&eDzHsfBe}B}QIhGsi9bwPuAMr#?=SqgJiKi~tmxwTKE|Ub8-HA@Gn>1% z*j(JX2WPX(7mEiqan9noZ_Rs&9^}Vo!M*#8qgn(6q6?&XEz}r7uy;@-i9XB?cUu@7 z|5Pc0ns!l}03Ec=u_U|t+98B$2Y3KA^z^~9$TZekJ&3LK!eHRGe9FyxHFl4f3+j<* zw!Y}+`^)=mJa+gLq@R8+0^!#{9yUiELyel)htpQ3Xyq`pFr~6G0@mioQjpjh0wB*i z7P_H+9Gtblu@R%X0p61o+j>?>%DkVlD!Aw_rXF7!pt7J1$yIPk79Y94zd7+RZFj>Q zb*CGI93MlKU_DDu7RPn zhK~LIcKp2cG>Tx`Y-kFsC3Ntk@=`sB)-8%M`(Y`F*<48h9$4gB+X%eHGJ`GX=U>yR>wk zxNc?jjxedK@>x^%dc1?o{BActoY$86b6fpNoViD^a_)~(_@UAH0PH?5S!jCfedFRv zLnJl+EX?|iCCzlj3ff$>t!G1TN{*NT&7T)o2u`T;A@cWwrBZn&*0wg+LByJBqD?tx zYki371KMv!lQ1l;O@ewI;A;kcMt*hYZ!5{!T|VAb;B<5Bsgi8PWj92Nw!+WyBlwvN zhPeTcHEokWEX zn5r7?GnXp?yI$O%Z4KG9>%n{VajEpotPKrV4<|q}Q8e>ssbF1$99H zHrisw#%{pabB<1AkPmTtZ+fBIqT|AB{LOJ~42U=1A|M(S=4UIrP(FXN_QK@;JNaNq zdue01;;69H3na-OtMf%lXkZurxkM8}CpDk$myMJ;U!+Kfmf(rc@v(UxN?aqGd$5%4WLDenczcPy9I0*!eNEx2&wIxh0uF9IknE}e+!Np0izr?2ldhvhO%TMa{-*(MM zYB)UVxwg&c8y}LGRDZlq?Vv1IS#?Jeyc$!g;aR_6yPj{C&bWPw%`uPL*)@jfGdhAJ zfKg<>=vmMZj{k8D)D*M6oeYc#fDC!0RPjnp=7PPd z&pfCsI0QnKqcJH^(V;Cm3D$x#&Q>m%S^r_6#@Qec2vf_0JNS$Aisw_p#0@mJ+pTss zU~GXeImt0VT^2OX>Rh&xU3Nf<0MKp;k@csYp&E^Qjto^Q|A&8l19E1ElLJR*=n+{Id~sRc-56Maf?58{fI)mda3a#s`!zVNb*X%y zjm&c!7rp7(%4mMttQvTJe?`q%si#K+y>)7q5px$!!TR&jm3(rX{n_du6M_ljefNMT z0%j0C`R$vBUg(!B5585)@eE;7S|K9FKn2}vTaplQy>eC@Yv0Cxv}Q_c8RklYv2 z#QE{hVIrD*(8w}@o%6Pm4iVpo%@^Ev4Y!)3IT_~PI5UCkWT6&sp&X`<^7?$5gh+<0 zXBz%!bKPzs*_acGZ;;OJ!@#!`N5|Dj-65Q6IPpq&6f)wFi{!iEjSYdAB4^$glEXcl zzbotc6tC6S7iz(ex;$t|hs=uL%+j)g0~j`A`hqntJx!tH23RS;c+;As50`8!tY*>X6exM@tT{_70Z2IAjZt9D5m$p}iK|&xnx#sY&p&D!4 zB76V3^;=AJHdKQ@1AH>%hxPigu29sRX2gOV2% z|Bg+>yp30GTpiFQZrem>MnOITx>ssunjheA(&_#8Z99f?6{LbL>-S{fMh6GBjOsHo z^9-V|y#Qjr78~=RRYP<2#B}GA+05i!*-Ie-0>6$U41rSfM5ohm1R(n3BsoUiPuK@h zZu)Dt6u|Bg5GebLTPeczxKMV*#~IKH)OOTVi=GWzB|uaLOl1ysv+wu*pkk`vyn)Rv zg*8_hvNkyBu652Ad)2BQTV(?F<4N=seTMx|Y_N`JBddB(cSUN1qXl|J3+JiJr1y-= zirTj`|1nfK=Qgc^00BSriV9jo7g%lz+`3z#N++4Dtu*A{H0i&w`yZ;p|20R4ND<0t z{10-^JJ<43%f}6nRbZZdhMbh;Z)8i(WoJ&x^nKkih~a#rl==fp1RVN<`j0eL@RCe4 zg4c~{@>%W{{yulU33L4tZVZ)KT4EQud8Oq=Me?vI7_|G25fOfdBJ^mL7*@7CgkjRK z%TgHL<$2$Et^vXz=MR%K-<&Up>VVIbswX4lu-C2qy<+NH&a?VGX}h`Tqd<9A7wnoo zIY0F&HL`Jnnfi`4D`D@WVCp5sGZQ$vGN=Cru~>or?kw}@J}Y>yo7lHJz_27WjJU#5 zME7`PfuK)5&7GH~Vi<7Oq34-m>a~kgvI`aMFa9=ITg|p07jWjcT-R9mM-VN}xB?!upN$9~ zOXpb7boS1g&w&{malk9)15W^;Vns?4nzTO4CQJbvJ`NWn-c6@Qko8_!uQCJt#}5{( z5Zhn-HeO$wR@j~#)7%jRUEz}(rSUNqOE|1Az@>(9Wp~5+CFdY2I747Fkh%*&2tcRi=Uh zb3Ytfn`4e)d-)!tCBX+9cD1XSYo7836wKr(LyGuO!59L@()3F3(%}gx9cQ`X-(`hY z5FHJbGF#QqEnV0<3-8-;*4!V z(dVM5>aNKLVN-y5;gJ}0Va3yVvQ2ikR_oQ#9l9_xy=%yfS^eW0teB(7#LEez8VXF|`v0)^4Q+xz$+BhJwr$(CZQHiZF59+k+jdo#ZM}Zq-OhG)^A}=qA|f+S zgjXK9MfBQd@jxMvG($#?;7dibTtdjpRq8#}Y$nPYjI@UZ3W_%fI>qbu2au8HJB|YA zoruMx`6B_@br=^H6aq?9md(dqv7S!7TgGF z@l&Us_uC>uMLKa*81j2>m9}acGh3z@*C3*k$~D!~7s(*+HmyaT(O1Z>-~T-1xfFq1Ov>fm)I6=Ig2 zUJeqLy)m*|Dp#=eD1Wa)1(^b>Az!Sbj-}7#;7h)ruw=}cUc%0H@f4}2vXJyAf3hG= z>-2*>a2s0n!JkxTgE(-cg0!|WFL$35yaVCuCjOvp&zxc%MJ%BT0Y}jEE}3eQ>>4Bo zLr#*Gnf9$jEYiht2mq}!&YvQp=hy{Ij|kOQb0POiUDi77B!}|zpOKkxWJdL#ADU`5 zfy0S@`5cmqutc@y%vWE5Th+i7Ohc=UN~3sGF?G`_sJ}3lYq5jt$z&CJnSQs_h1VDlr}d;U)Z{09;6Us@9Q{SWN_0QP@rF!e8^2u3h-_5T#tCzY4SGwvJIg)e77 z#0x^c^%v7ef@IGHi-(J(HQtPON%5uOTb@Vq7O2A_B94AbKBPNc6u6GHcrwf!S}h}M zVj=2ne|C4)NVWuB;xX`UI3pBd6~!AX^Y_35QjvNzZp%ms zGU#7da!38jp2ThU>mx1=_0E*wmp>tW}*5q7u$w@J)$3>xv*|hrt8#= z78D`p3B(9}{baHfeTkj)FaACbzcwa;VsvV0tr8t?3&6tHR1*SbLx@#F;ikkY3hIf& z6|*$ZJ{Qx3@pI}As;ZO^Cqd2Kx28V=khco3>mX4FtM|yNpD5QPfe?8T@G=8_L~=)v zfQ>^ggj8##T|TcugP_Zp+JKNebd)*%Xcf(Bo{ZRM%7c`Y9~OoFakfI+wC1IaSmJoF zL@#eKzmU?y6i#qj)FQ$IBlR@wJX!~kKG_x^JhFZIfGbkIVfdWP(-))4G!-R%NLJQA zoSu?-64c0NKpH@hb*^pU7AD=pk#<#$?*KB{zM~VuG%;n|nQ zX)D7&T0RZ`(wN(2Hiz<}1Gi#1Hv?;}AHO|@2tZ>|GIa5)#~=`;1F^oxEe>0e_3)MV zcxH}EsWiJ7LcPs#ZG9bZh$x*KK!m@gxQ-8x6d&ylj$p$@&<29zp=i%Y-1lLpZ%V?GK9oDlL!sVIm2ZKS5TCeNn(#u`DnfL;u}* zyL~+Ra9EHMTPCDFRhj_m>2OuX>_lDU-Kx68lB#0Jo$Mt673OW#m)%htAqG@IcHUF7 z82^eAk8BvO&}n7IoKHYYTaz=>zm-|tXO#i?>xeUZENLYB_w@vx*pq>&cRc_^Wo8rF zmxd-k8DWfm6o@3Eu8FYb`f8HW7F+kw%C>P~T(BUO=_%NIg+hi2)+QNMDtr1!lJ;HL z?R8&V`VdN2WJ&l74`Ga)V`l&4_3OwM$Z+H;qwdpTdY0uN(lE-_DjBfcJC*Cim?M5c z?{<`#CoWF%wkI|*3mO_n zvRqA#ikw(v)?ntoO25{dRgxdnU%G+<$>S_YF%uTnm?xpx{mGIiL3r7%>D5gl187#; zSrM%Os9Vk8Q?IqwpxjQt+aU5DOQog6+%@|n39$Rq*tUvnuiIE)RCF(36RaO&N)|!| zb0kJ4O>J#M0eV3a)yC!m*(iHwsJ~S4YJvhos0r5o7&XMs9GEL&p1dGe7Pc^;&5?TP z01qTbm?!d#n;*?fwhID#w=y)+1`L0MmFTiYBtR0f$#x6#8CDv?8D8`ZSuu)6w$Lbm zMQhdj`@Mx8CyD1PfS^O%-Nz!vVlH?xV31U3P99RIV>IT`BAx1P!Wj}gHo<~OBj^RC zN^Ga``h}Ox8S}bM9PwAScw=f5le|6m=Hv0{yH9sS!T(E$v5>`)m@P!zTWsN_b~|jy zXf_br&CQ_ykMtk9uKVVf*l?;;*$N=$su6PuQ7ZTbgJmzsf|=Z8O#T@iO{*k%llQf;-)P2Je4$s< zR3=wFjz&fg-{|rQx9-REb{o7#77Gq-Rd)(GUKD3SsDtO*R?jP~FIzXWFFJb4goEL+;ZefD9C`2$ z&JtpnOlxJQBpkw1Cqwz{|7nl^pgsOeLeKf%xQ9(J^X>n{M?Jx9{2f^x)|zyhWhsF| z7yk0e^e@(SqWv*AxNQgT-Nj;qZc*XbeBRs)Fh1O-zbeRjOf{SdUPDGUcTx-8E)!o% zXwpgdrMBEL=J^u|hDza+1tR*0wpGfu680iG!oRb#>@>}n;f>#MPaqut;4IKnz@GJ~ zEuq9OpY?qNv5Mbx#)I*?qe}?O)BFRw9H;=N=+AQak)VV4Bdfr z5g2m442GFfo@L@c{=m^q(95L9c)*v@L9hHP68#Ma^O6D_PKVKoK=16!n5~5j63eg; zQ*X6w_vEY7NZ7dv+0n1FV7v`#94BBFi8n|RR}->tx8nB zMLny!)_6sIh!2o?sE6E3YWEdXV?7tJ8%GN#MFcg8aQnM}RL5hlsd z*UHx3ihpo!^`ee#DTg`z{~r2Mis!!}WlMkmas^}5ET6^+IL~P7=h&)s*>7E#`n}aFBhcYBQF;P9a9F&-c`RiqPsLW z{yQF&s6n)xG;}qJjT&ECT@-Cyi^iiz+6*$G>xMXk?f9dg4fz0#D$QzLSocoZCsr+|QK=PM+d+q+qg zwn_@ZuS*#@D4xwnGJ`WL(>3V6{8j1FNu_OWzNtvgdv{)YqIuc}gw6oclp4{&=CV*x zZ3G%Tl`gBD|_lk`}y;(6ss6U+3kldZX5kPqV^s2lnQ zJjayx?Q)zcaLCJ28_PKho1Xbo0ASS&)z2>17-FIGql6f@GjpKOJ|=yaqqOq9qg-w9 zaHbB?JV{1<@mlbj4djqy3zoh2Wv{NyZ>S~MYegIy$epB#2Z1%xsgM=wR2E!^Z(b7B zo=L(|dXPX5uPJ|y-z?UV0Dgdkkki}WveyG;$NPh!-w!nu11$UiBA?2rrGe1PBc};6MgPARORdSPG#aeh9na1BE4pJ50o5;qg#D; zqc~(_3{(rgy%k06wZrBJSrPu^UFSUT~fxZUujZ=)y4p z!U6h)cbNkg@YV0NlfK6C^`^p9Y#VN@$8j=U+4}#BQ>vwMB%@@fc zZOeNtpkJ&P!!E^b3FbsYufd+xvG$8EJvH^C_?Se6HiPBo)toc~S?-eB{F+vxvo@yG zu6?;}rnB=9-||j^85@7tAUs%9oCh#EB(>0+NzKYu_0N}AMx2|=ZH*q#y7LmYd{v%< zV7I)5nX&wfkPuVT?QJr=D<<%kSQV$5{;L&b!p3PLKuyXV`N#dspm_t-(lq!DV6L(y zWV~#=0%yA)!xB<^;=K*7g1-7uB5onLLqGr`?GHP`nD-^T(sVHw5f?3;urbt2C9X3= zL}Sdlpnd+n+vkyEvhc%#cX0X>d1NP8D3KAXY9Jf+#t;PuM8W#}lD&)EkF4HOn|GJ^ z4&BOMH2}RmK(&>DK$Z|V;4Kja{6}qX(f6W+BX9&U4om8oDu5J9#!#u21xdEQbT>W` zPfpZc^m)RSiY2j0&lVPi=4UICpPl6UbeU-uzf60Y@}@W8k>49`8i?l0;TowyL*6Gq z*zwgVE8%RaPXNZHP32_6bP>bv9E!v!8#c2PKb67(fxPLQbUxFX!jFSPa^crC9;A22 z4Ojfs{+SN(2SorG)jp$DzkbX3h9ML3x{5{bbCRhA2=z2kY61A}7Q)tNY|BA@ji{<$ za~#``+X;ke)h9ID^RgLwsV}?-;OF-fS@X=DSb;T%9P12TaYXQIXrTphHXR*>zrPcM zV2}g58I{@xVep@&cA$R{emJdWzTlBd@0x|S>7_^$BM>=rP`TKi0?mm$MWQd$qqeL?nK%=PRmjb;PF9d;1@j@HgKp_(oUu7 zROO&7>8&Urq4@~#o_%m5tv$XgKLBEP7UK$av_0TCsmVJr#CVZF&NIbJelXqw$E1-I z_>QMrxx8;SaLuZsQ*Z9__bE4P>o(C2{lKLP)s4ai(MxB4>}o}DW1fcLEC0KO&Oc%K;+uJEd8=$EOr42iavFpXIqOnDRii7 zAxou~o}7ZxC)yKPS>?vKX@#+H1P`yZd9<2{2135g%6UR6vU?o|Eh$&PX&>BKJ*+QS zqYg)$GAXOZn-z=ga7R$od}dHK5CGw|LlkTUZqa38 zh-9Ft%Na+SGcDg#yZ4eav$%~kZ_}ac9QnyMm8g2`9O;dG;0~1x2-d+I$c*mQMzg~` zi-7_5GcQ-2Zw+Aujp66nzIjbq4m#bj7!VP0oMKF(&p82=t1I585=`k#65F(XIMemh zd|cMZ_!2|uT5AnIzm0nI`c}Q+f875cxc|Ro(cS(B_J08TzazB% zUB5sz3uf{BU(Qr_SfDb-#Y!{-emWcOAB(-5c-u@09TwFLa*gd?{N>`QM2|<5c^ntV zo2|KD7ScW~YgGq_EP}@DBmY6#dZo>UjpD>e>N5|U9W6y)B9_3=F)l5m?{48T- zU7$G+gNDI{g^oU|XB+9Hr&!AS6UBVwmNm3;vH6`{IrNb;cF(``chP@41SblO)HR~y z@Qgy;5QRAhQEI{(RbnU~SRuGY%nctADVQk|9Bf5x*H_f&fxCT@pO^Cw|G>`sP+OWe zIQ7;hnalaT=;0P<|w*I~8-IWFJFTNaaTONl|PYZgW6)`d`)+A0ZEQ^*^ zHl7^FokkXN@NApWHf82)T!w9Z>*`2ZAXlI4i$P&W2Nu!CWM&&-nfL`ITK}Doe>>0S zY`Cbtl5zuhq~FT22P!owdqJbhyp&^ih?_77d4zXrp^I&GNd;rDMCzL$(|8*H&VhJk zCSdV5&%`P*eL@*IHMqoyO`x$)(vDNP=C$RjZ|s=fCx$sKWS7zcmVqW<5@{^8`+$Fo zZy%)0xLxt894>?H*-vA&cd5l?HP}-{XUWz`e7h9Og!Ami#>pTZ%%}NktLo21d=7oj zB)Q3(&g2Ce;SMX^{22{_tg${nE8~RdYE$sG_lzP~aGSR+MIZWX>}mae_P7fkqrSB_ zs%M$OSeZ4_8hCmfjq~p54%r10X(kx8sU#+fBm}E8xP|*Rn>lAgA-m5!hzDP;u`-Bw z6sb&(Uv+f)s2kJ2t?=afvl~2U`$Gk=lrs9FUONn_@*yRkMp!HatyQMmbze{Gm01Bk zY8hR(aAylq>A5!D+@PQz#m%*_N8n4|Vb8=|e7^XlEZnQXv%_qE;WT(qbI%qMAK?%AC@0U~Sx;l$Pq7TNEN_9;LGYPw#O;vk! z{FQOL)Fx@g(ibz{Tspw4qnemr>KyWDE@%pUs(wauR!tCkx=eGlLUF%Tdo)J%eW zqcBFxcX4Yi9w_Iq%|{eJjCV{5-AhcHAE#yR+P@U%^JQgGBQRmGC=wmYLVBw=)T3hS zwM@_4bb|1yG+vDO@s`xQ4H+AVe4vwT?Qr_1Z0vAwNlVl6DqDB_b}QJi*f0#UAH_4) zrGhNMyJ`En7X!*9f*@_}^Mi#jJHxIU_Ro54+JciBosuxm@YJbCLTR^vfNH90fkxK>SQ-6-bvCU}q zhRfoArRsyuO14LoPHm3GB3M@gq8`lj(Jc^Cd-gNYtH6yA&k2*qOu<{{C)(>#EeoG4 z@KrN~h7^}<&kR~?Cva^?>cU?Ys>>m7tekE@Slc5EW!(YiaJoYzGY?nSHvY zG*>>hbbtk$`i$ZJK)|ImYTV((Kqn9cDvW~eFl__4cfTd@0f+LF<5~r+=`}sTMesJ) z2E35v_V?8EzVBVIEe~Wo-P(hMh$A1~sv?8ZH;%ab1zUcSYhxQ!1#01p0L|A006W09 z9W3hHy}tzk5eSAKuT6Ms8htgbs3RG%+TV(hrKSpLIQbNK7oawI{4LM!_J8^|PBdd- z!2a@Wh>}sxh0pEG_lLwnja?pGlq5ftMs{ynijB(mOARdMrUPB<-{|zlONFqZr>Q(3 z51z9KUROz(#O%k_q{l#dB^S>?n=g-9AlM}Q#(&&1Dqn1msu79af<5fiQHw4v=Ny1j_+zuQofT8!gkV4~0U zZ~0fH2CDZfZa4kGqjhUaox__r%Ra672B3R@Y*{_a#vvDht@)cSGV?%@*uo{!h+%qe ziM*CgQ~$!~^k<2>%?-yIvynnAC(=<9)388SUSd_OFU(>^BH$-KNY|mg#Z}?yY7p8- zX!r;#2NwqQbhZ|=P1ohvK8Py6q0l#_$>?T>!v##=%pKhDiE~YIpYAP^vrU=y!BJb% zALYDBvVy$z1TN(r2K>{*AknOv&$UIvxI?`@mcA_St9WS`&LKBH%)7*HGH z_YM6^?^cNGk6bMyG;YWpn~LMzBF!e6Dxc`;m8R=S{jc1$$e4FbL<)UF0RFgDVorTg z=`~X?yo2kj)wW>#(?=Vvzp3@+t-=gY<&l0|(BDOsGgpAK;)WBpBrG#>duNq!BEDCx z@^OTWODK&Q2!GY@w2Zm24GcFhBwML5A$-fWPz5fC&xrz*O{QbXje%t12j7k6KsbmQ z&>rs8mfpo`rpj>nugBV%Q}j%GB@O0?`SRU!M2^0>)2QIAk`r*L_?5RF1dVSWRIA&s zz%f*Y9Xtyg?6}DvyiGBpKER_L#)Yl;CtHfEyNDS*KBd*}LmZ7Cab4ix){z#gOLRGY zjO0aBLaTDRSOW-2qBUEo@flSWJ zMcrSUu=)itFmg*CBCCZAjY+FXmjY-qQB(T5uhC3N4Cm>umbag+k$K%SJ+7u?wAjOa z()>{F=G8Uf1}h)k7c0_&l;n&-53>?EWOWTr5F=dp>NZ0Yv>9QGUWY@G8#gL^{UD|y=hz2sz)HPus%BK$r!(PQ`*ZzgFYl|I^g9YYJvs&HV4I3h(iz~yHj`W^0OOB&e)kO{E$(dm z2Ybo0q45EMH8*Yh#a_W*w&sd}?Y(q#x)#+FH9-C8@;|8`3zcIy%9Y`CD#k@8F1L?K zY)D~Li))0ytz8WGVtK|-GKTm2ftN6LJrD|`?WP9gP&98h=^gV=p&<_ER7UAH-{qTu zcLV?e_3O2Cvh^FB6s7!}=97_t+q* zVqHIF66{3#KBVZ5hQT#IemD_+Afav>)-fmPFc!@Bz(Ac~1-Qcfm_dCVt}kO2H0N^4g}-s*h{$EtXUHnT5$WI^kb^59)CE0!L}+vOC^I>8Rn#K!n>UnGP%BZZlCr;G-1 zh<*s%4dN0J*Ki?4j-Ol`!_b7RRq)|weC$yWIa5YY?z?+suE|~=A}zLDh`#Vnpl@PyqP;pv5`uOqTh z@&5ouH%;)WWxqCU!${#-Y&|FS{$MWcc;N|VW)vkxFw_Y`~)K=B66a}|=puUjz z4$tpDSc4_VN#_S8lXZ38K7O({+>5;pe0T4E-+`&H^l6G(jAR=fOFEJ@*5SMAQWtU9 z=2ZLcqqTaKWIPMT%TM57F51w~67?Kf)F*zb^bXEIW^p2-CyrE0cB9@wyD+0zgD(0Y zzX{w21V%2qN@-8h1nqG*Fgm7k*&;?1#J$eb4Jx%$JK&J!9sOeMG zT~F+dUo0N2pupMMm^N2!5Q!Mr;yIY0vwRbR0u+5>UBLw&gs0@kVxxe=U(fhOV_jO& zk4@L4nqcRb3J1fjW*JkFPiN0r*aJyZh{H5Ue``0$Ax@^tb;(0T0sAQpm}OskPXsZJ zRFy)sL;W3d36%hVFS(aIb_4!^{sjiCfQG=7d$4vN)3Wew-}kr+Y;SFor4KNC^;qa* z29!MA-YJkQ4;w4-=8)_u4Ju%PU}n>Wd+NDLa}txUbf7XaqU2eJI_H>iT^lvlYQN|eeuCzp0ymKhr?1+yM8FQ+ZsOjHQ8IRklvor6~dp6=`Amd zhUW7ScwgX@F4W}L|3`v{#J|iK{{bBH?clRvKkA6!6Tm>NXEPunUC%rD$jfeTA9l>v z`&!!^P_Qx%6R+$qt6K=ecg~t%N5^oIC4;*>J-_2Gg9@;#h5vqv8R$fCQ^=d!S)RRg zPd$&@Em82uSc1_zDsGZIGe-B!@y?7CjtA=HQs-u{9OdfDFC3*{^vwujp_YLQ`3%N+ zpW$AL9bKwsJ&xpV!;yr*TqSt8T~T*IC-JCW7=9a-88g4Sf_Cj8x+1rh)QIQi_5q5J zf$$AxzfY)#F}^WdJ@OT@y*6FeXwT@LyD4aZu3SI3*NTRzJ~-wMiTiuj#a&N5JN)E8 zkT&hT7Rs`*&aG0htCZGHaYovO$y#uV|AagSXb+u2xfA)_H3{z}ry-F&o)e5hY&xD* z>XroS5>h}t!bVgl_zruc>mpR*P}VIzjFnaBNMw|lcTPbS0MrLy%tYsHel?#0Z5H60 z5jtcgxgrf<8LjA=ZUWAT~(^?rDYhJ>DCd{Ja;yJyg)?C4Pm=tCrg z!b=SyP)Yz-YpfblNYK~#p&EDqvDlfw=$(MeV~b{B8M(^~n%tP9^0{)(X9S}&lGg)1 zy}Y-ZeAflh49F3Fn^!WX3mr$U3x3?h#QOjV06IU&M{xkmBX}^~Xzo;e`-4 zTU=QUv390kh0widh?f1oM}L;W@DmOA&zVg-bf~hcBET$oWfZfO%o#fGkf!qKBVh$4 zIFOlCoyoq2z`yD6#IeI*dTTqvt{4SC>RbxIT-}Zqwq?${FS5<4h>W|k6Tvn=0;t)T z&lIE$mKAc#M10C;i-)^9F43A31+p`)Wpf&$4L;M)c`TE?yNoWapLCUM?fbYoJ#LoP zP<%+X)k*sP<;8z!mW{M|n!Al+txmt8ZVq*Z_aM}=!WyMFh#z+2ooJ+OYPsCRl-{G{ zZ-J)0@=-=D)9qB?*^{#(d5a`#tgra-m7$Zlb|Qmxz4iLO?iHvp_a*al*uRs7`memZ zB@34t^T;9TX(sZhRBe@a!RJuxJn$4d$c8(oiE>OZzXXxnsSzu&b|GXR#cueSfhh>q z)FM1Zyp|-#eUltNQBCd9VGGLDBOb8p!d|Cm!8_|PDy$e2?fQ=Jr1zU?=n^9QL|wal zy)wMdw2q$?Q4#LmmzQ8_ggCcF8E`?|Mf{5dJ{aLp7ieCQcClJ9+|R{dhSpIi=lf%+ z(v>UMA%(we0=X)iZ&D5&PhCbvuWh+g!iWgz+lsnH6dSYpx8Kx7Ywj&q+|2Ft0FC@D`ncm z7L}W1+bW)oTsC5+!Fe3=av8a*1284{Eoaeb;Z6YI>jtoaqxwPU(5kOng(if8tt5=( ziD6^(Cxgx;1Ozz<%;SO}^p;#l^`vL!)Yn)_6Gt z>jKvd4PDh$IZ=Dow0PU7(oUg(hSd8Zn%4uk0Lx>Dc`Nftt9ECDqrgjWH516zAjEP% zspDV6g(a8#?#JH-CAaoPu5qGS>v|ocN<-S%PI zss@7-zvY%@v-FpiPJ!1_lf0!kDmsdP*f%JL^`8F>#kolM5WMtb-L#t@02_ zAL79kSMO|$P-mjr&FCA&<@WBP45CV&M^yuW|3U=hiZnH|QmC9Nj)WK>2XZkxcHahq z5Y`x+l6fWMLp|LvbMlH@T|I-<7RpSN|Di));2iWz*36_xZfyi?k#aSDm^fx>;f2oA-JOWLGBC!R72zhp^k{6qB@qodYsE-m zu4rW*$i@*2ya2GI#VrH=wseA~OBA`DT%g=FhirK(r2SL>ho&$5QA0a@9p2}+nlke3 zYZ8!_Z+0=i3X*A=7Fa#6@PdV?_P5e-c{U}GOd&hf&ULeGU z)w#zojfof{v>oB}Ds;?3+1^RMUcDOw;|cx|b=csMO0UY$b3JgQP1de;6M-Hj5aM0c9K=ejPyML(EIjmOjP#MjUa(V-LijGf3BN1$lA&3*lHJJ)yBt9P4m2}V&@YuaST#V#+sxV6FA(GX(~GsmBOXU?%ly_bjF70 zg1m!2paf0IR8Jx?7V2ZgMK zW&kmw`By3Y!=V+L_;wZBo*buXH03TgYe7Hec{7RNTZi_cTSoLPC4=4lb)ebczyH;> zO1a1_Vae`a*st3<_ij-`g>qm)Hk$eDq|^ikuh#!`h=_dY5~v{Ck+FC zGh3ldyET8ii=?TU(8oa6q;E zSWdz?35o8U$x>w^hEnNZWE<#YHPUm&nb~0T6@e8ams>XdEx>UTj7|7etp%?+T47Gl zwi&RjS&7)yGyJCVVUnpEo@}eehx%n6#;YqFv-)G}b*=M4d}sjJuiq3C8@!w$;JFYM zFmR$1Y-dpa(50`F>Dq$3FI))4*5)`DEjP=4R9V}ovZ6eHqw-dQ^uTio{X#5x;&ADR z0FE)vyOw2led&}rp!Q{JH17RU586fyjQa6fIm5a8q^Litjrp2+Md^ki)1A>d1#>3E zK3}^#d(Uj}iL?kv!=y;=HOGR!QnIF|h5O&u+HY#SsB9tFTJ1L5(lJ-drTfcF1P0$A z(1?&+gB_9rV#BcLJlbZj(VnWjN(E)n6RjHd&r0kW1V&8Vfl}Kho~zFVC))zK3TGNv z=k^L>xiXHT3@o&-O4H|1kF!97K!P2H$exw@1Tv`FxI-ffz;7{LRiQu4A6@p?Ro3!6 ztY5q{Kiy}V=I}}35Ce!%uyCWQQ*RK{orx5(WQjveDPD#O+SVzJjk{ZRGo_DRwlR@Q zovD~aBk}~To)8Dlg>Xr&ngi-?m0?IS{yHjykIJBLP!VO_YW-~nn0QDo`)p#m2i~{f z0R2RA9%ZtkWPib>j+bUgqA5e;JI@UAfDCToS5ID;dOtrm^P%R>8jo%}8bC=kycUSixwbV#$OKHy} z$^+AG0|dfk1JRO{J|!W0@=n}6^%yuE^S>{|sq?v&{g=)PURdFk{CEDoO7sDgH0MP_ z$x}XLRs7h~fUEBQit;qHZs~&-i%=ZamMngq2t~iN!C|+0{+L@Y_mfpah?opNh5AJ! z-9T5507X<=u6fT0t|a1o&<(^my>_(cjm<_Qf4tq5#;8KekvFpfBs~`KOcLbyP^%^K zb*?Kl^P)Yglc1=ry@!yAP=k_sdMMs;7jvu4s}RMi3v*YEo*Z!HkCi&L9$aZ!a?On) zGTzS)XAKtw_!jT#3?38W-#kdaEzze|@-1aQA1>tVz0{x>y)dcqI@_Gj?DDq;nb*1I4k_E(3yw;~FJkkMFT5XE z==JO^%9^LgvK&}5Ir)1duoA^WudH%Tw_f()=>bTkglBd}t%mCNZ@*kvPwutAkZ!InUv{|^Ac75m8eaQ`D_Nvq&n6L{Q1r5B- zq)PaEY=z`J{G2w<0XW$Y#`XPMF-9pjn#rr!tfNqItx9T&pIeY(vMyM?`;@ns*I>Uy z8^P}j05}{EmF<*c6djATG1 zUwF@{d_rpP|M=S#b~=enjA}uN4->}|z2uu^lHj(fmzOQ`pg8my1iRq!GW+bp{E3GqcQu8)jO?oNe6-(w7mNj2IbteWvh^4Gvjbz0#1_Ial7 z8-6s&2gR(G7S1%_mYRm}mxi620_onaJeb{2NA7Y{E-q~ActnK@=kbpPj$ZM~d?~LA zVSbEwRDQc3519w}Ld0NQCSRYJ%3g1R7Kr4S z%}1O|-oA07?bNqvz4KX9#7V;1sWF792S5j@t}R5MMMoyib~IB;8?louvnp~jYA88h zmS3&TY@BI7&iqeWgDE})hV-z+-HOzbMYPN#ePcQd$F&~sjJhDPjq9zfJyVE%(1uDc zT9tfDAz)gw=?pU?c;;`@dIP4Xxl7i%wwPxe?91Cqx8O1W|K4l@Pf?O_#}3{)^<{`> zIv-!r88kz`0go?lK@42nIo0jjAb0M4kA(F40qfl5I630ab6+v71Y{cmXdzncjF^HihX?)F9bNg}j|31QharLN zY9Z1a`f>cuHjc>Ozqkg~{oD4rz8Z5_4bM;YG_*yaI^wNhplECe<@O_mwzeS+Q$1|w zOIb?J^4{W1W~pG9&xPBxvQfHlIf^iGakDAcjUKjkf`6@3Bs*Q>E6V~n<4t3_E_&|h zfB?SxJ9<3Q#>%?=@0RB%i>OTc_q2)T#*VcISY3)Z%~c$zp~;OxI6xB;05KaxC1L{R z$yvpo_hs9q2>C;idK$1FuoFCv)f{W(+f@?@1?Z8W_>A>y+!$ef0TzrI-MA0ZJJ8TV zlq}xl3&hBDoYB$9%X>taGWI( zW(Wf-_mg zM^D>4r^0YVnog-mZXP^=0l8R135Uo)6cH0)ow_)wr@fzE`O)1fGV1?p037AE<-Jcv zsPE^hxlv;PAga2p<%DX4OCJ1TY zIW#zzRahiugd!LbHjSWxyGq8=wRz7XXB~E{u#r(SR+A_>-=0|84P;Cs>Y~5I^Vck^ zPY!~vAjZ}m{-VK3pzb^HEOt)K&qny}MN+`0W3@zM09=>rz*0TQSq|S0tEPOY0@*TH z#fKRxs%{lpa)A$570z82)ED8vdu%pfg#BeIDx(cvXV{-C1Pz&z)HCBLOZhH1iFUn~ z#aA0etTW}AEvg6M zW&f7Befubp0vO9$GIiRC#3uJZT&C~=35K)-WfkKMBZ2CEKlsw{`No2ejt|YWHCQQ& zrh&0ucd5Z~_5%W(*`=b0ac2EcxE<{E27I-I64cO-kWi<9Evsba@76LX`#bdH3Y!R~ z`xM}5H|FB-8WdJ0TI|3Jp+lvMGF!%nwhOyjebzKkD{M!F(KWQh2cU@@k47WDrXrlc z(9Ycw9XlR(E)Rk`yL)Y<;{s%C!whSp`w&g8v*U(3`55KIImm8O^Igzy5`kQONU7r% z^jqrz=pQci)TxwI)Uo2@QLw-pK(I2?d`E@Cng^n*F*|ONAU0z z5f-R7s(_RzI`9Vg=Wv%C)rL3NYjst;Xnq!z9H@f|u?wP56Y9~AnJhJosPR|j4dB&G zA<$%*`q_dcXv9@&n%O8G3|;-ObaK-&v>aBmT;&9@BgY>p&25DCAupa8$3a9@#+!o<#(KrkXRV|?skOR^=cwE42=yoB5;ao2#6 z0bn$zC@uzo2F5S}F6O|d(SXbq|6hlTV;4hb_cSw{NC&7*4mtudfg{I6Xa31Vcu;Pm z^#*9#)m;jtJ3?2l?#k#V2$;6A_%@iQuB$(nQb9$It^(1+EpdMHSnGWUvdu8*ndhCW zVfHnvT&FmMG$&`V!MOtM{E@gcQ+Ej}864hSO`2=M>8DWo z5=tXC9Z%hufID-hlFX|kkT5Pgl7?Rw^P9V1jNsAvVFtnUO>7-*+QAC()|H+=>J z#7&$TQ94nGvf^E7G!2;0y-90lJ(zk1Mhg=^+m>Wyocs|fi{n>(By%PSEq~d1an2*C zz3qw6MN74nShBMQ6fjuI^PXOy%`=?4ZI1Pj{vUha)Sc`c z8^}+A%%K0NZ%n<_)6)7xhZ~GYHm!HAt%(uWt2bgtei3n#-gzcUFRfMHeRfkRk}^aV zRIc*_!kp&)g$AAQSV4U^b!|pXvu#U_0s07jrRA&S`$jn+7+@3131jlYCQq7 zM!#x0z8lx)gFCZuR`IaTVxpK6ylg;fdoQD`b$U^2D*NcvW;lawgaZBp}Gv(NarTwevFOzM1qBKhjUk`+OI`OsErh{3Bx*KEr=@ zO^^`izzF8=1r3)!Nc0&XXG<-N7P^`u4P4a-6;IeMai~7`C;| zm~7c`ve)ZN1MzSk0QK#`EZ6R4_(h;`pS7&bx5kd7Qb~KjWnQzjD79RF<+*;Y`To!w zGKC_xPL5;KTYCB4*erLtVeH}0FlrA6Ur6Hxov%((3X~`3GwK)A%nYAAoGE^fNe~os zSNnQO;iROIB;}Asarr9==_)dCO$1h#xDx%U%}r_*!GgT*RT?PhbbL)kM;vw9=Dr~& z{^$T@IN ze!yD)E;V`ZK;~xHd+FTn)0*R#4#4|f;_@JfoNHQ6HO~t^!Q2JwQhZ)M)~xDDsa zr@=?F5dY}sbr?hHj>l?T0Nsgs&p|g$ZmiMPOnW>Wi|eSASg@)9uP%*`u*&?AIl%Tn zs1N{-%z^rI#d#V;mPabPmg=$1-G*%uq3s^ly^LE3wz7oY&MwCQ6TL5y=oAG_Y9aPU z3z(;)*fw*88v%m);bIUEXiKE^E0t#ST5S_n;K10(UH@y&7gW8--yB zoj3QwV1;ID)?ymrGhH?AJQ{G8&cu=R$zStc=K5k_V9J243|3a_wHbnlb+NT}2#aYk zCKRi_TZTJ`3k*Qit^&x!yQ)By77ao`=LFx$BId<}onAcP21+y{^0FeD7FGSU>SKE% zJod5foyIG)1+rf_Hma39*n~J7zAVp9=_j>TraZpnFR#Uf4Dkh{)}Z$d1D`t-Qucd% zyrgRU!8OxCXWDKggOamv%j74hDdb+u7wEEN^+7p;A8B@^S_mc1vK3wUY0|j)q6BJO zKVj$63!AJ>AHJY{B(=zd0V(r{M+#5F9`E09KFnfMYr$Sj2_KyZ68-YV35I`@j!L(W zWb)V|&1NUw2}uFq4A;Z4dDv7 z0hv_|^Q|b7MJ2&Xs{m*6QQXPRB$OS&ORdal3WYruJLzEK|9_GXZq45T-~Ls$?}6WpjlUgw6+T znwj79AoRVy0Z26I<)(45&BI9T7ZBo^7N7Y5gFX0Sa{7Ql^NHUW(N~*O<4?M>JQy~D1BWP@@wlOIA(1MAW5!&q1Dj+RYwE~eT{=WM49&Dr8i1pzJJ(d z{|uRM%rx?9YScHFF-)-h0s{ST82qzioS7Aa(#QK-cJ|~4st$O^Y%1770^1Jf>RsJ^ zjuG_3)45>*L_tb+%ZblDN!GcCX?**rZ@dhiNW+X|&Z?+H{xd7kgJ0f(!4#U5G`MJ; zf;f!p50XF0SiEpUD{LE}BhXn{iA6R8O}gmFQK~0t-^1@l_C*f~!bB%4w&jfaMK_|I z>h6w_H9Kk9TFRHFx9V~nMk$IvpWbyy%kBlU;fgNa7VABJ_Jrt&P*5p7Je_W8mEgg_ zhavPCTdNVJ)Xw>gTRKV});hLX>EpJpLMZ-3EVYewI@E1NVh;Q}KBp{Q(-N2ipHHdR zl(0RjAuS<;uql-j2Ji{e-o1%{+ijsbO(k){ub;|jasyWHxW+n>PSV&h^aSbx`tZpd zSEtO`E^jSU#RRaxXlo@p{a~biR6UsK67bH|fRv$HtW~*Ia~EhVOhg3mjG>SyfY=zg zT!*W2QK2tv!E~Bs1T;-u2lXG{HzneFtMo?YfK{Ck!Jq(O=uVlmR))TF+yl!+En7y0 z9&QZhfn>0k3v^jS)1!U~(&W(q=lH%)4}eEj5iV*3nwyAzBsqe0Nxm`2AA zMAS{Fgm#lle#)=$EwMsR?uT_8v$ZcI758O)v1E7vB9Uz9sCyKYI$Vz87)t}z>93V<@7$PD zF8Vl->FJ@2iT8*At?U%05x)zxUK{bdt`!bjjx+;b%TPR+fpf~1 zxc=A!39z!50f#j4vXSL*O+|(1b#iq=lD<-X5DUSkr%J9g?lRNPG?^a&%EfNuV{#Ly zkl=<@9@grMHdV(ZopS*G4n9Z$G1;4A6_SJ<`XW_VZsgIx!@AnS%WbYu1a9TaBQWlHa{%`(PIjuIFBwYrl^=Ch@%fp?fm0xl*a?g%2tGB&s^v0{;qp0!7d6N z^j@W8qra-~t#6SoqCkLiS*kV4l}@&PD<*Gfd9W4PV6Tkgq6PkcZ~G5#`!9V+e{JNHH)F|x(@Wj8m3d!^fy{JNrg<_WXCa%!wqTn4kM>$nMU8o#h{y3WUM2$}) z!=+0MRTB=dVL+U)W9zVii*`*!Ttjf8Fa-3~CbROJY@;r_3II7WO)Bv1frET@1~}Mv z2Z9Yf){V{+J>qMC5Bo+Hfo9m!!hY8Z%TCnZ92#eHLkV!c5r56 zhaNesqCU1%)jt@2*OWGwzZT#b4+GM3fW5KHB)MH%v-NEP@5UkBKeyZ358212)pN$T z)LLMX8br1yD>!qMxf3VZUusW_+N7yKxM_KeL1;pss7ra?yo|C7f1m`t?TnjdTyYfbGo)?M`L ze9XjrjA8+a9f?cP0jnEFH3_rk$=q=%8t4L?oUgMc zoQwIKG^8RtV=F~uf`Y4lc84Jh@)XKE=*_{KPXo$7JeS3oEDnDT_Ov6_ZZs2o5JIGy zbZrObV0A=I|L@p9Alc(}p>mx<;)j;Me;-nzxAVsK_J9qnwfJ)D`>ipzQjelH_z>6u zdf`Q8**+C7F^*h*8+)n{11qE(F3^j;wsoJD@A|kw@v<+j+06~_qb>i0WQLEFtzzQB z)aNh#2{eSj1AL_JXJDIVca;7vHugXwgo>)1Pq;%VJ}vrjjF;*zE8m(vjf~3VKgZoRkXR<^<;8rZD_ z@|XhZ(dS;#Fu{N63`n2mCTl zHA6BP>Bm-dr58A-@CW2b6$9WjQCgRjBD$=`FT|H-`{S6T*=q{e@X5L;fA3rO6`1%u zQ;f^k7u*UJe0-O^-M|!ik{aaHU1cDXhF=u7mJ57g7aKg9U?E1tkA=mGCBm*pB>XbR zE*{q1A5t~dWkQn3dbKR1!tIqebAIhdMG|W=9VE|j07}EinHWo;Pi7KAfso!~L@cCj z-@hSO2A;33!))WkSTO2mrC_!risjEj1@|g~qv>7s#ZUEeP08oYwa5TeIzWY6eRF60 z0vz-7c&vK-RqP`R9w{9;lG_`TQ*dxMkm<2S9jGJp`J?qh>f`nYayhvTy+o1v+Poc3(ne$WWy#~ zZIU0n!}UZ6I>UwtYDz>o60FrJh+DXGH%k-%RXnvOT{MSeeR?Da2n_58xHnfJVF~(! zz@9=hnI7H1$4;;@!~iTp+gE5iBiU{^fajSK^<}HO8%2I5~+z;)5GpvkY6Us0!?tfmEARP{!&?tqcEV1`MU5Ra;_@mgA*z+7#6|$OAqE zg0oU02%2(Yu*%xPa*qAqTdQ~-@M=@aKVmOB-?LAe2?u2onZyU{I!YYi;75r#;|!yj zrzLmr=Lky;&&?sP1Ir3iUR}2YO)|@Bhhx9=5)lh0vfF~wHfoeC&N(=39IM02{wt{e z{|c(}f5HBTVE;SF)B^wjctId@?Em&#U5s@k()sN-z)XmkI=kW`krji4rtm*R`3)E+ z3FO>h!FA}f;J9lAwQ7|Zn*zybhlD!g$KOEe3nV`Y>21oW_7BKl&}y3mMDbeZRReBS zDEg#vxv6bm^7IkB44r@OUxDwTziy6Ze<`iweEWXePs$KL*Z>4pCX^6NOfb8#^EUnB z-)k4E?b6kmeaMX8rO$M^4shdseGjvfjrlmHjp5C>0)OtI7%i!wvN}#1)NQS_H^qIc zuPuz4sYSsoVWjr3jS}U_0~#=MUT#a-i^ZJT0wxFBxJ9z}EZfC7*mY-qcE!f#sKxx$ zEu=$rLVp3yeA$~BgR<5Q!oc}cMPq4!njysGF38mhHWZH&6d2ZBzq}m}`&YM!gjaNz zm8GU$C=ApjHYUxSmF6l;^|C8SCJsGm2KssVB}p2Gaa%y`^^ke^@n8#obWobO9%n`S zS&Q)d5@aX9cIc2qQx@4P{sHvwnhlLFPeR12hQPpU81uK{UIN$*E7T(D?a}`&>rs=+Wp~cvg5>C@Wa`oRP~WG?vMk-j_t5 zBhO;CoIjz>T!kQLj-ve_50Z0j3WmnQPr8}}u}<)_OBQ^q$0ye-iJmL~f{Rc;zT#c{ zJU)%bCCLyWH{dCavxY?zsVqx=o_n3NU#c$9Q1gmJWd6u#!c^j5Z#gay5M3`a)jzrS zNhvS>Lgww)4{g9HyXA;myCxNz3y)lU9GXDUCoa^P)(AKHwzL9U!L#(wqBLb^0561} zLa{d0s$7BQ0=~~l@qQ@_fWe?k8%t`G{%D!Ewys~acPMjPwa6Q$Lxie0;tlbeiRzI% zHA6uk>khX+=4EW`;We?&zgFz~F*9T@E|P}J^4iu`0hFoYu<*u9sX=|`s;B7Ek=ih_NflM83X@!lL6y~62YF@~ zKIKDT+bF~CebBQlb_u2`sOU8up7VlM^2?=>nZ75rS#Mp8E%@i>yR0RhP^8aQgk#r( zWBe#5?`fHnCkZRV5#NXhqex8qU?ekTYac5;e*1-f;P78Id_OMPlOMwk@HnWJ06>5H zh$&%azWkR#{~?3^OZ@L|*Aiq$AoKixDRiE=nM$S>6F5$*Wf}`K(G#<2`IDg;&KYyi z4jcpT#6>|xIcDoxvwqz%nFvKKcxH$y_ZK{fH)I@`y0JI}NqW_9IlV{|| zHkH)+c4tI;&XtdI`^9K;@!zUC$8A1{`jq4EpzC-_1#>X(R1x+fCD);3C3Z+jWXy&| z2XSzWTAP>(3j^^<>4>zMh305hD?qZ9QPe@CjD~W_4cq|ePr0*oJ<)3}t=Tm+V)`r!BrJAOP0) zm1c=5{;^bA_`)C&+@?3^#LG%Cp>##0b4$^m{BF|)Ep6EPS%Ih^h}FX7+6`=pS}%?y zES(f`+CHdc*Z*m`*XZxn`^{dR-_iUK0bsB`P#(TlL8T) z+RHx%4;v6`kZ%T$KRVgTCq(54J-*iBH{|A7klwa)+zQ=McQGXcC~Ge9eoPGq>#m?wmL<^IZB=4*D4RT@qyz z0vc?~{C%|a{KHz2>74%LH?I3u#uYKD=53e#b>qY zh#KWyV9xv0VYAs<@~N!y{^GbV>@la|5_4p1_U#tF%23sm_Qtxv$&HR1!EB&apw8sD zBvKd-S)s6poqYN*-52Ua#pr+aIvPg~|u=S&9YD`ytybHD}~4x6|yq3Myo<`%ZaOXx=o-0Q0u76&H^ z=nRAR5`_}?w7}Q-6guRNPfo5|Z;`eeV~!iRcV)*tR~JjH__Sg~4%r)gB4gSy56&P~ z`G@l6#+kDX93!ewgtEs3TsA?bVNGbrf}@=1#)S95Mh_MfX;Q~t_gkDaohYa#UEIum zf9Sg$d*xd<2U<28e+R}b`PstasDJWXZD>ky#&>pBhFX4->AkQ%p%|4)i!)BEIvwT{ z0PV>Or%u&lWU5dPv3RnkRFAC~U_QL0Ka`MYY<&BZ*i+iNP)(oL7%1zNdnPaXc&dp} z?a^C1kO>xvG|4o)$>WlXe^D(Y1SSnWA%@hU`#SXCvDo~Q4ZlTLY+&swT&)2WX;PrE zv2fy9b;taUEFdDiDP|r z7dQ&KM>_+)Op}+#wm+Xyf~4i16}&NabM1(2ochI^#H)IK0_63}Ni@Bsc9W6LcnNlv zLSi)%qcR*|n09r;}$W z;K5&)$GM}|UCG>hYN4{MCBj9`)?#%wuNLt0jzH8;2uV7p)7K7i{_Ban;E<`pHw9V; zowsaxq=s%W?dV%AIHwMHeBi++yKVXJ9g4Fb6TV`Y?Dr~IpVL4->KXmoKy-Dk?uRDi zugv%nJge8Hd5s60*YR_clm!x)hKYOdB?JVUmtZo_?iK~Zz}$EWCT>{ynS5K0&lO{V zyH!z3nOjB`h*{5{*UngYQ;CDbyFcdW&4?wFL6Z$iOaqJ*!>qK_-f|$??lj_m-FkFV zE@;s*;1~Q&*g_bBWjS)}x$s}FsNMY!pyAn9KBj@VEC#~Nn3V@ug)EtNzZ%81QxT z=Q6y#&Ay(qp5fw$13%v?HZ@O1;6aU{LJdLM+O#-QD$k`;3jhTXKO#SW2$4WEwal7_ zRF{gzD15iT9*-T?wf7ra`N3uw8g+M_# zvvkoHDm#t(V#r`B&lxeE|e553w>0zV$$h?u#p7o z)^0Dp`WlJl5<=8GGG$4jF=F}36$P_BdS=6UF?H?3xtTVj) zssKE=xhR;cDIP5gEotvG`oXeKMLSq)*g|d;+d^HPn^xLY9tmzE|7i+m;7#C8mDqzojVzdY{|}vwZ!a%k5dSlf;lP4>RLc{i_~Sc z#|X=K#Vl};IjLCZp4d+Qyolav4+rgVL=cC(mYw26%J0GC$%WgeC84oOcfjMOwt|LR zdy%gK;<*JoENz_nD9CQzdh*-t4P(BYsY$!=F6!AFVwe2!+j3q4&yj1dW@AEdzULid zFj;2=K4P>q3ONOq*_t3@GK~YaAht!#hK_LeTg*i{!s&C5J$k^N+8+#HrOAp2uFgRM_EGVbRLo{> zy<25V98^CWq7$b1EJ7KYcOVF?e-J7CJXI}0xJa>-%tiGBl0f!GKLC6Lod2k9C`ScVo1C@`~ogdO6jkyi60HQ1A?;R z4GrCzQJogn7R%yB1I!ZFFPQBj0U9TW>qk)V1MXaYLgrj{R*ei|pm5yV^%EkE4A@HW zz>Vj`k0yO@S|md2Zs%}1iFl4}c^IOInU5W_KvLE!0x}Z~$}4uGzTIu03Nyr+H|j<& zvjKPu%3R#%4lD$5dEzH6nN$N3VCrBa$p$A&)uUu84+*qyZpGLl{2z1V@&haW8cf*8 z)h>-24D0qq+wxw!7VlV4c%Rt<qx8^N=84Z{_^mSF7~fW<1U9 zd1`Q5188FF%i~5&*Ff_kp{(0WCqLFdgj}xDQNcp;0v15kTDo7YF^hPTf`Yh_3WNIy zAu`WVf5u+16L0@d?j?as@tYPd_4)mSyQF+llK0=oYf^RX2C~CikA1n-s`XZ>Ix}8$ zXDCwSEdv`T>4>EUq(;%MgsvaXN; z&(ixnZ!QxotZW94fmtY*Xe0Q=TjZW@9;~rw%h>itGw&R8iS294 zz+L!=G3x-VhLhd}XSN_-tbNTrs<{juT#bW2>M8shnZS*leJW4P7}}j)jz$V&*-yOOp1|ZSW#IWFe#6Oa5xz znjCs|*3LsM;pTW~lD#BKvya*m{Z?R7wSWV}1>Mk{w(c0QZ8N#?UbfGgs9-sz42zD4 zU8eDD>v(@=!-e&{tw+Ij#ZoFNjtJ}wuJqdcFl|KpJQqJWYq9tZrR^=qcB4b$&!plw z6@XX+yePP;U(F>{Y-^q^kkZ^ziatbt$p*&@D_~J#TR1KGM{y*Tk&nkAm&d{%bUU!vvKEg8O5rOG97ulu85f8lH7j zdA_SkVeYtBM%RZT^}{eg=mEHERQ z7qW;MHn$y}c4CH?^vgc8nV07p`@Zf0NTEH1dgpTn^9f=@jocC|o<8bzz3?-_vYUy} zN+D$Sf>wnob(1c{kt9$P9pv%NQX}7#>YXPUZajPhOFx4!TJ?p}k>F1tCDoPyLH*!s zAy6){y@Xj&elLDq1c4|n3vafYWrg5AC7SY77buRhWY-v!(b`H5rPF<8TD$14GQBR8 z=UK8?!U)R=9+bW#NQaXi9-}^zU>C=f$y9s_6*)BW6a6&QQtShFxX$gVmvNk8%ra+| z`uNcy7t8P7KZju8iUG|REtKWQA=$mm7*A%CajY)@=}+vZxr7@PF$SSK^L^dZ_M^l{ zTw16Ir(U{HLIUZ%#yf*~i33L&Lp*$iNZr9yTnv3{AuLp1=^*z}U>hFlRBc`Et1B2l zJL!!lHnXX9?h+@19onOWJ$k9Bqn+6*46xsI>iOi&?-PHINIJJEz{-%Rx>6Op)na>T zasfujlgE79SXt!@h;aikUbJe<3e~L;5JK$9OGGLf3I{* z!~{Bw7JEDAT9$@8$=pu}oO6-yrM^lwc_i6`WOQvx_3N)1d$);45A;tuz zVsa9tyN2l4l$4LUadeakWq6poq0t;w&b|~5zD~5sQr>xj1{>si9U3`0EEpj{cDeJ) zaNM9#F>T7NWi8yHmJfk5x`WgH&2-H{{+Ydp_41zTK038e9dRdBu;lX9?6zPmZP_D( z*;`hd+X8+r1%iVwVPQs0y+_3p&>s)VN|-BCxHOA)-NLNM zq&j7OzTAwSRPy(*2KlB)D%G7*m__Z7jXBgIj2|iq@&bYxj?Mn^auFgJoHC}VP?$Cj z43xyWaL^F*m0;ZDB5_(t+fz zjb4jM=74So!-KzJKiy&h?rNWX)89XTqvNObtRxPHNua(u4d0cOL%d4G9sIb~M3uB@ zk{SE$dl3mVoi6>(_O!_k)aXXF>ge&yFSV-6#DAln7s`9AI@i0U&Vx+uXD3a)>MeDH zzM@mFLM5e-$DseWVVAt9ju4-WLAhc*_aBsJh=-92KVTJ?U&@T-yMEoNkXkm{Jv1yM zVY3zF@iQ4ird3`x7d!@IH6`xEQ;rczr41%__8-}I-fz*Eh zss9oq_$zzE0tjTt{|}{R1NZPp&>}NUN2j6?N7UpJoP>39FBQkWyIkdcD7b(Hq|LpE5mGMxhWk(;`Te2$P3NNnFRpT(oW=~ zXxR!kDMU&LSOkQotRl4m`HQyS695=1j40KBxigV$aRvrS0L69s65#d8xu_#wjfPvC z?J4$TJ>PpS*=#5VSEw8^aS!rZ-7W)>K}{+nRafU_<$l{!+<-lmna-6TU}6K%br1rg zh#A#!X_UdI8=YbRGYch~5ctTyc@S$hBS;Q9Y+U1wmeLO9q4>C9BJ?~Mu+kJPH|`F9 zG%nzQK<8Qy?XEpdl1F{oi9G)dW3Cj7t<-)0npG31(f39DO;Z@fu$`2C5&)rBP%Css zf}c^{vNKa4A%3FKaLY0x>22KX$!Z%C5&{0X1?=2`Wwv@cn9T7jsvvd4$Mg>J#N-+3Bs}dPY!3^*^5Rr zBdB(9Y6cphBoJLPQXn+pdKgNwa_W1_CvE?iJUKlBoM_T6h(`V74*(B7OGhzXdp%j@ zMedvt@Q~6_yQ4g4sFIB%2~sZskv7BXqW+kq2WGouRw}dbfspteo?o zNv*N+TvmulWLnqR9>CoNOoJ$R!0PEW2no!LG?Z{`DzOgu<5JY6PrB06Q7*ZpYT$+J z2~Nq-rww1unfwT0zY$6R>|d23)c}3A3R<4!^d7a$^!~SU(>`*Y5T$Wzz-m)i zdK}J;lB7a5NbyA}7L`PzOm;TkweJQ4sOPEae5C+#)@Lw>I!}OEo?;FloN&dii_}o1Z}GPmy@7X(Wh&IqCCA z+j#}vFGRfgqp2gHbgE73%ZVx*tm!Ya>;`w6Z|pRRPet|X7T?qJ9qy@rRFDnG75ky4 z@`asZUO1{3MqEx0$w89A-tvS3nTAhPKBP=h&wjev^z_~;DB(`&r-3bREFK9akCF&2 zX0TENx=DSa({zjyH!)%|aW-o!aH>dso2&Zv(%hPqc|v`KU8m16!LO9gW>IX3HU7Mw z0S7Bk)+lBZHoEs+l)#b^O{Ta@Gr;f%_0*XVEC9zFm@HOsA=72k$*wv2JKzdAMIw*z z79uV?geHY(?%o)P>_!OX&f?Xxv&jC6hyO@5^XI({7RGdukM31Sn)C-`(%4e1EJguR zg@K29q*L?Tb<1p75{S-E=_K^TvqA#MFjEs+GD6wRTr;RNIE`o!H5Q1VuXWw&66ZMp?CRc8ZEXBvHx~daC0I{C zLAMY`T1VROMQ`9MRl-mIF5-=*2KWsaL${HsH}9@i@ckhy?H&9ZT2>jA$&KJq{FMW;^VJm{q#7UPVB)_vE5y5Zp%R&&uUWP0LaG7 z<+~yMWO-G!1z}zYN?nYOR#Wv%`e6ehWO`y*Bem<)fm8ZiVrW zKX#CWofPu#8Ikb14SF@;5?Ki{Gw%Ze-U2=2e|RZvkhxdA%{F%oT^Z!a6e61O ze}V7#WTt!w8UHy^XEgJJ)V_7=7?3273EQ>6WI}@;JX1ai=#7Nbo$EpuuRV&#Zj}Dx zP7%zT3lNwB{FO8Z&n~-nX^2dSN8Bix$#4B!9QN}rgi9(@Yr`_P3 zQFYuhCJtQE|!Aa@K?>aY@tdPAL?(Ub+9cSTA)R}v%1Ih5s zeG3mV6TOIp%6A|AimW&)lD#w5+_1+r({+0zp*+g|wea(Pdv{=&;~L`3evCVl>W0XZ zs>utV`v0s+BWx+Sl*1tmx*q=_QQ2*43n60Hc@X&=Ew(vqa}r-Fa`Ly&8$Xu-wUI z3C2+qKSjJli8{$QB*053hX&7$V!W~jlws!uBZsWQ4UuwAu*bA>Qa=;1`=pb%HGS>Z z7;i=OQ;Z;Qj?Ert?*Y%GQX=fW0Szd)#>i-2PLR-mq=i6qp3qwGQ2-Rj-iS4G3JTX^;^1)+>v>6=z40oPSb*h%Btn+2(3*n|xD! zH80ggADwwxkKSdhBG1Yq$hoG@#;1Bi|cVm(B z+~fTy`x+sOZ%weP6@rQeo>Ovo^_6g;a!A2A5kPH|JX`|DO6Sn87lHJo_I3|WBFDqM z-N{8`X>^B&&I;&n10mMJbYKs2F6qY7i;2*za!7KF_KIwd42dBx$^fkS1KM_ZqfK#a zM;_)MlTCl~$!Bt$gI_=}hL0%CLX!;%m_jVJy(~inm?!BZ`VKB|LdHWRuqm2lt`~*M zT(nu^iKE5T`Z|FN7SHt)onT)t6R4!Zxwk#3SXlH2)HSK!FDmG|x??KtZ4WP0`e7-9l=J1nS! zGQZolHQxIB)u0hX(|n!vq*ZoNyQK8g!>Bd1sj>>SiMt>fUZ1KNWZ(V3q-TY>?k+V^ zQ~;SuZW zHq>veqt0v<67iXF+5RQ1sHEGQgfn#*yP!(nI{ug`OlG|Z3R2TrWCzyj5R=>TKw#&8 zGDw3gntnt2+Spe=H<@fzW;X9@t0#GaPG6$KRxOdFciFl;meEE>qb{diF)Oq2kf90lLW> zfp?CkpfCz=y$b-he`5=m3^@lpam*Q^?u5Kd{Zu{4sb+r)Sw__G!z!ETK7{=#aYNMM z!7EK0cuFUe_X5yju&zJK2b^k7#?TAALA=D`^z4;K+2c!kgmvT9NCQB8k2Le{##XR> zhJKfr(7giL$MtT*b4 zV5re%nnR~&^^gg#-AnruE|9_0`Y{iefivijFKJ+^O(`gyui z$DDM$>|5>WO>>bg>@h@prd<)itNs;vnN5igUbMh={!qP=BWvY{z>r|>}&lNz5Po-~awkSo%F;nMBoG85ukm!U}A8xN)=z73<v(R9W{VRA< zK>nqB)+;3RzTIg8b=_797(m@+hLq&=*3~|UzutoF3NC3t#xl~v!G#V-2~?ttellwz zS;4b9$+#6iKx9LK2Q?1^Gs~0-&K1O(v_sc(QO{egC%Z@9JMo|@=j~qAq zC=p(J0|)GGZaHsd+cSaU5<16v!Q-dhI%G&RAnK0pf*Eo95;oKClOqn?szeYseorgh z*P#^w#d8Cvg_(`7@RTHx(TbsSqesRDRdILcx;^yI7O6rhIXaXCOXH3%_TRh43txNJ ziFvT0B4EThR=WXA0$o!ULYi)%gWg+)CCsb+P%&`>H|>o^Q>Nlvmz?UeJ$^tO>`HqL z*2`5>e7Y>jJ8%%8+Y)MN3n0I=Qz>I!J;{HB&Opc4rREu{ttIN$uZ~&oU zU2ezj5c9~BtYgFgidBTnaFauM>v$m^L&*9aQd;fNtV=T8Pa zQ;l$Q%#i|Xa}=8*{Fx#c=n|{l5jci1gREl|i0LS*v*QuY4w?f-#P>MYU$`fY0%XHY zVV)ilgVYC>4IcDu0zHt=x5h&#m-oSf(#7U#&EfOd&fVc4u0aIDEfL(c+C}!_z0B># z;Z0LisQ?tN!+bVN^r_jE)usVty+*k{Rk*Vdj>3Clr<Fem(^;H%2l!_AQzDFh<9_Y9Ru?AM|z?Ii#T9a z4~Og7a$)Kh7<4Otr@>68fRA^6H%NUpkB#=UvTCcp4=VsvzwhnFRnIk^iAVq+?bdYq zPuK3*ce+(761^2@qfyGF_u-!_cLNuDm`6r|dT6BsvALrJi<) zNLJeVetXWn%xn5O`+U917kI?x*N9Jii#$QY*M$3c3)CHL+X6=XRNe&C+XrNvfcM_c z0T^d2EcFn%EKbpaT{bZU;vD8NFwAjO+ri{!LDw`(c}yrv9*Jc1z@GG-lR}!}+mz9A zBAE(_CTu{jB9PmP9A`@JesL`Laj$OhN((`J{&P9RGlLQY>jnD}{i779;Qegq?#IiF zZjhzY_)?ubaBJwt}M;yUF`jF;RcdQK6uFlZ{1xv`stHmSVOb6ueu-rh7Yb*$ zvG-Tp{R{rttCwEM1dIR2-a7;d0&H8mW!tuG+qP}nc9(72wr$(CtIO8wcz5`p>6x8* zj&?>yu5a(mwYV)(nX_*ED-Y%o;qNxJQK+eKGjg(7<;)FV#@0O zT}P|XV@vP73n(L8bf>utHhLR^&Zf*#X1|!vi4{_t%5+~$7F39! z6A3?xjIt^E_{rB`ch)cygQTNZCo>9Q)^tjT!#BemZT`qtbht&?0w;|quqv_KrMF!x zb%Zz@5=8%%jL~yUqbdLEXDLY;l&W+T&{kGFBWajyHSzvtEZoP@8}*Q7m^}ylr;IR8 z3wCx#p5b;q)Hhp#Rvg#dHzaj$Zxl9jN=oFEQ_i^!#l71D@&X|gv|$0`TZ31z)B5j9 zRD}gQSORXgG^7otv9@{{!Sd;;?2zN(b<0RZyDa5YOR;7?@Pc5ppr1cUGZc34Z?|V_ zo{a(bB@w$kkO!)`>jj)LQzTv0^6(;U1B`3SI4sUEuVZH)4mG?(U z5S@aX-X%-P|1|4=(5(L*K5zp7fDRPQO#VN~`iUg&!&i##o1O=|7QBO>3pvk$)`;IFiF92;KdQi5l>+|Ju++9n7rm7;t|z zmZZc`8cM+p=n$Jwym51VgPLhh1Ee^2qe!h^kIVbksQ>Yj#+mf6l9p?`)+8T7>@!5V z)zELlD+apXj*s)modNhd2{LM&B6QA|+xahL&38s`_=Q?HrfARbzB%H{Cnp3L_d(`_ zOUJWyF67P6I28b8%z`*02tc=xuU-ttIzs!1^u*BCw+DY7GBHo3=|zFWRbZew-S)r=nM zFHx`#+!0mx(+YM%{+4&pQP@tJ#aQU$*qcsJ1y&ia)=nNACqD}3b+!6SW%)IINP4E5 z8Az7@zkhBL8|3(xRk7$weYd;C=C*0Sdye}3i2L^B)s)sq{F2ndWN&rD)nCPy3D)Ii zRP)mr9{@VPxdnqU3?zF~uG(KhBQF)+S>6z?DWws-I7 zxmf$5`S;zMzSuhpCzAl}pXprvfJ_7KR;V3qLau<)8|h~}J=x5dPK9=#8vAvsVIR)$ z>qL+h2Z^?Y5%>bnC$s4yf#~gDv}-@Wjx@r?o#nzhzYY?_A_UrftrCVjS(OO`=x4NL zgryepYNS^HwQ`|r$Y%goEnk?k;LZAOZ_HDCWSh; z2W(jQ_|0{&o3C&@%VEA)=in%Fr-w%?_h3*lHYIeIDEPF9+Naq3WQq2kRLsbt+Vr1At<>a9GXXwyqbc>=p>3?bbr%z?{ig14<8 zhP8gSa1hW)mI#WdK?n)? zmK|$N#M%FXKY;bfCWN^X2Md6$7pri@ak8CJ)T7^^fW4~eh*WWoqwneqre;k@FaU)C zP56E3Y23{OJvo-5Q4H7M zvU%qUXle>rf~Q+@(L9tO9IoftDnSi-czh&-MG={$+PO)R)s_rfuh69d99pFyQ_Y(_ zp3@_d)&hi<8@*oZF1{#EEemh&dR*OUxbV)Tis5WA2@Nk{qqUw;4JE@uQHUSW8{YK5 zAfIV1F}eqoIsf9LP4gluP_pzwPW<^uQOs0PPWzUkq%t>C--a`o-%50jtK5hNgrBSO z&g(63u)|5?8SX4QfqR48l{PjzqVF0)f}qbdJX|pW83b-%n8K?;wv{+3e23DA{AYU>FP zwSZfLK#|Oq_;4Fz=$P+T1Q4O|0sg6^;{rwW-sm>*nEP}ofwcf^VsPZOf%FtRKs%O$ z01vc=Y|!DF-<4BJ7d6BoeN2;liCI+@r1%hYxpv2xs7H6S@X;sk|2`;Kx7DsYr1vzv z0zAOji-I$@hZj&Z`W1Tj?Jl4hdB&|&L@MST`SUFW0&}yoFEyz==JYOhDBnz1=w6wf zD&n2rrNa^3g&@8Dhf^l`3x0Qp^b~X9w1c`Aj<~xcEb=!<10B&08_7^4qWh?il<2i&b=r&D-ka6>b_Xgn;Au?_&2f5SIbu8FdsI zlv5tC2-l*`7;vCx*JU9r+$%gknie+|=kddNYj+g+`vMu83KC8Ks=HjXb)pM642lqS zohEP-q!f&D`aVf$W{Lj|_W_haDxgxNlSBiSK%cWIlk0As40}AK=p@*-fyp8RzE&qA z$Vi@RE)wLN-M#(cjBw;XjS9DAzTGGcQgsbj0ou+SWZ!2}5KQ{^P?|?y3Zy zFl$wul8sG7f9hq$HK;p#tJ6x)Owt&W3c;)@1ogt}9?RQe_C7LpEk_@jB`zn&Y_hm^ zEJDJ9h>L&Z;3%S{3h5G2!6DdYvlDTQDXsdp66Qm5IrsN$iy7ZYqgoo9TWmQt>j^)4 zl5QISttf0N-bD9($R7%T_y>U;rny@8Ot_S;ogtQ3s735RAYb;l5bv^;2bb==bMVJ>uKjK`AP4;iw;o(E@nWF9ykh7pm2F=3- z#voMQf>ZzzerNy{LhfY40HSvsGr51APe~@AgzUQ8L?=wr1pf;U|Ki~4?)+OG)n&nn z$bfQJ<4Q)h-R2niRbsQV;M<85D7dMAJ2v|;;69`lT=N}+`$RK;b+niOR&H1p{o=J< zKT!&@4msn@RA44VBMs$@$LJ?9)P&)^Xp%Y+?MEsnAfpJ3kER>PYlm0lxkmy%{d8VV z^Ad$Dpl!bug|SX<$~VM{)}y~1aQ3>G;WTmVI!uPeu^DqQ1Hgh5iF0Rj=_tTkgCX9l>otwDY2)PRTt=Vd9A=mq3*y9bLkuhVSStxDLX^#J@AV zjQwNyB15$e;pdR_OE&3e;dk5Lrg_rMra|ET)Weiw^a(acfk0)$snwukA9FZ)5oCmT z>=f%-&Wry0Ch(E=e4C2u{r%v7(<8~mE+WRf@WFo~I@K^6D};oPWFY50X4rg6k~#~@ ztV}wONm_a!RXJGED~7oPCF&&$@wo9zS(~^=@%J-7p`>z|qZH;V{xUvG*Av>iI()=< zYiUMd$pZ8%&ty1B{u5ud`H}*9-cMe>7=t?1iA%*{h47$TZLF-H@=ssendMWeYl{ zRmP^q6P}X`51q24qjq@@(zIWTESd=o-KhmvbZ%97jZQFQqLwxJ^^i&|0F}!2G83(x z=tDD!U8#GwG}uhx?wha}Ul{4=2!V1s1WPNq;8>zYKge2SrnwfBm$y2WXq@+*$SU9V%Z7NPrmMO`4k~{yUO(M+Cd%M2GurhMTY)f`fLyH`~ObxJF5v?}(Yx z1>oq#c@P?bWcGOvY4j6@2=SL!)c50f@wUbf1q^?ijK#xO7M^X;KfefG+b2;%K>2$w zog}!Z!5lGo3gGQ-Nnx%=6#D?;tqtz4+cg>tbw3PFXvD5BgNeJVwgUn{fmB@3li=!8 zZeH3j;kVRYgIOR5y7lO$C`)UODaor~yeFw3Iz<*Pl5y>kD$1=UFfN@+_|>TmD|qM5 z#}ZnJn&RM62?iFrBO`jO_)xN;)&dy6P;>%0$V?PhJwN41>~w0lpYT8rD6ihFB}~%7 zdmeHIaSCBU5l*Vil1=zR(Q~Yj_29#}_lziTl>BA@K~HR-%02`JzS;+=Ju4urMzL>^5Vm1uxk|7wjAU+r*CmjhQSDp1LxS(pjCkO(&=mN#?*{3W1V4Z_99a%K)#fHP?njw0bmpx|9SCBcJ}ZA zzt%Qmbbb~eH}F_il>ik)jT4dZCJ!tM=mK>R!tr6bYlh|diTj;Q>+I_M-BeCh0uTDm zmD%dPnLj}I_eS|N<~g4D)5OV{b`gz87I0he#kc+V^@(C2Q;C#QyvR@-#u6L)I^z(m zkRM^+ykYFP&*;{G41FtKAI^Cb${u%>)7<(BTo5tG*^>BxfI}*KMdVjSeCt=kwf8r0 z<~2s9Ns}UQWZOc=eZqc6QW>aE9fhf!OL^dwf0FXWN{Gl8(y+Tvkfg1$jgT+bsybm> z6hGXX9h$!a*Xcw>(GjeP5~43ah^;!;CS^fr+103 zua!B3E$KAaE(00Asam&adS_t8g|wt^rQxBV_}huY3g~^{ib(k|0Jb*c-ndF(nnlFv zE8sBv@&u|>?)<5HI&!4{19-qVzJESlSYp&B9@RMy~noa)jCq04?mwm`==^Zt%totr3Z{K3lqX!VZ@CV7|{vnI1OE0*Y#0gb;0b z$;ywAw&YlHW^q_yY`mahNA_l=|A6nXp?sIP7?eNBPvgi$S0Imu`YDc~ox`kfWk^Hj zVc34&ND|U}9zh@NNCNWOD0NgqaC_C}_pK^I0YMdg4v#o5tcz@ePYV7n4WQ*iy^CLi zS%<8W=in~a={HY(3WXEX=(0fw5Zko4Ky0igkPdDkgBZn9U|%pTSVBs7|9%X4&|`cQ z;TzJ1T?>qJmo%)tH=Zm;l0PRX)Rn<~jOxN_?hAr6sZbP zD6lHpYJFr1QjIL+k#j0cQeziwC|skz-QOFj=!Scs)y2s#pw+r+wh13IJN}2rMJ)hN zW?_IcUAI`HYLKNO6C2lhEzbi`Qp@H_w?tZkT+92VI zE!efNe7v|n1#oyS?D)`q;|3_C&yPcq0yr$q;+dY+&rQFUGZ-ea%fPr(0A|u?uxMou zI^=lcS6r;qw^D)_BCWK~znX;XoDrX6*|0Q4=gSAJ*y4}kkLc7Xv!}$i#~XYt2WzY* zDyY6*EcV4(oy9^e#Bo6fJd{cJWXH9y5|Qk?0My;vX@oGCo@KZaFNdOwqGF#Y6N3@# z^FwFoU1NdTd8oufXD3^0tW>xh=2yt}%dxLv(_MiBo`y8nk#mZjosJnBJJ9TJHl|-f zo1j*)m2*Qayo5jPXVJjC868OenX0LBe%+i+^4>dE4Gm6DqI%whLBHh~x&KN$= zBq3X72y&@|n~bX)EGc;LC74A$L`NRYo=bB?l#A?3rh9Qg;xeRor8{a#9FVqc{F12~ zY?GN2Des#I=wAT+(C4hL7=&Hvt&ugGic?#L?%%F+OUtpvjnt&C3z2;a)!I2RMo`nb zqOnwteNwIgp7-eu)tvU%^eHR^H;-^iTq_-R19N!WI4fM-eR3^r7YhMv3UKyCFI|k* zP*zIGr>)gP=K-^+YR_6+Tt-Iue@w0|3=h`bAl0y^)^Fx8$fPKy-3W1Ha+HWL~po zY5B}Dh_GtxlhaG7=T}1`J~!$eQ5=1R<$m?T*ucP&nr5JV2d64c)j)!>3O&ckV{_Bj zzfP5?iM@e3ZReMA3(}*zR+k5pLcbnZLp%NPxyGn2oINq2`!Cf3=jWR|bQmaM%FWM- zRc$Xto@zmQm!OdBd*6^J+q#goYZrVUfx=JE~whf`sk%VW@4L2Yu?g#9otB%oSJi zb7)`LA^ULR9LX~8-Q3giQHM{5m??7j1hHp{2^~6y6G}tc5O;vPn!SVoTuB$T&>`cXEADdc-^vv!qf8$3Xk2hTGTMiEOvJ0tUjE_Wp;3h z6!b}b?;;5c^Y?gD0{%y2|1Tx5|Cfl&8vp>tOfYl(|EC0X?|M&ul>iv}yl{f4L=hPw zhX<~U`rns~?%<(&jsvjcBsDDgc;rIe>a=L=llqek=vBpA*ljKlu%LwnLc5g$TM)oH zc=}X7HxsqevBaBE^uMPCqqs09c}j`gg`cf|FneP~*@#ij^8I_R)Rs2qaB~$7cKe6; z%=;MYErx`ouS!mF;|`mcC6CBm6ZX}8x|%3PLvSM=5YkP|b4ST_@qN`=w^5qGW4ZJf z1`gWVHxEC-Nc8G`uf_`ngVWnL8d9aogi=I}4HZMO+(6$je@2NbW_T~x9)@1s0xB-2#W~TkGk9C+(WVg?zi0^I4Y^wPrBy)5MdQhk`5U*&(LZh2!smnG z)KBoCR5}-zZYBjO&0rFJ^C9yK0??b@%)hSo5#NfG)ED{}BP0nrr`=P}nw4j6S|yQK zc_Mp457US5VRSYmPW%hJP0Tv;fJk;|4&uj0P5_#pUo++2c(Bma8S$7u>SqW@=+V~V z`f0pXAa10$3@l|t#n}(4|LH%iFi83@@*%n>3N0+v@5Mn6Zv<@5xFvRqM#2OpT~r)S zgO$aTRQv;i5^`F&vGyJRl{Rs9Zd>X>d)wduQk%@{mo1%i404`Q{!PXCRCpa;tKC21 zS71v{@`^%!ha~oc-1O-`%+DZPG@E5K1)p#gg-aTc0U;!%?7sB#s;fIzsjM?VaVjPc z#Wcy>3wcDQ?9il08{!Gfhl=^9sBWjv+~WTDkdLlwO<(}xt`3EG2s))#a?@A$>CHqJ!@$1jIoRMNxE9B#^c1bXEO2d`hq3Q>a3AxpyIfYnmo`_{wV)! zv$WagrxCX{(o{J4BCF5ITyY^M(;-04hIu^H8t0UpDCNkp>hBcsGA6#1{3S1MjYZ@| zfCI$#qeJG{^X|3;-2r8mo#WBzw9BP{B`Qw_nid<=H!jcmK&s@u@sgb@OXa=}rOB1J zNJ6s-wHD~^Z{&;tWn=uUpX%7JD9KD}u;hlp86=gZ@}hCo3JyE_b_u1$65o-WRetl0 z$B#(8#7+Jtuycl4bU}RzuFi2$`GQP=wgqP_!m%XM(l|J6AG~RWd5$)Fo5YbA60ec% zX$T{E==l|0@&WXI^MIdy@JhvrE=VJR%6n5$$_o$>XyNx?liQiHvHhDyU(@5(622a#k9His}ydwJdP&)M)U|~?p6h9 zMR_R?FuYa9`v5CTCZq}K6U@#l0d-lA3@J>ZPvP{|GXBd(8E-SY2lNHVh^f(bwl|g# zt1Q@z@N8%L5oZRq873pttYmC|kH^zn!?T!Pp`|R4(F{#Ng^I;JUn|NwOK|OJsh$^g z5a3M!hve8TO3aj;as&*96ZGR=4B=XTvZ&|ZmsH@vX-x`~uV3xTZc=wfS4B$8y>%?K zqNnuAnU#lNBuEg1wAqqFMj*sizI%%*5AUX2DA}pH>hMN34{t7Qi(QV^><81Q<`^`>Sr}2hR9>Pqz3Kxrbu8=19hqK0Th~%8- z;msms8UTv71#8}TcOMmsZ4K$nqMSAFnl3No0@g@J{-<}6d5D7uwXlPG@wh(%>~ZNU zHksR4yiu`(H%Q4ii#OMHg4xht-)GUu^r=<-4BPrQ=g3DSSPq|LK6ANXTMS?xjgm>n z`R#mNC8l(c(1MH-(zsXpX8#9--nw4ySd&Hy*w6C=f#lyBDjQhA7$qCM4bNW~8Q%>F zu?z1#Vu-1{JZwx%D*IVVz97Oi^O}z7Quc3bq#{QZqPA^aeKa%&;l18_b|shsuf5=3 zXdw?!koURFy_e(^aXPkFaIQu!&a&U%Hix;{><~n!RZY6RijMvss(BPi15S4MZB=7V z^$onMZX6YeT9OJz#OZhDm;nG@kE{qlF*#kfNh>W&caBd|RruRdvv?51juB& z>mM{`J!~{BlTaAZ@5dxJrvZ;nCQ0a>>-5$s`U`&2AX$uK_M;;&*z>)>4?61R3=slN zA$1Gtd~g<>k)|(J%u4{C4z+{eEYUT<3%}8*VgQ;JB7?aUX6qMSWe_RZ0#jVwCCSn> z)(>FN(+$X0zEj}+_ons1ZSS3f@{5v(=G=8c=V^6L?~V`WB z1Y}))#qu4a0VUOqa>klPG7^uR8`rhjf3J!(FGD#^_P3&z(6~T@_8#Fn)3umLk)Oat z(!xD0daKz2UOM_m?lC)mxqLlDJES2g#kkAa%^b!#;=G1fyraYuxL9b zY0QHIwnv<(tw=JS@4pGx4xu*6ZaA6F^(@cLeqBh>rRVpRtC^9SmI>{@3qUvTZfdQG zP~>X04;6$+4cbtdFu6UtcOo=4%N^Vb;9#)(sSkR;1XeHGV#3dH}8kI^Xfq~Y)RuFC`!WS686Xk=`Ot?*xaAi-J>B>dc zMk~*lQw%nu$rn@&L^K@r=BLRehkRdne2{M!KV3z?@w6*I756<&KnIA?XAgQ{w$J|Q_i`wKI_3vBNmg7qwC6;X zV{mh#yG)JN#LdVK!hj7Z%B1af`YgU-`2_vb=?uiF(@-1fD~#dqj!kC!=KFGV`PEZ? z97GP^a!}bK>|0{5DAs|yA4nXOQtzl$(djUYc|eE_n;hHQa>dk7Bz9UAEhH%8J zQ7`u%?GmbLZS5)c`fIPqkNbx1wQml?EG6u+NBup`97Ulo8rCN~v~y|lW>HQSK8gmI zRdugjp_SmAxEhHrTvuKcA08HgXFm{nuR`lT`c|SP&c6O^%5aa! zCFWaumBlvcN2vIu)2Z%*im=il)f7)%Kko#iKsx)77I@ZvO%ia1h*y`5?G#geQ@(Pb~!Zp*flB-DthR3s)fI1q% zRDF+b6@rc+T2e;Ei)+Oq{NTrB?RY9h0hd6hy6?9{E=bnMWJc)Gh=}5ja_zVqtfprO z6kHpR3Rz1mKv_8|E-NBC|Khr&qt4sy1)HY*y2R~v%Nyw@$>PaJuOYyePyKTejw^exV zAW;gq1Pi`5gCGbl5y*W@1b?l}Z5-52Ql1mWYKCMaBl$1Q!s8V?Cq6w8v&Gt%Snv(I zC6|Bj>YuqoyA4o{JwA-Um?~oT-i?>{vcx}h)_OFKXGyCAZHO+GL|jHbZ~x}!+5G_0 zT2QN|v+p#1`S?A^JTpmb8~iuhh(0CGjTQsF5(9xb)c;gBMwV%J{0MB&U@ZqE%HuEQ zvy=cOH2Y^M(Q`}Uyvm1+D(6zux$t>O0{v_6T6w1Cx-|Bi+LUb?sxz8TIxM3^vzLTx z6-zGhffTW#519IMlGBNg2`zk}_O@-lA~Wl0^ZWm>?muANe`ogN|BvdD1v9_?kLoDv z;1}@Rw@AEa_+gA@L8Vl)EcEuEYv<-&P9p3M)L1O>*=(ji=(v_AW6%??W_rpc0kG?c zWTs!I1~02jR6(H-JV=RI%`@SaqI0<1peLxUc?T29G` z#a?opjfuXp46`t-2F)+JwQIZ;ICSaca*~|9Oc@(p)K{mME3bJCS3<6wX?XI@`eMi9 zYigyi15O|56c03e{_uh-2u)3e&s?hhgvMuj1joc;k|Z)$BsW$}6CRcsh&F5=N${~- z@ey!$9KPWsIBS>wseo$8eq@jH8gXA^WwZsDxz<99pd^FeSVKX;_GZR4%RK)Wz^izf z(O#WR zsyIe^K5xjQr!X_V``GvK9iv}DuC z?gV=8fl-SMgOIs5QydkuNHF4rW>G3*rZ#k^nxU}b@=5*M;lF;~d4b`A z*D9V?``SdeQlzXghFPAY*R7mfE~DrkbL!2mC@ys5iYO5ZoMq}gUz|;bP&&R zYGu2&>Qq9%;*ysRd*=2|x-J{Q zTq7BK#cMKuAsa_^yu=ng%&tR>&Q&hA@!tm|ONH`Xqm#DIR%6-(LEjJ+`an2W#hfvs zl#x?BFT+pyZ~GL=S23P|-2{@Y0B*8_LR)A4h*1{QGX}Ai*Xxmi{1Ic+l3?s9n`TnQ z#ZyjNu{Air7h!N76=Zt?lsM-^Jol47xb*Eou$X_K0-5(5xh)-*uu`Jy6lkr*YQ2=| zBFtyQe-Kc8A2nu7UgyLo#PflkP*%QL-r^J?oXMLdAr1fZ1aLE(&3cir6}CP-v{o2$ z%)3ACqU_;Zt3BIVy!7`H3jPJIC4Z)7bt~{k@+W?j$mzjTWHvvDU}#6oqLK`{lcf$p z5hV>Zvfa4HEQ8pxtq>}%={HaS@v``RYfRi#9^1GE8H+Rm_x0k~JtM7+z2Z4>zV&X` z)KG$ol^j>ajl3}lqo}jz)mHZ05=!LZ?AU{7&ZE4SRP6p=XQ1OFU01lUUOO*JbF&iMP95 zMWwmNT1?X@D}GGlxa+>_YB} z_GalB!#t)5K7V=J)x+8$o7j6?Nwj<|@%T^Enm>b!u(UgZAm-UM0E^u^k;(0leBC}S1VK+BQ?$e+yQTt@%2oxj0}=L zO@-&3_+=Y;4@X}@US+v=V8yTY=gyqHoC^K@GqK_8@zX^Fu8Qtb?VV*rPB_Z5&FZV_ zWY1mK&fOGv=&0TBNA+>c^Rh=hf$(>};%A|_FjiX{XFdQ4swM8H2CLz6+=7_NK@ZvZ zW5s!IpG?HGJ@&*LrIqjZ(VaehW6&54b48|_!^yCir{RoJIII;ly6ChBc2{wG`vDhH z>sGlf4hG82P#&ajl5P?F8{E~N|Cwl|6Hh*c4SgiI3K`DPy|I+{(1bE0zlba3sP4v9 z&dE4M+lpGpC#?7U<)LGh-Ynbiy15931WGz#`Z$Uvz56%4i^wdFIkgx`DwOs(x|&~I z1FcQ^AbAfy5YpU6*IadH+8pjN^vf!_S5NZ9zl)fKuW_r-F2+{DvzZ3>ZRM4J zFqFx=f>y)zyClAZ6fg~-IMM%0WuQ! z#|)%qkb8dFiy^ziIHTNv9kpK$_l{HTEGM66Q5hB^7o%>I6sYv-IQQ z(2OyOr}xhzIi@4qEjwBR2U;$7$bAbVbg$`O$sC!f;72R1guw}*D6SPWEi5Z`*@d^$ z+3DHZRg=5F;eE*de{uJV#}(`~%({!agJfaKwM^AN2Y2YrV=KN9b3cRV{d?#O?JlwK zYlO4QgZ9RR*&Ie91K%R!G~_D#D2M>6$FS&^0XU4+X|(djEn4fMSt?PtJiC)!+2i?; z;%m7uW%jRMhXQs!c#=n&Zm}y%pPN18awp*&GAUOx9^7{0I2sVA)W;1VtQu0hszr!o zt<@@HNnYq`ru%WQ0m1EDU0!y-utbg*+OCh~zY~88m)xcaGBoAHCsxCCpeAj>C@-Pa zN5WGmG|}Qf5hE1w5S z1HoqCO)vP(zOlCV=!h)}CzNLkvG(1&R_sthSh=cL|65{4yal3L=m*ZqMQhmaTqs2% zGRzIefV((EqvRX5m^Q&>V&KNSEL~=cOU#UmDS<+_LeVtY#XY2h|1scyV8H*Z}U7jRk(A2f-Pt&|7=_#4<@xJnAnqAok5O+?z|rj7kYO5{AocB zw_lSLZ231^>K-qqyZ*PY|6yPMONYo0003TDFbnAaIw>vpt7(bEef^0~T*5Z0d;!Zw z9m6l8Zl0gecrH&Dh6lp-o{AT|WJoyGo8^twm>qKgnf9!6py{pw^T{B+Xr$YGjaFe9 z57TG8J`<`X4LkK*nc@rGDb}Ox%4i$sA!kb!ACI%Wt}G4jH>2^#=zldiGW zx{hg^NjDCNRiwKFP<){jv1&NMA@2KPu5R;wA+ND73)cFEhGB(R9TnhPzc}7C=bCdt z16rZ_fp(RJl8@0M_JlmT`T-Qu$Go`k-BLk7oK$4H4I#i-{2fw0=C7aOr1h!Xr|yT3 zLSXN>UsjmA1Y|9&I(@X`ov=>*8)La;(2e<~JzsONCH1#_DQpHBlxO-nzp>TNBYxeW z|FS5Ib`FH=5e}8F{Mzdl6%#h14!@@j?*|Rbfr06a%*(}=2*<&TW~jW4({UU%2w+UJ z#3!*%@AzE+QfGXUESucdv=8oqfH~@sSDfD$BWLtnNVuLMX-~4c&S3A*qdfouCP(aX zQi0_wEr7Fr8KQ+V8l!$`lMq^xKX5cMi;8$3_Kgx+K9RZ_!kIA)0 zRa-SChLNaU^u-6Xthnhfj1b{>@=i%7)WsHW$dm;1Cd63-W+UWL#hqU>n8a24d#L>* z>4&YgK`WhP*PL6AUo|Q`-6Wmj4CeL7IGJ^4Sys*uVQ1+Om?+#eY+eMP3ADX_>$u=x z;Qsg}qpWo_!ApXyjZou(#Bb&u=t9X;0zKMio1L3P_n7fS6HBkSF>uEAiqzQLp$N@@jW%{ewK2C=r>;~2 zun)1I{wR>0kO%Ma?lKvjHCCu=gCz}%iX7J=v_cabXwGoyE1g_)a2*P97+|zrb&y zGBj@;_OrLnQ3h+4ylYalg<=gkkVA`!vU_%C0W;GCG~Sg3ymkGCcL!853H4$n;o{`z z36g048oWxKDpZ$$L2}lB+PyD|fbv!ibbTDW7+C+}~Sc=~Uba5dUDw44$!` z7z_tpG=xG4Nf|yYVa|u)Smt6ECL%}F?xSTrceb?7%;3O+H|(rMJt!oxL^b+2%4u<6TK!BN!p zbhbNVJ{O{KC(y1lChbH|j!ZmLs@#%#+6B5nR959c_u>SBwGrettUQBp6-9?O8J{vt z8>c-1!o(}znGlUHwSqi11@X*$@ORcpt^ol4%Bmt>hNar?9||9@sYvD|#YOHX>kg~O z+mMf-clB9JK{>9P93(tBRv=F1`Hfl7q-awevK96?56R2TE^Uk08rijN_`y>+h&L2Y zTAZrnPdTBCZIJV5TSs{Z?EzLuRMp|=o|DB>N0qa{s^^xQ7!I6?I%WOY()|UEkPvq} z-|iF%x&FpAq=0LhRW&($3{peW%fKhlHmJS{IACy0587o|UfCR*wAe}!Bxl9Dt+~lb zyrBFF?=3-Y2TXcR^YZMk70xu?N-?$!;EBhAd37gkmstddd(u!tb)UFH+F9C#WDpab z<>n}ip1D3D99q})F#CKnL<9zC%^g`$r1ivWr8`F_>|4;{%6&;a zW2$oger6YBir|y+ku%S)JfsRpP3zlp8`;Y)9;rb$(9%DT=^ZCI0@WgM+3N}zLGD-jm-%(Lv|P*4)?vE?;1d>+CoRtH*^k|U20ZBC)JyT@ zO*Mk$8+ta3fb4stlyt3jO)iz)x8c5K4o)xdcH^53FI}8-6K?#Br^a?l%=6pPAG%aP z>f43CTD;D2df9u<;s=4VN<;;cx@pk_ooSBtD76qz;eIPyM@%6*gB%$-V3JkL8!x(G zV#0&C!VNxz@g&-Te;42*22d14eapXfQz;t+hd@T$gd~x1w@B)ZPz#LXDNFTsM*SO> z>}JKm%HKz{Y^VKLyi4BV_`6H;hWo({ROel6Xb1n&3Pb?cWz^j2k#w1olA}nBACmm9 zmd5G(87$5s{!OG9eT_Iykmx;e;n`Hb9c@JSzLdTEc&;FhJ=rnU6 za>-8-^+!=&59zeU13LfNuug0`s|q86AP35n727hbI;9}|90kZ@6ypmq=v?;PXg>q! zibAw=XWLGA-8N^wg@lM#^KGfdoIMJ3D5P;ZWyfpnUR^>MziHUP$DY!3YKcgXK-)mO zk4q;P|KrM;I%pUhB)Y0sQnj>w@MpTJhq3+l&%{;HL;8t5vw%&W32Bw) z2zL6_bBVV|Jky^lEkuc<^>?tnEgCbt@R)YDVE0D@MY9ju1-DmR>5MJCbs-!|bcgf} zL=Gy5$ZBWkq0Pe&p9A}Ol(fd&5;>;nhw1Q0PaIRbWQc-0fFa#=(b?A*=a``=J~+%N zJE%|yA9NL`;z@G+(w9RF%I^h<)7JxAt>CPX@vf;Q}uUHpKpzQ2ODeeV-0j#iy2 zlDJaH)S$Y@Jw>TBkhsW{D{7WIr70V-oy{Isw-3fnv+ZwGkV$a|w?40Tb(`G4EuQk8 zMk^YT%yINBuSU{#f?%_)W}EElz#wjqbEv{8o7BW+h<|L8yshIc25H~X4~iXjlw&@s zWeN*=kRLCWrq5xYsIDyM9(<4%P-8+CElOJ9n!a~~rsSWS3I{>HKx`p#gAFphU)~iA zl#C?$sVx{KksUO*hDV)M;nc2Ii>M}d*)iBR#oe@EF;6tm z&yWU5s6GBd$hP3AJMxZqe0n09I%GCb?pL>xNIrM_bR8xqNcEr z*s;rD3iv$ynN6W2*QL*?QXWXr6fs6m&}Ub|s1G4^aG;E>$K4o~7UbieI7fUEcFYGZ zT0rR;e%#m5d5A{KV1OSjm-)(Fx0VGWS(h+Fm#Z{rN$NH;rL&W)3sq9=N%L!Hmf59w{$7rIHXT>m2yHaYW zNb+onJMxtRyGQ)bTRqtj6nvtl)nxUEF@tjB-T8sAt$IR$5;l2dK_ z1Fk+yI!Zp)ugDi=SZw{a799>m+iCYE{xBjq0oI{$n9e+q9E53U!kitRM-#vRJ-h)G z?cHd3U$L9}VM}KegN8#sF=nkJL$I4W*x4ZE`-=&oH~MBcz7c%z;XRhaFu3?Hjz?5P z>Fm4c9A_=YEh~s(1<{KaQb4c8bFrdfQ9LKBqWvuL&)t0J4o_%)OG! zTVC>JUwsK0qD7ce)V$zV7^pA8t61YOJRxMkN210VGbX0p-hW$PxUjp4w(WVmJYsj@Q* zn>uYG?E~N%<8wFZ^6xxzx6Tb-^Rh&Gw`T1PGOxf^Jwb(rGD!2Bn%P}Ch1RSa&qHe1 z_lo0C`$4UIqYAHGOY?{q(C+J}AJKHbXG_xDp^}mGng1Vq=hP+0)-~(0-DTUZ>auOy zwr$(CZQEV8ZQFL89^<|I_U%4b`!CF~R>qT&kug)jjM0-MH|hB#EWd8))oS1R{Bub6 zrCEbL#?!w@O8S0fkg4T-Anj8cm9pU#qk|b4;EkUi(0j6F&R2u7tJToKUCnHZ{Lp{cg47O#NvRx2nZL+6(jsg%vb!5y88VhhFVfD#-vy1wt}?N zk;KeV54}O|iN<(6#U>tkjY749(|+epOo^Ps~UQ=`S^7XrHtM*C(_53|DT8P z4<5$9<4w8zH|u|x^}pm7{jH$|CXW{NHj(IaUC zgL5s=z-K>kzZ;#u-2KA=NPj{@G(t4;IcP7166wncduH7Tm)o^x^MmZ(g~7^EY+tB{ zIkb*J+f>nux)vRMX7I>X{aT!R7q59CR@mDf?sO{LoKbmD6l!V%rZtXuLVdfs5LGF9 zHdc5CnIjB3Ty#`oFEXFW$lcl3psgD4gPzl#3?w5lalQ86$@qtp@$cNizeXa!G+-|N zVy$R5$~Z8j%=hjXe>yS(8^jM1UAJ^fSo>seZYe{*duY5A^VBdX-B^Om#{_h!3hC?S zVr`_f2LEv@1tr+ctn$|e`v}o67tj1rC2e~Dlr^9Wub0tr?;9}ei(;aavR1r=4qo34 zKDP=E*h3l^$_MNf)MdtK-C zMP1yL`a_CR_kCTpZ%NaEXMAH#3FAxjA;GWpeevjgM+YD_fSk)#d=#y*J1F}9PR~D_ zo`31N;_%x zqu1`_dP#I%W4|dQ0cw-RD_m$f^F*Q~2XOaG&GuCifq21hk6QfeOI(#8=4EX|rT2_qxoy4HIp+Ob(qPM z-lgJI;0gjj?p;~adF$Q|m@=&lu*{X_OA-;A1*e1-X#596xs7F-DTK^D+zv*Ih3+i` zym(pnf(yrcu1CUktt?Nb7{lZp_Anj_w8t=9_i$=G_cBrb( zZ6a-RPe(j7{rI=CUF!6F!dMh!^By7>vOoSGtxH{a1!;j&x6~iLbS(C9%)>9ymSWR% z<)u-)=GzAOEJGFQ@v>a-FkQ8x`#FcE%X!Y^HtAX3>7~<))!@rtrH5%18d+mk0oBk8 zC-MMLwa`9P0qy3SR!rT19rAshdb#FeV;}-~cqcy_5tLa~?)Q@*tl0ao=4bv|Wwqr` zCk9SAaqp*wugD&n%Upmuj6asecT_rCxoGe8Zw$~;F6zUKweCaX&3`v~AX_5pYMYxe zGjH5cpa9=Y10zxylz>AEp+Nycvcpskz)y`SYdP1e#Ab>yvPdp(GlRG%Kr>t-ODwgwqmWHDrMcs~X4<6q&VHPo{jx~t=y&jz z!UUBG6XJxGLV|A8eqqA=4ykbVyi5n|3*t^=2Vl3dQ;4;nFg1XTBHSw%QmJcLhV-F} zqW2CCmmrW72uQ9r!YmZtY+Y>?f86VQ=S^Kul+xMZ50nM1rCT|-az z2TtDMok{3AlHb;o$H;8W-?G88BC>0V4i`5Gg@pj*%#uVfN21>Ffs;(dv4)CD&fE>} zmwZH8k{uSZh-IZ)A6ubR_QAvI*P|8+4p;`FiR_us=h_b`aOhk*G=pJ+oQAJx8GIC! zbeb{;d!7A+I82E)^p*Fay?19T7u5q{JgTrdGlX^w|8xU z7-pDX)N2_ydqO^^WTLi@%siEoKYXTY(qg$fVX!5_wbesOSw(BJ>B|SC8#@ zI!Z4`pIv|t?=nQRls4zOxzgl#I_GN9J5KV6jtgH+#P{7O4EjLOk9}2DbH7mim}V*Sumg>phx;Au&UvaTqgC8@8>&Y)q!vSb zJ}AYhtp>_-WOqh>#qON_ey;qEN4csI!-U%ooZBw0-u!+QEh-Rdg+k$2h(Wz9`6SOx=*aVZBLFNh1N~MV<3R54F3y(u7;9h0F$xeK!8cMn z1|l<<)=tI%hYiR^-kg^zIN5sM`iNq3I5J^yA}F6nNg^16#-~|!JKsXT#%p#K=?Wt(m_O6sUYUIDj0C6$Z-^3*Ik?EMwfm{ z_d(bUqVf(@HRUHIOUmii*tOb9F{qnpexx_(ZZ)Pwl}$s$Yf-|vo{p7RLv9qC>i@(2)G{p}Wf zifzz=DS*_0YSk|@RJmut>>LxeYB28h4==*oxTnVth}Zkmh}il=6dJK)p^vzWauP6| z8xQvVc(S;DSTNawC+ex)NW6;a<&xJ?%xZY;-|bkCRU(@g&+rZxvK2Z?*HR4F7j!rv zL?X*9r{{7qE?HNPMgr}9{3xYa?tfRh4Z6H#3OS^#X&3t=pGubB%+1hd8$eUpb*OP1 z;jR?{oXh6T(F!|sSjEJ4V(;{!S0s>|=StG~8OP;(29hU8!L^M}>aZi4pjX8Cz?jup z#C3i&C~;VE9xeumQaveEbHKrGW7A^DYgWZrxZ|+O zon!Q~sBPu*y2$@-t*f)^@JtS`YYBi92zjVAE9?X_RER9O{54y7&FZe6A&F!g22_Xg zD>AIXnmisu6;+tc5kt+}6eT&58EWdKdeHp-9;K`pUGQsyNhjPL^xYb{2mZ~kXQbsp zh{a?}t59Vnej;GNuxou}^z#b5z?xTW{aqup4_S5k=_F-85ntB@m=DN~9I;`Iy)6@8 z1Gi6W|AofMdw86YkPxXu3U64}tmp1Vy9B@fY}*42I_C#TSvUOk;*ncBuk4OV#XC3_ z9tIU!Z;D?7jt9sUohx(Evr`IY$IEi99nESIEwJJDSxwhq6T@{1gl|IaC>cyz--|VC zEJ>x&DH8?XEs?}(_`MM%Kn{Z~MO)zu{=%N-Eh~l!%tKYAtLtL<0MYfK~MPSNB!YY$qQM|aIu~Wb0esHMr(B$khYY4*oj@S zPX>SIpZo72hb*X@r{ud1GqyR*d(A;R#`gVbBL(H5@+he0yKen^)f%`X~Hioea&zJmB7r;;7Q9-e=;9uyDSc!%JznTBc z%ng30v>I}jhB^eumJA?oh&8^-*JYo0C?y8-sb5l17$Py& zo5&~X*e#!EDu)qW^RV#smfpQ!nZ2~o5*TXVz8e#FkjmLu%s{M|1Ep%qkk z(1J;Y_g%^8_A4(v^)rt140U5@31bC#87!C=J<50y6+dvQAcT?x`@+HT0pe7Uu0O3x1 zH5PE=A#T-r(=!TGyR^vTV2%*q5=L>(No-WGef!q;z^sF%}8Iv_x+)(>@dhE zy{WgRwoo>LGZcp&fP@>Ki${&UFpD#%+*r?{xmE!fH26ZJRciq0GS&To&;3xD3JaB; z;Q{QKZI7>_OQX1mD+_R&1+sKzsjoRb$Nl*{DVxT;JG!T4ys~c;ipVJy4QNVrMk8V2Nr=TE3nwM(sDQ6{BOQc^xWX;Vk7N z+Q5{%NTI=T6RvAHt4(Wamm6#Ya|p-yZG@e{T5A%^je|J^CvwT^=oe1WZV&H?UfD4n zGchZ`pZwKsGT+nI!2=E*#NMHFbt^(5j2iwuK*cA5d>cR%l+t#9aC4=KmR%h&+*W`5gbIArC!U-x z{3c3k<@6bXLYu$BF{}GUP&wFejZh@GTgnf}hW6V+V(at>7-M4ubKDD1W zQSMQV(@avw$$rYBri5YkMy3rl5m0v_k1<*GH^{N!_PXO@XF6!@5S&^(4zO$Y=A7EJ z=b^C|kYPgA8+~w?!j33Du=Ik;l8^s-sO^QwR{%UH`;X}urMK& z&zPDi;9{ruNf{@zu~lHVFY((jjzjiBIP97EE?szZjMt-t5K+AZ8BMW)B`X55yjh~z z0rrYg+=%JH0rt8kD8JUVmY1zVNv5zdY5EkjCqo;T$f@W~t0bvO?*wT*1(4xT z67`Xmzia{(f16pKa$=_9W~U?7StLOV()G=PE;JGRoz~DaHvDwZdujUfXR5%fK+zq? zZk<4^-QD-ME$Ooi2$5G`VjoS8%tHl%Nagz>Ip|~a>M}&>y#zJL?9qWC8jfx3=A)Ol zgp~`8=rkMk-AWaU7g~8T}}TN zC;zQNSC9YL{r?X8-|EHk0ssJy;LkKmd>85~Q7zBq62EKH$Na<)^{6o3?RQ_q054@c zB*1R`morXSS%eD?RSX4@{$O9q zw1cCBKr2s4F>Zq5;sJm<*K{vWX*9vhBe+@fzg9q+vY<@vIJOKC=bdi z1e^NK_Q}5sGDfErN0J2IR%&URg)qmkQX+cI1b`_MMSz<*a7lWix#dh2^_VbA>CiAC z@>Bo5wPL=Vx#DW_7}kfkfQpOlTE=@f^#0Sv#9=}}sot1nlM-rGjHHd=!w}^_FaQ*H zwNqnSHD6^{i-}~bYIJqGujK8{$708_^nz&LjjyN2v_u$XUbEtyOGr1I%!uA7Nk5XRe@AXAlO4GRO&pWRMw za0lH7D8M0=D;A4~p7t&>*}zDu9O!Ee%(|7yUoaRuQyhv6k;e1vaj2aKJMwSfDQVA~ zRDwBsmH+J#mL4mJ^P4}bXMex{&?*IZI_q1x>l90lp$5HC)j{J#pkuqkqc%GB0&LG~;_N)B&e17n1O(Af$K~!rg~qvdCYYD8ioMxl264nk79(=An7$v6fY2 zSlbS|w0*6T?ATjYSIy|kG-x`~|)!C7-vPLQ^ z9yzog!oR$8^D2us5Giw#0yX_ek4F~y&BTs{w6F@Zb7wB360&b0ukj`+xUjj!Rb*R| z)M~FC*q7^1x4xqq>=njN!q74Ch(YP(7-K(EWty@#*2AVF7%yCcJ-v~Z^i^R~NqhQM)eG(PT+7on~O#w;5ElwQ$s&-tPEc3;a08xuIEa8fH#V+F*w%A zhdLX(T9pnNS>%r3^0UGTpG?o{?wgqY#~p)B5^wz;bOQ-uSCu$EBuJDuUKBnobHgAA z$j!hWLltR+M3yoZSEJ^TsZhNzC)(1_qeUrfm>&3TM?+HjpgW7)j)B+7hZWSsAvuHd zS>lq<_Ik6wX0;m|*)i+Dj)K~y8r*p1(0m*``aESme;Ztpn2Sqx7ps=9vL^@5?6i{# z7V5mP_R55m?;QKty0-X-KI~4scE!-KCp+_7`+qL)4{mks&0A(uz0=Szta;S)8V#;2o&0kF{agQ0}sYF3&`wjQ{J>$wMJ1rIzzGB(M znm!Qx{bA{;H{f2h5m)5I zc+r$2H*?V$VyIPiMVr71bR|!^^U4nkn(LW}y6Pze3$e=OBj!=jD9!V62@KH1wr<~9 zd^6z>(HAox`IL^;nZBz}x&jv5i3E|}2E}yIc$n_mE=5>;|KLdVXXBqNq~WC@PanU0 z)i1n9_*feJ^R!suI`$Y&gfQLUyhaxYq~Q8KmCIey$!r1fQbr+jNG?EndfcA!$Zajx zmsmy-etVeTYj$l#r3}kiQFD?kBIxOxz3<=OmsVTolwhS^V_J*!Y!E8&$LUa*bpwhN zMAvv!`RDm50Xzm3w9LRgn=Q?qTv%WD_-^_)?c7h*oK{~a(1B*CHNv7|tx|wKAJv%q z8NK@v<;eS*8d}yNzn~?Np?w3s`ctp~JR1oW>JC79?i~yhS3Mr4NP*t#gkuP*1*oGC zKytL&n-B@MYFS;5cXpatjT@(me&$=2A84OH|3jbuf9Uf!sQ?zkpBeE#^tm6?goR5_ zv_Rk>0eg*1Ro`UFeiXpT2MaZLQlwyaNq~5-^ww@)Q`$cmLKyJ@7tl_8eQ>q3F*uZqvv_qOR&`Z4hZk(F; z;DC-(cdmz<;H)j;PjpasB2?dO&geNiqc%twY9x`OdO|#gyes*mzEZ8b=48NWG@fbU z{{2eO+;yYf6l+;3L+HU;v2D;J*z%sRwo6Hm22QT~$GoA79!rWf?So#)Weyur>P}%C zB`W2OoryI;GW=jhbaRT^J=M;5w8vd+hgI{;x1_d7>oZ^ufZBJxY15?U-PE`=ic_X= zOeLz@zlskwH(^&8{Z8k2(NnEV(_;1kvpl?Q$jkPee0vFj3cWfyP7}*IL@ku>%HOXD z0{R=?-K(V02VI^JI+W3f^nU|SoJ1;3kB^6?Q68+Fg-Nvi1l&EFN< zte^|a=p=8|jzC*lj3}~l`BqP(AE$(_nhz$!_*~5)W2N^Tn5Kkw5;I$)#1~>Ve=40* zLoOQ#>-P4CO=0}-v!T?qK@W5!yF>wE+qTq;o>;^7W-vp=Bko{kA!xrK?TB9`4%;C5 zmyhZi3qnUM0v94ug>G#@7Ua>}A|}&8X!R_jDE(7qXXTZ{bsD05R!(zPyJ{rSaq$5c zed1_T#4xIHS9~h3?62R0@})SQSd&K~NPa6-_!g%SGTsyH0eJwg0$-n>p(J_~#~fB% zO~@>cLfuytisx4ZnyNJ-zzSB@rcuZJ7ry=|L*5u9hoAemg5$h|*oZR3XdKvPbR4lKxl8_Tqie;bXp5o%T`>g_l(Dsdgv4AH z^mi{2b3C}?Y{%8_r#@-WS>Tn@8B~+LsuRS#_Goj>ycYGluxl!YxcO;$U#Tt|VDt0n zNpRh{>iiOJYPr^N>R85^-oTx&;2SKL0LkTFFi{^qD3MrN;T{eYxCtiKop3wqEH8v{ zr?Buj_ZKUpXDUY#I9VKO<$N`3NoxMay*cGj@gwUj_3psTCPk#&u@EJ~O1zSP;_udp z>bVAPTStCPM9S<#ynq>yGF~)myr4kze0cVqlezNK)6gex8YFO~Y z4qIb@zJ2TSI6|!yt)bPCb}CX7V(*sIzbK@`WIymO2QAXmyrcRL^p@#N_0}g$|F1v1 zzH@|oTq3?~FF_BY2D>t30ssn5X76#)Uq<33<=`1_x60H~F>P$#iW5(@8wmUyl--fr z)ub0>V9V6yZBAZ|84UbA!Iwob*i)QQ$vWN>iU@#&>m*WgpZBbsUoikQs)G5kI3OLV zT^448g&x?+JZ|?3Q8FU%A{vaaZzyrZSJ?`6z$d{F8?q}$h*}}|fSRl@hQ@|WV<@Gc zQOARCM~^~9;Cdwe6+J1fz?(+-ogTc_7I}#}n8WEIzak|7=)NL^)&h^hQ|05)Ue_q) z)ErDeWp8;OLYOD(i^&Y$jq{&S6rU${EvCO3;uMC;&HIEI2*U^Tjg~E zs<(q{M<;!=1~>IRTOF=qMkXhK-z;CiOl4?CR%;>I`Q2BVRz*9-xpy_ST!EbVV|`o@ ztUOtN&OoJEoYf8Pod9O{{XS8*+x!&k%jXmye$H(dsJ??56~{Q+U+WxnxTu2+3;OFR zVO6^i*{{DgMhEt%w0Unz)qU{{kO(VLg^dlg(cq~XIilkd)t*Bmf zh}ASbdE%q+!5+hPr^un`Nn2Vrm9h@~&fCP(1|ur2vM}WS+f8^Y(wDeh-&x=c+FhLK z)*`ec&M9GPpMos7QGzU99bK?!luxX>n7UFw5-Rg!F&(0Z;9T_feVt=)o~@fn(UJ6X zdSfY^APFZI^I&U?aipw%It1d(iYS@pk9-sR-DH~g@`jg7wydg98^)3x zDsTbHt#<%Nq8&b^d8g(MhB)q%;(R0XYgO z+~&?yp6BUA-Nw{Oi-i(^zZ2z91oI@?)NDJNU!3G_Zg<0J!kK4R;~%h`E_-DNR_ZKF z4{9By&^TSX+4;}P#LHkjR%P};!We4pCZm5!wg_}8-5I0?5(@EynY2S!Ka3@chIj&H zy~xs39jT67-tS;62MBI`)u)zDwFMd%rLLP`Z49iuuR;lsukl9iTroiUYI zV`Fnjp2NN`w^r!1nIV6!F~(dQXNJ3;X$Z;oe*K=#Az+$E2bn3yQCTrihg>~h@|ljE zOE^;aL1sGz8`1}MugI1cyfNL(8@hLD%oQ}gp7js3nIdn`$6b2z#{trT4*`E7RP0d{ z6I+qhCV*F69=QTs!Ck>wD51!~4M-dHwP+G-jE10i3yMJobFV0%oPA;yb{+~4O5N(z zR(n_lw&@fUX=4n`4dT}0-|;grvH=b&pJV97L&=FbQ51h*@`0m~2ZZeD*ww2EfhahK zIuPp&C_w5LWyi&|y;jeLj{BQqkSZF){uZ3*lG9rcknhGu=Ueid@H6a=K>s9@4@jY2 zchuoen?FD;J{8eiTO0JnZ_%o~_vF_2_Ol<;*x^b-_65$9u5*`cKk0W|qT$R10;bnL z;BA;J(@$D;dCWS|nh9fRPJK_CHuN-8AhF%jIYc6c-8O|qC#c@TOMSgG-)d(W{@B0u zX^)eoCM;MS*PVDLL=oteC)Q|fd|c}W&gvENF$`#`vV_rp1!I9ouW4`GnIZ5E$h|Z} z8hYd%aAC-hnw+8-~3IG#_0|M2E*C_Dvq}mdQBHS`azl^B%xJbeFf(1Zp5Do(-*}RKjzo1hQ4WL| zWD_*T(LL{>&rCyqg*4WIV`Hu zoN(spu^U|OWMt7Q{PLC1DSA#hMR@W(nX&c; zLxPO8(^tAWJ~Z^7NrsU&0g9(AjSong{W8ti*qN9&Rfv|sUr$RL9@jilWPhliPp9tdW(;7d~-zU*_q!rNo1(EFE+tAQD|hR$$mm z-@U&HAmxDP%NVswBS|E*AB91-(T@ zUMX02UPt&x!Qh%YP7mHkl>#)=z`IsB2Z8fxwA;jc1*GSZCTYLwymJmitj!<*C=N&P zVQ9n1$CmkII%)yepZ>5xUDr!+zEI4h-MqlvdbhdAJx43a(;k<6gMkwES<2EO=>r8< zy*QhF@83B=?%vw{<`kg^gOqlJopOAU73O?t>;$kQ`;t|M>sro5tr0pTGr)1ZoSYLo zP+UKwX;*D*cf}u(kMMJJ+q&xdWph)#J_6l=f63zl0of;GH8bQ3GRow9&o2swJH)i; zlj!P9hSGb4TZ_kJA^p_OM^00%_p&{_dHHBCg2-Wj2|`^)tj|R2L_wJz$jYO;|A?Fd z@VE%>3AT-|G->rB_(y>iGJ)d4wFvC?3bbw0Y$1hfz-yR%XEEO1X`(M>?I6cR;(F`% z5&nOA{SSKmFQtsU{~Pu{4Ex`KBbUE$6v&@B{XaMg0LEKTU^SB8db7^c2n#nM&8+qB zpIqWwsK_BI##!Z>yVffAV9R6bvinHc3&MyJUFJBuddHkm8_)HYqV~6K5(6ce(!v@~ z&RuRO`aPSQiD#2^CaliVbp6mOG7CvO5Ap*DB}C#Z5{1p#^Rsktof74dTG}<`gTF?# zjwIs6oG_^)*t)L>-?Yj}P)JY2`zVrt05j&{>$)6TACtgqDc%()<*893$z*gGr;K|o z7`9oS(@LhehLI^iZCCr+RLse=nI5QSO)D8}lW0-|hd!*Nd;AmMlox)omk|Qiu3Rd_ z!pHlqu7*$#U`XY}u8`o^BI6zcHN+5e_RXHbyMe3Q;rWRoPuh}ixmEm%(4Wuem(O_fdvUG_-O%NWnfC* ztM|N{gezJ65JvtZy~RVpm;^kM2;@I1psIBJFr4E$tvf^_G9NvBLUKom5nFq3P0W zziz-;8;r8Le*AR)K7^F{m+MWJ^&Z^=uEVS$da&Ez_jD5ZbpY;#>ZhuzpZX7Yc%2y9 z#!lBd8How+ANUZi5nute-f-O(kF-KDdvuFIZ@U%?L6;y$#b7`3#yN-6Hy+tPb3-JS z568)l79_{~#!4olZOd5HbsTRM?Ui&1(hvwhkiUr9Ho0O3$&$g5*PsAhtGXu;7xTl| z5iYO$Z}Yy)w3MR|G%{yWAT_j=>>w{VH7vxo&UE0YE3e2l(?B$Ow6Ef**Q%TFVBH$n zm;ca$kXEID(<+9q6zN)7xaYQ6Hn;~@>RSxDKEhzT>q0C;mED#m8$rx>_a>UEmf^jY z1y7`~SR#+RHAC@ozboo+8V}nlSY5%g7}nvVp`{IUTSHn^nlj{8*3L#oAb;7M9K2H= zIK>K5GTSb>+n~|%G*5kQv3-+S{K@<>SA(;H<8I^bG1ok5G-sx^j3yHkot7CB)g-R0 z@nnq|#csxraFL*kar4bt2(B*jx0$njnl0gZ#hoIg#^4xf&2wy5N1;Z0-Cd&!)zeZ#6mT)|*7GWv9kmHe z7FQfAbeEzrY+8VOBVz}krAmTFU!ZM)zXx-zsBi-JEqCnO1pZP2J{1j=E=0g+{tPD`3;5WihnC&J zw0D;#p(@Ke+t|Y^|KVo4WJ)9~n)?L!F>E@|sMhJj(XJYkRQBS(>I7*Xf*dMs(RBRM z4?H+81A9SY)={Pw@;oqq$F?NP*@Y+iNvm-gr)?}qF62s#Z(S&y(57yU6A3g2@x=d0je9>+A`>|j6 z&g{p+3^Cv|5*~$%Vz+~$lNw^(?D=>XycWVZWEPu=pr5fqz;?cpXakj3-llbPJ*>UI zuF&&<7PPbR9K{BRR}hH2dJYI-5&xw}ZcX}slK&5q|1a^?-y{em34iA8|1^JD8C>e} z5Y_LXP+No-b?6~O0{+vNt=prE9TCb7%bRb@?~BE0einl;!nsUE31?CqWcHWbr0;WG z9fh1~h10oD)!c^*U6&r8EVcGRCEtCs#&)@u#~21XYjP@!`#w{@vjB#)n`cNi`@)jN zWuZ@*BOVxe0v1={`l;b>Xr(kEFqg|>TGe7L97-HUE?rSrw+O@uwQ_vUo}V(K?}WZpz7*g<*#I#_#0 zS+0~dQSdq+S%6M{b7~V6P>I)FpV$?rt5*Jut(!kU(l|Ha=4n7S*S0jK7F?YR-FGk| zo7;BYIF+PY5N5zL{9|lA8<}hw`2C4l-z!zaB}{i}NR6Y-cDI5(`4wk|{>9HkkpmBh z!?mnDT@x03_#)n=5igqGCGGeO%?DAN^@X&*k9r=0ZWJg=TplQn4)zt4wq&OYS7!N) z7()4nL~8-~O*Yx-FmqoH?FJFp(}<2or)w~cGiSz!2YK4{QhV_OCF7O9y?GA_nowtg zZnKrE$wu%TGQwWb1$z)X%qUL*`s5bd?1-x{9+LHN~S<_EK zsuW}ElEb(z;V{z^vs2f8qiT2nzG$DL&gedKBWZC%(`_SVJq7dqa(G!+ooyYn+VV+!$&$d^11k;Lx8^)CaErdwjJiziDkbvc3$ zKoS|$&{f^T>?2=33LEsGY+56?NqGoATe`=a)3}_qE&7TF2t1)V8E{`os0J<=kPe0K z?J^>hi-Oi0o#r=8?~DTrms^8d%ZPt6@5diiiGZz<&rd*zl$^7G^_k}wr#!bX;Ob`> zf?(atpP|lVB?Ml;&l8Q6&rkTkAQl$D04;Kt2dWkU{td;4*{wKGUdu!R3(h02?%wu9 zG@u`FVhV6&q!AQ`@reJ9us?`LX4oZcXcd<~_gj4%s4769{>om}UKU8b^?io;qKw@<|BZoPqHiB|19M#~Ov~{1mj#AnmIfj;a&#~SUIRw;+{BPII&t(6LV+S(S^&DV6GE~THQax$!F)gH zmhM22Q8>n_-A-mnZIF4dv}#wzM&PN0UYuArpVb!?6Ee)M1EBR6aDWNmqQmD*6zY;o)EnYoJU1&VhA`_43QDW+|KZYms zLkBa5d_y+rOKittGKxBDtw5xq?}O93`!B)Hrdhh)mdfWk2AYG_qyl+Kn_T<4r>p7x z>ap0;QX*A4L!gi)c;_N3{c zc-5AxM%Iex@ujaT8m*s0y9%%sHEGZ9*ZPYkAi06vUIaOFw9tghv@urBO@W!qCHAQC z;3HQXvh_pHFMixUrp!_(nZc}e9j*EB6O%5eqmQp$c+pzA1hSB+=t5PBXO!&=`X@`z zo}q>y`Rv)Nh2}q8{$nZAVB+8hN4V6_Jv)3CX3}DJoN4V`fra(tpv-R_Mz~cyI!ER0 zI}L)n(R^-gDH3^1Vf2k(SuFb zbY4p2psuqAAEZzx;f}%#dAcF{(BUmZg2umV+VXbrQwS(Z;>e%n)9j}REy6LP#=@mv*+Rc06^RmNtaUK zyd=>GlBWW{HH?7N!!Ml>jMPt-xO9GE5Z65Ag*LLLz2_`9O&kYOgsL6)sO9CP< zAamD=112#}Wlsfs-I zXMXTknoCE=@I9`jRm^j>|EVZ_sR6zwXubv5z#j)y#!GCl6Vn;PZJz)9z+!9_!~$yo zz70QTN`)ubqm)deJyPiuhL(Ftu@L4`)&}a=6;8och%QoCBp$$5Ghl2s#GKuUqd6}Y zFLH7Y$=Pliaz_gzFXAekZ*nHqY#d`1m+&zVMe%@Um4gUAF`IKI-}{eB|A9*X9V6<$ zEcpK&HNd}>1$X%C`n~aIApP$R;C==nkvxo8IsjpX-!}!To_xgE2ILV0^cGkl`12U5 z1m8go7Umqia@4?&nMLeKeB~3!L9zJys-H&VE=ZiC{KZm-{}{o@0S;d6h9LwycZmb* z_d_hdTyJC)>X^9;Aaj_U}3`5(TZrS$*?{lI{fh&0|C+iP4{k-RMbqdP9tfv*ABCYszRdtfHMBC-qpQ& z2BdyM0rXO@;6f=~uBK)7+Gqm{oD9CB0BIVU!1m0C)_4GLHvC20P!go-g)8`{sSn1p zQye#=FKawkZcSP-KV?_qpW4T40cM>w#9IX?m)I1PxhY6<-8mdOSa&J=n8^B3 zs^`y$N6EUi8T*NRF=hAyQdM0v=s0}fvKt+ic&;fhIS*QQzrSY~zI3h)}uka+$4 zX((5isz3XgNho)EW>UYDyFSd4X8c)F5}OX=w2)7H46~nfbfot3Tnf}Z_RjhHaC>q> z^jP1CBQP296j7$uS6T#MWoE4`w3IbD;lp*EwJv5O-x#w9t0Q-xbB4@S_&5?7WQQpz zyH?=sbRU5~=d88`+OG(-=aSKLH5XuEJ6QlqDx6CnZ-D^(k3c4G68+r9Qj1jj?G`1{ ziA5b2zCOn=(AE`;G~`x8=zfW1qtrqx$x5{7RwjmG<$r;XoBh$s&l(7t^&dRQL34g8 zK;ctmk?LWE(gK)?;g%4l zesI`AI%=cM2hO(Dwv$nCdS29}m zc|fKa$nKQT3(`tAU@UdN+=&kP`tX@QK^GgMAhZegMmN1E(iGT1J^iYW^pXCmbeK|7 zT!)Yz)k(j@Xpn<4bRP@(`=ziNhazg0>b5#o7gD{2RW@z(%L~4J!q1bX#&qlW&-d~$WY=(UnqM=~d?rsnJKA!W{P zz&UJDZV5cUpm-d8ReWaa0=0a8z6VjY8JRZ{70da0;k%I<+b% z6TWpIOA%9qIcFUWI8tttrrXOc-LNRqI*5@GQqM;yH(8VtRGHwtGI_>Qzs_SX^$ez5 zPxo=}VN!9v4j)KE>ZFfFpuP^JYA?}dMXi+IJf+NwCqJ$|4UbTooK0PIlBtnX$EItT z;Pqe5ZQau^)BV_JH>vAbYGwJQJn6ZKn%N=qi~YqBw6nKHr zN;!|no6H!fts-MO$aqlMjW0!<5@|7wloXV8gL(UY;}$<*I}MwUOg$iGurJeDBMeQo zvXaMnd-H(#d@EO8YM;_ryyX~y-~@l*Ho;rM4eY4q*56O;-G6lGNz^p>^oz`SGpCf` zLJm*B3-b0(CF6u#2dSRsT+lb3-ttA190+$LaNE|QYN9BYE3!WJk9dOMyfw8(8GL*d zPuFOsB>>GFB{a~&yn%#;bC zOJXKcOWu|uw4EhPWysZ&54a1Q$TN4W#jvR#zpxi~WK6^d2r9r8FKs6kzQwI|);IP3 z0ih%w=snGbtxO;HvN@4$wvHNHJ8QGDxQ3JifR$vj&4Ya4K&<}LBRw)3jjZ~dLa%4T zrt_M1y>LMm6m%gcIDiD2Ey$n;aW3c4r4I*|vi$NN)%{=8VEuQf&i?ODXX^YJ%>M%o zhHe$0c1aJM;xmAd(z_xFCU5$~fW-wQ+I7qE*SdNk;8HFZacqjd=Ss$|KYc_1$^ICd zT%4Q4ndu47fZeK&446r12> zjIM>gQQ^|!6S*+X?vKkLMos&?U#W`3j8vJPsBHj^j#w5o>+C(jPf zP10zgsxcFhXGzRMp(CXRpT`}qMC5HWhB&HpvQ`ABcmws@R>@S;hlAE>nWvKyDqd}~ zK~=Dy+vu(&rk1;$T^}(n72tRBlBi%V8eu*{`0Wpl4uy*Nt(G{Nvc2Mz70)Qr5zVA7 z#ZafCoO&Y!5P__4;+Mw5Lxa%fc>ty1oytL|3n|P#7`KsZ%ZoISf}yw1DzA_0!;}>7 zfj0U-)O~av!dFc@L+j3;kz)fBIp;jdQGJO%P8CG75Q>QDBDYHOQ=}mkJ3MgH zli(kgXODCqZD`1ou;sr+Wp#Ic?pCbUS=W;e;< zj^2qm5%&1Bu$&R>*VbVZghGV`n5^WWrG2<59JDhmndh0Wi18#zMwWTYDt*HQ({-d^Ht_P8? ziI4srz+5Om)Z1_;w>lXycS37OF*Beh|8W=afFmT_0bHgmNxXN^ua~4~c2jp5gbFfsK&?SiDUxnHwGL*?ueFJuTH@Tc*b!X0e(r|R;(oR@R_0w1Wd|8 zT}kvWJ?pAbqi&JmAa)hIOTpX-qC>4~);bJtw}X!b7i;YV^Vh*wgt0W5@ygacFp9-T zU^2(RL9PIFDBqhw?M-Xd#D%yRWHa@fU`&cNy6crykM~0ghm{a^)rKUHueDdpKVng( zP383Bfk}dmC+O~V&O;x9q;|&u-41FEIHbHasEYhi^kvO@vnPMT;xtmd{f@Tb9XgUE>98oaXgAK_ zB2%b6yQOzBIHxNo7map&YI|P_@!O^s5HNxfBU50H_QQ#KKvbjHILF`~ct@Oj{1qX648bg1sDu+jM|vc0K-f&MVL)M26SG@mt6Y}Zu& zmHn&Ebc5I32MV`j-=9FEOQj>!N%Iwt(GEFWdAS>yP@;4p4r@E_CbHNwI`8{tnc^Wi zEOr<08y2!X+Y`q;FvXKoi18gZdJtO4Yh{<`)tU%Us5@A1Tz@cTC>Ob>3|0_k6}_cz zJ0ixJt5{8~$uKiZ9P?vAjfD3?Ks<9GN1Ggtr7_x*+^d43vf4B|u$v#FqBxO)gp z17BVgDZw8s@U<~PGG2~xP||o7RO7q~{U|)p8Fa9&g7?!Ay#;AuOkhCce0uH^myJXu zE0~>hlhcZ)sAT!5yivr(aYw6}3B3Z$I zfz1B^GXD^1>hW)||3|R@8PxdK>>Z*{FhlJ>dcA-eC*lySs-DAumJdVxI61U-q0xo$ z>qYw{Lf;;U4A{+jrB_#d8dLlyz+|iHH}vPCDAId2Hd(ms-uVJ&5?M9ceJm?GotE=A zZXP+(q6sv?IlMnB0EYAcEW?+N?SqYBM)~f_km_JO|-4YmLZs=aK98~_-QX&_NVk&d1Fo+8I$+^8hR5L$p}>{MueDoK@7od(2GZX zEa+fMiNx2-;Q?!@E;Qjk*a4nD=v;oVc#c-OpISjn=>Z>;_ZaUIj}w(fL+E>KkoK#y zJPK)oS){+W6g2qOX1nECga~2=0tSP;h**Gg#5+)_WO<%nO4e43&VFr}l(7f2QkfMG z=taccN!=D}HVUKjT1C_!;u0;XQ>|ef!=0nm9N_$@s(EXT2_0UdLYApv64`b1&Kzz} zqqW+9yV;6>#dI;W+zlJsJAjIVlG2ZLzz?X+Zrd{vNsuqDDIgefBJNeRo zu`J2tC^GoNt{@gSq;!cOvbLE?Mpkpxa)9zK1>EQJPAwor%@7& zl)HA80%=$zu4f1;3M17~dKMdgGFHAg6pDz5iIzkniZQ8^357Ybg*S{ca7}*RQwE+< zG(XrFyL_wQ{=@y^t-w)k)qQ$8t&nJe_DQ}=4T(33X<=9)?~_>hh%>q8vOJ$<3%Q{z zZ93$nU;p7Z_LIabK22|ccIf!AdA$~~RX=jw%(;64zFh}EQ9E`7`#UL0TlSjRycH$b zq6+#lciN@WOV`%y&?FB%cZ>qS-Rt4Q=&KQzmJugImjTT1o4iU+;@R=qdFz6pH8T*J zK6)7sZ9XzR)Pcv40J>MA*;2{)SFG}-OE5LBZi^3&nC5lk5Sd`tc`}#Mt$!g@zG#k| ze`sR0W-Vb!EAJv`I&Mk1M~y^&!7LsgNM(F6qE8O&Ddz8&ogrxwSIh3+F@cdsPN^bYh(txxOnA16&+bCQUrne(-dwy zFKUB+M&jCj*$+SAIq+v~G?!BmY>)c4twQ5bwxO#KD3u{0L=S7kzwKOOnQHNp>~LjR zj6`Ki$_|nfN?OR>{X{DgZGBentP$xwg@eWhOz@fSRXL&1L#CdvBm?bj%BQf4KnNws zG{u%H<=XtRwZ%s&k-ub&k^SdBWtyGCFdgdH*EYIYR4ND$>`)mPDx@xVKY{^h zn3}{|g!^=Ph(y6xmXt2-(FvE-ej=%3dw%mGCdI{Y;$e?X`3!h0Y$By_9m=l!a$v~E zP|4oXg@70#b5hn@QhruO?Bzyp)WD_h!6CDz#DY{TI6Ee3z&o%?hMSWsdt?l9NAOS$bzr!fOmiD&Ry5(}+%8*tR?5D5BU0uvJC$1$zoAqj@hckEL zWtN`l{rW=Bj>5xmEV3EdPW`OmyU{P(>IPhSD7aP}W}1SDb3%W+a**TP)Y%hQ6xypZ z_nUv~=6FcPh&e=Ky|BDso9X!N0ff7R1(^&L%&r`1MM7;oJ5jQee*7JI6SoL8&#T1! zu~@$v=&>ncpR|SI`xZngjce5_nDQO?>VlGCu&h0>#Rq`!qPdHoiPeFd1mObf?R(_+ zREBDA%r$aTC0vNo*ZBYFx1UzdBQuh&@Qc+zC^Qnu__n9>Vyw`Tp z`c>91K%Vetlb2fH{dF^D-{YHFGjQ6Tv^mUW(4N}D;l%=w$81LGv_@6;08Mt zZm~^`-yn_AT?3x+r~_=|?)3lEsX{pYf)ja5nQ+)xs*LpeGst7IuDsPQHTZvuU~J zn0srvpF!>)WY|a_F4nRG4wS0rG;yQpRI!&50-OIUUQMyS3Ewv$&j)xAlV-F)8AjU8 zt!SS=7fYq#PehkKT56B;Ig!o-#ResX|TRt70g)VsD`@+k*P z;Ni2;DERY|OXiBi$CZPN$lpn%S7>sZx-v(~Bbf6=jtB`veZUGUx~Y^{Tl>9@qnmi_ zvgZY>DdK4Qa_LgNdIG6&WJmllY@#Av+VJpqHz_DU9`>KU|3*#!|9<(W_{_g%#SlD# z8SejSGjiPTS0yrXb)i@LM4-WTK`YRk%rNFZM7UXW^t#6Oe-QgftuG~p_$86e%k6~O zs)-oqUIuc2bBO;;S>P9sNuitvGMlR@5?^8^dyNZc z%(k6UhHXD6Eifvao)adORPV}FaX(QsUv(<)BDK|oKPY9S4pQ|md^?JWn|OEHyf(NH zV1*P75YQVyqf<%ZVP$PHMonUI}uW%)TR0T4PyzJPnL8V=-m{4CDxmW-Gu$Ozp3EnkxGaA{(^kOa*^sy5=Wr7*Gxfxg+9V&$@~X*` zFV;ylqnjZk5ICW(AV>n)l@?41h#%?T3HF7iDD(HFE#$9% z@p38!R~8k~Wq&zRbx5HF^anCEMrBac%6Aw{c{E{;RXXGq1_jqJ)an?whL9oWt+sT$cnweR1f zI^dNlB3uC%d3;fH23Ux?qrLAg9wl|w+*(20eg$BwvY@h&>zVJXGAW$1Onv_#UDM_Y z(*L@m4i=!M0*ES(4`%5j!24@AjcuRm4*MEtWBiC9`AleU zBVnlxyzs&ym50Gp2a96HqhNOV0!T`8s=^j_=C&w*`y0Nar5yn{Mx9xBy3%N{3CYF) zJDvm~SFj9k3lc_Me&4d`gEfrRvc}NskKUOnoD1C%RT|8pI?xNP>Fd3vznAAX`92MT zuI>Y}=yZU)i%UO2@t3xIy~(dw=TX<--Lf8*ZNk{S-F}xvIVQ%LY{vTn0vJkA5cNS> z)2)FtZ$n5Ck5T+P4`5G^3`a&F73`nfA?gyT8{6h>@fO*&9&~()_DvIo#7tGQ?p?eP z8!qt&z6b<+oFgy@Z7HK-j~J4!&N`i7e`>EF#!Zu@nuu}A_I9E}&QwRIKzh%`4QV2|*rzjJ$z=DNm7_YR5c*X3m&~D(^PyWvJ zGqWonNuJ9zJMC-f)fJjbSli}fy+iS};7Pie1OCGQV{^uh$w0geSkOix9cEHQo{+l4 zQLcw?{Dae%A>jaw+t$Mn-iNh`gq){j;nXNrjv<+AV`9bjLRn8c^q`4MFOx4mt#zzG z{WijfSQskDiPXA*WBw~EOrS(RDx1xWfmCTC`*EGf6Kb)yC2G!*l5))sjcT3km|FuH ziQw!sJxa&EH?`sXhOZVCA2OA_a|dJqOnJ{2lrqzBnqR}6P{kv+kNqL>a(kUKavfdQc(WIZo`7JCclPWJ zzky1`f#OAWc*vJ+6km0}KIDJXWx@ zF{DQtZ6$Z&Oj3x;Rk<(|GKLVf148qdET@Dmej4gZyKXphcS$}I3Xgi-7re;B&?~$) zJaisulPz;+I5mokqbJIa14I}Dx~2XC>v>s=!QUG z$Y%kZFx_tLV9oq*1V{LDI=~C|dh|+QPJch2bQ=Rn7!KPehmtl!L}gCoWneki!*z!7~_$QXwzL#H!{15^X-Cq?caP>8mEp%5BbjPUye2i!-^0Ed;Q$F~)@?3n2!p@yNW6(I7a*-Fu_G=XhSPdTjPOs?t)pK!LhhL6_B4H-_?`YADTHEyx$c>=j zC479JL~%z-4L=vy8JM&1E{SJ@LN7u~MSG)OUH{Yhcst0wr&}jN zU+udZCI=oa@G{%leWb;=XwL0<{QBpw?`AoNQaXv-A~o%wTzj%(`2F5tX=c}$p&+ZK zo_yoJ&Q2`jXw~UojgINNyuN%MRxgVM0M9%z#fAu4*AHxx(8XEEy4Y3dTj&S_d3M!Z zdXEt1F5=HZOU93w$Xvvm5!&|sTDVtkr9y}Cxu(u_c*<_wna&(FU;A=Bn|UykWXwPB zpV(xS-Y=xkFgBoXV1`9~%jvFdW3v7pFit1Li36ERT?0tz{VyPtaB$tYYgvc)ZpQaY zKK-o|Q?hXkrAqGITOoVL#+?5E!cezobCI9#RFPrsGI64haeN`J(X3^&+r(#gV24};6y1vg|| zIvw!-c12NI{Y6sx)St7#`{VPI5-mC`5Ios4)qwlo!i~w)KJtS&Id-OaD(R+pA50x} zpLRmQ%t7oXma&zksLqa5D^<@=($`X1)>@O5j%WFd?=Y9)^GDtELqUFt7NMxU%`%@< z?jq7eK)*P8*7ZWYNlswrjn3kgHjQtI4V>xHq3p~;&<8Cmv*({97W>lk4q-J+l!t}nuQ zmZpKNGP40{+i~6Gv79-8+ix?o?RuUTt$T9g7w=QE(*nuGRb@KRaPlsHzfc4sy#44N zq(y)}>lnzHGD+#W%9!q^0Px*zJP@2*`*eUATz0$<;8&JtK*|Jn6$HP~&zmL8y)zSb zi5ol8y#(?RYKRdZ7B2SD!Z~%@Zk=Ac|^@oY9T>8-K&qbkduc6r8S1w zH!J04E`fyKPY{eflf@P?i9}({wO7tReXK&h)U}fQ_^={cI$s)UXU4YA z7q|igI~bmRgm9IiVetJGm#Ft=-P%gDZ{X1PR}E?t%4wljvkoBsoBdBInwGa)^SFHB8EizJxRgxDxHPn|LxzuXa_YmMEZHmjPfRlTaI5N`=W5LQd6d~C+0P1 z%#f2d^kF1Zl>d@?5=aP+;1vTYAjwfF31;BqWLQ* z3`s_Vi#dPh%Q;XzW3Kq!DH!iGYuzX(lw30>w*c!~B@l+5#5P>G$d1g_5F`#cWy&sY zyoEb$eGT|lr3MSR;f>gNrxZyMt3?k)MlW@%C?+f$5&ftKhOl}alfc%-1FF*G7FWH1 zbe#ifGG`yKe(~|dT)Dyf9@{5eZ!#HFYkC@t`szgH^Cw2P+18~^f+JSgB7?vWa5Iw< z1;SEdx69SEbz(AdRE{xMPl+I>yO9_#m`$sacrvVl;7ywVf@w>1sq&wE_FusDKLFQ1L|wc58|?oP?0<&3cK(ZQ*90@V{)29N$n!u8&AF^a-0j0d zQEt^@>A26UpVA*R3uLTkf6sbJwEE`m*?3YD1~^aJ>whlJDyS3r2?GF}}m z->;#*cT*`DTl9n{2D@x25x{gGeb#gY5PJ>4BUK39Dvy?C>C1sPL?o^m3}+?TmPd37 z2^~j8v4%;FDm`?n7Od24@=EG^^Iv&*1`3cQ+Yo>b(A6`Kb>&R|p$pjiK?2fyPLsW3 z`@1sNd@A>(6MC)PMKe>+LH!R=leMVUz&ZQk&5r(+9%QNMLH*3gTGYcn$}GbEAK8Fg z?u^o>KXs6#kpKe2ul~iE$THtgw-xb8*cny%*ESB$q15RCx>Sh#*lbqlIHr=S3}~-p@Kn>w_`5d;rw21Tq@nzYo&k3E}`Zpy`@vi#p*+{La(g^ zSvAbt%Up1^c01B2IRI3U(JiZqcxM$F!0rM2=I965lgy_^*@sWCB?=5V?7tBR0kWw& z6*ob3FI2x0uS7eoLaF(;F=!`*)ewMa?VFp`v3{8d3B-CfFSHn8)&s~N(4ZsmqC)A0 zU`;bJOj3p@gTD^kQ1LliMBu-ewTtlis=UPsrL}A})|=YibCR05RUPe)(!14RAuIf$ zuKfYk;Zdlvg8i6Xabx-;>2y~*EW`lAQvUvcj;GqHYbnX4i}5UDj&WASWh{HxD!w<2 zgw%9)Z4dD%05b(Uyb99tehQb=%SU~Z0+55fm{hv}6s!58MxQKpA^TM?6|;l-H3C!? z9j#FWrirAeTpbtjkaO;Q`jS{o(LdrDWgd3ABwrxbOD;d~qa?XzG3On$QP71v;8tc}6-leeNibT>uTu60nWkeTwsRExNrNLI5l z4^n4t1UZ7+Wa0Yaudre$on5_ zsqoX@io%ME)R~oRoX)=(S zc3J0J2y&w}pM%X?#k#<7#;vtCg@nvnO{9_K5*+Zn*-`uGuCLXxH%ZX5D|Wv$WEwE) z;Ll%!*~Lz>O%-zOtkzWs zJ>qwozK|0y*yfZhmlNL>X&0Uwk;YlP2(Or$q3!b9#zxsV!72?p@x?H`aCD-ien#14 z*2tA79>0VcY3-3lmK3iT5l>pA^^e8H!3SemztiwEL6Rj5C6{Z_ZSfoA?|^#|2biJe zc7I29?J^r63r1~a>5{D*a#?Qr4B5U>*_yo9cTG?_Y90*41j(CUl~9C8qa~>%}8*(p-B||_5v4^>D7{D!zYEjKP^!HWJA%^p+}J}d5$;Q z5Fg#bK`ULkKsp5m$V)ULncK(Hmgt-FXjgMI9CIveWZiF?t4$-er<0OB%W#`AM~f5e z4w|ikO*yD1B;c1mBn(@PVO-6_E~N`anUiS_2G*HY$%@Hm+=(pBGeEsrW(#7r_;ZIJ zkGYCthwHj3Ctx}{zriuIbaBV=TT57Np0*dAghfZla7xtpj=69nIj8nzb9x5ZruVbd zqcXediO*x^&>G1WRO(U1mX|@eQPiw-GiS<4NJOH@fDu&!Q}WqZV1wY6n#7PmkQQ5- z5YhfO9(UObPLqI$WDRYr++FYl((%|NJ}xz-8~cTZ4!4utEq3DM>mT-0@Sq@( zP9yTEq05RmUJ0ZkcGa=KO&L2E`rKPgcFW1c=d?sENtY&fow{;4l{-`~n%11hU;SvGOp>0NO^vJY^Rlo&G_Cmaqy>Tngu9nwI2T0TLO%$_j{1gp#;v6%q8o;svQ+#*rd=<=M@KX zZ9GUX7*X6g7)q`CJ)hb0n4F$0GX2$g7*lcOeYg!J6TvI;hq7`sI5THa*PN z)HLofKl)GyT|!24V+yv6^LV)_vyw;;QmD7XfM^?$=IUw?`mZLT!+*lpcSCiHa$n+E zIg6cC+bTISy-0m>0{cUF9q%IOSTz%A1#PLkHpfGWhhpI8#ISmb z3475#Se?rbwm>cnX>~c7%c(Tjf08a&d@9*AKg-FC_F@CNX>t<}XD27bRbNip%3AqY z`Q7c184acOixlVBx@5#cRDjJ-ncI$oBi3e8OrcrH1R?>aPvLZH;fV<0CU99f`zQkpl$L z`XNrM!F)Tz1pdX5{{u(=BDq$yDL-U8C-J7i zgjU3=_MQyiF~XFN;aECAv1?4o%!5Xe(YL+%@`B{OgY7GN6v&!!%>w{1JmyUZZW&V6 zRvP7Esbdm5CPjvShsYV=nxdn_3Bdg&t(M#Zp;Mrnqv;QV&l5{No9U#)2akYPx?U(6 zA?9TC5dh;0D<^%!hmlGzH$6(t>Up?X2QW3^{cqxaMYZnkHyyNzZKO$HSMI`7Uw)}! z4&BK}qEhA`j;q$Y#!AR*_BHZ}{;SR!=v2{oob7VHyYERtQrS5tfb<^3yjTF<8~yQDW`=u1@Fa37NJz?O**aZz10VxdjsY%M zdUnQlea%5N^4mscTxx9xjaM8R=(sjRH1wwRMIYXiD_hO#y$v zWY+H4Yz48%g00B>y9A(@u_2o3_UxGvK8WjL%0Dasp;JtESh!R6gqO8YV3iD_bjn)1 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 z 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

9DnWlp{&C-g~U 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≧~4xEUP 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�oIl!H~R3v(y9 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¥7yVt_;Pn~h$s0m43GU}1Feq| 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 Wf9t4~+^22v_(CO16e{w;2mb};soin_ literal 0 HcmV?d00001 diff --git a/public/blog/index.html b/public/blog/index.html new file mode 100644 index 00000000..264f198a --- /dev/null +++ b/public/blog/index.html @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + Posts - Federated Computer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Posts + + + + + + + +

+

Posts

+
+ +
+ + + + + + + + + + +
+ +
+
+ + + + + \ No newline at end of file diff --git a/public/blog/index.xml b/public/blog/index.xml new file mode 100644 index 00000000..1aed1322 --- /dev/null +++ b/public/blog/index.xml @@ -0,0 +1,11 @@ + + + + Posts on Federated Computer + http://federated.computer/blog/ + Recent content in Posts on Federated Computer + Hugo -- gohugo.io + en-us + Mon, 14 Feb 2022 14:12:23 -0700 + + diff --git a/public/categories/index.html b/public/categories/index.html new file mode 100644 index 00000000..e4f7940d --- /dev/null +++ b/public/categories/index.html @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + Categories - Federated Computer + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Categories + + + + + + + +
+

Categories

+
+ +
+ +
+ +
+ + + + + + + + +
+ +
+
+ + + + + \ No newline at end of file diff --git a/public/categories/index.xml b/public/categories/index.xml new file mode 100644 index 00000000..283d5ed6 --- /dev/null +++ b/public/categories/index.xml @@ -0,0 +1,10 @@ + + + + Categories on Federated Computer + http://federated.computer/categories/ + Recent content in Categories on Federated Computer + Hugo -- gohugo.io + en-us + + diff --git a/public/css/default-skin.css b/public/css/default-skin.css new file mode 100644 index 00000000..c9616326 --- /dev/null +++ b/public/css/default-skin.css @@ -0,0 +1,482 @@ +/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */ +/* + + Contents: + + 1. Buttons + 2. Share modal and links + 3. Index indicator ("1 of X" counter) + 4. Caption + 5. Loading indicator + 6. Additional styles (root element, top bar, idle state, hidden state, etc.) + +*/ +/* + + 1. Buttons + + */ +/*

gL6g?RZPDD-v6p0~9$!(khPxPMJ|V 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

gL6g?RZPDD-v6p0~9$!(khPxPMJ|V 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