picata 0.0.6__py3-none-any.whl → 0.0.7__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- node_modules/@ampproject/remapping/README.md +218 -0
- node_modules/@babel/code-frame/README.md +19 -0
- node_modules/@babel/compat-data/README.md +19 -0
- node_modules/@babel/core/README.md +19 -0
- node_modules/@babel/generator/README.md +19 -0
- node_modules/@babel/helper-annotate-as-pure/README.md +19 -0
- node_modules/@babel/helper-compilation-targets/README.md +19 -0
- node_modules/@babel/helper-create-class-features-plugin/README.md +19 -0
- node_modules/@babel/helper-create-regexp-features-plugin/README.md +19 -0
- node_modules/@babel/helper-define-polyfill-provider/README.md +15 -0
- node_modules/@babel/helper-member-expression-to-functions/README.md +19 -0
- node_modules/@babel/helper-module-imports/README.md +19 -0
- node_modules/@babel/helper-module-transforms/README.md +19 -0
- node_modules/@babel/helper-optimise-call-expression/README.md +19 -0
- node_modules/@babel/helper-plugin-utils/README.md +19 -0
- node_modules/@babel/helper-remap-async-to-generator/README.md +19 -0
- node_modules/@babel/helper-replace-supers/README.md +19 -0
- node_modules/@babel/helper-skip-transparent-expression-wrappers/README.md +19 -0
- node_modules/@babel/helper-string-parser/README.md +19 -0
- node_modules/@babel/helper-validator-identifier/README.md +19 -0
- node_modules/@babel/helper-validator-option/README.md +19 -0
- node_modules/@babel/helper-wrap-function/README.md +19 -0
- node_modules/@babel/helpers/README.md +19 -0
- node_modules/@babel/parser/README.md +19 -0
- node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key/README.md +19 -0
- node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope/README.md +19 -0
- node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/README.md +19 -0
- node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/README.md +19 -0
- node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/README.md +19 -0
- node_modules/@babel/plugin-proposal-private-property-in-object/README.md +23 -0
- node_modules/@babel/plugin-syntax-import-assertions/README.md +19 -0
- node_modules/@babel/plugin-syntax-import-attributes/README.md +19 -0
- node_modules/@babel/plugin-syntax-jsx/README.md +19 -0
- node_modules/@babel/plugin-syntax-typescript/README.md +19 -0
- node_modules/@babel/plugin-syntax-unicode-sets-regex/README.md +19 -0
- node_modules/@babel/plugin-transform-arrow-functions/README.md +19 -0
- node_modules/@babel/plugin-transform-async-generator-functions/README.md +19 -0
- node_modules/@babel/plugin-transform-async-to-generator/README.md +19 -0
- node_modules/@babel/plugin-transform-block-scoped-functions/README.md +19 -0
- node_modules/@babel/plugin-transform-block-scoping/README.md +19 -0
- node_modules/@babel/plugin-transform-class-properties/README.md +19 -0
- node_modules/@babel/plugin-transform-class-static-block/README.md +19 -0
- node_modules/@babel/plugin-transform-classes/README.md +19 -0
- node_modules/@babel/plugin-transform-computed-properties/README.md +19 -0
- node_modules/@babel/plugin-transform-destructuring/README.md +19 -0
- node_modules/@babel/plugin-transform-dotall-regex/README.md +19 -0
- node_modules/@babel/plugin-transform-duplicate-keys/README.md +19 -0
- node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex/README.md +19 -0
- node_modules/@babel/plugin-transform-dynamic-import/README.md +19 -0
- node_modules/@babel/plugin-transform-exponentiation-operator/README.md +19 -0
- node_modules/@babel/plugin-transform-export-namespace-from/README.md +19 -0
- node_modules/@babel/plugin-transform-for-of/README.md +19 -0
- node_modules/@babel/plugin-transform-function-name/README.md +19 -0
- node_modules/@babel/plugin-transform-json-strings/README.md +19 -0
- node_modules/@babel/plugin-transform-literals/README.md +19 -0
- node_modules/@babel/plugin-transform-logical-assignment-operators/README.md +19 -0
- node_modules/@babel/plugin-transform-member-expression-literals/README.md +19 -0
- node_modules/@babel/plugin-transform-modules-amd/README.md +19 -0
- node_modules/@babel/plugin-transform-modules-commonjs/README.md +19 -0
- node_modules/@babel/plugin-transform-modules-systemjs/README.md +19 -0
- node_modules/@babel/plugin-transform-modules-umd/README.md +19 -0
- node_modules/@babel/plugin-transform-named-capturing-groups-regex/README.md +19 -0
- node_modules/@babel/plugin-transform-new-target/README.md +19 -0
- node_modules/@babel/plugin-transform-nullish-coalescing-operator/README.md +19 -0
- node_modules/@babel/plugin-transform-numeric-separator/README.md +19 -0
- node_modules/@babel/plugin-transform-object-rest-spread/README.md +19 -0
- node_modules/@babel/plugin-transform-object-super/README.md +19 -0
- node_modules/@babel/plugin-transform-optional-catch-binding/README.md +19 -0
- node_modules/@babel/plugin-transform-optional-chaining/README.md +19 -0
- node_modules/@babel/plugin-transform-parameters/README.md +19 -0
- node_modules/@babel/plugin-transform-private-methods/README.md +19 -0
- node_modules/@babel/plugin-transform-private-property-in-object/README.md +19 -0
- node_modules/@babel/plugin-transform-property-literals/README.md +19 -0
- node_modules/@babel/plugin-transform-react-display-name/README.md +19 -0
- node_modules/@babel/plugin-transform-react-jsx/README.md +19 -0
- node_modules/@babel/plugin-transform-react-jsx-development/README.md +19 -0
- node_modules/@babel/plugin-transform-react-pure-annotations/README.md +19 -0
- node_modules/@babel/plugin-transform-regenerator/README.md +19 -0
- node_modules/@babel/plugin-transform-regexp-modifiers/README.md +19 -0
- node_modules/@babel/plugin-transform-reserved-words/README.md +19 -0
- node_modules/@babel/plugin-transform-shorthand-properties/README.md +19 -0
- node_modules/@babel/plugin-transform-spread/README.md +19 -0
- node_modules/@babel/plugin-transform-sticky-regex/README.md +19 -0
- node_modules/@babel/plugin-transform-template-literals/README.md +19 -0
- node_modules/@babel/plugin-transform-typeof-symbol/README.md +19 -0
- node_modules/@babel/plugin-transform-typescript/README.md +19 -0
- node_modules/@babel/plugin-transform-unicode-escapes/README.md +19 -0
- node_modules/@babel/plugin-transform-unicode-property-regex/README.md +19 -0
- node_modules/@babel/plugin-transform-unicode-regex/README.md +19 -0
- node_modules/@babel/plugin-transform-unicode-sets-regex/README.md +19 -0
- node_modules/@babel/preset-env/README.md +19 -0
- node_modules/@babel/preset-modules/README.md +171 -0
- node_modules/@babel/preset-react/README.md +19 -0
- node_modules/@babel/preset-typescript/README.md +19 -0
- node_modules/@babel/runtime/README.md +19 -0
- node_modules/@babel/template/README.md +19 -0
- node_modules/@babel/traverse/README.md +19 -0
- node_modules/@babel/types/README.md +19 -0
- node_modules/@csstools/cascade-layer-name-parser/LICENSE.md +20 -0
- node_modules/@csstools/cascade-layer-name-parser/README.md +32 -0
- node_modules/@csstools/color-helpers/LICENSE.md +18 -0
- node_modules/@csstools/color-helpers/README.md +32 -0
- node_modules/@csstools/css-calc/LICENSE.md +20 -0
- node_modules/@csstools/css-calc/README.md +132 -0
- node_modules/@csstools/css-color-parser/LICENSE.md +20 -0
- node_modules/@csstools/css-color-parser/README.md +37 -0
- node_modules/@csstools/css-parser-algorithms/LICENSE.md +20 -0
- node_modules/@csstools/css-parser-algorithms/README.md +119 -0
- node_modules/@csstools/css-tokenizer/LICENSE.md +20 -0
- node_modules/@csstools/css-tokenizer/README.md +111 -0
- node_modules/@csstools/media-query-list-parser/LICENSE.md +20 -0
- node_modules/@csstools/media-query-list-parser/README.md +61 -0
- node_modules/@csstools/postcss-cascade-layers/LICENSE.md +18 -0
- node_modules/@csstools/postcss-cascade-layers/README.md +194 -0
- node_modules/@csstools/postcss-cascade-layers/node_modules/@csstools/selector-specificity/LICENSE.md +18 -0
- node_modules/@csstools/postcss-cascade-layers/node_modules/@csstools/selector-specificity/README.md +57 -0
- node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/@csstools/postcss-color-function/LICENSE.md +18 -0
- node_modules/@csstools/postcss-color-function/README.md +151 -0
- node_modules/@csstools/postcss-color-mix-function/LICENSE.md +18 -0
- node_modules/@csstools/postcss-color-mix-function/README.md +74 -0
- node_modules/@csstools/postcss-content-alt-text/LICENSE.md +18 -0
- node_modules/@csstools/postcss-content-alt-text/README.md +122 -0
- node_modules/@csstools/postcss-exponential-functions/LICENSE.md +18 -0
- node_modules/@csstools/postcss-exponential-functions/README.md +91 -0
- node_modules/@csstools/postcss-font-format-keywords/LICENSE.md +18 -0
- node_modules/@csstools/postcss-font-format-keywords/README.md +88 -0
- node_modules/@csstools/postcss-gamut-mapping/LICENSE.md +18 -0
- node_modules/@csstools/postcss-gamut-mapping/README.md +71 -0
- node_modules/@csstools/postcss-gradients-interpolation-method/LICENSE.md +18 -0
- node_modules/@csstools/postcss-gradients-interpolation-method/README.md +160 -0
- node_modules/@csstools/postcss-hwb-function/LICENSE.md +18 -0
- node_modules/@csstools/postcss-hwb-function/README.md +88 -0
- node_modules/@csstools/postcss-ic-unit/LICENSE.md +18 -0
- node_modules/@csstools/postcss-ic-unit/README.md +96 -0
- node_modules/@csstools/postcss-initial/LICENSE.md +18 -0
- node_modules/@csstools/postcss-initial/README.md +74 -0
- node_modules/@csstools/postcss-is-pseudo-class/LICENSE.md +18 -0
- node_modules/@csstools/postcss-is-pseudo-class/README.md +253 -0
- node_modules/@csstools/postcss-is-pseudo-class/node_modules/@csstools/selector-specificity/LICENSE.md +18 -0
- node_modules/@csstools/postcss-is-pseudo-class/node_modules/@csstools/selector-specificity/README.md +57 -0
- node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/@csstools/postcss-light-dark-function/LICENSE.md +18 -0
- node_modules/@csstools/postcss-light-dark-function/README.md +174 -0
- node_modules/@csstools/postcss-logical-float-and-clear/LICENSE.md +18 -0
- node_modules/@csstools/postcss-logical-float-and-clear/README.md +86 -0
- node_modules/@csstools/postcss-logical-overflow/LICENSE.md +18 -0
- node_modules/@csstools/postcss-logical-overflow/README.md +96 -0
- node_modules/@csstools/postcss-logical-overscroll-behavior/LICENSE.md +18 -0
- node_modules/@csstools/postcss-logical-overscroll-behavior/README.md +96 -0
- node_modules/@csstools/postcss-logical-resize/LICENSE.md +18 -0
- node_modules/@csstools/postcss-logical-resize/README.md +99 -0
- node_modules/@csstools/postcss-logical-viewport-units/LICENSE.md +18 -0
- node_modules/@csstools/postcss-logical-viewport-units/README.md +105 -0
- node_modules/@csstools/postcss-media-minmax/LICENSE.md +21 -0
- node_modules/@csstools/postcss-media-minmax/README.md +54 -0
- node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/LICENSE.md +18 -0
- node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/README.md +62 -0
- node_modules/@csstools/postcss-nested-calc/LICENSE.md +18 -0
- node_modules/@csstools/postcss-nested-calc/README.md +71 -0
- node_modules/@csstools/postcss-normalize-display-values/LICENSE.md +18 -0
- node_modules/@csstools/postcss-normalize-display-values/README.md +88 -0
- node_modules/@csstools/postcss-oklab-function/LICENSE.md +18 -0
- node_modules/@csstools/postcss-oklab-function/README.md +173 -0
- node_modules/@csstools/postcss-progressive-custom-properties/LICENSE.md +18 -0
- node_modules/@csstools/postcss-progressive-custom-properties/README.md +122 -0
- node_modules/@csstools/postcss-random-function/LICENSE.md +18 -0
- node_modules/@csstools/postcss-random-function/README.md +121 -0
- node_modules/@csstools/postcss-relative-color-syntax/LICENSE.md +18 -0
- node_modules/@csstools/postcss-relative-color-syntax/README.md +74 -0
- node_modules/@csstools/postcss-scope-pseudo-class/LICENSE.md +18 -0
- node_modules/@csstools/postcss-scope-pseudo-class/README.md +73 -0
- node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/@csstools/postcss-sign-functions/LICENSE.md +18 -0
- node_modules/@csstools/postcss-sign-functions/README.md +184 -0
- node_modules/@csstools/postcss-stepped-value-functions/LICENSE.md +18 -0
- node_modules/@csstools/postcss-stepped-value-functions/README.md +107 -0
- node_modules/@csstools/postcss-text-decoration-shorthand/LICENSE.md +18 -0
- node_modules/@csstools/postcss-text-decoration-shorthand/README.md +75 -0
- node_modules/@csstools/postcss-trigonometric-functions/LICENSE.md +18 -0
- node_modules/@csstools/postcss-trigonometric-functions/README.md +149 -0
- node_modules/@csstools/postcss-unset-value/LICENSE.md +18 -0
- node_modules/@csstools/postcss-unset-value/README.md +120 -0
- node_modules/@csstools/utilities/LICENSE.md +18 -0
- node_modules/@csstools/utilities/README.md +25 -0
- node_modules/@discoveryjs/json-ext/README.md +256 -0
- node_modules/@eslint/config-array/README.md +358 -0
- node_modules/@eslint/core/README.md +29 -0
- node_modules/@eslint/eslintrc/README.md +126 -0
- node_modules/@eslint/js/README.md +60 -0
- node_modules/@eslint/object-schema/README.md +242 -0
- node_modules/@eslint/plugin-kit/README.md +273 -0
- node_modules/@eslint-community/eslint-utils/README.md +37 -0
- node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys/README.md +105 -0
- node_modules/@eslint-community/regexpp/README.md +177 -0
- node_modules/@humanfs/core/README.md +140 -0
- node_modules/@humanfs/node/README.md +141 -0
- node_modules/@humanfs/node/node_modules/@humanwhocodes/retry/README.md +138 -0
- node_modules/@humanwhocodes/module-importer/README.md +80 -0
- node_modules/@humanwhocodes/retry/README.md +177 -0
- node_modules/@isaacs/cliui/README.md +143 -0
- node_modules/@jest/schemas/README.md +3 -0
- node_modules/@jest/types/README.md +30 -0
- node_modules/@jridgewell/gen-mapping/README.md +227 -0
- node_modules/@jridgewell/resolve-uri/README.md +40 -0
- node_modules/@jridgewell/set-array/README.md +37 -0
- node_modules/@jridgewell/source-map/README.md +184 -0
- node_modules/@jridgewell/sourcemap-codec/README.md +264 -0
- node_modules/@jridgewell/trace-mapping/README.md +257 -0
- node_modules/@nodelib/fs.scandir/README.md +171 -0
- node_modules/@nodelib/fs.stat/README.md +126 -0
- node_modules/@nodelib/fs.walk/README.md +215 -0
- node_modules/@parcel/watcher/README.md +135 -0
- node_modules/@parcel/watcher-linux-x64-glibc/README.md +1 -0
- node_modules/@pkgjs/parseargs/README.md +413 -0
- node_modules/@tailwindcss/typography/README.md +398 -0
- node_modules/@trysound/sax/README.md +202 -0
- node_modules/@types/eslint/README.md +15 -0
- node_modules/@types/eslint-scope/README.md +90 -0
- node_modules/@types/estree/README.md +15 -0
- node_modules/@types/istanbul-lib-coverage/README.md +15 -0
- node_modules/@types/istanbul-lib-report/README.md +15 -0
- node_modules/@types/istanbul-reports/README.md +86 -0
- node_modules/@types/json-schema/README.md +15 -0
- node_modules/@types/node/README.md +15 -0
- node_modules/@types/react/README.md +15 -0
- node_modules/@types/react-dom/README.md +16 -0
- node_modules/@types/yargs/README.md +15 -0
- node_modules/@types/yargs-parser/README.md +15 -0
- node_modules/@typescript-eslint/eslint-plugin/README.md +12 -0
- node_modules/@typescript-eslint/eslint-plugin/docs/rules/README.md +57 -0
- node_modules/@typescript-eslint/parser/README.md +12 -0
- node_modules/@typescript-eslint/scope-manager/README.md +10 -0
- node_modules/@typescript-eslint/type-utils/README.md +12 -0
- node_modules/@typescript-eslint/types/README.md +12 -0
- node_modules/@typescript-eslint/typescript-estree/README.md +14 -0
- node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion/README.md +135 -0
- node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/README.md +454 -0
- node_modules/@typescript-eslint/typescript-estree/node_modules/semver/README.md +654 -0
- node_modules/@typescript-eslint/utils/README.md +12 -0
- node_modules/@typescript-eslint/visitor-keys/README.md +10 -0
- node_modules/@webassemblyjs/ast/README.md +167 -0
- node_modules/@webassemblyjs/floating-point-hex-parser/README.md +34 -0
- node_modules/@webassemblyjs/wasm-edit/README.md +86 -0
- node_modules/@webassemblyjs/wasm-parser/README.md +28 -0
- node_modules/@webassemblyjs/wast-printer/README.md +17 -0
- node_modules/@webpack-cli/configtest/README.md +31 -0
- node_modules/@webpack-cli/info/README.md +54 -0
- node_modules/@webpack-cli/serve/README.md +32 -0
- node_modules/@xtuc/ieee754/README.md +51 -0
- node_modules/@xtuc/long/README.md +257 -0
- node_modules/acorn/README.md +282 -0
- node_modules/acorn-jsx/README.md +40 -0
- node_modules/ajv/README.md +1497 -0
- node_modules/ajv/lib/dotjs/README.md +3 -0
- node_modules/ajv-formats/README.md +123 -0
- node_modules/ajv-formats/node_modules/ajv/README.md +207 -0
- node_modules/ajv-formats/node_modules/json-schema-traverse/README.md +95 -0
- node_modules/ajv-keywords/README.md +836 -0
- node_modules/ajv-keywords/keywords/dotjs/README.md +3 -0
- node_modules/any-promise/README.md +161 -0
- node_modules/anymatch/README.md +87 -0
- node_modules/arg/LICENSE.md +21 -0
- node_modules/arg/README.md +317 -0
- node_modules/argparse/README.md +84 -0
- node_modules/array-buffer-byte-length/README.md +40 -0
- node_modules/array-includes/README.md +105 -0
- node_modules/array.prototype.findlast/README.md +74 -0
- node_modules/array.prototype.flat/README.md +75 -0
- node_modules/array.prototype.flatmap/README.md +82 -0
- node_modules/array.prototype.tosorted/README.md +71 -0
- node_modules/arraybuffer.prototype.slice/README.md +61 -0
- node_modules/async-function/README.md +51 -0
- node_modules/autoprefixer/README.md +66 -0
- node_modules/available-typed-arrays/README.md +55 -0
- node_modules/babel-loader/README.md +411 -0
- node_modules/babel-plugin-polyfill-corejs2/README.md +28 -0
- node_modules/babel-plugin-polyfill-corejs3/README.md +78 -0
- node_modules/babel-plugin-polyfill-corejs3/core-js-compat/README.md +4 -0
- node_modules/babel-plugin-polyfill-regenerator/README.md +28 -0
- node_modules/balanced-match/LICENSE.md +21 -0
- node_modules/balanced-match/README.md +97 -0
- node_modules/boolbase/README.md +10 -0
- node_modules/brace-expansion/README.md +129 -0
- node_modules/braces/README.md +586 -0
- node_modules/browserslist/README.md +67 -0
- node_modules/call-bind/README.md +64 -0
- node_modules/call-bind-apply-helpers/README.md +62 -0
- node_modules/call-bound/README.md +53 -0
- node_modules/camelcase-css/README.md +27 -0
- node_modules/caniuse-api/README.md +157 -0
- node_modules/caniuse-lite/README.md +6 -0
- node_modules/chokidar/README.md +308 -0
- node_modules/chokidar-cli/README.md +148 -0
- node_modules/chrome-trace-event/README.md +31 -0
- node_modules/ci-info/README.md +135 -0
- node_modules/cliui/README.md +115 -0
- node_modules/cliui/node_modules/color-convert/README.md +68 -0
- node_modules/cliui/node_modules/color-name/README.md +11 -0
- node_modules/cliui/node_modules/emoji-regex/README.md +73 -0
- node_modules/clone-deep/README.md +106 -0
- node_modules/color-convert/README.md +68 -0
- node_modules/color-name/README.md +11 -0
- node_modules/colord/LICENSE.md +21 -0
- node_modules/colord/README.md +1053 -0
- node_modules/colorette/LICENSE.md +7 -0
- node_modules/colorette/README.md +134 -0
- node_modules/common-path-prefix/README.md +51 -0
- node_modules/concurrently/README.md +229 -0
- node_modules/concurrently/docs/README.md +13 -0
- node_modules/concurrently/node_modules/cliui/README.md +141 -0
- node_modules/concurrently/node_modules/emoji-regex/README.md +73 -0
- node_modules/concurrently/node_modules/y18n/README.md +127 -0
- node_modules/concurrently/node_modules/yargs/README.md +204 -0
- node_modules/concurrently/node_modules/yargs-parser/README.md +518 -0
- node_modules/convert-source-map/README.md +206 -0
- node_modules/core-js-compat/README.md +135 -0
- node_modules/cosmiconfig/README.md +782 -0
- node_modules/cross-spawn/README.md +89 -0
- node_modules/css-blank-pseudo/LICENSE.md +18 -0
- node_modules/css-blank-pseudo/README.md +205 -0
- node_modules/css-blank-pseudo/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/css-has-pseudo/LICENSE.md +18 -0
- node_modules/css-has-pseudo/README.md +331 -0
- node_modules/css-has-pseudo/node_modules/@csstools/selector-specificity/LICENSE.md +18 -0
- node_modules/css-has-pseudo/node_modules/@csstools/selector-specificity/README.md +57 -0
- node_modules/css-has-pseudo/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/css-loader/README.md +2334 -0
- node_modules/css-loader/node_modules/semver/README.md +654 -0
- node_modules/css-minimizer-webpack-plugin/README.md +624 -0
- node_modules/css-prefers-color-scheme/LICENSE.md +18 -0
- node_modules/css-prefers-color-scheme/README.md +341 -0
- node_modules/css-select/README.md +264 -0
- node_modules/css-selector-tokenizer/README.md +92 -0
- node_modules/css-tree/README.md +193 -0
- node_modules/cssdb/LICENSE.md +18 -0
- node_modules/cssdb/README.md +35 -0
- node_modules/cssesc/README.md +201 -0
- node_modules/cssnano/README.md +6 -0
- node_modules/cssnano-preset-default/README.md +310 -0
- node_modules/cssnano-utils/README.md +15 -0
- node_modules/csso/README.md +422 -0
- node_modules/csso/node_modules/css-tree/README.md +193 -0
- node_modules/csso/node_modules/mdn-data/README.md +56 -0
- node_modules/csstype/README.md +277 -0
- node_modules/culori/README.md +19 -0
- node_modules/daisyui/README.md +65 -0
- node_modules/data-view-buffer/README.md +43 -0
- node_modules/data-view-byte-length/README.md +43 -0
- node_modules/data-view-byte-offset/README.md +43 -0
- node_modules/debug/README.md +481 -0
- node_modules/define-data-property/README.md +67 -0
- node_modules/define-properties/README.md +84 -0
- node_modules/detect-libc/README.md +78 -0
- node_modules/didyoumean/README.md +134 -0
- node_modules/dlv/README.md +76 -0
- node_modules/doctrine/README.md +165 -0
- node_modules/dom-serializer/README.md +109 -0
- node_modules/dunder-proto/README.md +54 -0
- node_modules/eastasianwidth/README.md +32 -0
- node_modules/electron-to-chromium/README.md +186 -0
- node_modules/emoji-regex/README.md +137 -0
- node_modules/enhanced-resolve/README.md +183 -0
- node_modules/envinfo/README.md +286 -0
- node_modules/error-ex/README.md +144 -0
- node_modules/es-abstract/README.md +43 -0
- node_modules/es-define-property/README.md +49 -0
- node_modules/es-errors/README.md +55 -0
- node_modules/es-iterator-helpers/README.md +110 -0
- node_modules/es-module-lexer/README.md +338 -0
- node_modules/es-object-atoms/README.md +63 -0
- node_modules/es-set-tostringtag/README.md +53 -0
- node_modules/es-shim-unscopables/README.md +57 -0
- node_modules/es-to-primitive/README.md +52 -0
- node_modules/eslint/README.md +329 -0
- node_modules/eslint/node_modules/glob-parent/README.md +134 -0
- node_modules/eslint-plugin-prettier/LICENSE.md +24 -0
- node_modules/eslint-plugin-prettier/README.md +202 -0
- node_modules/eslint-plugin-react/README.md +423 -0
- node_modules/eslint-plugin-tailwindcss/README.md +307 -0
- node_modules/eslint-scope/README.md +108 -0
- node_modules/eslint-visitor-keys/README.md +120 -0
- node_modules/espree/README.md +261 -0
- node_modules/esquery/README.md +27 -0
- node_modules/esrecurse/README.md +171 -0
- node_modules/estraverse/README.md +153 -0
- node_modules/esutils/README.md +174 -0
- node_modules/fast-deep-equal/README.md +96 -0
- node_modules/fast-diff/README.md +24 -0
- node_modules/fast-glob/README.md +830 -0
- node_modules/fast-json-stable-stringify/README.md +131 -0
- node_modules/fast-levenshtein/LICENSE.md +25 -0
- node_modules/fast-levenshtein/README.md +104 -0
- node_modules/fast-uri/README.md +130 -0
- node_modules/fastest-levenshtein/LICENSE.md +21 -0
- node_modules/fastest-levenshtein/README.md +57 -0
- node_modules/fastparse/README.md +118 -0
- node_modules/fastq/README.md +306 -0
- node_modules/file-entry-cache/README.md +115 -0
- node_modules/fill-range/README.md +237 -0
- node_modules/flat/README.md +236 -0
- node_modules/flat-cache/README.md +77 -0
- node_modules/flatted/README.md +115 -0
- node_modules/for-each/README.md +39 -0
- node_modules/foreground-child/README.md +128 -0
- node_modules/fraction.js/README.md +466 -0
- node_modules/function-bind/README.md +46 -0
- node_modules/function.prototype.name/README.md +55 -0
- node_modules/functions-have-names/README.md +40 -0
- node_modules/gensync/README.md +196 -0
- node_modules/get-caller-file/LICENSE.md +6 -0
- node_modules/get-caller-file/README.md +41 -0
- node_modules/get-intrinsic/README.md +71 -0
- node_modules/get-proto/README.md +50 -0
- node_modules/get-symbol-description/README.md +43 -0
- node_modules/glob/README.md +1265 -0
- node_modules/glob/node_modules/brace-expansion/README.md +135 -0
- node_modules/glob/node_modules/minimatch/README.md +454 -0
- node_modules/glob-parent/README.md +137 -0
- node_modules/glob-to-regexp/README.md +75 -0
- node_modules/globalthis/README.md +70 -0
- node_modules/gonzales-pe/README.md +808 -0
- node_modules/gopd/README.md +40 -0
- node_modules/graceful-fs/README.md +143 -0
- node_modules/graphemer/README.md +132 -0
- node_modules/has-bigints/README.md +39 -0
- node_modules/has-property-descriptors/README.md +43 -0
- node_modules/has-proto/README.md +57 -0
- node_modules/has-symbols/README.md +46 -0
- node_modules/has-tostringtag/README.md +46 -0
- node_modules/hasown/README.md +40 -0
- node_modules/hosted-git-info/README.md +133 -0
- node_modules/icss-utils/LICENSE.md +6 -0
- node_modules/icss-utils/README.md +94 -0
- node_modules/ignore/README.md +412 -0
- node_modules/immutable/README.md +761 -0
- node_modules/imurmurhash/README.md +122 -0
- node_modules/internal-slot/README.md +58 -0
- node_modules/interpret/README.md +244 -0
- node_modules/is-array-buffer/README.md +56 -0
- node_modules/is-arrayish/README.md +16 -0
- node_modules/is-async-function/README.md +41 -0
- node_modules/is-bigint/README.md +44 -0
- node_modules/is-boolean-object/README.md +57 -0
- node_modules/is-callable/README.md +83 -0
- node_modules/is-core-module/README.md +40 -0
- node_modules/is-data-view/README.md +69 -0
- node_modules/is-date-object/README.md +52 -0
- node_modules/is-extglob/README.md +107 -0
- node_modules/is-finalizationregistry/README.md +54 -0
- node_modules/is-generator-function/README.md +40 -0
- node_modules/is-glob/README.md +206 -0
- node_modules/is-map/README.md +52 -0
- node_modules/is-number/README.md +187 -0
- node_modules/is-number-object/README.md +55 -0
- node_modules/is-plain-object/README.md +104 -0
- node_modules/is-regex/README.md +52 -0
- node_modules/is-set/README.md +50 -0
- node_modules/is-shared-array-buffer/README.md +56 -0
- node_modules/is-string/README.md +56 -0
- node_modules/is-symbol/README.md +45 -0
- node_modules/is-typed-array/README.md +70 -0
- node_modules/is-weakmap/README.md +50 -0
- node_modules/is-weakref/README.md +52 -0
- node_modules/is-weakset/README.md +50 -0
- node_modules/isarray/README.md +38 -0
- node_modules/isexe/README.md +51 -0
- node_modules/isobject/README.md +122 -0
- node_modules/iterator.prototype/README.md +35 -0
- node_modules/jackspeak/LICENSE.md +55 -0
- node_modules/jackspeak/README.md +357 -0
- node_modules/jest-worker/README.md +272 -0
- node_modules/jiti/README.md +164 -0
- node_modules/js-tokens/README.md +240 -0
- node_modules/js-yaml/README.md +246 -0
- node_modules/jsesc/README.md +422 -0
- node_modules/json-buffer/README.md +24 -0
- node_modules/json-parse-better-errors/LICENSE.md +7 -0
- node_modules/json-parse-better-errors/README.md +46 -0
- node_modules/json-parse-even-better-errors/LICENSE.md +25 -0
- node_modules/json-parse-even-better-errors/README.md +96 -0
- node_modules/json-schema-traverse/README.md +83 -0
- node_modules/json5/LICENSE.md +23 -0
- node_modules/json5/README.md +282 -0
- node_modules/jsx-ast-utils/LICENSE.md +8 -0
- node_modules/jsx-ast-utils/README.md +298 -0
- node_modules/keyv/README.md +429 -0
- node_modules/kind-of/README.md +367 -0
- node_modules/levn/README.md +196 -0
- node_modules/lines-and-columns/README.md +33 -0
- node_modules/loader-runner/README.md +53 -0
- node_modules/lodash/README.md +39 -0
- node_modules/lodash.castarray/README.md +18 -0
- node_modules/lodash.debounce/README.md +18 -0
- node_modules/lodash.isplainobject/README.md +18 -0
- node_modules/lodash.memoize/README.md +18 -0
- node_modules/lodash.merge/README.md +18 -0
- node_modules/lodash.throttle/README.md +18 -0
- node_modules/lodash.uniq/README.md +18 -0
- node_modules/loose-envify/README.md +45 -0
- node_modules/lru-cache/README.md +166 -0
- node_modules/math-intrinsics/README.md +50 -0
- node_modules/mdn-data/README.md +62 -0
- node_modules/memorystream/README.md +93 -0
- node_modules/merge-stream/README.md +78 -0
- node_modules/merge2/README.md +144 -0
- node_modules/micromatch/README.md +1024 -0
- node_modules/mime-db/README.md +100 -0
- node_modules/mime-types/README.md +113 -0
- node_modules/mini-css-extract-plugin/README.md +1296 -0
- node_modules/minimatch/README.md +230 -0
- node_modules/minimist/README.md +121 -0
- node_modules/minipass/README.md +825 -0
- node_modules/mz/README.md +106 -0
- node_modules/nanoid/README.md +554 -0
- node_modules/natural-compare/README.md +125 -0
- node_modules/neo-async/README.md +273 -0
- node_modules/nice-try/README.md +32 -0
- node_modules/node-addon-api/LICENSE.md +9 -0
- node_modules/node-addon-api/README.md +319 -0
- node_modules/node-addon-api/tools/README.md +73 -0
- node_modules/node-releases/README.md +12 -0
- node_modules/normalize-package-data/README.md +106 -0
- node_modules/normalize-package-data/node_modules/semver/README.md +412 -0
- node_modules/normalize-path/README.md +127 -0
- node_modules/npm-run-all/README.md +91 -0
- node_modules/npm-run-all/node_modules/color-convert/README.md +68 -0
- node_modules/npm-run-all/node_modules/color-name/README.md +11 -0
- node_modules/npm-run-all/node_modules/cross-spawn/README.md +94 -0
- node_modules/npm-run-all/node_modules/semver/README.md +412 -0
- node_modules/npm-run-all/node_modules/which/README.md +51 -0
- node_modules/nth-check/README.md +136 -0
- node_modules/object-keys/README.md +76 -0
- node_modules/object.assign/README.md +136 -0
- node_modules/object.entries/README.md +58 -0
- node_modules/object.fromentries/README.md +50 -0
- node_modules/object.values/README.md +58 -0
- node_modules/optionator/README.md +238 -0
- node_modules/own-keys/README.md +45 -0
- node_modules/package-json-from-dist/LICENSE.md +63 -0
- node_modules/package-json-from-dist/README.md +110 -0
- node_modules/path-parse/README.md +42 -0
- node_modules/path-scurry/LICENSE.md +55 -0
- node_modules/path-scurry/README.md +636 -0
- node_modules/path-scurry/node_modules/lru-cache/README.md +331 -0
- node_modules/picocolors/README.md +21 -0
- node_modules/picomatch/README.md +708 -0
- node_modules/pirates/README.md +69 -0
- node_modules/possible-typed-array-names/README.md +48 -0
- node_modules/postcss/README.md +28 -0
- node_modules/postcss-attribute-case-insensitive/LICENSE.md +20 -0
- node_modules/postcss-attribute-case-insensitive/README.md +73 -0
- node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-calc/README.md +153 -0
- node_modules/postcss-calc/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-clamp/README.md +118 -0
- node_modules/postcss-color-functional-notation/LICENSE.md +18 -0
- node_modules/postcss-color-functional-notation/README.md +134 -0
- node_modules/postcss-color-hex-alpha/LICENSE.md +21 -0
- node_modules/postcss-color-hex-alpha/README.md +72 -0
- node_modules/postcss-color-rebeccapurple/LICENSE.md +18 -0
- node_modules/postcss-color-rebeccapurple/README.md +76 -0
- node_modules/postcss-colormin/README.md +45 -0
- node_modules/postcss-convert-values/README.md +98 -0
- node_modules/postcss-custom-media/LICENSE.md +21 -0
- node_modules/postcss-custom-media/README.md +183 -0
- node_modules/postcss-custom-properties/LICENSE.md +21 -0
- node_modules/postcss-custom-properties/README.md +173 -0
- node_modules/postcss-custom-selectors/LICENSE.md +21 -0
- node_modules/postcss-custom-selectors/README.md +107 -0
- node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-dir-pseudo-class/LICENSE.md +18 -0
- node_modules/postcss-dir-pseudo-class/README.md +193 -0
- node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-discard-comments/README.md +114 -0
- node_modules/postcss-discard-comments/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-discard-duplicates/README.md +70 -0
- node_modules/postcss-discard-empty/README.md +49 -0
- node_modules/postcss-discard-overridden/README.md +158 -0
- node_modules/postcss-double-position-gradients/LICENSE.md +18 -0
- node_modules/postcss-double-position-gradients/README.md +129 -0
- node_modules/postcss-focus-visible/LICENSE.md +18 -0
- node_modules/postcss-focus-visible/README.md +137 -0
- node_modules/postcss-focus-visible/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-focus-within/LICENSE.md +18 -0
- node_modules/postcss-focus-within/README.md +196 -0
- node_modules/postcss-focus-within/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-font-variant/README.md +74 -0
- node_modules/postcss-gap-properties/LICENSE.md +18 -0
- node_modules/postcss-gap-properties/README.md +102 -0
- node_modules/postcss-image-set-function/LICENSE.md +18 -0
- node_modules/postcss-image-set-function/README.md +164 -0
- node_modules/postcss-import/README.md +244 -0
- node_modules/postcss-js/README.md +22 -0
- node_modules/postcss-lab-function/LICENSE.md +18 -0
- node_modules/postcss-lab-function/README.md +156 -0
- node_modules/postcss-load-config/README.md +466 -0
- node_modules/postcss-loader/README.md +1175 -0
- node_modules/postcss-loader/node_modules/semver/README.md +654 -0
- node_modules/postcss-logical/LICENSE.md +18 -0
- node_modules/postcss-logical/README.md +117 -0
- node_modules/postcss-merge-longhand/README.md +50 -0
- node_modules/postcss-merge-rules/README.md +105 -0
- node_modules/postcss-merge-rules/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-minify-font-values/README.md +83 -0
- node_modules/postcss-minify-gradients/README.md +53 -0
- node_modules/postcss-minify-params/README.md +39 -0
- node_modules/postcss-minify-selectors/README.md +42 -0
- node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-modules-extract-imports/README.md +76 -0
- node_modules/postcss-modules-local-by-default/README.md +123 -0
- node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-modules-scope/README.md +100 -0
- node_modules/postcss-modules-scope/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-modules-values/README.md +80 -0
- node_modules/postcss-nested/README.md +85 -0
- node_modules/postcss-nested/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-nesting/LICENSE.md +18 -0
- node_modules/postcss-nesting/README.md +255 -0
- node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested/LICENSE.md +18 -0
- node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested/README.md +33 -0
- node_modules/postcss-nesting/node_modules/@csstools/selector-specificity/LICENSE.md +18 -0
- node_modules/postcss-nesting/node_modules/@csstools/selector-specificity/README.md +57 -0
- node_modules/postcss-nesting/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-normalize-charset/README.md +43 -0
- node_modules/postcss-normalize-display-values/README.md +44 -0
- node_modules/postcss-normalize-positions/README.md +44 -0
- node_modules/postcss-normalize-repeat-style/README.md +44 -0
- node_modules/postcss-normalize-string/README.md +59 -0
- node_modules/postcss-normalize-timing-functions/README.md +44 -0
- node_modules/postcss-normalize-unicode/README.md +46 -0
- node_modules/postcss-normalize-url/README.md +48 -0
- node_modules/postcss-normalize-whitespace/README.md +44 -0
- node_modules/postcss-opacity-percentage/LICENSE.md +9 -0
- node_modules/postcss-opacity-percentage/README.md +85 -0
- node_modules/postcss-ordered-values/README.md +72 -0
- node_modules/postcss-overflow-shorthand/LICENSE.md +18 -0
- node_modules/postcss-overflow-shorthand/README.md +74 -0
- node_modules/postcss-page-break/README.md +83 -0
- node_modules/postcss-place/LICENSE.md +18 -0
- node_modules/postcss-place/README.md +81 -0
- node_modules/postcss-preset-env/LICENSE.md +18 -0
- node_modules/postcss-preset-env/README.md +496 -0
- node_modules/postcss-pseudo-class-any-link/LICENSE.md +18 -0
- node_modules/postcss-pseudo-class-any-link/README.md +106 -0
- node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-reduce-initial/README.md +92 -0
- node_modules/postcss-reduce-transforms/README.md +47 -0
- node_modules/postcss-replace-overflow-wrap/README.md +56 -0
- node_modules/postcss-sass/README.md +21 -0
- node_modules/postcss-selector-not/LICENSE.md +20 -0
- node_modules/postcss-selector-not/README.md +51 -0
- node_modules/postcss-selector-not/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-svgo/README.md +109 -0
- node_modules/postcss-unique-selectors/README.md +46 -0
- node_modules/postcss-unique-selectors/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/postcss-value-parser/README.md +263 -0
- node_modules/prelude-ls/README.md +15 -0
- node_modules/prettier/README.md +109 -0
- node_modules/prettier-linter-helpers/LICENSE.md +24 -0
- node_modules/prettier-linter-helpers/README.md +14 -0
- node_modules/prettier-plugin-tailwindcss/README.md +239 -0
- node_modules/prettier-plugin-tailwindcss/dist/licenses/@shopify/prettier-plugin-liquid/README.md +158 -0
- node_modules/prettier-plugin-tailwindcss/dist/licenses/marko/README.md +161 -0
- node_modules/prettier-plugin-tailwindcss/dist/licenses/prettier-plugin-sort-imports/README.md +95 -0
- node_modules/prettier-plugin-tailwindcss/dist/licenses/prettier-plugin-style-order/README.md +19 -0
- node_modules/prop-types/README.md +302 -0
- node_modules/punycode/README.md +148 -0
- node_modules/queue-microtask/README.md +90 -0
- node_modules/randombytes/README.md +14 -0
- node_modules/react/README.md +37 -0
- node_modules/react-dom/README.md +60 -0
- node_modules/react-is/README.md +104 -0
- node_modules/read-cache/README.md +46 -0
- node_modules/readdirp/README.md +122 -0
- node_modules/rechoir/README.md +73 -0
- node_modules/reflect.getprototypeof/README.md +77 -0
- node_modules/regenerate/README.md +338 -0
- node_modules/regenerate-unicode-properties/README.md +70 -0
- node_modules/regenerator-runtime/README.md +31 -0
- node_modules/regenerator-transform/README.md +46 -0
- node_modules/regexp.prototype.flags/README.md +55 -0
- node_modules/regexpu-core/README.md +226 -0
- node_modules/regjsgen/README.md +41 -0
- node_modules/regjsparser/README.md +47 -0
- node_modules/regjsparser/node_modules/jsesc/README.md +422 -0
- node_modules/require-main-filename/README.md +26 -0
- node_modules/reusify/README.md +145 -0
- node_modules/run-parallel/README.md +85 -0
- node_modules/rxjs/README.md +107 -0
- node_modules/safe-array-concat/README.md +53 -0
- node_modules/safe-buffer/README.md +584 -0
- node_modules/safe-push-apply/README.md +59 -0
- node_modules/safe-regex-test/README.md +46 -0
- node_modules/sass/README.md +173 -0
- node_modules/sass/node_modules/chokidar/README.md +305 -0
- node_modules/sass/node_modules/readdirp/README.md +120 -0
- node_modules/sass-loader/README.md +904 -0
- node_modules/scheduler/README.md +9 -0
- node_modules/schema-utils/README.md +317 -0
- node_modules/schema-utils/node_modules/ajv/README.md +207 -0
- node_modules/schema-utils/node_modules/ajv-keywords/README.md +745 -0
- node_modules/schema-utils/node_modules/json-schema-traverse/README.md +95 -0
- node_modules/semver/README.md +443 -0
- node_modules/serialize-javascript/README.md +143 -0
- node_modules/set-blocking/README.md +31 -0
- node_modules/set-function-length/README.md +56 -0
- node_modules/set-function-name/README.md +61 -0
- node_modules/set-proto/README.md +52 -0
- node_modules/shallow-clone/README.md +153 -0
- node_modules/shell-quote/README.md +161 -0
- node_modules/side-channel/README.md +61 -0
- node_modules/side-channel-list/README.md +62 -0
- node_modules/side-channel-map/README.md +62 -0
- node_modules/side-channel-weakmap/README.md +62 -0
- node_modules/signal-exit/README.md +74 -0
- node_modules/source-map/README.md +742 -0
- node_modules/source-map-js/README.md +765 -0
- node_modules/source-map-support/LICENSE.md +21 -0
- node_modules/source-map-support/README.md +284 -0
- node_modules/spdx-correct/README.md +22 -0
- node_modules/spdx-exceptions/README.md +36 -0
- node_modules/spdx-expression-parse/README.md +91 -0
- node_modules/spdx-license-ids/README.md +51 -0
- node_modules/string-width-cjs/node_modules/emoji-regex/README.md +73 -0
- node_modules/string.prototype.matchall/README.md +73 -0
- node_modules/string.prototype.padend/README.md +46 -0
- node_modules/string.prototype.repeat/README.md +43 -0
- node_modules/string.prototype.trim/README.md +48 -0
- node_modules/string.prototype.trimend/README.md +46 -0
- node_modules/string.prototype.trimstart/README.md +46 -0
- node_modules/stylehacks/README.md +91 -0
- node_modules/stylehacks/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/sucrase/README.md +295 -0
- node_modules/supports-preserve-symlinks-flag/README.md +42 -0
- node_modules/svgo/README.md +199 -0
- node_modules/synckit/README.md +191 -0
- node_modules/tailwindcss/README.md +40 -0
- node_modules/tailwindcss/lib/postcss-plugins/nesting/README.md +42 -0
- node_modules/tailwindcss/lib/value-parser/README.md +3 -0
- node_modules/tailwindcss/node_modules/glob-parent/README.md +134 -0
- node_modules/tailwindcss/node_modules/postcss-selector-parser/README.md +49 -0
- node_modules/tailwindcss/src/postcss-plugins/nesting/README.md +42 -0
- node_modules/tailwindcss/src/value-parser/README.md +3 -0
- node_modules/tapable/README.md +296 -0
- node_modules/terser/README.md +1421 -0
- node_modules/terser-webpack-plugin/README.md +934 -0
- node_modules/terser-webpack-plugin/node_modules/jest-worker/README.md +247 -0
- node_modules/theme-change/README.md +376 -0
- node_modules/thenify/README.md +120 -0
- node_modules/thenify-all/README.md +66 -0
- node_modules/to-regex-range/README.md +305 -0
- node_modules/tree-kill/README.md +89 -0
- node_modules/ts-api-utils/LICENSE.md +20 -0
- node_modules/ts-api-utils/README.md +84 -0
- node_modules/ts-interface-checker/README.md +185 -0
- node_modules/ts-loader/README.md +773 -0
- node_modules/ts-loader/node_modules/semver/README.md +654 -0
- node_modules/ts-loader/node_modules/source-map/README.md +822 -0
- node_modules/tslib/README.md +164 -0
- node_modules/type-check/README.md +210 -0
- node_modules/typed-array-buffer/README.md +42 -0
- node_modules/typed-array-byte-length/README.md +70 -0
- node_modules/typed-array-byte-offset/README.md +70 -0
- node_modules/typed-array-length/README.md +64 -0
- node_modules/typescript/README.md +50 -0
- node_modules/typescript-eslint/README.md +12 -0
- node_modules/unbox-primitive/README.md +47 -0
- node_modules/undici-types/README.md +6 -0
- node_modules/unicode-canonical-property-names-ecmascript/README.md +58 -0
- node_modules/unicode-match-property-ecmascript/README.md +69 -0
- node_modules/unicode-match-property-value-ecmascript/README.md +72 -0
- node_modules/unicode-property-aliases-ecmascript/README.md +60 -0
- node_modules/update-browserslist-db/README.md +22 -0
- node_modules/uri-js/README.md +203 -0
- node_modules/util-deprecate/README.md +53 -0
- node_modules/validate-npm-package-license/README.md +113 -0
- node_modules/watchpack/README.md +133 -0
- node_modules/webpack/README.md +727 -0
- node_modules/webpack/node_modules/eslint-scope/README.md +54 -0
- node_modules/webpack/node_modules/estraverse/README.md +153 -0
- node_modules/webpack/node_modules/schema-utils/README.md +290 -0
- node_modules/webpack-cli/README.md +145 -0
- node_modules/webpack-merge/README.md +314 -0
- node_modules/webpack-sources/README.md +228 -0
- node_modules/which/README.md +54 -0
- node_modules/which-boxed-primitive/README.md +73 -0
- node_modules/which-builtin-type/README.md +67 -0
- node_modules/which-collection/README.md +65 -0
- node_modules/which-module/README.md +58 -0
- node_modules/which-typed-array/README.md +70 -0
- node_modules/wildcard/README.md +88 -0
- node_modules/word-wrap/README.md +201 -0
- node_modules/wrap-ansi-cjs/node_modules/emoji-regex/README.md +73 -0
- node_modules/y18n/README.md +109 -0
- node_modules/yallist/README.md +204 -0
- node_modules/yaml/README.md +188 -0
- node_modules/yargs/README.md +122 -0
- node_modules/yargs/node_modules/emoji-regex/README.md +73 -0
- node_modules/yargs-parser/README.md +396 -0
- picata/blocks.py +3 -2
- picata/templatetags/__init__.py +1 -1
- picata/templatetags/{kill_orphans.py → filters/kill_orphans.py} +1 -5
- picata/templatetags/{stringify.py → filters/stringify.py} +1 -6
- picata/templatetags/picata_tags.py +18 -0
- picata/templatetags/{absolute_static.py → tags/absolute_static.py} +1 -5
- picata/templatetags/{menu_tags.py → tags/menu_tags.py} +1 -1
- {picata-0.0.6.dist-info → picata-0.0.7.dist-info}/METADATA +1 -1
- picata-0.0.7.dist-info/RECORD +876 -0
- picata-0.0.6.dist-info/RECORD +0 -74
- {picata-0.0.6.dist-info → picata-0.0.7.dist-info}/WHEEL +0 -0
- {picata-0.0.6.dist-info → picata-0.0.7.dist-info}/licenses/LICENSE.md +0 -0
@@ -0,0 +1,1265 @@
|
|
1
|
+
# Glob
|
2
|
+
|
3
|
+
Match files using the patterns the shell uses.
|
4
|
+
|
5
|
+
The most correct and second fastest glob implementation in
|
6
|
+
JavaScript. (See **Comparison to Other JavaScript Glob
|
7
|
+
Implementations** at the bottom of this readme.)
|
8
|
+
|
9
|
+

