picata 0.0.5__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/models.py +4 -1
- 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.5.dist-info → picata-0.0.7.dist-info}/METADATA +1 -1
- picata-0.0.7.dist-info/RECORD +876 -0
- picata-0.0.5.dist-info/RECORD +0 -74
- {picata-0.0.5.dist-info → picata-0.0.7.dist-info}/WHEEL +0 -0
- {picata-0.0.5.dist-info → picata-0.0.7.dist-info}/licenses/LICENSE.md +0 -0
@@ -0,0 +1,106 @@
|
|
1
|
+
|
2
|
+
# MZ - Modernize node.js
|
3
|
+
|
4
|
+
[![NPM version][npm-image]][npm-url]
|
5
|
+
[![Build status][travis-image]][travis-url]
|
6
|
+
[![Test coverage][coveralls-image]][coveralls-url]
|
7
|
+
[![Dependency Status][david-image]][david-url]
|
8
|
+
[![License][license-image]][license-url]
|
9
|
+
[![Downloads][downloads-image]][downloads-url]
|
10
|
+
|
11
|
+
Modernize node.js to current ECMAScript specifications!
|
12
|
+
node.js will not update their API to ES6+ [for a while](https://github.com/joyent/node/issues/7549).
|
13
|
+
This library is a wrapper for various aspects of node.js' API.
|
14
|
+
|
15
|
+
## Installation and Usage
|
16
|
+
|
17
|
+
Set `mz` as a dependency and install it.
|
18
|
+
|
19
|
+
```bash
|
20
|
+
npm i mz
|
21
|
+
```
|
22
|
+
|
23
|
+
Then prefix the relevant `require()`s with `mz/`:
|
24
|
+
|
25
|
+
```js
|
26
|
+
var fs = require('mz/fs')
|
27
|
+
|
28
|
+
fs.exists(__filename).then(function (exists) {
|
29
|
+
if (exists) // do something
|
30
|
+
})
|
31
|
+
```
|
32
|
+
|
33
|
+
With ES2017, this will allow you to use async functions cleanly with node's core API:
|
34
|
+
|
35
|
+
```js
|
36
|
+
const fs = require('mz/fs')
|
37
|
+
|
38
|
+
|
39
|
+
async function doSomething () {
|
40
|
+
if (await fs.exists(__filename)) // do something
|
41
|
+
}
|
42
|
+
```
|
43
|
+
|
44
|
+
## Promisification
|
45
|
+
|
46
|
+
Many node methods are converted into promises.
|
47
|
+
Any properties that are deprecated or aren't asynchronous will simply be proxied.
|
48
|
+
The modules wrapped are:
|
49
|
+
|
50
|
+
- `child_process`
|
51
|
+
- `crypto`
|
52
|
+
- `dns`
|
53
|
+
- `fs` (uses `graceful-fs` if available)
|
54
|
+
- `readline`
|
55
|
+
- `zlib`
|
56
|
+
|
57
|
+
```js
|
58
|
+
var exec = require('mz/child_process').exec
|
59
|
+
|
60
|
+
exec('node --version').then(function (stdout) {
|
61
|
+
console.log(stdout)
|
62
|
+
})
|
63
|
+
```
|
64
|
+
|
65
|
+
## Promise Engine
|
66
|
+
|
67
|
+
`mz` uses [`any-promise`](https://github.com/kevinbeaty/any-promise).
|
68
|
+
|
69
|
+
## FAQ
|
70
|
+
|
71
|
+
### Can I use this in production?
|
72
|
+
|
73
|
+
Yes, Node 4.x ships with stable promises support. For older engines,
|
74
|
+
you should probably install your own promise implementation and register it with
|
75
|
+
`require('any-promise/register')('bluebird')`.
|
76
|
+
|
77
|
+
### Will this make my app faster?
|
78
|
+
|
79
|
+
Nope, probably slower actually.
|
80
|
+
|
81
|
+
### Can I add more features?
|
82
|
+
|
83
|
+
Sure.
|
84
|
+
Open an issue.
|
85
|
+
|
86
|
+
Currently, the plans are to eventually support:
|
87
|
+
|
88
|
+
- New APIs in node.js that are not available in older versions of node
|
89
|
+
- ECMAScript7 Streams
|
90
|
+
|
91
|
+
[bluebird]: https://github.com/petkaantonov/bluebird
|
92
|
+
|
93
|
+
[npm-image]: https://img.shields.io/npm/v/mz.svg?style=flat-square
|
94
|
+
[npm-url]: https://npmjs.org/package/mz
|
95
|
+
[github-tag]: http://img.shields.io/github/tag/normalize/mz.svg?style=flat-square
|
96
|
+
[github-url]: https://github.com/normalize/mz/tags
|
97
|
+
[travis-image]: https://img.shields.io/travis/normalize/mz.svg?style=flat-square
|
98
|
+
[travis-url]: https://travis-ci.org/normalize/mz
|
99
|
+
[coveralls-image]: https://img.shields.io/coveralls/normalize/mz.svg?style=flat-square
|
100
|
+
[coveralls-url]: https://coveralls.io/r/normalize/mz?branch=master
|
101
|
+
[david-image]: http://img.shields.io/david/normalize/mz.svg?style=flat-square
|
102
|
+
[david-url]: https://david-dm.org/normalize/mz
|
103
|
+
[license-image]: http://img.shields.io/npm/l/mz.svg?style=flat-square
|
104
|
+
[license-url]: LICENSE
|
105
|
+
[downloads-image]: http://img.shields.io/npm/dm/mz.svg?style=flat-square
|
106
|
+
[downloads-url]: https://npmjs.org/package/mz
|
@@ -0,0 +1,554 @@
|
|
1
|
+
# Nano ID
|
2
|
+
|
3
|
+
<img src="https://ai.github.io/nanoid/logo.svg" align="right"
|
4
|
+
alt="Nano ID logo by Anton Lovchikov" width="180" height="94">
|
5
|
+
|
6
|
+
**English** | [Русский](./README.ru.md) | [简体中文](./README.zh-CN.md) | [Bahasa Indonesia](./README.id-ID.md)
|
7
|
+
|
8
|
+
A tiny, secure, URL-friendly, unique string ID generator for JavaScript.
|
9
|
+
|
10
|
+
> “An amazing level of senseless perfectionism,
|
11
|
+
> which is simply impossible not to respect.”
|
12
|
+
|
13
|
+
* **Small.** 130 bytes (minified and gzipped). No dependencies.
|
14
|
+
[Size Limit] controls the size.
|
15
|
+
* **Fast.** It is 2 times faster than UUID.
|
16
|
+
* **Safe.** It uses hardware random generator. Can be used in clusters.
|
17
|
+
* **Short IDs.** It uses a larger alphabet than UUID (`A-Za-z0-9_-`).
|
18
|
+
So ID size was reduced from 36 to 21 symbols.
|
19
|
+
* **Portable.** Nano ID was ported
|
20
|
+
to [20 programming languages](#other-programming-languages).
|
21
|
+
|
22
|
+
```js
|
23
|
+
import { nanoid } from 'nanoid'
|
24
|
+
model.id = nanoid() //=> "V1StGXR8_Z5jdHi6B-myT"
|
25
|
+
```
|
26
|
+
|
27
|
+
Supports modern browsers, IE [with Babel], Node.js and React Native.
|
28
|
+
|
29
|
+
[online tool]: https://gitpod.io/#https://github.com/ai/nanoid/
|
30
|
+
[with Babel]: https://developer.epages.com/blog/coding/how-to-transpile-node-modules-with-babel-and-webpack-in-a-monorepo/
|
31
|
+
[Size Limit]: https://github.com/ai/size-limit
|
32
|
+
|
33
|
+
<a href="https://evilmartians.com/?utm_source=nanoid">
|
34
|
+
<img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg"
|
35
|
+
alt="Sponsored by Evil Martians" width="236" height="54">
|
36
|
+
</a>
|
37
|
+
|
38
|
+
## Table of Contents
|
39
|
+
|
40
|
+
* [Comparison with UUID](#comparison-with-uuid)
|
41
|
+
* [Benchmark](#benchmark)
|
42
|
+
* [Security](#security)
|
43
|
+
* [API](#api)
|
44
|
+
* [Blocking](#blocking)
|
45
|
+
* [Async](#async)
|
46
|
+
* [Non-Secure](#non-secure)
|
47
|
+
* [Custom Alphabet or Size](#custom-alphabet-or-size)
|
48
|
+
* [Custom Random Bytes Generator](#custom-random-bytes-generator)
|
49
|
+
* [Usage](#usage)
|
50
|
+
* [IE](#ie)
|
51
|
+
* [React](#react)
|
52
|
+
* [React Native](#react-native)
|
53
|
+
* [Rollup](#rollup)
|
54
|
+
* [PouchDB and CouchDB](#pouchdb-and-couchdb)
|
55
|
+
* [Mongoose](#mongoose)
|
56
|
+
* [Web Workers](#web-workers)
|
57
|
+
* [CLI](#cli)
|
58
|
+
* [Other Programming Languages](#other-programming-languages)
|
59
|
+
* [Tools](#tools)
|
60
|
+
|
61
|
+
|
62
|
+
## Comparison with UUID
|
63
|
+
|
64
|
+
Nano ID is quite comparable to UUID v4 (random-based).
|
65
|
+
It has a similar number of random bits in the ID
|
66
|
+
(126 in Nano ID and 122 in UUID), so it has a similar collision probability:
|
67
|
+
|
68
|
+
> For there to be a one in a billion chance of duplication,
|
69
|
+
> 103 trillion version 4 IDs must be generated.
|
70
|
+
|
71
|
+
There are three main differences between Nano ID and UUID v4:
|
72
|
+
|
73
|
+
1. Nano ID uses a bigger alphabet, so a similar number of random bits
|
74
|
+
are packed in just 21 symbols instead of 36.
|
75
|
+
2. Nano ID code is **4 times less** than `uuid/v4` package:
|
76
|
+
130 bytes instead of 483.
|
77
|
+
3. Because of memory allocation tricks, Nano ID is **2 times** faster than UUID.
|
78
|
+
|
79
|
+
|
80
|
+
## Benchmark
|
81
|
+
|
82
|
+
```rust
|
83
|
+
$ node ./test/benchmark.js
|
84
|
+
crypto.randomUUID 25,603,857 ops/sec
|
85
|
+
@napi-rs/uuid 9,973,819 ops/sec
|
86
|
+
uid/secure 8,234,798 ops/sec
|
87
|
+
@lukeed/uuid 7,464,706 ops/sec
|
88
|
+
nanoid 5,616,592 ops/sec
|
89
|
+
customAlphabet 3,115,207 ops/sec
|
90
|
+
uuid v4 1,535,753 ops/sec
|
91
|
+
secure-random-string 388,226 ops/sec
|
92
|
+
uid-safe.sync 363,489 ops/sec
|
93
|
+
cuid 187,343 ops/sec
|
94
|
+
shortid 45,758 ops/sec
|
95
|
+
|
96
|
+
Async:
|
97
|
+
nanoid/async 96,094 ops/sec
|
98
|
+
async customAlphabet 97,184 ops/sec
|
99
|
+
async secure-random-string 92,794 ops/sec
|
100
|
+
uid-safe 90,684 ops/sec
|
101
|
+
|
102
|
+
Non-secure:
|
103
|
+
uid 67,376,692 ops/sec
|
104
|
+
nanoid/non-secure 2,849,639 ops/sec
|
105
|
+
rndm 2,674,806 ops/sec
|
106
|
+
```
|
107
|
+
|
108
|
+
Test configuration: ThinkPad X1 Carbon Gen 9, Fedora 34, Node.js 16.10.
|
109
|
+
|
110
|
+
|
111
|
+
## Security
|
112
|
+
|
113
|
+
*See a good article about random generators theory:
|
114
|
+
[Secure random values (in Node.js)]*
|
115
|
+
|
116
|
+
* **Unpredictability.** Instead of using the unsafe `Math.random()`, Nano ID
|
117
|
+
uses the `crypto` module in Node.js and the Web Crypto API in browsers.
|
118
|
+
These modules use unpredictable hardware random generator.
|
119
|
+
* **Uniformity.** `random % alphabet` is a popular mistake to make when coding
|
120
|
+
an ID generator. The distribution will not be even; there will be a lower
|
121
|
+
chance for some symbols to appear compared to others. So, it will reduce
|
122
|
+
the number of tries when brute-forcing. Nano ID uses a [better algorithm]
|
123
|
+
and is tested for uniformity.
|
124
|
+
|
125
|
+
<img src="img/distribution.png" alt="Nano ID uniformity"
|
126
|
+
width="340" height="135">
|
127
|
+
|
128
|
+
* **Well-documented:** all Nano ID hacks are documented. See comments
|
129
|
+
in [the source].
|
130
|
+
* **Vulnerabilities:** to report a security vulnerability, please use
|
131
|
+
the [Tidelift security contact](https://tidelift.com/security).
|
132
|
+
Tidelift will coordinate the fix and disclosure.
|
133
|
+
|
134
|
+
[Secure random values (in Node.js)]: https://gist.github.com/joepie91/7105003c3b26e65efcea63f3db82dfba
|
135
|
+
[better algorithm]: https://github.com/ai/nanoid/blob/main/index.js
|
136
|
+
[the source]: https://github.com/ai/nanoid/blob/main/index.js
|
137
|
+
|
138
|
+
|
139
|
+
## Install
|
140
|
+
|
141
|
+
```bash
|
142
|
+
npm install --save nanoid
|
143
|
+
```
|
144
|
+
|
145
|
+
For quick hacks, you can load Nano ID from CDN. Though, it is not recommended
|
146
|
+
to be used in production because of the lower loading performance.
|
147
|
+
|
148
|
+
```js
|
149
|
+
import { nanoid } from 'https://cdn.jsdelivr.net/npm/nanoid/nanoid.js'
|
150
|
+
```
|
151
|
+
|
152
|
+
Nano ID provides ES modules. You do not need to do anything to use Nano ID
|
153
|
+
as ESM in webpack, Rollup, Parcel, or Node.js.
|
154
|
+
|
155
|
+
```js
|
156
|
+
import { nanoid } from 'nanoid'
|
157
|
+
```
|
158
|
+
|
159
|
+
In Node.js you can use CommonJS import:
|
160
|
+
|
161
|
+
```js
|
162
|
+
const { nanoid } = require('nanoid')
|
163
|
+
```
|
164
|
+
|
165
|
+
|
166
|
+
## API
|
167
|
+
|
168
|
+
Nano ID has 3 APIs: normal (blocking), asynchronous, and non-secure.
|
169
|
+
|
170
|
+
By default, Nano ID uses URL-friendly symbols (`A-Za-z0-9_-`) and returns an ID
|
171
|
+
with 21 characters (to have a collision probability similar to UUID v4).
|
172
|
+
|
173
|
+
|
174
|
+
### Blocking
|
175
|
+
|
176
|
+
The safe and easiest way to use Nano ID.
|
177
|
+
|
178
|
+
In rare cases could block CPU from other work while noise collection
|
179
|
+
for hardware random generator.
|
180
|
+
|
181
|
+
```js
|
182
|
+
import { nanoid } from 'nanoid'
|
183
|
+
model.id = nanoid() //=> "V1StGXR8_Z5jdHi6B-myT"
|
184
|
+
```
|
185
|
+
|
186
|
+
If you want to reduce the ID size (and increase collisions probability),
|
187
|
+
you can pass the size as an argument.
|
188
|
+
|
189
|
+
```js
|
190
|
+
nanoid(10) //=> "IRFa-VaY2b"
|
191
|
+
```
|
192
|
+
|
193
|
+
Don’t forget to check the safety of your ID size
|
194
|
+
in our [ID collision probability] calculator.
|
195
|
+
|
196
|
+
You can also use a [custom alphabet](#custom-alphabet-or-size)
|
197
|
+
or a [random generator](#custom-random-bytes-generator).
|
198
|
+
|
199
|
+
[ID collision probability]: https://zelark.github.io/nano-id-cc/
|
200
|
+
|
201
|
+
|
202
|
+
### Async
|
203
|
+
|
204
|
+
To generate hardware random bytes, CPU collects electromagnetic noise.
|
205
|
+
For most cases, entropy will be already collected.
|
206
|
+
|
207
|
+
In the synchronous API during the noise collection, the CPU is busy and
|
208
|
+
cannot do anything useful (for instance, process another HTTP request).
|
209
|
+
|
210
|
+
Using the asynchronous API of Nano ID, another code can run during
|
211
|
+
the entropy collection.
|
212
|
+
|
213
|
+
```js
|
214
|
+
import { nanoid } from 'nanoid/async'
|
215
|
+
|
216
|
+
async function createUser () {
|
217
|
+
user.id = await nanoid()
|
218
|
+
}
|
219
|
+
```
|
220
|
+
|
221
|
+
Read more about entropy collection in [`crypto.randomBytes`] docs.
|
222
|
+
|
223
|
+
Unfortunately, you will lose Web Crypto API advantages in a browser
|
224
|
+
if you use the asynchronous API. So, currently, in the browser, you are limited
|
225
|
+
with either security (`nanoid`), asynchronous behavior (`nanoid/async`),
|
226
|
+
or non-secure behavior (`nanoid/non-secure`) that will be explained
|
227
|
+
in the next part of the documentation.
|
228
|
+
|
229
|
+
[`crypto.randomBytes`]: https://nodejs.org/api/crypto.html#crypto_crypto_randombytes_size_callback
|
230
|
+
|
231
|
+
|
232
|
+
### Non-Secure
|
233
|
+
|
234
|
+
By default, Nano ID uses hardware random bytes generation for security
|
235
|
+
and low collision probability. If you are not so concerned with security,
|
236
|
+
you can use the faster non-secure generator.
|
237
|
+
|
238
|
+
```js
|
239
|
+
import { nanoid } from 'nanoid/non-secure'
|
240
|
+
const id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqLJ"
|
241
|
+
```
|
242
|
+
|
243
|
+
|
244
|
+
### Custom Alphabet or Size
|
245
|
+
|
246
|
+
`customAlphabet` allows you to create `nanoid` with your own alphabet
|
247
|
+
and ID size.
|
248
|
+
|
249
|
+
```js
|
250
|
+
import { customAlphabet } from 'nanoid'
|
251
|
+
const nanoid = customAlphabet('1234567890abcdef', 10)
|
252
|
+
model.id = nanoid() //=> "4f90d13a42"
|
253
|
+
```
|
254
|
+
|
255
|
+
```js
|
256
|
+
import { customAlphabet } from 'nanoid/async'
|
257
|
+
const nanoid = customAlphabet('1234567890abcdef', 10)
|
258
|
+
async function createUser () {
|
259
|
+
user.id = await nanoid()
|
260
|
+
}
|
261
|
+
```
|
262
|
+
|
263
|
+
```js
|
264
|
+
import { customAlphabet } from 'nanoid/non-secure'
|
265
|
+
const nanoid = customAlphabet('1234567890abcdef', 10)
|
266
|
+
user.id = nanoid()
|
267
|
+
```
|
268
|
+
|
269
|
+
Check the safety of your custom alphabet and ID size in our
|
270
|
+
[ID collision probability] calculator. For more alphabets, check out the options
|
271
|
+
in [`nanoid-dictionary`].
|
272
|
+
|
273
|
+
Alphabet must contain 256 symbols or less.
|
274
|
+
Otherwise, the security of the internal generator algorithm is not guaranteed.
|
275
|
+
|
276
|
+
In addition to setting a default size, you can change the ID size when calling
|
277
|
+
the function:
|
278
|
+
|
279
|
+
```js
|
280
|
+
import { customAlphabet } from 'nanoid'
|
281
|
+
const nanoid = customAlphabet('1234567890abcdef', 10)
|
282
|
+
model.id = nanoid(5) //=> "f01a2"
|
283
|
+
```
|
284
|
+
|
285
|
+
[ID collision probability]: https://alex7kom.github.io/nano-nanoid-cc/
|
286
|
+
[`nanoid-dictionary`]: https://github.com/CyberAP/nanoid-dictionary
|
287
|
+
|
288
|
+
|
289
|
+
### Custom Random Bytes Generator
|
290
|
+
|
291
|
+
`customRandom` allows you to create a `nanoid` and replace alphabet
|
292
|
+
and the default random bytes generator.
|
293
|
+
|
294
|
+
In this example, a seed-based generator is used:
|
295
|
+
|
296
|
+
```js
|
297
|
+
import { customRandom } from 'nanoid'
|
298
|
+
|
299
|
+
const rng = seedrandom(seed)
|
300
|
+
const nanoid = customRandom('abcdef', 10, size => {
|
301
|
+
return (new Uint8Array(size)).map(() => 256 * rng())
|
302
|
+
})
|
303
|
+
|
304
|
+
nanoid() //=> "fbaefaadeb"
|
305
|
+
```
|
306
|
+
|
307
|
+
`random` callback must accept the array size and return an array
|
308
|
+
with random numbers.
|
309
|
+
|
310
|
+
If you want to use the same URL-friendly symbols with `customRandom`,
|
311
|
+
you can get the default alphabet using the `urlAlphabet`.
|
312
|
+
|
313
|
+
```js
|
314
|
+
const { customRandom, urlAlphabet } = require('nanoid')
|
315
|
+
const nanoid = customRandom(urlAlphabet, 10, random)
|
316
|
+
```
|
317
|
+
|
318
|
+
Asynchronous and non-secure APIs are not available for `customRandom`.
|
319
|
+
|
320
|
+
Note, that between Nano ID versions we may change random generator
|
321
|
+
call sequence. If you are using seed-based generators, we do not guarantee
|
322
|
+
the same result.
|
323
|
+
|
324
|
+
|
325
|
+
## Usage
|
326
|
+
|
327
|
+
### IE
|
328
|
+
|
329
|
+
If you support IE, you need to [transpile `node_modules`] by Babel
|
330
|
+
and add `crypto` alias. Moreover, `UInt8Array` in IE actually
|
331
|
+
is not an array and to cope with it, you have to convert it to an array
|
332
|
+
manually:
|
333
|
+
|
334
|
+
```js
|
335
|
+
// polyfills.js
|
336
|
+
if (!window.crypto && window.msCrypto) {
|
337
|
+
window.crypto = window.msCrypto
|
338
|
+
|
339
|
+
const getRandomValuesDef = window.crypto.getRandomValues
|
340
|
+
|
341
|
+
window.crypto.getRandomValues = function (array) {
|
342
|
+
const values = getRandomValuesDef.call(window.crypto, array)
|
343
|
+
const result = []
|
344
|
+
|
345
|
+
for (let i = 0; i < array.length; i++) {
|
346
|
+
result[i] = values[i];
|
347
|
+
}
|
348
|
+
|
349
|
+
return result
|
350
|
+
};
|
351
|
+
}
|
352
|
+
```
|
353
|
+
|
354
|
+
```js
|
355
|
+
import './polyfills.js'
|
356
|
+
import { nanoid } from 'nanoid'
|
357
|
+
```
|
358
|
+
|
359
|
+
[transpile `node_modules`]: https://developer.epages.com/blog/coding/how-to-transpile-node-modules-with-babel-and-webpack-in-a-monorepo/
|
360
|
+
|
361
|
+
|
362
|
+
### React
|
363
|
+
|
364
|
+
There’s no correct way to use Nano ID for React `key` prop
|
365
|
+
since it should be consistent among renders.
|
366
|
+
|
367
|
+
```jsx
|
368
|
+
function Todos({todos}) {
|
369
|
+
return (
|
370
|
+
<ul>
|
371
|
+
{todos.map(todo => (
|
372
|
+
<li key={nanoid()}> /* DON’T DO IT */
|
373
|
+
{todo.text}
|
374
|
+
</li>
|
375
|
+
))}
|
376
|
+
</ul>
|
377
|
+
)
|
378
|
+
}
|
379
|
+
```
|
380
|
+
|
381
|
+
You should rather try to reach for stable ID inside your list item.
|
382
|
+
|
383
|
+
```jsx
|
384
|
+
const todoItems = todos.map((todo) =>
|
385
|
+
<li key={todo.id}>
|
386
|
+
{todo.text}
|
387
|
+
</li>
|
388
|
+
)
|
389
|
+
```
|
390
|
+
|
391
|
+
In case you don’t have stable IDs you'd rather use index as `key`
|
392
|
+
instead of `nanoid()`:
|
393
|
+
|
394
|
+
```jsx
|
395
|
+
const todoItems = todos.map((text, index) =>
|
396
|
+
<li key={index}> /* Still not recommended but preferred over nanoid().
|
397
|
+
Only do this if items have no stable IDs. */
|
398
|
+
{text}
|
399
|
+
</li>
|
400
|
+
)
|
401
|
+
```
|
402
|
+
|
403
|
+
|
404
|
+
### React Native
|
405
|
+
|
406
|
+
React Native does not have built-in random generator. The following polyfill
|
407
|
+
works for plain React Native and Expo starting with `39.x`.
|
408
|
+
|
409
|
+
1. Check [`react-native-get-random-values`] docs and install it.
|
410
|
+
2. Import it before Nano ID.
|
411
|
+
|
412
|
+
```js
|
413
|
+
import 'react-native-get-random-values'
|
414
|
+
import { nanoid } from 'nanoid'
|
415
|
+
```
|
416
|
+
|
417
|
+
[`react-native-get-random-values`]: https://github.com/LinusU/react-native-get-random-values
|
418
|
+
|
419
|
+
|
420
|
+
### Rollup
|
421
|
+
|
422
|
+
For Rollup you will need [`@rollup/plugin-node-resolve`] to bundle browser version
|
423
|
+
of this library.:
|
424
|
+
|
425
|
+
```js
|
426
|
+
plugins: [
|
427
|
+
nodeResolve({
|
428
|
+
browser: true
|
429
|
+
})
|
430
|
+
]
|
431
|
+
```
|
432
|
+
|
433
|
+
[`@rollup/plugin-node-resolve`]: https://github.com/rollup/plugins/tree/master/packages/node-resolve
|
434
|
+
|
435
|
+
|
436
|
+
### PouchDB and CouchDB
|
437
|
+
|
438
|
+
In PouchDB and CouchDB, IDs can’t start with an underscore `_`.
|
439
|
+
A prefix is required to prevent this issue, as Nano ID might use a `_`
|
440
|
+
at the start of the ID by default.
|
441
|
+
|
442
|
+
Override the default ID with the following option:
|
443
|
+
|
444
|
+
```js
|
445
|
+
db.put({
|
446
|
+
_id: 'id' + nanoid(),
|
447
|
+
…
|
448
|
+
})
|
449
|
+
```
|
450
|
+
|
451
|
+
|
452
|
+
### Mongoose
|
453
|
+
|
454
|
+
```js
|
455
|
+
const mySchema = new Schema({
|
456
|
+
_id: {
|
457
|
+
type: String,
|
458
|
+
default: () => nanoid()
|
459
|
+
}
|
460
|
+
})
|
461
|
+
```
|
462
|
+
|
463
|
+
|
464
|
+
### Web Workers
|
465
|
+
|
466
|
+
Web Workers do not have access to a secure random generator.
|
467
|
+
|
468
|
+
Security is important in IDs when IDs should be unpredictable.
|
469
|
+
For instance, in "access by URL" link generation.
|
470
|
+
If you do not need unpredictable IDs, but you need to use Web Workers,
|
471
|
+
you can use the non‑secure ID generator.
|
472
|
+
|
473
|
+
```js
|
474
|
+
import { nanoid } from 'nanoid/non-secure'
|
475
|
+
nanoid() //=> "Uakgb_J5m9g-0JDMbcJqLJ"
|
476
|
+
```
|
477
|
+
|
478
|
+
Note: non-secure IDs are more prone to collision attacks.
|
479
|
+
|
480
|
+
|
481
|
+
### CLI
|
482
|
+
|
483
|
+
You can get unique ID in terminal by calling `npx nanoid`. You need only
|
484
|
+
Node.js in the system. You do not need Nano ID to be installed anywhere.
|
485
|
+
|
486
|
+
```sh
|
487
|
+
$ npx nanoid
|
488
|
+
npx: installed 1 in 0.63s
|
489
|
+
LZfXLFzPPR4NNrgjlWDxn
|
490
|
+
```
|
491
|
+
|
492
|
+
Size of generated ID can be specified with `--size` (or `-s`) option:
|
493
|
+
|
494
|
+
```sh
|
495
|
+
$ npx nanoid --size 10
|
496
|
+
L3til0JS4z
|
497
|
+
```
|
498
|
+
|
499
|
+
Custom alphabet can be specified with `--alphabet` (or `-a`) option
|
500
|
+
(note that in this case `--size` is required):
|
501
|
+
|
502
|
+
```sh
|
503
|
+
$ npx nanoid --alphabet abc --size 15
|
504
|
+
bccbcabaabaccab
|
505
|
+
```
|
506
|
+
|
507
|
+
### Other Programming Languages
|
508
|
+
|
509
|
+
Nano ID was ported to many languages. You can use these ports to have
|
510
|
+
the same ID generator on the client and server side.
|
511
|
+
|
512
|
+
* [C#](https://github.com/codeyu/nanoid-net)
|
513
|
+
* [C++](https://github.com/mcmikecreations/nanoid_cpp)
|
514
|
+
* [Clojure and ClojureScript](https://github.com/zelark/nano-id)
|
515
|
+
* [ColdFusion/CFML](https://github.com/JamoCA/cfml-nanoid)
|
516
|
+
* [Crystal](https://github.com/mamantoha/nanoid.cr)
|
517
|
+
* [Dart & Flutter](https://github.com/pd4d10/nanoid-dart)
|
518
|
+
* [Deno](https://github.com/ianfabs/nanoid)
|
519
|
+
* [Go](https://github.com/matoous/go-nanoid)
|
520
|
+
* [Elixir](https://github.com/railsmechanic/nanoid)
|
521
|
+
* [Haskell](https://github.com/MichelBoucey/NanoID)
|
522
|
+
* [Janet](https://sr.ht/~statianzo/janet-nanoid/)
|
523
|
+
* [Java](https://github.com/aventrix/jnanoid)
|
524
|
+
* [Nim](https://github.com/icyphox/nanoid.nim)
|
525
|
+
* [OCaml](https://github.com/routineco/ocaml-nanoid)
|
526
|
+
* [Perl](https://github.com/tkzwtks/Nanoid-perl)
|
527
|
+
* [PHP](https://github.com/hidehalo/nanoid-php)
|
528
|
+
* [Python](https://github.com/puyuan/py-nanoid)
|
529
|
+
with [dictionaries](https://pypi.org/project/nanoid-dictionary)
|
530
|
+
* [Postgres Extension](https://github.com/spa5k/uids-postgres)
|
531
|
+
* [R](https://github.com/hrbrmstr/nanoid) (with dictionaries)
|
532
|
+
* [Ruby](https://github.com/radeno/nanoid.rb)
|
533
|
+
* [Rust](https://github.com/nikolay-govorov/nanoid)
|
534
|
+
* [Swift](https://github.com/antiflasher/NanoID)
|
535
|
+
* [Unison](https://share.unison-lang.org/latest/namespaces/hojberg/nanoid)
|
536
|
+
* [V](https://github.com/invipal/nanoid)
|
537
|
+
* [Zig](https://github.com/SasLuca/zig-nanoid)
|
538
|
+
|
539
|
+
For other environments, [CLI] is available to generate IDs from a command line.
|
540
|
+
|
541
|
+
[CLI]: #cli
|
542
|
+
|
543
|
+
|
544
|
+
## Tools
|
545
|
+
|
546
|
+
* [ID size calculator] shows collision probability when adjusting
|
547
|
+
the ID alphabet or size.
|
548
|
+
* [`nanoid-dictionary`] with popular alphabets to use with [`customAlphabet`].
|
549
|
+
* [`nanoid-good`] to be sure that your ID doesn’t contain any obscene words.
|
550
|
+
|
551
|
+
[`nanoid-dictionary`]: https://github.com/CyberAP/nanoid-dictionary
|
552
|
+
[ID size calculator]: https://zelark.github.io/nano-id-cc/
|
553
|
+
[`customAlphabet`]: #custom-alphabet-or-size
|
554
|
+
[`nanoid-good`]: https://github.com/y-gagar1n/nanoid-good
|