|
10
|
+
|
11
|
+
## Usage
|
12
|
+
|
13
|
+
Install with npm
|
14
|
+
|
15
|
+
```
|
16
|
+
npm i glob
|
17
|
+
```
|
18
|
+
|
19
|
+
**Note** the npm package name is _not_ `node-glob` that's a
|
20
|
+
different thing that was abandoned years ago. Just `glob`.
|
21
|
+
|
22
|
+
```js
|
23
|
+
// load using import
|
24
|
+
import { glob, globSync, globStream, globStreamSync, Glob } from 'glob'
|
25
|
+
// or using commonjs, that's fine, too
|
26
|
+
const {
|
27
|
+
glob,
|
28
|
+
globSync,
|
29
|
+
globStream,
|
30
|
+
globStreamSync,
|
31
|
+
Glob,
|
32
|
+
} = require('glob')
|
33
|
+
|
34
|
+
// the main glob() and globSync() resolve/return array of filenames
|
35
|
+
|
36
|
+
// all js files, but don't look in node_modules
|
37
|
+
const jsfiles = await glob('**/*.js', { ignore: 'node_modules/**' })
|
38
|
+
|
39
|
+
// pass in a signal to cancel the glob walk
|
40
|
+
const stopAfter100ms = await glob('**/*.css', {
|
41
|
+
signal: AbortSignal.timeout(100),
|
42
|
+
})
|
43
|
+
|
44
|
+
// multiple patterns supported as well
|
45
|
+
const images = await glob(['css/*.{png,jpeg}', 'public/*.{png,jpeg}'])
|
46
|
+
|
47
|
+
// but of course you can do that with the glob pattern also
|
48
|
+
// the sync function is the same, just returns a string[] instead
|
49
|
+
// of Promise<string[]>
|
50
|
+
const imagesAlt = globSync('{css,public}/*.{png,jpeg}')
|
51
|
+
|
52
|
+
// you can also stream them, this is a Minipass stream
|
53
|
+
const filesStream = globStream(['**/*.dat', 'logs/**/*.log'])
|
54
|
+
|
55
|
+
// construct a Glob object if you wanna do it that way, which
|
56
|
+
// allows for much faster walks if you have to look in the same
|
57
|
+
// folder multiple times.
|
58
|
+
const g = new Glob('**/foo', {})
|
59
|
+
// glob objects are async iterators, can also do globIterate() or
|
60
|
+
// g.iterate(), same deal
|
61
|
+
for await (const file of g) {
|
62
|
+
console.log('found a foo file:', file)
|
63
|
+
}
|
64
|
+
// pass a glob as the glob options to reuse its settings and caches
|
65
|
+
const g2 = new Glob('**/bar', g)
|
66
|
+
// sync iteration works as well
|
67
|
+
for (const file of g2) {
|
68
|
+
console.log('found a bar file:', file)
|
69
|
+
}
|
70
|
+
|
71
|
+
// you can also pass withFileTypes: true to get Path objects
|
72
|
+
// these are like a Dirent, but with some more added powers
|
73
|
+
// check out http://npm.im/path-scurry for more info on their API
|
74
|
+
const g3 = new Glob('**/baz/**', { withFileTypes: true })
|
75
|
+
g3.stream().on('data', path => {
|
76
|
+
console.log(
|
77
|
+
'got a path object',
|
78
|
+
path.fullpath(),
|
79
|
+
path.isDirectory(),
|
80
|
+
path.readdirSync().map(e => e.name),
|
81
|
+
)
|
82
|
+
})
|
83
|
+
|
84
|
+
// if you use stat:true and withFileTypes, you can sort results
|
85
|
+
// by things like modified time, filter by permission mode, etc.
|
86
|
+
// All Stats fields will be available in that case. Slightly
|
87
|
+
// slower, though.
|
88
|
+
// For example:
|
89
|
+
const results = await glob('**', { stat: true, withFileTypes: true })
|
90
|
+
|
91
|
+
const timeSortedFiles = results
|
92
|
+
.sort((a, b) => a.mtimeMs - b.mtimeMs)
|
93
|
+
.map(path => path.fullpath())
|
94
|
+
|
95
|
+
const groupReadableFiles = results
|
96
|
+
.filter(path => path.mode & 0o040)
|
97
|
+
.map(path => path.fullpath())
|
98
|
+
|
99
|
+
// custom ignores can be done like this, for example by saying
|
100
|
+
// you'll ignore all markdown files, and all folders named 'docs'
|
101
|
+
const customIgnoreResults = await glob('**', {
|
102
|
+
ignore: {
|
103
|
+
ignored: p => /\.md$/.test(p.name),
|
104
|
+
childrenIgnored: p => p.isNamed('docs'),
|
105
|
+
},
|
106
|
+
})
|
107
|
+
|
108
|
+
// another fun use case, only return files with the same name as
|
109
|
+
// their parent folder, plus either `.ts` or `.js`
|
110
|
+
const folderNamedModules = await glob('**/*.{ts,js}', {
|
111
|
+
ignore: {
|
112
|
+
ignored: p => {
|
113
|
+
const pp = p.parent
|
114
|
+
return !(p.isNamed(pp.name + '.ts') || p.isNamed(pp.name + '.js'))
|
115
|
+
},
|
116
|
+
},
|
117
|
+
})
|
118
|
+
|
119
|
+
// find all files edited in the last hour, to do this, we ignore
|
120
|
+
// all of them that are more than an hour old
|
121
|
+
const newFiles = await glob('**', {
|
122
|
+
// need stat so we have mtime
|
123
|
+
stat: true,
|
124
|
+
// only want the files, not the dirs
|
125
|
+
nodir: true,
|
126
|
+
ignore: {
|
127
|
+
ignored: p => {
|
128
|
+
return new Date() - p.mtime > 60 * 60 * 1000
|
129
|
+
},
|
130
|
+
// could add similar childrenIgnored here as well, but
|
131
|
+
// directory mtime is inconsistent across platforms, so
|
132
|
+
// probably better not to, unless you know the system
|
133
|
+
// tracks this reliably.
|
134
|
+
},
|
135
|
+
})
|
136
|
+
```
|
137
|
+
|
138
|
+
**Note** Glob patterns should always use `/` as a path separator,
|
139
|
+
even on Windows systems, as `\` is used to escape glob
|
140
|
+
characters. If you wish to use `\` as a path separator _instead
|
141
|
+
of_ using it as an escape character on Windows platforms, you may
|
142
|
+
set `windowsPathsNoEscape:true` in the options. In this mode,
|
143
|
+
special glob characters cannot be escaped, making it impossible
|
144
|
+
to match a literal `*` `?` and so on in filenames.
|
145
|
+
|
146
|
+
## Command Line Interface
|
147
|
+
|
148
|
+
```
|
149
|
+
$ glob -h
|
150
|
+
|
151
|
+
Usage:
|
152
|
+
glob [options] [<pattern> [<pattern> ...]]
|
153
|
+
|
154
|
+
Expand the positional glob expression arguments into any matching file system
|
155
|
+
paths found.
|
156
|
+
|
157
|
+
-c<command> --cmd=<command>
|
158
|
+
Run the command provided, passing the glob expression
|
159
|
+
matches as arguments.
|
160
|
+
|
161
|
+
-A --all By default, the glob cli command will not expand any
|
162
|
+
arguments that are an exact match to a file on disk.
|
163
|
+
|
164
|
+
This prevents double-expanding, in case the shell
|
165
|
+
expands an argument whose filename is a glob
|
166
|
+
expression.
|
167
|
+
|
168
|
+
For example, if 'app/*.ts' would match 'app/[id].ts',
|
169
|
+
then on Windows powershell or cmd.exe, 'glob app/*.ts'
|
170
|
+
will expand to 'app/[id].ts', as expected. However, in
|
171
|
+
posix shells such as bash or zsh, the shell will first
|
172
|
+
expand 'app/*.ts' to a list of filenames. Then glob
|
173
|
+
will look for a file matching 'app/[id].ts' (ie,
|
174
|
+
'app/i.ts' or 'app/d.ts'), which is unexpected.
|
175
|
+
|
176
|
+
Setting '--all' prevents this behavior, causing glob to
|
177
|
+
treat ALL patterns as glob expressions to be expanded,
|
178
|
+
even if they are an exact match to a file on disk.
|
179
|
+
|
180
|
+
When setting this option, be sure to enquote arguments
|
181
|
+
so that the shell will not expand them prior to passing
|
182
|
+
them to the glob command process.
|
183
|
+
|
184
|
+
-a --absolute Expand to absolute paths
|
185
|
+
-d --dot-relative Prepend './' on relative matches
|
186
|
+
-m --mark Append a / on any directories matched
|
187
|
+
-x --posix Always resolve to posix style paths, using '/' as the
|
188
|
+
directory separator, even on Windows. Drive letter
|
189
|
+
absolute matches on Windows will be expanded to their
|
190
|
+
full resolved UNC maths, eg instead of 'C:\foo\bar', it
|
191
|
+
will expand to '//?/C:/foo/bar'.
|
192
|
+
|
193
|
+
-f --follow Follow symlinked directories when expanding '**'
|
194
|
+
-R --realpath Call 'fs.realpath' on all of the results. In the case
|
195
|
+
of an entry that cannot be resolved, the entry is
|
196
|
+
omitted. This incurs a slight performance penalty, of
|
197
|
+
course, because of the added system calls.
|
198
|
+
|
199
|
+
-s --stat Call 'fs.lstat' on all entries, whether required or not
|
200
|
+
to determine if it's a valid match.
|
201
|
+
|
202
|
+
-b --match-base Perform a basename-only match if the pattern does not
|
203
|
+
contain any slash characters. That is, '*.js' would be
|
204
|
+
treated as equivalent to '**/*.js', matching js files
|
205
|
+
in all directories.
|
206
|
+
|
207
|
+
--dot Allow patterns to match files/directories that start
|
208
|
+
with '.', even if the pattern does not start with '.'
|
209
|
+
|
210
|
+
--nobrace Do not expand {...} patterns
|
211
|
+
--nocase Perform a case-insensitive match. This defaults to
|
212
|
+
'true' on macOS and Windows platforms, and false on all
|
213
|
+
others.
|
214
|
+
|
215
|
+
Note: 'nocase' should only be explicitly set when it is
|
216
|
+
known that the filesystem's case sensitivity differs
|
217
|
+
from the platform default. If set 'true' on
|
218
|
+
case-insensitive file systems, then the walk may return
|
219
|
+
more or less results than expected.
|
220
|
+
|
221
|
+
--nodir Do not match directories, only files.
|
222
|
+
|
223
|
+
Note: to *only* match directories, append a '/' at the
|
224
|
+
end of the pattern.
|
225
|
+
|
226
|
+
--noext Do not expand extglob patterns, such as '+(a|b)'
|
227
|
+
--noglobstar Do not expand '**' against multiple path portions. Ie,
|
228
|
+
treat it as a normal '*' instead.
|
229
|
+
|
230
|
+
--windows-path-no-escape
|
231
|
+
Use '\' as a path separator *only*, and *never* as an
|
232
|
+
escape character. If set, all '\' characters are
|
233
|
+
replaced with '/' in the pattern.
|
234
|
+
|
235
|
+
-D<n> --max-depth=<n> Maximum depth to traverse from the current working
|
236
|
+
directory
|
237
|
+
|
238
|
+
-C<cwd> --cwd=<cwd> Current working directory to execute/match in
|
239
|
+
-r<root> --root=<root> A string path resolved against the 'cwd', which is used
|
240
|
+
as the starting point for absolute patterns that start
|
241
|
+
with '/' (but not drive letters or UNC paths on
|
242
|
+
Windows).
|
243
|
+
|
244
|
+
Note that this *doesn't* necessarily limit the walk to
|
245
|
+
the 'root' directory, and doesn't affect the cwd
|
246
|
+
starting point for non-absolute patterns. A pattern
|
247
|
+
containing '..' will still be able to traverse out of
|
248
|
+
the root directory, if it is not an actual root
|
249
|
+
directory on the filesystem, and any non-absolute
|
250
|
+
patterns will still be matched in the 'cwd'.
|
251
|
+
|
252
|
+
To start absolute and non-absolute patterns in the same
|
253
|
+
path, you can use '--root=' to set it to the empty
|
254
|
+
string. However, be aware that on Windows systems, a
|
255
|
+
pattern like 'x:/*' or '//host/share/*' will *always*
|
256
|
+
start in the 'x:/' or '//host/share/' directory,
|
257
|
+
regardless of the --root setting.
|
258
|
+
|
259
|
+
--platform=<platform> Defaults to the value of 'process.platform' if
|
260
|
+
available, or 'linux' if not. Setting --platform=win32
|
261
|
+
on non-Windows systems may cause strange behavior!
|
262
|
+
|
263
|
+
-i<ignore> --ignore=<ignore>
|
264
|
+
Glob patterns to ignore Can be set multiple times
|
265
|
+
-v --debug Output a huge amount of noisy debug information about
|
266
|
+
patterns as they are parsed and used to match files.
|
267
|
+
|
268
|
+
-h --help Show this usage information
|
269
|
+
```
|
270
|
+
|
271
|
+
## `glob(pattern: string | string[], options?: GlobOptions) => Promise<string[] | Path[]>`
|
272
|
+
|
273
|
+
Perform an asynchronous glob search for the pattern(s) specified.
|
274
|
+
Returns
|
275
|
+
[Path](https://isaacs.github.io/path-scurry/classes/PathBase)
|
276
|
+
objects if the `withFileTypes` option is set to `true`. See below
|
277
|
+
for full options field desciptions.
|
278
|
+
|
279
|
+
## `globSync(pattern: string | string[], options?: GlobOptions) => string[] | Path[]`
|
280
|
+
|
281
|
+
Synchronous form of `glob()`.
|
282
|
+
|
283
|
+
Alias: `glob.sync()`
|
284
|
+
|
285
|
+
## `globIterate(pattern: string | string[], options?: GlobOptions) => AsyncGenerator<string>`
|
286
|
+
|
287
|
+
Return an async iterator for walking glob pattern matches.
|
288
|
+
|
289
|
+
Alias: `glob.iterate()`
|
290
|
+
|
291
|
+
## `globIterateSync(pattern: string | string[], options?: GlobOptions) => Generator<string>`
|
292
|
+
|
293
|
+
Return a sync iterator for walking glob pattern matches.
|
294
|
+
|
295
|
+
Alias: `glob.iterate.sync()`, `glob.sync.iterate()`
|
296
|
+
|
297
|
+
## `globStream(pattern: string | string[], options?: GlobOptions) => Minipass<string | Path>`
|
298
|
+
|
299
|
+
Return a stream that emits all the strings or `Path` objects and
|
300
|
+
then emits `end` when completed.
|
301
|
+
|
302
|
+
Alias: `glob.stream()`
|
303
|
+
|
304
|
+
## `globStreamSync(pattern: string | string[], options?: GlobOptions) => Minipass<string | Path>`
|
305
|
+
|
306
|
+
Syncronous form of `globStream()`. Will read all the matches as
|
307
|
+
fast as you consume them, even all in a single tick if you
|
308
|
+
consume them immediately, but will still respond to backpressure
|
309
|
+
if they're not consumed immediately.
|
310
|
+
|
311
|
+
Alias: `glob.stream.sync()`, `glob.sync.stream()`
|
312
|
+
|
313
|
+
## `hasMagic(pattern: string | string[], options?: GlobOptions) => boolean`
|
314
|
+
|
315
|
+
Returns `true` if the provided pattern contains any "magic" glob
|
316
|
+
characters, given the options provided.
|
317
|
+
|
318
|
+
Brace expansion is not considered "magic" unless the
|
319
|
+
`magicalBraces` option is set, as brace expansion just turns one
|
320
|
+
string into an array of strings. So a pattern like `'x{a,b}y'`
|
321
|
+
would return `false`, because `'xay'` and `'xby'` both do not
|
322
|
+
contain any magic glob characters, and it's treated the same as
|
323
|
+
if you had called it on `['xay', 'xby']`. When
|
324
|
+
`magicalBraces:true` is in the options, brace expansion _is_
|
325
|
+
treated as a pattern having magic.
|
326
|
+
|
327
|
+
## `escape(pattern: string, options?: GlobOptions) => string`
|
328
|
+
|
329
|
+
Escape all magic characters in a glob pattern, so that it will
|
330
|
+
only ever match literal strings
|
331
|
+
|
332
|
+
If the `windowsPathsNoEscape` option is used, then characters are
|
333
|
+
escaped by wrapping in `[]`, because a magic character wrapped in
|
334
|
+
a character class can only be satisfied by that exact character.
|
335
|
+
|
336
|
+
Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot
|
337
|
+
be escaped or unescaped.
|
338
|
+
|
339
|
+
## `unescape(pattern: string, options?: GlobOptions) => string`
|
340
|
+
|
341
|
+
Un-escape a glob string that may contain some escaped characters.
|
342
|
+
|
343
|
+
If the `windowsPathsNoEscape` option is used, then square-brace
|
344
|
+
escapes are removed, but not backslash escapes. For example, it
|
345
|
+
will turn the string `'[*]'` into `*`, but it will not turn
|
346
|
+
`'\\*'` into `'*'`, because `\` is a path separator in
|
347
|
+
`windowsPathsNoEscape` mode.
|
348
|
+
|
349
|
+
When `windowsPathsNoEscape` is not set, then both brace escapes
|
350
|
+
and backslash escapes are removed.
|
351
|
+
|
352
|
+
Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot
|
353
|
+
be escaped or unescaped.
|
354
|
+
|
355
|
+
## Class `Glob`
|
356
|
+
|
357
|
+
An object that can perform glob pattern traversals.
|
358
|
+
|
359
|
+
### `const g = new Glob(pattern: string | string[], options: GlobOptions)`
|
360
|
+
|
361
|
+
Options object is required.
|
362
|
+
|
363
|
+
See full options descriptions below.
|
364
|
+
|
365
|
+
Note that a previous `Glob` object can be passed as the
|
366
|
+
`GlobOptions` to another `Glob` instantiation to re-use settings
|
367
|
+
and caches with a new pattern.
|
368
|
+
|
369
|
+
Traversal functions can be called multiple times to run the walk
|
370
|
+
again.
|
371
|
+
|
372
|
+
### `g.stream()`
|
373
|
+
|
374
|
+
Stream results asynchronously,
|
375
|
+
|
376
|
+
### `g.streamSync()`
|
377
|
+
|
378
|
+
Stream results synchronously.
|
379
|
+
|
380
|
+
### `g.iterate()`
|
381
|
+
|
382
|
+
Default async iteration function. Returns an AsyncGenerator that
|
383
|
+
iterates over the results.
|
384
|
+
|
385
|
+
### `g.iterateSync()`
|
386
|
+
|
387
|
+
Default sync iteration function. Returns a Generator that
|
388
|
+
iterates over the results.
|
389
|
+
|
390
|
+
### `g.walk()`
|
391
|
+
|
392
|
+
Returns a Promise that resolves to the results array.
|
393
|
+
|
394
|
+
### `g.walkSync()`
|
395
|
+
|
396
|
+
Returns a results array.
|
397
|
+
|
398
|
+
### Properties
|
399
|
+
|
400
|
+
All options are stored as properties on the `Glob` object.
|
401
|
+
|
402
|
+
- `opts` The options provided to the constructor.
|
403
|
+
- `patterns` An array of parsed immutable `Pattern` objects.
|
404
|
+
|
405
|
+
## Options
|
406
|
+
|
407
|
+
Exported as `GlobOptions` TypeScript interface. A `GlobOptions`
|
408
|
+
object may be provided to any of the exported methods, and must
|
409
|
+
be provided to the `Glob` constructor.
|
410
|
+
|
411
|
+
All options are optional, boolean, and false by default, unless
|
412
|
+
otherwise noted.
|
413
|
+
|
414
|
+
All resolved options are added to the Glob object as properties.
|
415
|
+
|
416
|
+
If you are running many `glob` operations, you can pass a Glob
|
417
|
+
object as the `options` argument to a subsequent operation to
|
418
|
+
share the previously loaded cache.
|
419
|
+
|
420
|
+
- `cwd` String path or `file://` string or URL object. The
|
421
|
+
current working directory in which to search. Defaults to
|
422
|
+
`process.cwd()`. See also: "Windows, CWDs, Drive Letters, and
|
423
|
+
UNC Paths", below.
|
424
|
+
|
425
|
+
This option may be either a string path or a `file://` URL
|
426
|
+
object or string.
|
427
|
+
|
428
|
+
- `root` A string path resolved against the `cwd` option, which
|
429
|
+
is used as the starting point for absolute patterns that start
|
430
|
+
with `/`, (but not drive letters or UNC paths on Windows).
|
431
|
+
|
432
|
+
Note that this _doesn't_ necessarily limit the walk to the
|
433
|
+
`root` directory, and doesn't affect the cwd starting point for
|
434
|
+
non-absolute patterns. A pattern containing `..` will still be
|
435
|
+
able to traverse out of the root directory, if it is not an
|
436
|
+
actual root directory on the filesystem, and any non-absolute
|
437
|
+
patterns will be matched in the `cwd`. For example, the
|
438
|
+
pattern `/../*` with `{root:'/some/path'}` will return all
|
439
|
+
files in `/some`, not all files in `/some/path`. The pattern
|
440
|
+
`*` with `{root:'/some/path'}` will return all the entries in
|
441
|
+
the cwd, not the entries in `/some/path`.
|
442
|
+
|
443
|
+
To start absolute and non-absolute patterns in the same
|
444
|
+
path, you can use `{root:''}`. However, be aware that on
|
445
|
+
Windows systems, a pattern like `x:/*` or `//host/share/*` will
|
446
|
+
_always_ start in the `x:/` or `//host/share` directory,
|
447
|
+
regardless of the `root` setting.
|
448
|
+
|
449
|
+
- `windowsPathsNoEscape` Use `\\` as a path separator _only_, and
|
450
|
+
_never_ as an escape character. If set, all `\\` characters are
|
451
|
+
replaced with `/` in the pattern.
|
452
|
+
|
453
|
+
Note that this makes it **impossible** to match against paths
|
454
|
+
containing literal glob pattern characters, but allows matching
|
455
|
+
with patterns constructed using `path.join()` and
|
456
|
+
`path.resolve()` on Windows platforms, mimicking the (buggy!)
|
457
|
+
behavior of Glob v7 and before on Windows. Please use with
|
458
|
+
caution, and be mindful of [the caveat below about Windows
|
459
|
+
paths](#windows). (For legacy reasons, this is also set if
|
460
|
+
`allowWindowsEscape` is set to the exact value `false`.)
|
461
|
+
|
462
|
+
- `dot` Include `.dot` files in normal matches and `globstar`
|
463
|
+
matches. Note that an explicit dot in a portion of the pattern
|
464
|
+
will always match dot files.
|
465
|
+
|
466
|
+
- `magicalBraces` Treat brace expansion like `{a,b}` as a "magic"
|
467
|
+
pattern. Has no effect if {@link nobrace} is set.
|
468
|
+
|
469
|
+
Only has effect on the {@link hasMagic} function, no effect on
|
470
|
+
glob pattern matching itself.
|
471
|
+
|
472
|
+
- `dotRelative` Prepend all relative path strings with `./` (or
|
473
|
+
`.\` on Windows).
|
474
|
+
|
475
|
+
Without this option, returned relative paths are "bare", so
|
476
|
+
instead of returning `'./foo/bar'`, they are returned as
|
477
|
+
`'foo/bar'`.
|
478
|
+
|
479
|
+
Relative patterns starting with `'../'` are not prepended with
|
480
|
+
`./`, even if this option is set.
|
481
|
+
|
482
|
+
- `mark` Add a `/` character to directory matches. Note that this
|
483
|
+
requires additional stat calls.
|
484
|
+
|
485
|
+
- `nobrace` Do not expand `{a,b}` and `{1..3}` brace sets.
|
486
|
+
|
487
|
+
- `noglobstar` Do not match `**` against multiple filenames. (Ie,
|
488
|
+
treat it as a normal `*` instead.)
|
489
|
+
|
490
|
+
- `noext` Do not match "extglob" patterns such as `+(a|b)`.
|
491
|
+
|
492
|
+
- `nocase` Perform a case-insensitive match. This defaults to
|
493
|
+
`true` on macOS and Windows systems, and `false` on all others.
|
494
|
+
|
495
|
+
**Note** `nocase` should only be explicitly set when it is
|
496
|
+
known that the filesystem's case sensitivity differs from the
|
497
|
+
platform default. If set `true` on case-sensitive file
|
498
|
+
systems, or `false` on case-insensitive file systems, then the
|
499
|
+
walk may return more or less results than expected.
|
500
|
+
|
501
|
+
- `maxDepth` Specify a number to limit the depth of the directory
|
502
|
+
traversal to this many levels below the `cwd`.
|
503
|
+
|
504
|
+
- `matchBase` Perform a basename-only match if the pattern does
|
505
|
+
not contain any slash characters. That is, `*.js` would be
|
506
|
+
treated as equivalent to `**/*.js`, matching all js files in
|
507
|
+
all directories.
|
508
|
+
|
509
|
+
- `nodir` Do not match directories, only files. (Note: to match
|
510
|
+
_only_ directories, put a `/` at the end of the pattern.)
|
511
|
+
|
512
|
+
Note: when `follow` and `nodir` are both set, then symbolic
|
513
|
+
links to directories are also omitted.
|
514
|
+
|
515
|
+
- `stat` Call `lstat()` on all entries, whether required or not
|
516
|
+
to determine whether it's a valid match. When used with
|
517
|
+
`withFileTypes`, this means that matches will include data such
|
518
|
+
as modified time, permissions, and so on. Note that this will
|
519
|
+
incur a performance cost due to the added system calls.
|
520
|
+
|
521
|
+
- `ignore` string or string[], or an object with `ignore` and
|
522
|
+
`ignoreChildren` methods.
|
523
|
+
|
524
|
+
If a string or string[] is provided, then this is treated as a
|
525
|
+
glob pattern or array of glob patterns to exclude from matches.
|
526
|
+
To ignore all children within a directory, as well as the entry
|
527
|
+
itself, append `'/**'` to the ignore pattern.
|
528
|
+
|
529
|
+
**Note** `ignore` patterns are _always_ in `dot:true` mode,
|
530
|
+
regardless of any other settings.
|
531
|
+
|
532
|
+
If an object is provided that has `ignored(path)` and/or
|
533
|
+
`childrenIgnored(path)` methods, then these methods will be
|
534
|
+
called to determine whether any Path is a match or if its
|
535
|
+
children should be traversed, respectively.
|
536
|
+
|
537
|
+
- `follow` Follow symlinked directories when expanding `**`
|
538
|
+
patterns. This can result in a lot of duplicate references in
|
539
|
+
the presence of cyclic links, and make performance quite bad.
|
540
|
+
|
541
|
+
By default, a `**` in a pattern will follow 1 symbolic link if
|
542
|
+
it is not the first item in the pattern, or none if it is the
|
543
|
+
first item in the pattern, following the same behavior as Bash.
|
544
|
+
|
545
|
+
Note: when `follow` and `nodir` are both set, then symbolic
|
546
|
+
links to directories are also omitted.
|
547
|
+
|
548
|
+
- `realpath` Set to true to call `fs.realpath` on all of the
|
549
|
+
results. In the case of an entry that cannot be resolved, the
|
550
|
+
entry is omitted. This incurs a slight performance penalty, of
|
551
|
+
course, because of the added system calls.
|
552
|
+
|
553
|
+
- `absolute` Set to true to always receive absolute paths for
|
554
|
+
matched files. Set to `false` to always receive relative paths
|
555
|
+
for matched files.
|
556
|
+
|
557
|
+
By default, when this option is not set, absolute paths are
|
558
|
+
returned for patterns that are absolute, and otherwise paths
|
559
|
+
are returned that are relative to the `cwd` setting.
|
560
|
+
|
561
|
+
This does _not_ make an extra system call to get the realpath,
|
562
|
+
it only does string path resolution.
|
563
|
+
|
564
|
+
`absolute` may not be used along with `withFileTypes`.
|
565
|
+
|
566
|
+
- `posix` Set to true to use `/` as the path separator in
|
567
|
+
returned results. On posix systems, this has no effect. On
|
568
|
+
Windows systems, this will return `/` delimited path results,
|
569
|
+
and absolute paths will be returned in their full resolved UNC
|
570
|
+
path form, eg insted of `'C:\\foo\\bar'`, it will return
|
571
|
+
`//?/C:/foo/bar`.
|
572
|
+
|
573
|
+
- `platform` Defaults to value of `process.platform` if
|
574
|
+
available, or `'linux'` if not. Setting `platform:'win32'` on
|
575
|
+
non-Windows systems may cause strange behavior.
|
576
|
+
|
577
|
+
- `withFileTypes` Return [PathScurry](http://npm.im/path-scurry)
|
578
|
+
`Path` objects instead of strings. These are similar to a
|
579
|
+
NodeJS `Dirent` object, but with additional methods and
|
580
|
+
properties.
|
581
|
+
|
582
|
+
`withFileTypes` may not be used along with `absolute`.
|
583
|
+
|
584
|
+
- `signal` An AbortSignal which will cancel the Glob walk when
|
585
|
+
triggered.
|
586
|
+
|
587
|
+
- `fs` An override object to pass in custom filesystem methods.
|
588
|
+
See [PathScurry docs](http://npm.im/path-scurry) for what can
|
589
|
+
be overridden.
|
590
|
+
|
591
|
+
- `scurry` A [PathScurry](http://npm.im/path-scurry) object used
|
592
|
+
to traverse the file system. If the `nocase` option is set
|
593
|
+
explicitly, then any provided `scurry` object must match this
|
594
|
+
setting.
|
595
|
+
|
596
|
+
- `includeChildMatches` boolean, default `true`. Do not match any
|
597
|
+
children of any matches. For example, the pattern `**\/foo`
|
598
|
+
would match `a/foo`, but not `a/foo/b/foo` in this mode.
|
599
|
+
|
600
|
+
This is especially useful for cases like "find all
|
601
|
+
`node_modules` folders, but not the ones in `node_modules`".
|
602
|
+
|
603
|
+
In order to support this, the `Ignore` implementation must
|
604
|
+
support an `add(pattern: string)` method. If using the default
|
605
|
+
`Ignore` class, then this is fine, but if this is set to
|
606
|
+
`false`, and a custom `Ignore` is provided that does not have
|
607
|
+
an `add()` method, then it will throw an error.
|
608
|
+
|
609
|
+
**Caveat** It _only_ ignores matches that would be a descendant
|
610
|
+
of a previous match, and only if that descendant is matched
|
611
|
+
_after_ the ancestor is encountered. Since the file system walk
|
612
|
+
happens in indeterminate order, it's possible that a match will
|
613
|
+
already be added before its ancestor, if multiple or braced
|
614
|
+
patterns are used.
|
615
|
+
|
616
|
+
For example:
|
617
|
+
|
618
|
+
```js
|
619
|
+
const results = await glob(
|
620
|
+
[
|
621
|
+
// likely to match first, since it's just a stat
|
622
|
+
'a/b/c/d/e/f',
|
623
|
+
|
624
|
+
// this pattern is more complicated! It must to various readdir()
|
625
|
+
// calls and test the results against a regular expression, and that
|
626
|
+
// is certainly going to take a little bit longer.
|
627
|
+
//
|
628
|
+
// So, later on, it encounters a match at 'a/b/c/d/e', but it's too
|
629
|
+
// late to ignore a/b/c/d/e/f, because it's already been emitted.
|
630
|
+
'a/[bdf]/?/[a-z]/*',
|
631
|
+
],
|
632
|
+
{ includeChildMatches: false },
|
633
|
+
)
|
634
|
+
```
|
635
|
+
|
636
|
+
It's best to only set this to `false` if you can be reasonably
|
637
|
+
sure that no components of the pattern will potentially match
|
638
|
+
one another's file system descendants, or if the occasional
|
639
|
+
included child entry will not cause problems.
|
640
|
+
|
641
|
+
## Glob Primer
|
642
|
+
|
643
|
+
Much more information about glob pattern expansion can be found
|
644
|
+
by running `man bash` and searching for `Pattern Matching`.
|
645
|
+
|
646
|
+
"Globs" are the patterns you type when you do stuff like `ls
|
647
|
+
*.js` on the command line, or put `build/*` in a `.gitignore`
|
648
|
+
file.
|
649
|
+
|
650
|
+
Before parsing the path part patterns, braced sections are
|
651
|
+
expanded into a set. Braced sections start with `{` and end with
|
652
|
+
`}`, with 2 or more comma-delimited sections within. Braced
|
653
|
+
sections may contain slash characters, so `a{/b/c,bcd}` would
|
654
|
+
expand into `a/b/c` and `abcd`.
|
655
|
+
|
656
|
+
The following characters have special magic meaning when used in
|
657
|
+
a path portion. With the exception of `**`, none of these match
|
658
|
+
path separators (ie, `/` on all platforms, and `\` on Windows).
|
659
|
+
|
660
|
+
- `*` Matches 0 or more characters in a single path portion.
|
661
|
+
When alone in a path portion, it must match at least 1
|
662
|
+
character. If `dot:true` is not specified, then `*` will not
|
663
|
+
match against a `.` character at the start of a path portion.
|
664
|
+
- `?` Matches 1 character. If `dot:true` is not specified, then
|
665
|
+
`?` will not match against a `.` character at the start of a
|
666
|
+
path portion.
|
667
|
+
- `[...]` Matches a range of characters, similar to a RegExp
|
668
|
+
range. If the first character of the range is `!` or `^` then
|
669
|
+
it matches any character not in the range. If the first
|
670
|
+
character is `]`, then it will be considered the same as `\]`,
|
671
|
+
rather than the end of the character class.
|
672
|
+
- `!(pattern|pattern|pattern)` Matches anything that does not
|
673
|
+
match any of the patterns provided. May _not_ contain `/`
|
674
|
+
characters. Similar to `*`, if alone in a path portion, then
|
675
|
+
the path portion must have at least one character.
|
676
|
+
- `?(pattern|pattern|pattern)` Matches zero or one occurrence of
|
677
|
+
the patterns provided. May _not_ contain `/` characters.
|
678
|
+
- `+(pattern|pattern|pattern)` Matches one or more occurrences of
|
679
|
+
the patterns provided. May _not_ contain `/` characters.
|
680
|
+
- `*(a|b|c)` Matches zero or more occurrences of the patterns
|
681
|
+
provided. May _not_ contain `/` characters.
|
682
|
+
- `@(pattern|pat*|pat?erN)` Matches exactly one of the patterns
|
683
|
+
provided. May _not_ contain `/` characters.
|
684
|
+
- `**` If a "globstar" is alone in a path portion, then it
|
685
|
+
matches zero or more directories and subdirectories searching
|
686
|
+
for matches. It does not crawl symlinked directories, unless
|
687
|
+
`{follow:true}` is passed in the options object. A pattern
|
688
|
+
like `a/b/**` will only match `a/b` if it is a directory.
|
689
|
+
Follows 1 symbolic link if not the first item in the pattern,
|
690
|
+
or 0 if it is the first item, unless `follow:true` is set, in
|
691
|
+
which case it follows all symbolic links.
|
692
|
+
|
693
|
+
`[:class:]` patterns are supported by this implementation, but
|
694
|
+
`[=c=]` and `[.symbol.]` style class patterns are not.
|
695
|
+
|
696
|
+
### Dots
|
697
|
+
|
698
|
+
If a file or directory path portion has a `.` as the first
|
699
|
+
character, then it will not match any glob pattern unless that
|
700
|
+
pattern's corresponding path part also has a `.` as its first
|
701
|
+
character.
|
702
|
+
|
703
|
+
For example, the pattern `a/.*/c` would match the file at
|
704
|
+
`a/.b/c`. However the pattern `a/*/c` would not, because `*` does
|
705
|
+
not start with a dot character.
|
706
|
+
|
707
|
+
You can make glob treat dots as normal characters by setting
|
708
|
+
`dot:true` in the options.
|
709
|
+
|
710
|
+
### Basename Matching
|
711
|
+
|
712
|
+
If you set `matchBase:true` in the options, and the pattern has
|
713
|
+
no slashes in it, then it will seek for any file anywhere in the
|
714
|
+
tree with a matching basename. For example, `*.js` would match
|
715
|
+
`test/simple/basic.js`.
|
716
|
+
|
717
|
+
### Empty Sets
|
718
|
+
|
719
|
+
If no matching files are found, then an empty array is returned.
|
720
|
+
This differs from the shell, where the pattern itself is
|
721
|
+
returned. For example:
|
722
|
+
|
723
|
+
```sh
|
724
|
+
$ echo a*s*d*f
|
725
|
+
a*s*d*f
|
726
|
+
```
|
727
|
+
|
728
|
+
## Comparisons to other fnmatch/glob implementations
|
729
|
+
|
730
|
+
While strict compliance with the existing standards is a
|
731
|
+
worthwhile goal, some discrepancies exist between node-glob and
|
732
|
+
other implementations, and are intentional.
|
733
|
+
|
734
|
+
The double-star character `**` is supported by default, unless
|
735
|
+
the `noglobstar` flag is set. This is supported in the manner of
|
736
|
+
bsdglob and bash 5, where `**` only has special significance if
|
737
|
+
it is the only thing in a path part. That is, `a/**/b` will match
|
738
|
+
`a/x/y/b`, but `a/**b` will not.
|
739
|
+
|
740
|
+
Note that symlinked directories are not traversed as part of a
|
741
|
+
`**`, though their contents may match against subsequent portions
|
742
|
+
of the pattern. This prevents infinite loops and duplicates and
|
743
|
+
the like. You can force glob to traverse symlinks with `**` by
|
744
|
+
setting `{follow:true}` in the options.
|
745
|
+
|
746
|
+
There is no equivalent of the `nonull` option. A pattern that
|
747
|
+
does not find any matches simply resolves to nothing. (An empty
|
748
|
+
array, immediately ended stream, etc.)
|
749
|
+
|
750
|
+
If brace expansion is not disabled, then it is performed before
|
751
|
+
any other interpretation of the glob pattern. Thus, a pattern
|
752
|
+
like `+(a|{b),c)}`, which would not be valid in bash or zsh, is
|
753
|
+
expanded **first** into the set of `+(a|b)` and `+(a|c)`, and
|
754
|
+
those patterns are checked for validity. Since those two are
|
755
|
+
valid, matching proceeds.
|
756
|
+
|
757
|
+
The character class patterns `[:class:]` (posix standard named
|
758
|
+
classes) style class patterns are supported and unicode-aware,
|
759
|
+
but `[=c=]` (locale-specific character collation weight), and
|
760
|
+
`[.symbol.]` (collating symbol), are not.
|
761
|
+
|
762
|
+
### Repeated Slashes
|
763
|
+
|
764
|
+
Unlike Bash and zsh, repeated `/` are always coalesced into a
|
765
|
+
single path separator.
|
766
|
+
|
767
|
+
### Comments and Negation
|
768
|
+
|
769
|
+
Previously, this module let you mark a pattern as a "comment" if
|
770
|
+
it started with a `#` character, or a "negated" pattern if it
|
771
|
+
started with a `!` character.
|
772
|
+
|
773
|
+
These options were deprecated in version 5, and removed in
|
774
|
+
version 6.
|
775
|
+
|
776
|
+
To specify things that should not match, use the `ignore` option.
|
777
|
+
|
778
|
+
## Windows
|
779
|
+
|
780
|
+
**Please only use forward-slashes in glob expressions.**
|
781
|
+
|
782
|
+
Though windows uses either `/` or `\` as its path separator, only
|
783
|
+
`/` characters are used by this glob implementation. You must use
|
784
|
+
forward-slashes **only** in glob expressions. Back-slashes will
|
785
|
+
always be interpreted as escape characters, not path separators.
|
786
|
+
|
787
|
+
Results from absolute patterns such as `/foo/*` are mounted onto
|
788
|
+
the root setting using `path.join`. On windows, this will by
|
789
|
+
default result in `/foo/*` matching `C:\foo\bar.txt`.
|
790
|
+
|
791
|
+
To automatically coerce all `\` characters to `/` in pattern
|
792
|
+
strings, **thus making it impossible to escape literal glob
|
793
|
+
characters**, you may set the `windowsPathsNoEscape` option to
|
794
|
+
`true`.
|
795
|
+
|
796
|
+
### Windows, CWDs, Drive Letters, and UNC Paths
|
797
|
+
|
798
|
+
On posix systems, when a pattern starts with `/`, any `cwd`
|
799
|
+
option is ignored, and the traversal starts at `/`, plus any
|
800
|
+
non-magic path portions specified in the pattern.
|
801
|
+
|
802
|
+
On Windows systems, the behavior is similar, but the concept of
|
803
|
+
an "absolute path" is somewhat more involved.
|
804
|
+
|
805
|
+
#### UNC Paths
|
806
|
+
|
807
|
+
A UNC path may be used as the start of a pattern on Windows
|
808
|
+
platforms. For example, a pattern like: `//?/x:/*` will return
|
809
|
+
all file entries in the root of the `x:` drive. A pattern like
|
810
|
+
`//ComputerName/Share/*` will return all files in the associated
|
811
|
+
share.
|
812
|
+
|
813
|
+
UNC path roots are always compared case insensitively.
|
814
|
+
|
815
|
+
#### Drive Letters
|
816
|
+
|
817
|
+
A pattern starting with a drive letter, like `c:/*`, will search
|
818
|
+
in that drive, regardless of any `cwd` option provided.
|
819
|
+
|
820
|
+
If the pattern starts with `/`, and is not a UNC path, and there
|
821
|
+
is an explicit `cwd` option set with a drive letter, then the
|
822
|
+
drive letter in the `cwd` is used as the root of the directory
|
823
|
+
traversal.
|
824
|
+
|
825
|
+
For example, `glob('/tmp', { cwd: 'c:/any/thing' })` will return
|
826
|
+
`['c:/tmp']` as the result.
|
827
|
+
|
828
|
+
If an explicit `cwd` option is not provided, and the pattern
|
829
|
+
starts with `/`, then the traversal will run on the root of the
|
830
|
+
drive provided as the `cwd` option. (That is, it is the result of
|
831
|
+
`path.resolve('/')`.)
|
832
|
+
|
833
|
+
## Race Conditions
|
834
|
+
|
835
|
+
Glob searching, by its very nature, is susceptible to race
|
836
|
+
conditions, since it relies on directory walking.
|
837
|
+
|
838
|
+
As a result, it is possible that a file that exists when glob
|
839
|
+
looks for it may have been deleted or modified by the time it
|
840
|
+
returns the result.
|
841
|
+
|
842
|
+
By design, this implementation caches all readdir calls that it
|
843
|
+
makes, in order to cut down on system overhead. However, this
|
844
|
+
also makes it even more susceptible to races, especially if the
|
845
|
+
cache object is reused between glob calls.
|
846
|
+
|
847
|
+
Users are thus advised not to use a glob result as a guarantee of
|
848
|
+
filesystem state in the face of rapid changes. For the vast
|
849
|
+
majority of operations, this is never a problem.
|
850
|
+
|
851
|
+
### See Also:
|
852
|
+
|
853
|
+
- `man sh`
|
854
|
+
- `man bash` [Pattern
|
855
|
+
Matching](https://www.gnu.org/software/bash/manual/html_node/Pattern-Matching.html)
|
856
|
+
- `man 3 fnmatch`
|
857
|
+
- `man 5 gitignore`
|
858
|
+
- [minimatch documentation](https://github.com/isaacs/minimatch)
|
859
|
+
|
860
|
+
## Glob Logo
|
861
|
+
|
862
|
+
Glob's logo was created by [Tanya
|
863
|
+
Brassie](http://tanyabrassie.com/). Logo files can be found
|
864
|
+
[here](https://github.com/isaacs/node-glob/tree/master/logo).
|
865
|
+
|
866
|
+
The logo is licensed under a [Creative Commons
|
867
|
+
Attribution-ShareAlike 4.0 International
|
868
|
+
License](https://creativecommons.org/licenses/by-sa/4.0/).
|
869
|
+
|
870
|
+
## Contributing
|
871
|
+
|
872
|
+
Any change to behavior (including bugfixes) must come with a
|
873
|
+
test.
|
874
|
+
|
875
|
+
Patches that fail tests or reduce performance will be rejected.
|
876
|
+
|
877
|
+
```sh
|
878
|
+
# to run tests
|
879
|
+
npm test
|
880
|
+
|
881
|
+
# to re-generate test fixtures
|
882
|
+
npm run test-regen
|
883
|
+
|
884
|
+
# run the benchmarks
|
885
|
+
npm run bench
|
886
|
+
|
887
|
+
# to profile javascript
|
888
|
+
npm run prof
|
889
|
+
```
|
890
|
+
|
891
|
+
## Comparison to Other JavaScript Glob Implementations
|
892
|
+
|
893
|
+
**tl;dr**
|
894
|
+
|
895
|
+
- If you want glob matching that is as faithful as possible to
|
896
|
+
Bash pattern expansion semantics, and as fast as possible
|
897
|
+
within that constraint, _use this module_.
|
898
|
+
- If you are reasonably sure that the patterns you will encounter
|
899
|
+
are relatively simple, and want the absolutely fastest glob
|
900
|
+
matcher out there, _use [fast-glob](http://npm.im/fast-glob)_.
|
901
|
+
- If you are reasonably sure that the patterns you will encounter
|
902
|
+
are relatively simple, and want the convenience of
|
903
|
+
automatically respecting `.gitignore` files, _use
|
904
|
+
[globby](http://npm.im/globby)_.
|
905
|
+
|
906
|
+
There are some other glob matcher libraries on npm, but these
|
907
|
+
three are (in my opinion, as of 2023) the best.
|
908
|
+
|
909
|
+
---
|
910
|
+
|
911
|
+
**full explanation**
|
912
|
+
|
913
|
+
Every library reflects a set of opinions and priorities in the
|
914
|
+
trade-offs it makes. Other than this library, I can personally
|
915
|
+
recommend both [globby](http://npm.im/globby) and
|
916
|
+
[fast-glob](http://npm.im/fast-glob), though they differ in their
|
917
|
+
benefits and drawbacks.
|
918
|
+
|
919
|
+
Both have very nice APIs and are reasonably fast.
|
920
|
+
|
921
|
+
`fast-glob` is, as far as I am aware, the fastest glob
|
922
|
+
implementation in JavaScript today. However, there are many
|
923
|
+
cases where the choices that `fast-glob` makes in pursuit of
|
924
|
+
speed mean that its results differ from the results returned by
|
925
|
+
Bash and other sh-like shells, which may be surprising.
|
926
|
+
|
927
|
+
In my testing, `fast-glob` is around 10-20% faster than this
|
928
|
+
module when walking over 200k files nested 4 directories
|
929
|
+
deep[1](#fn-webscale). However, there are some inconsistencies
|
930
|
+
with Bash matching behavior that this module does not suffer
|
931
|
+
from:
|
932
|
+
|
933
|
+
- `**` only matches files, not directories
|
934
|
+
- `..` path portions are not handled unless they appear at the
|
935
|
+
start of the pattern
|
936
|
+
- `./!(<pattern>)` will not match any files that _start_ with
|
937
|
+
`<pattern>`, even if they do not match `<pattern>`. For
|
938
|
+
example, `!(9).txt` will not match `9999.txt`.
|
939
|
+
- Some brace patterns in the middle of a pattern will result in
|
940
|
+
failing to find certain matches.
|
941
|
+
- Extglob patterns are allowed to contain `/` characters.
|
942
|
+
|
943
|
+
Globby exhibits all of the same pattern semantics as fast-glob,
|
944
|
+
(as it is a wrapper around fast-glob) and is slightly slower than
|
945
|
+
node-glob (by about 10-20% in the benchmark test set, or in other
|
946
|
+
words, anywhere from 20-50% slower than fast-glob). However, it
|
947
|
+
adds some API conveniences that may be worth the costs.
|
948
|
+
|
949
|
+
- Support for `.gitignore` and other ignore files.
|
950
|
+
- Support for negated globs (ie, patterns starting with `!`
|
951
|
+
rather than using a separate `ignore` option).
|
952
|
+
|
953
|
+
The priority of this module is "correctness" in the sense of
|
954
|
+
performing a glob pattern expansion as faithfully as possible to
|
955
|
+
the behavior of Bash and other sh-like shells, with as much speed
|
956
|
+
as possible.
|
957
|
+
|
958
|
+
Note that prior versions of `node-glob` are _not_ on this list.
|
959
|
+
Former versions of this module are far too slow for any cases
|
960
|
+
where performance matters at all, and were designed with APIs
|
961
|
+
that are extremely dated by current JavaScript standards.
|
962
|
+
|
963
|
+
---
|
964
|
+
|
965
|
+
<small id="fn-webscale">[1]: In the cases where this module
|
966
|
+
returns results and `fast-glob` doesn't, it's even faster, of
|
967
|
+
course.</small>
|
968
|
+
|
969
|
+

|
970
|
+
|
971
|
+
### Benchmark Results
|
972
|
+
|
973
|
+
First number is time, smaller is better.
|
974
|
+
|
975
|
+
Second number is the count of results returned.
|
976
|
+
|
977
|
+
```
|
978
|
+
--- pattern: '**' ---
|
979
|
+
~~ sync ~~
|
980
|
+
node fast-glob sync 0m0.598s 200364
|
981
|
+
node globby sync 0m0.765s 200364
|
982
|
+
node current globSync mjs 0m0.683s 222656
|
983
|
+
node current glob syncStream 0m0.649s 222656
|
984
|
+
~~ async ~~
|
985
|
+
node fast-glob async 0m0.350s 200364
|
986
|
+
node globby async 0m0.509s 200364
|
987
|
+
node current glob async mjs 0m0.463s 222656
|
988
|
+
node current glob stream 0m0.411s 222656
|
989
|
+
|
990
|
+
--- pattern: '**/..' ---
|
991
|
+
~~ sync ~~
|
992
|
+
node fast-glob sync 0m0.486s 0
|
993
|
+
node globby sync 0m0.769s 200364
|
994
|
+
node current globSync mjs 0m0.564s 2242
|
995
|
+
node current glob syncStream 0m0.583s 2242
|
996
|
+
~~ async ~~
|
997
|
+
node fast-glob async 0m0.283s 0
|
998
|
+
node globby async 0m0.512s 200364
|
999
|
+
node current glob async mjs 0m0.299s 2242
|
1000
|
+
node current glob stream 0m0.312s 2242
|
1001
|
+
|
1002
|
+
--- pattern: './**/0/**/0/**/0/**/0/**/*.txt' ---
|
1003
|
+
~~ sync ~~
|
1004
|
+
node fast-glob sync 0m0.490s 10
|
1005
|
+
node globby sync 0m0.517s 10
|
1006
|
+
node current globSync mjs 0m0.540s 10
|
1007
|
+
node current glob syncStream 0m0.550s 10
|
1008
|
+
~~ async ~~
|
1009
|
+
node fast-glob async 0m0.290s 10
|
1010
|
+
node globby async 0m0.296s 10
|
1011
|
+
node current glob async mjs 0m0.278s 10
|
1012
|
+
node current glob stream 0m0.302s 10
|
1013
|
+
|
1014
|
+
--- pattern: './**/[01]/**/[12]/**/[23]/**/[45]/**/*.txt' ---
|
1015
|
+
~~ sync ~~
|
1016
|
+
node fast-glob sync 0m0.500s 160
|
1017
|
+
node globby sync 0m0.528s 160
|
1018
|
+
node current globSync mjs 0m0.556s 160
|
1019
|
+
node current glob syncStream 0m0.573s 160
|
1020
|
+
~~ async ~~
|
1021
|
+
node fast-glob async 0m0.283s 160
|
1022
|
+
node globby async 0m0.301s 160
|
1023
|
+
node current glob async mjs 0m0.306s 160
|
1024
|
+
node current glob stream 0m0.322s 160
|
1025
|
+
|
1026
|
+
--- pattern: './**/0/**/0/**/*.txt' ---
|
1027
|
+
~~ sync ~~
|
1028
|
+
node fast-glob sync 0m0.502s 5230
|
1029
|
+
node globby sync 0m0.527s 5230
|
1030
|
+
node current globSync mjs 0m0.544s 5230
|
1031
|
+
node current glob syncStream 0m0.557s 5230
|
1032
|
+
~~ async ~~
|
1033
|
+
node fast-glob async 0m0.285s 5230
|
1034
|
+
node globby async 0m0.305s 5230
|
1035
|
+
node current glob async mjs 0m0.304s 5230
|
1036
|
+
node current glob stream 0m0.310s 5230
|
1037
|
+
|
1038
|
+
--- pattern: '**/*.txt' ---
|
1039
|
+
~~ sync ~~
|
1040
|
+
node fast-glob sync 0m0.580s 200023
|
1041
|
+
node globby sync 0m0.771s 200023
|
1042
|
+
node current globSync mjs 0m0.685s 200023
|
1043
|
+
node current glob syncStream 0m0.649s 200023
|
1044
|
+
~~ async ~~
|
1045
|
+
node fast-glob async 0m0.349s 200023
|
1046
|
+
node globby async 0m0.509s 200023
|
1047
|
+
node current glob async mjs 0m0.427s 200023
|
1048
|
+
node current glob stream 0m0.388s 200023
|
1049
|
+
|
1050
|
+
--- pattern: '{**/*.txt,**/?/**/*.txt,**/?/**/?/**/*.txt,**/?/**/?/**/?/**/*.txt,**/?/**/?/**/?/**/?/**/*.txt}' ---
|
1051
|
+
~~ sync ~~
|
1052
|
+
node fast-glob sync 0m0.589s 200023
|
1053
|
+
node globby sync 0m0.771s 200023
|
1054
|
+
node current globSync mjs 0m0.716s 200023
|
1055
|
+
node current glob syncStream 0m0.684s 200023
|
1056
|
+
~~ async ~~
|
1057
|
+
node fast-glob async 0m0.351s 200023
|
1058
|
+
node globby async 0m0.518s 200023
|
1059
|
+
node current glob async mjs 0m0.462s 200023
|
1060
|
+
node current glob stream 0m0.468s 200023
|
1061
|
+
|
1062
|
+
--- pattern: '**/5555/0000/*.txt' ---
|
1063
|
+
~~ sync ~~
|
1064
|
+
node fast-glob sync 0m0.496s 1000
|
1065
|
+
node globby sync 0m0.519s 1000
|
1066
|
+
node current globSync mjs 0m0.539s 1000
|
1067
|
+
node current glob syncStream 0m0.567s 1000
|
1068
|
+
~~ async ~~
|
1069
|
+
node fast-glob async 0m0.285s 1000
|
1070
|
+
node globby async 0m0.299s 1000
|
1071
|
+
node current glob async mjs 0m0.305s 1000
|
1072
|
+
node current glob stream 0m0.301s 1000
|
1073
|
+
|
1074
|
+
--- pattern: './**/0/**/../[01]/**/0/../**/0/*.txt' ---
|
1075
|
+
~~ sync ~~
|
1076
|
+
node fast-glob sync 0m0.484s 0
|
1077
|
+
node globby sync 0m0.507s 0
|
1078
|
+
node current globSync mjs 0m0.577s 4880
|
1079
|
+
node current glob syncStream 0m0.586s 4880
|
1080
|
+
~~ async ~~
|
1081
|
+
node fast-glob async 0m0.280s 0
|
1082
|
+
node globby async 0m0.298s 0
|
1083
|
+
node current glob async mjs 0m0.327s 4880
|
1084
|
+
node current glob stream 0m0.324s 4880
|
1085
|
+
|
1086
|
+
--- pattern: '**/????/????/????/????/*.txt' ---
|
1087
|
+
~~ sync ~~
|
1088
|
+
node fast-glob sync 0m0.547s 100000
|
1089
|
+
node globby sync 0m0.673s 100000
|
1090
|
+
node current globSync mjs 0m0.626s 100000
|
1091
|
+
node current glob syncStream 0m0.618s 100000
|
1092
|
+
~~ async ~~
|
1093
|
+
node fast-glob async 0m0.315s 100000
|
1094
|
+
node globby async 0m0.414s 100000
|
1095
|
+
node current glob async mjs 0m0.366s 100000
|
1096
|
+
node current glob stream 0m0.345s 100000
|
1097
|
+
|
1098
|
+
--- pattern: './{**/?{/**/?{/**/?{/**/?,,,,},,,,},,,,},,,}/**/*.txt' ---
|
1099
|
+
~~ sync ~~
|
1100
|
+
node fast-glob sync 0m0.588s 100000
|
1101
|
+
node globby sync 0m0.670s 100000
|
1102
|
+
node current globSync mjs 0m0.717s 200023
|
1103
|
+
node current glob syncStream 0m0.687s 200023
|
1104
|
+
~~ async ~~
|
1105
|
+
node fast-glob async 0m0.343s 100000
|
1106
|
+
node globby async 0m0.418s 100000
|
1107
|
+
node current glob async mjs 0m0.519s 200023
|
1108
|
+
node current glob stream 0m0.451s 200023
|
1109
|
+
|
1110
|
+
--- pattern: '**/!(0|9).txt' ---
|
1111
|
+
~~ sync ~~
|
1112
|
+
node fast-glob sync 0m0.573s 160023
|
1113
|
+
node globby sync 0m0.731s 160023
|
1114
|
+
node current globSync mjs 0m0.680s 180023
|
1115
|
+
node current glob syncStream 0m0.659s 180023
|
1116
|
+
~~ async ~~
|
1117
|
+
node fast-glob async 0m0.345s 160023
|
1118
|
+
node globby async 0m0.476s 160023
|
1119
|
+
node current glob async mjs 0m0.427s 180023
|
1120
|
+
node current glob stream 0m0.388s 180023
|
1121
|
+
|
1122
|
+
--- pattern: './{*/**/../{*/**/../{*/**/../{*/**/../{*/**,,,,},,,,},,,,},,,,},,,,}/*.txt' ---
|
1123
|
+
~~ sync ~~
|
1124
|
+
node fast-glob sync 0m0.483s 0
|
1125
|
+
node globby sync 0m0.512s 0
|
1126
|
+
node current globSync mjs 0m0.811s 200023
|
1127
|
+
node current glob syncStream 0m0.773s 200023
|
1128
|
+
~~ async ~~
|
1129
|
+
node fast-glob async 0m0.280s 0
|
1130
|
+
node globby async 0m0.299s 0
|
1131
|
+
node current glob async mjs 0m0.617s 200023
|
1132
|
+
node current glob stream 0m0.568s 200023
|
1133
|
+
|
1134
|
+
--- pattern: './*/**/../*/**/../*/**/../*/**/../*/**/../*/**/../*/**/../*/**/*.txt' ---
|
1135
|
+
~~ sync ~~
|
1136
|
+
node fast-glob sync 0m0.485s 0
|
1137
|
+
node globby sync 0m0.507s 0
|
1138
|
+
node current globSync mjs 0m0.759s 200023
|
1139
|
+
node current glob syncStream 0m0.740s 200023
|
1140
|
+
~~ async ~~
|
1141
|
+
node fast-glob async 0m0.281s 0
|
1142
|
+
node globby async 0m0.297s 0
|
1143
|
+
node current glob async mjs 0m0.544s 200023
|
1144
|
+
node current glob stream 0m0.464s 200023
|
1145
|
+
|
1146
|
+
--- pattern: './*/**/../*/**/../*/**/../*/**/../*/**/*.txt' ---
|
1147
|
+
~~ sync ~~
|
1148
|
+
node fast-glob sync 0m0.486s 0
|
1149
|
+
node globby sync 0m0.513s 0
|
1150
|
+
node current globSync mjs 0m0.734s 200023
|
1151
|
+
node current glob syncStream 0m0.696s 200023
|
1152
|
+
~~ async ~~
|
1153
|
+
node fast-glob async 0m0.286s 0
|
1154
|
+
node globby async 0m0.296s 0
|
1155
|
+
node current glob async mjs 0m0.506s 200023
|
1156
|
+
node current glob stream 0m0.483s 200023
|
1157
|
+
|
1158
|
+
--- pattern: './0/**/../1/**/../2/**/../3/**/../4/**/../5/**/../6/**/../7/**/*.txt' ---
|
1159
|
+
~~ sync ~~
|
1160
|
+
node fast-glob sync 0m0.060s 0
|
1161
|
+
node globby sync 0m0.074s 0
|
1162
|
+
node current globSync mjs 0m0.067s 0
|
1163
|
+
node current glob syncStream 0m0.066s 0
|
1164
|
+
~~ async ~~
|
1165
|
+
node fast-glob async 0m0.060s 0
|
1166
|
+
node globby async 0m0.075s 0
|
1167
|
+
node current glob async mjs 0m0.066s 0
|
1168
|
+
node current glob stream 0m0.067s 0
|
1169
|
+
|
1170
|
+
--- pattern: './**/?/**/?/**/?/**/?/**/*.txt' ---
|
1171
|
+
~~ sync ~~
|
1172
|
+
node fast-glob sync 0m0.568s 100000
|
1173
|
+
node globby sync 0m0.651s 100000
|
1174
|
+
node current globSync mjs 0m0.619s 100000
|
1175
|
+
node current glob syncStream 0m0.617s 100000
|
1176
|
+
~~ async ~~
|
1177
|
+
node fast-glob async 0m0.332s 100000
|
1178
|
+
node globby async 0m0.409s 100000
|
1179
|
+
node current glob async mjs 0m0.372s 100000
|
1180
|
+
node current glob stream 0m0.351s 100000
|
1181
|
+
|
1182
|
+
--- pattern: '**/*/**/*/**/*/**/*/**' ---
|
1183
|
+
~~ sync ~~
|
1184
|
+
node fast-glob sync 0m0.603s 200113
|
1185
|
+
node globby sync 0m0.798s 200113
|
1186
|
+
node current globSync mjs 0m0.730s 222137
|
1187
|
+
node current glob syncStream 0m0.693s 222137
|
1188
|
+
~~ async ~~
|
1189
|
+
node fast-glob async 0m0.356s 200113
|
1190
|
+
node globby async 0m0.525s 200113
|
1191
|
+
node current glob async mjs 0m0.508s 222137
|
1192
|
+
node current glob stream 0m0.455s 222137
|
1193
|
+
|
1194
|
+
--- pattern: './**/*/**/*/**/*/**/*/**/*.txt' ---
|
1195
|
+
~~ sync ~~
|
1196
|
+
node fast-glob sync 0m0.622s 200000
|
1197
|
+
node globby sync 0m0.792s 200000
|
1198
|
+
node current globSync mjs 0m0.722s 200000
|
1199
|
+
node current glob syncStream 0m0.695s 200000
|
1200
|
+
~~ async ~~
|
1201
|
+
node fast-glob async 0m0.369s 200000
|
1202
|
+
node globby async 0m0.527s 200000
|
1203
|
+
node current glob async mjs 0m0.502s 200000
|
1204
|
+
node current glob stream 0m0.481s 200000
|
1205
|
+
|
1206
|
+
--- pattern: '**/*.txt' ---
|
1207
|
+
~~ sync ~~
|
1208
|
+
node fast-glob sync 0m0.588s 200023
|
1209
|
+
node globby sync 0m0.771s 200023
|
1210
|
+
node current globSync mjs 0m0.684s 200023
|
1211
|
+
node current glob syncStream 0m0.658s 200023
|
1212
|
+
~~ async ~~
|
1213
|
+
node fast-glob async 0m0.352s 200023
|
1214
|
+
node globby async 0m0.516s 200023
|
1215
|
+
node current glob async mjs 0m0.432s 200023
|
1216
|
+
node current glob stream 0m0.384s 200023
|
1217
|
+
|
1218
|
+
--- pattern: './**/**/**/**/**/**/**/**/*.txt' ---
|
1219
|
+
~~ sync ~~
|
1220
|
+
node fast-glob sync 0m0.589s 200023
|
1221
|
+
node globby sync 0m0.766s 200023
|
1222
|
+
node current globSync mjs 0m0.682s 200023
|
1223
|
+
node current glob syncStream 0m0.652s 200023
|
1224
|
+
~~ async ~~
|
1225
|
+
node fast-glob async 0m0.352s 200023
|
1226
|
+
node globby async 0m0.523s 200023
|
1227
|
+
node current glob async mjs 0m0.436s 200023
|
1228
|
+
node current glob stream 0m0.380s 200023
|
1229
|
+
|
1230
|
+
--- pattern: '**/*/*.txt' ---
|
1231
|
+
~~ sync ~~
|
1232
|
+
node fast-glob sync 0m0.592s 200023
|
1233
|
+
node globby sync 0m0.776s 200023
|
1234
|
+
node current globSync mjs 0m0.691s 200023
|
1235
|
+
node current glob syncStream 0m0.659s 200023
|
1236
|
+
~~ async ~~
|
1237
|
+
node fast-glob async 0m0.357s 200023
|
1238
|
+
node globby async 0m0.513s 200023
|
1239
|
+
node current glob async mjs 0m0.471s 200023
|
1240
|
+
node current glob stream 0m0.424s 200023
|
1241
|
+
|
1242
|
+
--- pattern: '**/*/**/*.txt' ---
|
1243
|
+
~~ sync ~~
|
1244
|
+
node fast-glob sync 0m0.585s 200023
|
1245
|
+
node globby sync 0m0.766s 200023
|
1246
|
+
node current globSync mjs 0m0.694s 200023
|
1247
|
+
node current glob syncStream 0m0.664s 200023
|
1248
|
+
~~ async ~~
|
1249
|
+
node fast-glob async 0m0.350s 200023
|
1250
|
+
node globby async 0m0.514s 200023
|
1251
|
+
node current glob async mjs 0m0.472s 200023
|
1252
|
+
node current glob stream 0m0.424s 200023
|
1253
|
+
|
1254
|
+
--- pattern: '**/[0-9]/**/*.txt' ---
|
1255
|
+
~~ sync ~~
|
1256
|
+
node fast-glob sync 0m0.544s 100000
|
1257
|
+
node globby sync 0m0.636s 100000
|
1258
|
+
node current globSync mjs 0m0.626s 100000
|
1259
|
+
node current glob syncStream 0m0.621s 100000
|
1260
|
+
~~ async ~~
|
1261
|
+
node fast-glob async 0m0.322s 100000
|
1262
|
+
node globby async 0m0.404s 100000
|
1263
|
+
node current glob async mjs 0m0.360s 100000
|
1264
|
+
node current glob stream 0m0.352s 100000
|
1265
|
+
```
|